# Leaf notebook

Created 3 Apr 2014 • Last modified 24 Mar 2015

## Subjects

bad.s

x | |
---|---|

1 | s25 |

2 | s31 |

3 | s51 |

4 | s52 |

5 | s71 |

6 | s80 |

maybe.bad.s

x | |
---|---|

1 | s52 |

2 | s54 |

3 | s56 |

## Choice GLMMs

choice.lreg = function(d) glmer( choice ~ payoff_condition * show_opponent_score + opponent_choice + (1|subject), data = d, family = binomial(link = "logit")) model.summary = function(model) {x = round(summary(model)@coefs, 3) colnames(x)[ncol(x)] = "p" x}

model.summary(choice.lreg(ss(ts, !(char(subject) %in% bad.s))))

Estimate | Std. Error | z value | p | |
---|---|---|---|---|

(Intercept) | -4.114 | 0.337 | -12.197 | 0.000 |

payoff_condition1-2-9-10 | -0.253 | 0.132 | -1.912 | 0.056 |

show_opponent_scoreTrue | 1.779 | 0.444 | 4.009 | 0.000 |

opponent_choiceCooperate | 1.358 | 0.075 | 17.984 | 0.000 |

payoff_condition1-2-9-10:show_opponent_scoreTrue | 0.659 | 0.158 | 4.169 | 0.000 |

Here is the proportions of trials that were cooperations stratified by condition:

m = with(ss(ts, !(char(subject) %in% bad.s)), {f = function(v) tapply(choice == "Cooperate", v, mean) rbind( f(show_opponent_score == "True"), f(opponent_choice == "Cooperate"), f((payoff_condition == "1-2-9-10") & (show_opponent_score == "True")), f((payoff_condition == "1-2-9-10") & (show_opponent_score == "False")))}) dimnames(m)[[1]] = qw(show_opponent_score, opponent_cooperates, payoff_condition_129X_withscore, payoff_condition_129X_noscore) round(d = 2, m[,c(2,1)])

TRUE | FALSE | |
---|---|---|

show_opponent_score | 0.28 | 0.11 |

opponent_cooperates | 0.28 | 0.12 |

payoff_condition_129X_withscore | 0.32 | 0.16 |

payoff_condition_129X_noscore | 0.10 | 0.23 |

model.summary(choice.lreg(ss(ts, !(char(subject) %in% union(bad.s, maybe.bad.s)))))

Estimate | Std. Error | z value | p | |
---|---|---|---|---|

(Intercept) | -4.174 | 0.347 | -12.023 | 0.000 |

payoff_condition1-2-9-10 | -0.353 | 0.137 | -2.583 | 0.010 |

show_opponent_scoreTrue | 1.837 | 0.456 | 4.028 | 0.000 |

opponent_choiceCooperate | 1.384 | 0.077 | 17.953 | 0.000 |

payoff_condition1-2-9-10:show_opponent_scoreTrue | 0.714 | 0.163 | 4.387 | 0.000 |

### With social distance

Here, I've calculated social distance (`pdist.r`

) as the rank of a score from a simple within-subject linear regression. This should be robust to various scaling issues like how generous subjects are in general.

choice.lreg.pdist = function(var, d) glmer( choice ~ payoff_condition + get(var) + opponent_choice + (1|subject), data = ss(d, show_opponent_score == "True"), family = binomial(link = "logit"))

model.summary(choice.lreg.pdist("pdist.r", ss(ts, !(char(subject) %in% bad.s) & !is.na(pdist.r))))

Estimate | Std. Error | z value | p | |
---|---|---|---|---|

(Intercept) | -2.641 | 0.483 | -5.473 | 0.000 |

payoff_condition1-2-9-10 | 0.423 | 0.089 | 4.770 | 0.000 |

get(var) | 0.003 | 0.010 | 0.331 | 0.741 |

opponent_choiceCooperate | 1.677 | 0.093 | 18.027 | 0.000 |

model.summary(choice.lreg.pdist("pdist.r2", ss(ts, !(char(subject) %in% bad.s) & !is.na(pdist.r2))))

Estimate | Std. Error | z value | p | |
---|---|---|---|---|

(Intercept) | -2.055 | 0.517 | -3.977 | 0.000 |

payoff_condition1-2-9-10 | 0.405 | 0.105 | 3.868 | 0.000 |

get(var) | -0.009 | 0.016 | -0.538 | 0.591 |

opponent_choiceCooperate | 1.902 | 0.111 | 17.128 | 0.000 |

Apparently, there is no systematic relationship between `pdist.r`

and cooperation rate:

ggplot( ddply( ss(ts, !(subject %in% bad.s) & !is.na(pdist.r) & show_opponent_score == "True"), .(pdist.r), function(slice) data.frame(coop = mean(slice$choice == "Cooperate")))) + geom_point(aes(pdist.r, coop))

#### Social-distance writeup

We computed social distance from the partner as follows. Within each subject, we fit a simple linear regression model with the subject's indifference value for persons #1, #2, #5, #10, #20, #50, and #100 as

Xand the integers 1 through 7 asY. We also included another data point withX= 75 andY= 0. Thus we attempted to robustly model the relationship between indifference amount (measured in dollars) and social distance (measured as rank within the list of person ranks 0, 1, 2, 5, 10, 20, 50, 100). Using the slope and intercept from this model and the indifference value for the partner, we computed the effective rank for the partner. Then we ranked these values across subjects to create our final measure of social distance from the partner.To examine the effect of social distance from the partner on cooperation in the IPD, we fit a mixed-effects logistic regression model with a per-subject random effect and three fixed effects: one each for social distance from the partner, payoff matrix, and the opponent's choice. When fitting this model, we included only subjects in the social condition. This model, like the one described earlier, found that the 1-2-9-10 matrix and opponent cooperation significant increased subject cooperation (both

zs > 4, bothps < .001). However, the effect of social distance from the partner was not significant (p= .741). Thus, we obtained no evidence that social distance from the partner influenced cooperation in the IPD.

## Plots

ggplot(ss(ts, show_opponent_score == "True")) + stat_smooth(aes(trial, cumcoop.n, linetype = payoff_condition), method = "loess", color = "black") + ylab("Cumulative number of cooperations")

ggplot(ss(ts, show_opponent_score == "True")) + stat_smooth(aes(trial, cumcoop.p, linetype = payoff_condition), method = "loess", color = "black") + ylab("Cumulative proportion of cooperations")