Notes from last meeting

Hypothesis – 2X 3 way interactions, no trial number Add in trial number as control variable Take out 3 ways and add trial number interacting Do same for force HC vs Pdoff, HC vs Pdon Wilcoxson test 3 groups for credits

Notes: -For below models, I have correlated all random effects as convergence issues when not correlated. The contrast settings are sum to zero for recipient and dummy coded for group.

PDon vs PDoff

Below ouput shows hypothesis model (Choice ~ Group * Agent * Reward + Group * Agent * Effort)

Two.3way.hypo.PDonvsPDoff <- glmer(Choice ~ Group*Recipient_s2z*scale(Reward) + 
                                         Group*Recipient_s2z*scale(Effort) +
                                         (1 + scale(Effort) + scale(Reward) + Recipient_s2z + Group | ID), family='binomial', data=PD.df, control=glmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(Two.3way.hypo.PDonvsPDoff)
  Choice
Predictors Odds Ratios CI p
(Intercept) 85.23 28.59 – 254.03 <0.001
Group [PD on] 0.96 0.44 – 2.08 0.922
Recipient s2z1 2.43 1.66 – 3.58 <0.001
Reward 5.45 3.44 – 8.64 <0.001
Effort 0.27 0.18 – 0.39 <0.001
Group [PD on] × Recipient
s2z1
0.81 0.66 – 0.99 0.043
Group [PD on] × Reward 1.01 0.83 – 1.22 0.951
Recipient s2z1 × Reward 1.14 1.01 – 1.29 0.039
Group [PD on] × Effort 1.13 0.94 – 1.36 0.185
Recipient s2z1 × Effort 1.04 0.92 – 1.17 0.533
(Group [PD on] ×
Recipient s2z1) × Reward
0.95 0.80 – 1.12 0.527
(Group [PD on] ×
Recipient s2z1) × Effort
1.02 0.87 – 1.20 0.799
Random Effects
σ2 3.29
τ00 ID 10.55
τ11 ID.scale(Effort) 1.10
τ11 ID.scale(Reward) 1.58
τ11 ID.Recipient_s2z1 1.05
τ11 ID.GroupPD on 4.62
ρ01 0.11
0.46
-0.19
-0.40
ICC 0.81
N ID 38
Observations 11207
Marginal R2 / Conditional R2 0.231 / 0.852

Below output shows trial number model (Choice ~ Group * Agent * Reward * Trial + Group * Agent * Effort * Trial

Fourway.EATG.RATG.PDonvsPDoff <- glmer(Choice ~ Group*scale(Trial.number.r)*Recipient_s2z*scale(Reward) + 
                                         Group*scale(Trial.number.r)*Recipient_s2z*scale(Effort) +
                                         (1 + scale(Effort) + scale(Reward) + Recipient_s2z + Group + scale(Trial.number.r) | ID), family='binomial', data=PD.df, control=glmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(Fourway.EATG.RATG.PDonvsPDoff)
  Choice
Predictors Odds Ratios CI p
(Intercept) 96.14 31.25 – 295.75 <0.001
Group [PD on] 0.92 0.40 – 2.08 0.838
Trial number r 0.90 0.71 – 1.14 0.371
Recipient s2z1 2.60 1.73 – 3.92 <0.001
Reward 5.59 3.52 – 8.88 <0.001
Effort 0.25 0.17 – 0.37 <0.001
Group [PD on] × Trial
number r
1.03 0.84 – 1.25 0.790
Group [PD on] × Recipient
s2z1
0.78 0.63 – 0.96 0.020
Trial number r ×
Recipient s2z1
1.14 0.99 – 1.30 0.061
Group [PD on] × Reward 0.99 0.81 – 1.21 0.908
Trial number r × Reward 1.21 1.06 – 1.38 0.005
Recipient s2z1 × Reward 1.14 1.00 – 1.30 0.042
Group [PD on] × Effort 1.14 0.94 – 1.39 0.171
Trial number r × Effort 0.81 0.71 – 0.92 0.001
Recipient s2z1 × Effort 1.06 0.93 – 1.20 0.388
Group [PD on] × Trial
number r × Recipient s2z1
0.96 0.80 – 1.15 0.659
(Group [PD on] × Trial
number r) × Reward
0.93 0.77 – 1.12 0.438
(Group [PD on] ×
Recipient s2z1) × Reward
0.92 0.77 – 1.09 0.330
(Trial number r ×
Recipient s2z1) × Reward
1.06 0.93 – 1.20 0.366
(Group [PD on] × Trial
number r) × Effort
0.85 0.71 – 1.01 0.060
(Group [PD on] ×
Recipient s2z1) × Effort
1.03 0.87 – 1.22 0.735
(Trial number r ×
Recipient s2z1) × Effort
1.14 1.01 – 1.28 0.037
(Group [PD on] × Trial
number r × Recipient
s2z1) × Reward
0.98 0.82 – 1.17 0.812
(Group [PD on] × Trial
number r × Recipient
s2z1) × Effort
0.97 0.82 – 1.15 0.741
Random Effects
σ2 3.29
τ00 ID 11.19
τ11 ID.scale(Effort) 1.29
τ11 ID.scale(Reward) 1.59
τ11 ID.Recipient_s2z1 1.21
τ11 ID.GroupPD on 5.30
τ11 ID.scale(Trial.number.r) 0.19
ρ01 0.14
0.42
-0.22
-0.42
0.04
ICC 0.82
N ID 38
Observations 11207
Marginal R2 / Conditional R2 0.229 / 0.860

HC vs PDoff

Below output shows hypothesis model

#2X 3 way hypothesis models
Two.3way.hypo.HCvsPDoff <-
  glmer(Choice ~ scale(Effort)*Recipient_s2z*Group + 
          scale(Reward)*Recipient_s2z*Group +   
          (1 + scale(Effort) + scale(Reward) + Recipient_s2z  | ID), family='binomial', data=PDoffvsHC.df,control=glmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(Two.3way.hypo.HCvsPDoff)
  Choice
Predictors Odds Ratios CI p
(Intercept) 70.49 28.87 – 172.09 <0.001
Effort 0.27 0.18 – 0.42 <0.001
Recipient s2z1 1.68 1.21 – 2.34 0.002
Group [PD off] 1.15 0.32 – 4.12 0.834
Reward 6.59 3.91 – 11.09 <0.001
Effort × Recipient s2z1 1.12 1.00 – 1.25 0.051
Effort × Group [PD off] 1.02 0.56 – 1.87 0.945
Recipient s2z1 × Group
[PD off]
1.34 0.83 – 2.15 0.233
Recipient s2z1 × Reward 1.23 1.08 – 1.40 0.001
Group [PD off] × Reward 0.76 0.36 – 1.59 0.463
(Effort × Recipient s2z1)
× Group [PD off]
0.94 0.80 – 1.12 0.506
(Recipient s2z1 × Group
[PD off]) × Reward
0.93 0.78 – 1.12 0.437
Random Effects
σ2 3.29
τ00 ID 7.86
τ11 ID.scale(Effort) 1.65
τ11 ID.scale(Reward) 2.46
τ11 ID.Recipient_s2z1 0.85
ρ01 0.18
0.36
-0.24
ICC 0.80
N ID 80
Observations 11802
Marginal R2 / Conditional R2 0.246 / 0.846

Below output shows trial number model.

#2X four ways with TN
Fourway.EATG.RATG.HCvsPDoff <-
  glmer(Choice ~ scale(Effort)*Recipient_s2z*scale(Trial.number.r)*Group + 
          scale(Reward)*Recipient_s2z*scale(Trial.number.r)*Group +   
          (1 + scale(Effort) + scale(Reward) + Recipient_s2z + scale(Trial.number.r) | ID), family='binomial', data=PDoffvsHC.df,control=glmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))
tab_model(Fourway.EATG.RATG.HCvsPDoff)
  Choice
Predictors Odds Ratios CI p
(Intercept) 116.26 41.28 – 327.44 <0.001
Effort 0.23 0.14 – 0.38 <0.001
Recipient s2z1 1.88 1.26 – 2.80 0.002
Trial number r 1.55 1.13 – 2.14 0.007
Group [PD off] 0.99 0.23 – 4.24 0.991
Reward 8.32 4.67 – 14.81 <0.001
Effort × Recipient s2z1 1.14 1.00 – 1.29 0.045
Effort × Trial number r 0.76 0.67 – 0.87 <0.001
Recipient s2z1 × Trial
number r
1.08 0.94 – 1.24 0.272
Effort × Group [PD off] 1.05 0.52 – 2.10 0.897
Recipient s2z1 × Group
[PD off]
1.38 0.78 – 2.42 0.267
Trial number r × Group
[PD off]
0.68 0.44 – 1.04 0.073
Recipient s2z1 × Reward 1.31 1.13 – 1.51 <0.001
Trial number r × Reward 1.68 1.45 – 1.96 <0.001
Group [PD off] × Reward 0.68 0.31 – 1.52 0.350
(Effort × Recipient s2z1)
× Trial number r
1.06 0.94 – 1.19 0.359
(Effort × Recipient s2z1)
× Group [PD off]
0.94 0.78 – 1.14 0.535
(Effort × Trial number r)
× Group [PD off]
1.00 0.83 – 1.20 0.995
(Recipient s2z1 × Trial
number r) × Group [PD
off]
1.02 0.83 – 1.24 0.872
(Recipient s2z1 × Trial
number r) × Reward
0.99 0.86 – 1.13 0.831
(Recipient s2z1 × Group
[PD off]) × Reward
0.88 0.72 – 1.08 0.236
(Trial number r × Group
[PD off]) × Reward
0.73 0.60 – 0.90 0.003
(Effort × Recipient s2z1
× Trial number r) × Group
[PD off]
1.10 0.92 – 1.31 0.279
(Recipient s2z1 × Trial
number r × Group [PD
off]) × Reward
1.07 0.88 – 1.29 0.514
Random Effects
σ2 3.29
τ00 ID 9.62
τ11 ID.scale(Effort) 2.02
τ11 ID.scale(Reward) 2.66
τ11 ID.Recipient_s2z1 1.14
τ11 ID.scale(Trial.number.r) 0.58
ρ01 0.20
0.35
-0.26
0.39
ICC 0.83
N ID 80
Observations 11802
Marginal R2 / Conditional R2 0.260 / 0.873

HC vs PDon

Below output shows hypothesis model

#2X 3 way hypothesis models
Two.3way.hypo.HCvsPDon <-
  glmer(Choice ~ scale(Effort)*Recipient_s2z*Group + 
          scale(Reward)*Recipient_s2z*Group +   
          (1 + scale(Effort) + scale(Reward) + Recipient_s2z  | ID), family='binomial', data=HC_vs_PDon_df,control=glmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(Two.3way.hypo.HCvsPDon)
  Choice
Predictors Odds Ratios CI p
(Intercept) 71.08 29.00 – 174.22 <0.001
Effort 0.27 0.18 – 0.41 <0.001
Recipient s2z1 1.63 1.17 – 2.28 0.004
Group [PD on] 1.32 0.36 – 4.77 0.674
Reward 6.48 3.78 – 11.10 <0.001
Effort × Recipient s2z1 1.13 1.01 – 1.26 0.039
Effort × Group [PD on] 0.97 0.53 – 1.81 0.934
Recipient s2z1 × Group
[PD on]
1.16 0.72 – 1.87 0.546
Recipient s2z1 × Reward 1.21 1.07 – 1.38 0.003
Group [PD on] × Reward 0.92 0.43 – 1.99 0.830
(Effort × Recipient s2z1)
× Group [PD on]
0.95 0.81 – 1.13 0.591
(Recipient s2z1 × Group
[PD on]) × Reward
0.90 0.75 – 1.09 0.272
Random Effects
σ2 3.29
τ00 ID 7.97
τ11 ID.scale(Effort) 1.70
τ11 ID.scale(Reward) 2.70
τ11 ID.Recipient_s2z1 0.87
ρ01 0.15
0.32
-0.37
ICC 0.80
N ID 80
Observations 11869
Marginal R2 / Conditional R2 0.249 / 0.850

Below output shows trial number model.

#2X four ways with TN
Fourway.EATG.RATG.HCvsPDon <-
  glmer(Choice ~ scale(Effort)*Recipient_s2z*scale(Trial.number.r)*Group + 
          scale(Reward)*Recipient_s2z*scale(Trial.number.r)*Group +   
          (1 + scale(Effort) + scale(Reward) + Recipient_s2z | ID), family='binomial', data=HC_vs_PDon_df,control=glmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(Fourway.EATG.RATG.HCvsPDon)
  Choice
Predictors Odds Ratios CI p
(Intercept) 79.65 30.20 – 210.04 <0.001
Effort 0.26 0.16 – 0.41 <0.001
Recipient s2z1 1.75 1.20 – 2.54 0.004
Trial number r 1.18 1.04 – 1.35 0.011
Group [PD on] 1.29 0.32 – 5.12 0.717
Reward 6.75 3.81 – 11.96 <0.001
Effort × Recipient s2z1 1.14 1.01 – 1.29 0.040
Effort × Trial number r 0.79 0.70 – 0.88 <0.001
Recipient s2z1 × Trial
number r
1.12 0.99 – 1.28 0.076
Effort × Group [PD on] 0.98 0.50 – 1.92 0.945
Recipient s2z1 × Group
[PD on]
1.09 0.64 – 1.84 0.752
Trial number r × Group
[PD on]
0.71 0.59 – 0.86 <0.001
Recipient s2z1 × Reward 1.31 1.14 – 1.51 <0.001
Trial number r × Reward 1.57 1.38 – 1.79 <0.001
Group [PD on] × Reward 0.90 0.40 – 2.02 0.796
(Effort × Recipient s2z1)
× Trial number r
1.05 0.94 – 1.17 0.418
(Effort × Recipient s2z1)
× Group [PD on]
0.98 0.81 – 1.17 0.787
(Effort × Trial number r)
× Group [PD on]
0.83 0.70 – 0.98 0.032
(Recipient s2z1 × Trial
number r) × Group [PD on]
0.93 0.77 – 1.12 0.431
(Recipient s2z1 × Trial
number r) × Reward
0.99 0.87 – 1.13 0.912
(Recipient s2z1 × Group
[PD on]) × Reward
0.82 0.67 – 1.00 0.049
(Trial number r × Group
[PD on]) × Reward
0.68 0.57 – 0.82 <0.001
(Effort × Recipient s2z1
× Trial number r) × Group
[PD on]
1.07 0.90 – 1.27 0.466
(Recipient s2z1 × Trial
number r × Group [PD on])
× Reward
1.00 0.83 – 1.20 0.963
Random Effects
σ2 3.29
τ00 ID 8.62
τ11 ID.scale(Effort) 1.90
τ11 ID.scale(Reward) 2.75
τ11 ID.Recipient_s2z1 0.99
ρ01 0.18
0.28
-0.41
ICC 0.81
N ID 80
Observations 11869
Marginal R2 / Conditional R2 0.251 / 0.859

Force models

Note that in the maximal force models (with all random effects as in fixed effects), reward, recipient and trial contribute very little (<1%) to the variance, therefore the random effect structure only consists of effort (and group for within subjects). All models use correlated REs and s2z-coded recipient.

PDon vs PDoff

#same models as above don't converge 
#converges when correlate REs

force.two.3way.hypo.PDonvsPDoff <- lmer(scale(force_norm_2) ~ Group*Recipient_s2z*scale(Reward) + 
                                         Group*Recipient_s2z*scale(Effort) +
                                         (1 + scale(Effort) + Group | ID), data=force.PD.df, control=lmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(force.two.3way.hypo.PDonvsPDoff)
  scale(force_norm_2)
Predictors Estimates CI p
(Intercept) -0.01 -0.25 – 0.22 0.914
Group [PD on] 0.07 -0.08 – 0.22 0.386
Recipient s2z1 0.02 0.00 – 0.03 0.009
Reward 0.03 0.02 – 0.04 <0.001
Effort 0.53 0.47 – 0.59 <0.001
Group [PD on] × Recipient
s2z1
-0.01 -0.03 – 0.00 0.139
Group [PD on] × Reward 0.00 -0.01 – 0.02 0.784
Recipient s2z1 × Reward -0.00 -0.01 – 0.01 0.790
Group [PD on] × Effort 0.05 0.03 – 0.06 <0.001
Recipient s2z1 × Effort 0.00 -0.01 – 0.01 0.954
(Group [PD on] ×
Recipient s2z1) × Reward
0.00 -0.01 – 0.02 0.765
(Group [PD on] ×
Recipient s2z1) × Effort
-0.00 -0.02 – 0.01 0.779
Random Effects
σ2 0.16
τ00 ID 0.55
τ11 ID.scale(Effort) 0.03
τ11 ID.GroupPD on 0.23
ρ01 0.72
-0.34
ICC 0.78
N ID 38
Observations 9330
Marginal R2 / Conditional R2 0.299 / 0.846
force.4way.PDonvsPDoff <- lmer(scale(force_norm_2) ~ Group*Recipient_s2z*scale(Reward)*scale(Trial.number.r) + 
                                         Group*Recipient_s2z*scale(Effort)*scale(Trial.number.r) +
                                         (1 + scale(Effort) + Group | ID), data=force.PD.df, control=lmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(force.4way.PDonvsPDoff)
  scale(force_norm_2)
Predictors Estimates CI p
(Intercept) -0.01 -0.25 – 0.23 0.931
Group [PD on] 0.07 -0.09 – 0.22 0.402
Recipient s2z1 0.01 0.00 – 0.03 0.023
Reward 0.03 0.02 – 0.05 <0.001
Trial number r 0.03 0.02 – 0.05 <0.001
Effort 0.54 0.48 – 0.59 <0.001
Group [PD on] × Recipient
s2z1
-0.01 -0.02 – 0.01 0.397
Group [PD on] × Reward 0.00 -0.01 – 0.02 0.757
Recipient s2z1 × Reward 0.00 -0.01 – 0.02 0.472
Group [PD on] × Trial
number r
-0.02 -0.04 – -0.00 0.011
Recipient s2z1 × Trial
number r
0.00 -0.01 – 0.01 0.738
Reward × Trial number r 0.01 -0.01 – 0.02 0.321
Group [PD on] × Effort 0.04 0.03 – 0.06 <0.001
Recipient s2z1 × Effort -0.00 -0.01 – 0.01 0.906
Trial number r × Effort 0.01 0.00 – 0.03 0.016
(Group [PD on] ×
Recipient s2z1) × Reward
0.00 -0.02 – 0.02 0.975
(Group [PD on] ×
Recipient s2z1) × Trial
number r
0.01 -0.01 – 0.03 0.333
(Group [PD on] × Reward)
× Trial number r
0.02 -0.00 – 0.03 0.096
(Recipient s2z1 × Reward)
× Trial number r
0.00 -0.01 – 0.01 0.729
(Group [PD on] ×
Recipient s2z1) × Effort
0.00 -0.01 – 0.02 0.738
(Group [PD on] × Trial
number r) × Effort
-0.01 -0.02 – 0.01 0.403
(Recipient s2z1 × Trial
number r) × Effort
-0.01 -0.02 – 0.01 0.259
(Group [PD on] ×
Recipient s2z1 × Reward)
× Trial number r
-0.01 -0.03 – 0.01 0.201
(Group [PD on] ×
Recipient s2z1 × Trial
number r) × Effort
0.02 0.00 – 0.04 0.028
Random Effects
σ2 0.16
τ00 ID 0.55
τ11 ID.scale(Effort) 0.03
τ11 ID.GroupPD on 0.23
ρ01 0.72
-0.34
ICC 0.78
N ID 38
Observations 9330
Marginal R2 / Conditional R2 0.300 / 0.847
emmip(force.4way.PDonvsPDoff, Group ~ Effort, at=list(Effort = c(4,9,16,25,36)), type = 'response', lmerTest.limit = 9330)
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'pbkrtest.limit = 9330' (or larger)
## [or, globally, 'set emm_options(pbkrtest.limit = 9330)' or larger];
## but be warned that this may result in large computation time and memory use.
## NOTE: Results may be misleading due to involvement in interactions

emmip(force.4way.PDonvsPDoff, Effort ~ Trial.number.r | Recipient_s2z | Group, at=list(Trial.number.r = 1:150, Effort = c(4,36)), type = 'response', lmerTest.limit = 9330)
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'pbkrtest.limit = 9330' (or larger)
## [or, globally, 'set emm_options(pbkrtest.limit = 9330)' or larger];
## but be warned that this may result in large computation time and memory use.

HC vs PDoff

force.two.3way.hypo.HCvsPDoff <- lmer(scale(force_norm_2) ~ Group*Recipient_s2z*scale(Reward) + 
                                         Group*Recipient_s2z*scale(Effort) +
                                         (1 + scale(Effort) | ID), data=force.PDoffvsHC.df, control=lmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(force.two.3way.hypo.HCvsPDoff)
  scale(force_norm_2)
Predictors Estimates CI p
(Intercept) 0.20 0.01 – 0.40 0.040
Group [PD off] -0.35 -0.63 – -0.07 0.014
Recipient s2z1 0.00 -0.01 – 0.01 0.718
Reward 0.03 0.02 – 0.05 <0.001
Effort 0.70 0.64 – 0.76 <0.001
Group [PD off] ×
Recipient s2z1
0.02 -0.00 – 0.03 0.067
Group [PD off] × Reward 0.00 -0.01 – 0.02 0.763
Recipient s2z1 × Reward -0.01 -0.02 – 0.01 0.311
Group [PD off] × Effort -0.12 -0.20 – -0.03 0.006
Recipient s2z1 × Effort -0.01 -0.02 – 0.01 0.278
(Group [PD off] ×
Recipient s2z1) × Reward
0.00 -0.01 – 0.02 0.624
(Group [PD off] ×
Recipient s2z1) × Effort
0.01 -0.01 – 0.03 0.291
Random Effects
σ2 0.19
τ00 ID 0.41
τ11 ID.scale(Effort) 0.04
ρ01 ID 0.62
ICC 0.70
N ID 80
Observations 9829
Marginal R2 / Conditional R2 0.418 / 0.827
emmip(force.two.3way.hypo.HCvsPDoff, Group ~ Effort, at=list(Effort = c(4,9,16,25,36)), type = 'response', lmerTest.limit = 9330)
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'pbkrtest.limit = 9829' (or larger)
## [or, globally, 'set emm_options(pbkrtest.limit = 9829)' or larger];
## but be warned that this may result in large computation time and memory use.
## Note: D.f. calculations have been disabled because the number of observations exceeds 9330.
## To enable adjustments, add the argument 'lmerTest.limit = 9829' (or larger)
## [or, globally, 'set emm_options(lmerTest.limit = 9829)' or larger];
## but be warned that this may result in large computation time and memory use.
## NOTE: Results may be misleading due to involvement in interactions

force.4way.HCvsPDoff <- lmer(scale(force_norm_2) ~ Group*Recipient_s2z*scale(Reward)*scale(Trial.number.r) + 
                                         Group*Recipient_s2z*scale(Effort)*scale(Trial.number.r) +
                                         (1 + scale(Effort) | ID), data=force.PDoffvsHC.df, control=lmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(force.4way.HCvsPDoff)
  scale(force_norm_2)
Predictors Estimates CI p
(Intercept) 0.20 0.01 – 0.40 0.039
Group [PD off] -0.35 -0.63 – -0.07 0.014
Recipient s2z1 0.00 -0.01 – 0.01 0.672
Reward 0.03 0.02 – 0.05 <0.001
Trial number r 0.04 0.03 – 0.05 <0.001
Effort 0.71 0.65 – 0.76 <0.001
Group [PD off] ×
Recipient s2z1
0.01 -0.00 – 0.03 0.122
Group [PD off] × Reward 0.00 -0.01 – 0.02 0.730
Recipient s2z1 × Reward 0.00 -0.01 – 0.01 0.722
Group [PD off] × Trial
number r
-0.00 -0.02 – 0.01 0.672
Recipient s2z1 × Trial
number r
0.02 0.00 – 0.03 0.007
Reward × Trial number r 0.01 -0.00 – 0.02 0.116
Group [PD off] × Effort -0.12 -0.20 – -0.03 0.006
Recipient s2z1 × Effort -0.00 -0.01 – 0.01 0.705
Trial number r × Effort 0.03 0.02 – 0.05 <0.001
(Group [PD off] ×
Recipient s2z1) × Reward
0.00 -0.02 – 0.02 0.793
(Group [PD off] ×
Recipient s2z1) × Trial
number r
-0.01 -0.03 – 0.00 0.121
(Group [PD off] × Reward)
× Trial number r
-0.00 -0.02 – 0.02 0.712
(Recipient s2z1 × Reward)
× Trial number r
-0.01 -0.03 – -0.00 0.027
(Group [PD off] ×
Recipient s2z1) × Effort
0.00 -0.01 – 0.02 0.663
(Group [PD off] × Trial
number r) × Effort
-0.02 -0.04 – -0.00 0.047
(Recipient s2z1 × Trial
number r) × Effort
0.01 -0.00 – 0.02 0.103
(Group [PD off] ×
Recipient s2z1 × Reward)
× Trial number r
0.02 -0.00 – 0.03 0.085
(Group [PD off] ×
Recipient s2z1 × Trial
number r) × Effort
-0.02 -0.04 – 0.00 0.055
Random Effects
σ2 0.18
τ00 ID 0.41
τ11 ID.scale(Effort) 0.04
ρ01 ID 0.63
ICC 0.71
N ID 80
Observations 9829
Marginal R2 / Conditional R2 0.420 / 0.830
emmip(force.4way.HCvsPDoff, Effort ~ Trial.number.r | Group, at=list(Trial.number.r = 1:150, Effort = c(4,9, 16,25,36)), type = 'response', lmerTest.limit = 9330)
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'pbkrtest.limit = 9829' (or larger)
## [or, globally, 'set emm_options(pbkrtest.limit = 9829)' or larger];
## but be warned that this may result in large computation time and memory use.
## Note: D.f. calculations have been disabled because the number of observations exceeds 9330.
## To enable adjustments, add the argument 'lmerTest.limit = 9829' (or larger)
## [or, globally, 'set emm_options(lmerTest.limit = 9829)' or larger];
## but be warned that this may result in large computation time and memory use.
## NOTE: Results may be misleading due to involvement in interactions

#emmip(force.4way.HCvsPDoff, Recipient_s2z ~ Trial.number.r | Group, at=list(Trial.number.r = 1:150), type = 'response')

HC vs PDon

force.two.3way.hypo.HCvsPDon <- lmer(scale(force_norm_2) ~ Group*Recipient_s2z*scale(Reward) + 
                                         Group*Recipient*scale(Effort) +
                                         (1 + scale(Effort) | ID), data=force.HC_vs_PDon_df, control=lmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))
## fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
## fixed-effect model matrix is rank deficient so dropping 2 columns / coefficients
tab_model(force.two.3way.hypo.HCvsPDon)
  scale(force_norm_2)
Predictors Estimates CI p
(Intercept) 0.16 -0.03 – 0.35 0.092
Group [PD on] -0.28 -0.55 – -0.00 0.049
Recipient s2z1 0.00 -0.01 – 0.01 0.734
Reward 0.03 0.02 – 0.05 <0.001
Effort 0.68 0.62 – 0.75 <0.001
Group [PD on] × Recipient
s2z1
0.00 -0.02 – 0.02 0.881
Group [PD on] × Reward 0.00 -0.01 – 0.02 0.656
Recipient s2z1 × Reward -0.01 -0.02 – 0.01 0.328
Group [PD on] × Effort -0.06 -0.15 – 0.03 0.210
Recipient [other] ×
Effort
0.01 -0.01 – 0.04 0.295
(Group [PD on] ×
Recipient s2z1) × Reward
0.01 -0.01 – 0.02 0.458
Group [PD on] × Recipient
[other] × Effort
-0.01 -0.04 – 0.03 0.676
Random Effects
σ2 0.19
τ00 ID 0.39
τ11 ID.scale(Effort) 0.04
ρ01 ID 0.72
ICC 0.69
N ID 80
Observations 9863
Marginal R2 / Conditional R2 0.423 / 0.821
force.two.fourway.hypo.HCvsPDon <- lmer(scale(force_norm_2) ~ Group*Recipient_s2z*scale(Reward)*scale(Trial.number.r) + 
                                         Group*Recipient_s2z*scale(Effort)*scale(Trial.number.r) +
                                         (1 + scale(Effort) | ID), data=force.HC_vs_PDon_df, REML=FALSE, control=lmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

tab_model(force.two.fourway.hypo.HCvsPDon)
  scale(force_norm_2)
Predictors Estimates CI p
(Intercept) 0.16 -0.02 – 0.35 0.086
Group [PD on] -0.28 -0.55 – -0.01 0.046
Recipient s2z1 0.00 -0.01 – 0.01 0.686
Reward 0.03 0.02 – 0.05 <0.001
Trial number r 0.04 0.03 – 0.05 <0.001
Effort 0.69 0.63 – 0.76 <0.001
Group [PD on] × Recipient
s2z1
0.00 -0.01 – 0.02 0.599
Group [PD on] × Reward 0.01 -0.01 – 0.02 0.584
Recipient s2z1 × Reward 0.00 -0.01 – 0.01 0.725
Group [PD on] × Trial
number r
-0.03 -0.04 – -0.01 0.003
Recipient s2z1 × Trial
number r
0.02 0.00 – 0.03 0.009
Reward × Trial number r 0.01 -0.00 – 0.02 0.128
Group [PD on] × Effort -0.07 -0.16 – 0.02 0.133
Recipient s2z1 × Effort -0.00 -0.01 – 0.01 0.714
Trial number r × Effort 0.03 0.02 – 0.05 <0.001
(Group [PD on] ×
Recipient s2z1) × Reward
0.00 -0.02 – 0.02 0.805
(Group [PD on] ×
Recipient s2z1) × Trial
number r
-0.01 -0.02 – 0.01 0.569
(Group [PD on] × Reward)
× Trial number r
0.01 -0.01 – 0.03 0.186
(Recipient s2z1 × Reward)
× Trial number r
-0.01 -0.03 – -0.00 0.033
(Group [PD on] ×
Recipient s2z1) × Effort
0.00 -0.01 – 0.02 0.639
(Group [PD on] × Trial
number r) × Effort
-0.02 -0.04 – -0.01 0.008
(Recipient s2z1 × Trial
number r) × Effort
0.01 -0.00 – 0.02 0.115
(Group [PD on] ×
Recipient s2z1 × Reward)
× Trial number r
0.00 -0.01 – 0.02 0.642
(Group [PD on] ×
Recipient s2z1 × Trial
number r) × Effort
0.00 -0.01 – 0.02 0.712
Random Effects
σ2 0.19
τ00 ID 0.38
τ11 ID.scale(Effort) 0.04
ρ01 ID 0.72
ICC 0.69
N ID 80
Observations 9863
Marginal R2 / Conditional R2 0.430 / 0.821
emmip(force.two.fourway.hypo.HCvsPDon, Effort ~ Trial.number.r | Group, at=list(Trial.number.r = 1:150, Effort = c(4,9, 16,25,36)), type = 'response', lmerTest.limit = 9330)
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'pbkrtest.limit = 9863' (or larger)
## [or, globally, 'set emm_options(pbkrtest.limit = 9863)' or larger];
## but be warned that this may result in large computation time and memory use.
## Note: D.f. calculations have been disabled because the number of observations exceeds 9330.
## To enable adjustments, add the argument 'lmerTest.limit = 9863' (or larger)
## [or, globally, 'set emm_options(lmerTest.limit = 9863)' or larger];
## but be warned that this may result in large computation time and memory use.
## NOTE: Results may be misleading due to involvement in interactions

emmip(force.two.fourway.hypo.HCvsPDon, Group ~ Trial.number.r, at=list(Trial.number.r = 1:150), type = 'response', lmerTest.limit = 9330)
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'pbkrtest.limit = 9863' (or larger)
## [or, globally, 'set emm_options(pbkrtest.limit = 9863)' or larger];
## but be warned that this may result in large computation time and memory use.
## Note: D.f. calculations have been disabled because the number of observations exceeds 9330.
## To enable adjustments, add the argument 'lmerTest.limit = 9863' (or larger)
## [or, globally, 'set emm_options(lmerTest.limit = 9863)' or larger];
## but be warned that this may result in large computation time and memory use.
## NOTE: Results may be misleading due to involvement in interactions

## Wilcox tests of Credits

Below show pairwise Wilcox tests comparing groups with regard to number of credits earned. They show total credits, total credits for self and total credits for other. No differences between any groupwise comparisons.

#HC vs PDoff - credits overall
credits_stats_total_HCvsPDoff <-
  PDoffvsHC.df %>%
  select(c(ID, Group,Recipient, Recipient_s2z, Outcome)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(total_credits = sum(Outcome), .groups = 'drop')

wilcox_test(total_credits ~ Group, data = credits_stats_total_HCvsPDoff, paired = FALSE)
## # A tibble: 1 × 7
##   .y.           group1 group2    n1    n2 statistic     p
## * <chr>         <chr>  <chr>  <int> <int>     <dbl> <dbl>
## 1 total_credits HC     PD off    42    38      884. 0.407
#no difference between groups

#HC vs PDoff - credits for self
credits_stats_totalself_HCvsPDoff <-
  MASTER.df.full %>%
  filter(Group != 'PD on') %>%
  filter(Recipient == 'self') %>%
  select(c(ID, Group,Recipient, Recipient_s2z, Outcome)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(total_credits_self = sum(Outcome), .groups = 'drop')

wilcox_test(total_credits_self ~ Group, data = credits_stats_totalself_HCvsPDoff, paired = FALSE)
## # A tibble: 1 × 7
##   .y.                group1 group2    n1    n2 statistic     p
## * <chr>              <chr>  <chr>  <int> <int>     <dbl> <dbl>
## 1 total_credits_self HC     PD off    42    38       826 0.791
#no difference

#HC vs PDoff - credits for other
credits_stats_totalother_HCvsPDoff <-
  MASTER.df.full %>%
  filter(Group != 'PD on') %>%
  filter(Recipient == 'other') %>%
  select(c(ID, Group,Recipient, Recipient_s2z, Outcome)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(total_credits_other = sum(Outcome), .groups = 'drop')

wilcox_test(total_credits_other ~ Group, data = credits_stats_totalother_HCvsPDoff, paired = FALSE)
## # A tibble: 1 × 7
##   .y.                 group1 group2    n1    n2 statistic     p
## * <chr>               <chr>  <chr>  <int> <int>     <dbl> <dbl>
## 1 total_credits_other HC     PD off    42    38      908. 0.289
#no difference

#PD on vs PDoff - credits overall
credits_stats_total_PDonvsPDoff <-
  PD.df %>%
  select(c(ID, Group,Recipient, Recipient_s2z, Outcome)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(total_credits = sum(Outcome), .groups = 'drop')

wilcox_test(total_credits ~ Group, data = credits_stats_total_PDonvsPDoff, paired = TRUE)
## # A tibble: 1 × 7
##   .y.           group1 group2    n1    n2 statistic     p
## * <chr>         <chr>  <chr>  <int> <int>     <dbl> <dbl>
## 1 total_credits PD off PD on     38    38       350 0.988
#no difference between groups

#PDon vs PDoff - credits for self
credits_stats_totalself_PDonvsPDoff <-
  PD.df %>%
  filter(Recipient == 'self') %>%
  select(c(ID, Group,Recipient, Recipient_s2z, Outcome)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(total_credits_self = sum(Outcome), .groups = 'drop')

wilcox_test(total_credits_self ~ Group, data = credits_stats_totalself_PDonvsPDoff, paired = TRUE)
## # A tibble: 1 × 7
##   .y.                group1 group2    n1    n2 statistic     p
## * <chr>              <chr>  <chr>  <int> <int>     <dbl> <dbl>
## 1 total_credits_self PD off PD on     38    38      336. 0.962
#no difference between groups

#PDon vs PDoff - credits for other
credits_stats_totalother_PDonvsPDoff <-
  PD.df %>%
  filter(Recipient == 'other') %>%
  select(c(ID, Group,Recipient, Recipient_s2z, Outcome)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(total_credits_other = sum(Outcome), .groups = 'drop')

wilcox_test(total_credits_other ~ Group, data = credits_stats_totalother_PDonvsPDoff, paired = TRUE)
## # A tibble: 1 × 7
##   .y.                 group1 group2    n1    n2 statistic     p
## * <chr>               <chr>  <chr>  <int> <int>     <dbl> <dbl>
## 1 total_credits_other PD off PD on     38    38      334.     1
# HC vs PDon - overall credits
credits_stats_total_PDonvsHC <-
   HC_vs_PDon_df %>%
  select(c(ID, Group,Recipient, Recipient_s2z, Outcome)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(total_credits = sum(Outcome), .groups = 'drop')

wilcox_test(total_credits ~ Group, data = credits_stats_total_PDonvsHC, paired = FALSE)
## # A tibble: 1 × 7
##   .y.           group1 group2    n1    n2 statistic     p
## * <chr>         <chr>  <chr>  <int> <int>     <dbl> <dbl>
## 1 total_credits HC     PD on     42    38      878. 0.441
#no difference

#HC vs PDon - credits for self

credits_stats_totalself_PDonvsHC <-
   HC_vs_PDon_df %>%
  filter(Recipient == 'self') %>%
  select(c(ID, Group,Recipient, Recipient_s2z, Outcome)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(total_credits_self = sum(Outcome), .groups = 'drop')

wilcox_test(total_credits_self ~ Group, data = credits_stats_totalself_PDonvsHC, paired = FALSE)
## # A tibble: 1 × 7
##   .y.                group1 group2    n1    n2 statistic     p
## * <chr>              <chr>  <chr>  <int> <int>     <dbl> <dbl>
## 1 total_credits_self HC     PD on     42    38      832.  0.75
#no difference

#HC vs PDon - credits for other

credits_stats_totalother_PDonvsHC <-
   HC_vs_PDon_df %>%
  filter(Recipient == 'other') %>%
  select(c(ID, Group,Recipient, Recipient_s2z, Outcome)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(total_credits_other = sum(Outcome), .groups = 'drop')

wilcox_test(total_credits_other ~ Group, data = credits_stats_totalother_PDonvsHC, paired = FALSE)
## # A tibble: 1 × 7
##   .y.                 group1 group2    n1    n2 statistic     p
## * <chr>               <chr>  <chr>  <int> <int>     <dbl> <dbl>
## 1 total_credits_other HC     PD on     42    38      904. 0.312
#no difference

Linear model of success

Below shows output of very simple glm of success (Success ~ Group + (1| ID)), as well as mean success across groups

simplesuccessglmer <- glmer(Success ~ Group +  
          (1 | ID), family='binomial', data=success.threegroups.df,control=glmerControl(optimizer='bobyqa', optCtrl=list(maxfun=2e5)))

summary(simplesuccessglmer)
## Generalized linear mixed model fit by maximum likelihood (Laplace
##   Approximation) [glmerMod]
##  Family: binomial  ( logit )
## Formula: Success ~ Group + (1 | ID)
##    Data: success.threegroups.df
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e+05))
## 
##      AIC      BIC   logLik deviance df.resid 
##   4550.5   4580.8  -2271.2   4542.5    14507 
## 
## Scaled residuals: 
##      Min       1Q   Median       3Q      Max 
## -12.6097   0.0841   0.1286   0.2275   0.5440 
## 
## Random effects:
##  Groups Name        Variance Std.Dev.
##  ID     (Intercept) 1.853    1.361   
## Number of obs: 14511, groups:  ID, 80
## 
## Fixed effects:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)   4.2956     0.2494  17.226   <2e-16 ***
## GroupPD off  -0.5482     0.3424  -1.601   0.1094    
## GroupPD on   -0.6895     0.3415  -2.019   0.0435 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) GrpPDof
## GroupPD off -0.702        
## GroupPD on  -0.704  0.960
 success.threegroups.df %>%
  select(c(ID, Group, Success.r)) %>%
  group_by(ID, Group) %>%
  dplyr::summarise(mean_succ = mean(Success.r)) %>%
  group_by(Group) %>%
  dplyr::summarise(success = mean(mean_succ))
## `summarise()` has grouped output by 'ID'. You can override using the `.groups`
## argument.
## # A tibble: 3 × 2
##   Group  success
##   <fct>    <dbl>
## 1 HC       0.972
## 2 PD off   0.952
## 3 PD on    0.945