################################################################################### # Replication file for "Experimental evidence for a pure collaboration effect" # # Figure 3 # # author: Mary McGrath (mary.mcgrath@northwestern.edu) ORCID: 0000-0002-8437-4039 # # created: 10/25/2018 R version 3.3.2 # ################################################################################### library(foreign) library(sandwich) dat<-read.dta("Collab_3-5.dta") pdf(file="Fig3.pdf", width=3.47, height=5.12, pointsize=7) par(mar=c(5,2,4,2)) #relative to reciprocity reciprocity<- 0 + (dat$primary=="recipr") altruism<-rep(NA, length(dat$primary)) altruism[dat$primary=="recipr"]<-0 altruism[dat$primary=="altrusim"]<-1 money<-rep(NA, length(dat$primary)) money[dat$primary=="recipr"]<-0 money[dat$primary=="money"]<-1 wonfair<-rep(NA, length(dat$primary)) wonfair[dat$primary=="recipr"]<-0 wonfair[dat$primary=="wonfair"]<-1 justluck<-rep(NA, length(dat$primary)) justluck[dat$primary=="recipr"]<-0 justluck[dat$primary=="justluck"]<-1 nodebt<-rep(NA, length(dat$primary)) nodebt[dat$primary=="recipr"]<-0 nodebt[dat$primary=="nodebt"]<-1 unjust<-rep(NA, length(dat$primary)) unjust[dat$primary=="recipr"]<-0 unjust[dat$primary=="unjust"]<-1 Ineed<-rep(NA, length(dat$primary)) Ineed[dat$primary=="recipr"]<-0 Ineed[dat$primary=="Ineed"]<-1 Pneeds<-rep(NA, length(dat$primary)) Pneeds[dat$primary=="recipr"]<-0 Pneeds[dat$primary=="Pneeds"]<-1 Ideserve<-rep(NA, length(dat$primary)) Ideserve[dat$primary=="recipr"]<-0 Ideserve[dat$primary=="Ideserve"]<-1 Pdeserves<-rep(NA, length(dat$primary)) Pdeserves[dat$primary=="recipr"]<-0 Pdeserves[dat$primary=="Pdeserves"]<-1 debt<-rep(NA, length(dat$primary)) debt[dat$primary=="recipr"]<-0 debt[dat$primary=="debt"]<-1 teammates<-rep(NA, length(dat$primary)) teammates[dat$primary=="recipr"]<-0 teammates[dat$primary=="teammates"]<-1 norms<-rep(NA, length(dat$primary)) norms[dat$primary=="recipr"]<-0 norms[dat$primary=="norms"]<-1 #getting estimates -- multiple LPM regressions, relative to Reciprocity z<-qnorm(1-(.05/2)) reg<-lm(altruism~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) alt.S<-reg$coeff[1] alt.Sl<-reg$coeff[1] - z*rse[1] alt.Su<-reg$coeff[1] + z*rse[1] alt.P<-reg$coeff[1] + reg$coeff[2] alt.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] alt.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI alt.tau<-reg$coeff[2] alt.tauL<-reg$coeff[2] - z*rse[2] alt.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(wonfair~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) won.S<-reg$coeff[1] won.Sl<-reg$coeff[1] - z*rse[1] won.Su<-reg$coeff[1] + z*rse[1] won.P<-reg$coeff[1] + reg$coeff[2] won.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] won.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI won.tau<-reg$coeff[2] won.tauL<-reg$coeff[2] - z*rse[2] won.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(money~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) mon.S<-reg$coeff[1] mon.Sl<-reg$coeff[1] - z*rse[1] mon.Su<-reg$coeff[1] + z*rse[1] mon.P<-reg$coeff[1] + reg$coeff[2] mon.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] mon.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI mon.tau<-reg$coeff[2] mon.tauL<-reg$coeff[2] - z*rse[2] mon.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(justluck~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) lck.S<-reg$coeff[1] lck.Sl<-reg$coeff[1] - z*rse[1] lck.Su<-reg$coeff[1] + z*rse[1] lck.P<-reg$coeff[1] + reg$coeff[2] lck.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] lck.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI lck.tau<-reg$coeff[2] lck.tauL<-reg$coeff[2] - z*rse[2] lck.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(nodebt~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) nd.S<-reg$coeff[1] nd.Sl<-reg$coeff[1] - z*rse[1] nd.Su<-reg$coeff[1] + z*rse[1] nd.P<-reg$coeff[1] + reg$coeff[2] nd.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] nd.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI nd.tau<-reg$coeff[2] nd.tauL<-reg$coeff[2] - z*rse[2] nd.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(unjust~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) uj.S<-reg$coeff[1] uj.Sl<-reg$coeff[1] - z*rse[1] uj.Su<-reg$coeff[1] + z*rse[1] uj.P<-reg$coeff[1] + reg$coeff[2] uj.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] uj.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI uj.tau<-reg$coeff[2] uj.tauL<-reg$coeff[2] - z*rse[2] uj.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(Ineed~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) Ind.S<-reg$coeff[1] Ind.Sl<-reg$coeff[1] - z*rse[1] Ind.Su<-reg$coeff[1] + z*rse[1] Ind.P<-reg$coeff[1] + reg$coeff[2] Ind.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] Ind.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI Ind.tau<-reg$coeff[2] Ind.tauL<-reg$coeff[2] - z*rse[2] Ind.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(Pneeds~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) Pnd.S<-reg$coeff[1] Pnd.Sl<-reg$coeff[1] - z*rse[1] Pnd.Su<-reg$coeff[1] + z*rse[1] Pnd.P<-reg$coeff[1] + reg$coeff[2] Pnd.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] Pnd.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI Pnd.tau<-reg$coeff[2] Pnd.tauL<-reg$coeff[2] - z*rse[2] Pnd.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(Ideserve~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) Idsv.S<-reg$coeff[1] Idsv.Sl<-reg$coeff[1] - z*rse[1] Idsv.Su<-reg$coeff[1] + z*rse[1] Idsv.P<-reg$coeff[1] + reg$coeff[2] Idsv.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] Idsv.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI Idsv.tau<-reg$coeff[2] Idsv.tauL<-reg$coeff[2] - z*rse[2] Idsv.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(Pdeserves~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) Pdsv.S<-reg$coeff[1] Pdsv.Sl<-reg$coeff[1] - z*rse[1] Pdsv.Su<-reg$coeff[1] + z*rse[1] Pdsv.P<-reg$coeff[1] + reg$coeff[2] Pdsv.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] Pdsv.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI Pdsv.tau<-reg$coeff[2] Pdsv.tauL<-reg$coeff[2] - z*rse[2] Pdsv.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(debt~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) dbt.S<-reg$coeff[1] dbt.Sl<-reg$coeff[1] - z*rse[1] dbt.Su<-reg$coeff[1] + z*rse[1] dbt.P<-reg$coeff[1] + reg$coeff[2] dbt.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] dbt.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI dbt.tau<-reg$coeff[2] dbt.tauL<-reg$coeff[2] - z*rse[2] dbt.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(teammates~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) tmt.S<-reg$coeff[1] tmt.Sl<-reg$coeff[1] - z*rse[1] tmt.Su<-reg$coeff[1] + z*rse[1] tmt.P<-reg$coeff[1] + reg$coeff[2] tmt.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] tmt.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI tmt.tau<-reg$coeff[2] tmt.tauL<-reg$coeff[2] - z*rse[2] tmt.tauU<-reg$coeff[2] + z*rse[2] reg<-lm(norms~dat$Collab) rse<-sqrt(diag(vcovHC(reg, type="HC0"))) nrm.S<-reg$coeff[1] nrm.Sl<-reg$coeff[1] - z*rse[1] nrm.Su<-reg$coeff[1] + z*rse[1] nrm.P<-reg$coeff[1] + reg$coeff[2] nrm.Pl<-(reg$coeff[1] + reg$coeff[2]) - z*rse[2] nrm.Pu<-(reg$coeff[1] + reg$coeff[2]) + z*rse[2] #treatment effect & CI nrm.tau<-reg$coeff[2] nrm.tauL<-reg$coeff[2] - z*rse[2] nrm.tauU<-reg$coeff[2] + z*rse[2] taus<-c(alt.tau, won.tau, mon.tau, lck.tau, nd.tau, uj.tau, Ind.tau, Pnd.tau, Idsv.tau, Pdsv.tau, dbt.tau, tmt.tau, nrm.tau) primary<-table(dat$Collab, dat$primary) colnames(primary)[1]<-"reciprocity" colnames(primary)[2]<-"altruism" names(taus)<-colnames(primary[,2:14]) taus.ordered<-sort(taus) #reasons TO share: luck, altruism, debt, P deserves, P needs, teammates, unjust, norms TOshare<-0+c(names(taus.ordered)=="justluck" | names(taus.ordered)=="altruism" | names(taus.ordered)=="debt"| names(taus.ordered)=="Pdeserves" | names(taus.ordered)=="Pneeds"|names(taus.ordered)=="teammates"|names(taus.ordered)=="unjust" | names(taus.ordered)=="norms") index<-1:13 plot(taus.ordered,index, xlim=c(-.61,.61), ylim=c(0.5,13.5), axes=F, ylab=NA, xlab=NA) points(taus.ordered[TOshare==1], index[TOshare==1], pch=19) abline(v=0,lty=2) lines(c(alt.tauL,alt.tauU), c(index[names(taus.ordered)=="altruism"],index[names(taus.ordered)=="altruism"])) lines(c(won.tauL,won.tauU), c(index[names(taus.ordered)=="wonfair"],index[names(taus.ordered)=="wonfair"])) lines(c(mon.tauL,mon.tauU), c(index[names(taus.ordered)=="money"],index[names(taus.ordered)=="money"])) lines(c(lck.tauL,lck.tauU), c(index[names(taus.ordered)=="justluck"],index[names(taus.ordered)=="justluck"])) lines(c(nd.tauL,nd.tauU), c(index[names(taus.ordered)=="nodebt"],index[names(taus.ordered)=="nodebt"])) lines(c(uj.tauL,uj.tauU), c(index[names(taus.ordered)=="unjust"],index[names(taus.ordered)=="unjust"])) lines(c(Ind.tauL,Ind.tauU), c(index[names(taus.ordered)=="Ineed"],index[names(taus.ordered)=="Ineed"])) lines(c(Pnd.tauL,Pnd.tauU), c(index[names(taus.ordered)=="Pneeds"],index[names(taus.ordered)=="Pneeds"])) lines(c(Idsv.tauL,Idsv.tauU), c(index[names(taus.ordered)=="Ideserve"],index[names(taus.ordered)=="Ideserve"])) lines(c(Pdsv.tauL,Pdsv.tauU), c(index[names(taus.ordered)=="Pdeserves"],index[names(taus.ordered)=="Pdeserves"])) lines(c(dbt.tauL,dbt.tauU), c(index[names(taus.ordered)=="debt"],index[names(taus.ordered)=="debt"])) lines(c(tmt.tauL,tmt.tauU), c(index[names(taus.ordered)=="teammates"],index[names(taus.ordered)=="teammates"])) lines(c(nrm.tauL,nrm.tauU), c(index[names(taus.ordered)=="norms"],index[names(taus.ordered)=="norms"])) text(x=taus.ordered, y=index-.3, names(taus.ordered), cex=.7) axis(side=1) mtext(side=3, "Effect of collaboration on reported motivation for sharing decision", line=1) mtext(side=1, "Relative probability of reporting given option as primary motivation \n (Baseline = 'reciprocity')", line=3, cex=.9) #box() dev.off()