Main Analyses - Full sample

Author

Anonymised

Published

last rendered on: Jul 10, 2025

Show the code
# Change the following values depending on the session
date <- "2025-05-19"

# Load data file
All_Measures_Per_Trial <- utils::read.csv(paste("../preprocessed data/All_Measures_Per_Trial_", date, ".csv", sep=""))

1 Descriptive statistics

Group Descriptive Statistics with t-test Results
Variable Omnivore_Mean Omnivore_SD Vegetarian_Mean Vegetarian_SD t_value p_value
Sample size 258 NA 205 NA NA NA
Age 39.244 10.597 38.395 11.577 0.814 0.416
Education 4.849 1.097 4.971 1.120 -1.174 0.241
Income 4.194 1.610 4.044 1.696 0.966 0.335
Gender Distribution by Group (Chi² p-value = 0.029)
Omnivore Vegetarian
W 116 114
M 142 91
Proportion of pro-environmental decisions
Variable Omnivore_Mean Omnivore_SD Vegetarian_Mean Vegetarian_SD
Decision 0.52 0.36 0.58 0.37

Number of participants consistently choosing the same option
Chosen.option Omnivores Vegetarians
Always pro-self 42 33
Always pro-environmental 39 47
Environmental attitude score and perceived efficacy of CO2 certificates
Variable Omnivore_Mean Omnivore_SD Vegetarian_Mean Vegetarian_SD t_value p_value
NEP score 53.930 9.073 56.668 9.288 -3.183 0.002
Certificates efficacy 3.484 1.102 3.654 1.016 -1.712 0.088

Process tracing measures
Variable Omnivore_Mean Omnivore_SD Vegetarian_Mean Vegetarian_SD
Delta duration on attributes 0.06 0.41 0.11 0.46
Delta duration on options 0.00 0.10 0.01 0.10
First acquisition on CO2 0.52 0.43 0.58 0.43
Last acquisition on CO2 0.48 0.34 0.51 0.35
Payne index -0.48 0.37 -0.45 0.44

2 Preregistered main analyses

2.1 RQ1: diet predicts pro-environmental decision

2.1.1 Main models

Show the code
M1.1 <- glmer(
  formula = decision ~ vege + CB_carbonUp + CB_selfishLeft + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

M1.2 <- glmer(
  formula = decision ~ vege + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

M1.3 <- glmer(
  formula = decision ~ vege + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

To compare vegetarians and non-vegetarians in the proportion of pro-environmental decisions made in the carbon emission task (RQ1), we run mixed-effects logistic regressions with decision as the dependent variable and random intercepts for participants and trials.

  • In the first model (M1.1), we include vege (coded as 1 for vegetarians, 0 for non-vegetarians) as the main predictor of interest. Additionally, attribute position (coded as 1 if carbon emissions are displayed at the top of the matrix, 0 if at the bottom) and option position (coded as 1 if the pro-environmental option is on the left, 0 if on the right) are also included as fixed effects to account for potential display effects.

  • In the second model (M1.2), we test the sensitivity of results of M1.1 to the addition of control variables related to the task by adding fixed effects for percentage difference in carbon emissions (ranging from 1 [10%] to 5 [100%]), percentage difference in bonus payment (ranging from 1 [10%] to 5 [100%]) and sequential position of the trial (ranging from 1 to 25).

  • In the third model (M1.3), we test the sensitivity of results of M1.1 to the addition of demographic control variables by adding fixed effects for sex, age, education, income, environmental attitudes (assessed by the New Ecological Paradigm), and beliefs in the efficacy of European Union Emission Trading System (measured on a 5-point Likert scale from 1=not effective at all to 5=very effective).

  decision
Predictors Odds Ratios CI p
(Intercept) 0.64 0.25 – 1.67 0.362
vege 2.48 1.08 – 5.74 0.033
CB carbonUp 2.67 1.16 – 6.13 0.021
CB selfishLeft 0.96 0.85 – 1.09 0.571
Random Effects
σ2 3.29
τ00 subject 19.44
τ00 trialNum_fixed 2.66
ICC 0.87
N subject 463
N trialNum_fixed 25
Observations 11193
Marginal R2 / Conditional R2 0.017 / 0.873
  decision
Predictors Odds Ratios CI p
(Intercept) 1.11 0.43 – 2.87 0.824
vege 2.48 1.07 – 5.73 0.033
CB carbonUp 2.67 1.16 – 6.12 0.021
CB selfishLeft 0.96 0.85 – 1.09 0.576
carbon level 1.97 1.71 – 2.27 <0.001
bonus level 0.42 0.37 – 0.49 <0.001
trialNum centred 1.00 0.99 – 1.01 0.826
Random Effects
σ2 3.29
τ00 subject 19.41
τ00 trialNum_fixed 0.23
ICC 0.86
N subject 463
N trialNum_fixed 25
Observations 11193
Marginal R2 / Conditional R2 0.110 / 0.872
  decision
Predictors Odds Ratios CI p
(Intercept) 0.07 0.01 – 1.05 0.055
vege 1.45 0.63 – 3.37 0.383
CB carbonUp 2.68 1.17 – 6.13 0.020
CB selfishLeft 0.97 0.85 – 1.11 0.644
gender 1.73 0.72 – 4.13 0.218
age centred 1.00 0.97 – 1.04 0.851
education level 0.91 0.62 – 1.33 0.632
income 0.93 0.72 – 1.20 0.574
CertificatesEff 2.25 1.50 – 3.36 <0.001
NEP score centred 1.16 1.11 – 1.22 <0.001
Random Effects
σ2 3.29
τ00 subject 17.31
τ00 trialNum_fixed 2.65
ICC 0.86
N subject 461
N trialNum_fixed 25
Observations 11145
Marginal R2 / Conditional R2 0.124 / 0.876
     df      BIC
M1.1  6 7529.487
M1.2  9 7499.828
M1.3 12 7505.573

2.1.2 Post Hoc analyses

If any control variables showed significant effects, we tested for potential interactions with vege.

Show the code
#Post hoc on significant covariates for M1.1
M1_CarbonUp <- glmer(
  formula = decision ~ vege * CB_carbonUp + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)

tab_model(M1_CarbonUp, transform = "exp")  
  decision
Predictors Odds Ratios CI p
(Intercept) 0.83 0.30 – 2.31 0.717
vege 1.36 0.41 – 4.53 0.613
CB carbonUp 1.60 0.53 – 4.85 0.406
vege × CB carbonUp 3.21 0.60 – 17.07 0.171
Random Effects
σ2 3.29
τ00 subject 19.37
τ00 trialNum_fixed 2.66
ICC 0.87
N subject 463
N trialNum_fixed 25
Observations 11193
Marginal R2 / Conditional R2 0.020 / 0.873
Show the code
#Post hoc on significant covariates for M1.2
M1_Carbon <- glmer(
  formula = decision ~ vege * carbon_level + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)
  
tab_model(M1_Carbon, transform = "exp")  
  decision
Predictors Odds Ratios CI p
(Intercept) 0.12 0.03 – 0.47 0.002
vege 3.21 1.33 – 7.79 0.010
carbon level 2.05 1.41 – 2.97 <0.001
vege × carbon level 0.91 0.83 – 1.00 0.045
Random Effects
σ2 3.29
τ00 subject 19.66
τ00 trialNum_fixed 1.74
ICC 0.87
N subject 463
N trialNum_fixed 25
Observations 11193
Marginal R2 / Conditional R2 0.043 / 0.872


Simple slopes analyses were conducted to interpret the interactions.

Pairwise contrasts at each carbon difference
carbon_level Contrast Odds Ratio 95% CI Signif. p-value
1 vege0 - vege1 0.34 0.15 0.81 * 0.0148
2 vege0 - vege1 0.38 0.16 0.88 * 0.0240
3 vege0 - vege1 0.42 0.18 0.96 * 0.0410
4 vege0 - vege1 0.46 0.20 1.07 0.0710
5 vege0 - vege1 0.50 0.21 1.20 0.1208
Show the code
#Post hoc on significant covariates for M1.2
M1_Bonus <- glmer(
  formula = decision ~ vege * bonus_level + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)
  
tab_model(M1_Bonus, transform = "exp")  
  decision
Predictors Odds Ratios CI p
(Intercept) 16.15 5.07 – 51.42 <0.001
vege 1.71 0.70 – 4.18 0.242
bonus level 0.40 0.30 – 0.55 <0.001
vege × bonus level 1.12 1.01 – 1.23 0.028
Random Effects
σ2 3.29
τ00 subject 19.61
τ00 trialNum_fixed 1.17
ICC 0.86
N subject 463
N trialNum_fixed 25
Observations 11193
Marginal R2 / Conditional R2 0.065 / 0.872


Simple slopes analyses were conducted to interpret the interactions.

Pairwise contrasts at each bonus percentage difference
bonus_level Contrast Odds Ratio 95% CI Signif. p-value
1 vege0 - vege1 0.52 0.22 1.25 0.1443
2 vege0 - vege1 0.47 0.20 1.10 0.0804
3 vege0 - vege1 0.42 0.18 0.97 * 0.0432
4 vege0 - vege1 0.38 0.16 0.88 * 0.0232
5 vege0 - vege1 0.34 0.14 0.80 * 0.0131
Show the code
#Post hoc on significant covariates for M1.3
M1_Certif <- glmer(
  formula = decision ~ vege * CertificatesEff + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)
  
tab_model(M1_Certif, transform = "exp") 
  decision
Predictors Odds Ratios CI p
(Intercept) 0.06 0.01 – 0.41 0.004
vege 16.04 0.81 – 316.79 0.068
CertificatesEff 2.29 1.37 – 3.80 0.001
vege × CertificatesEff 0.58 0.26 – 1.29 0.180
Random Effects
σ2 3.29
τ00 subject 19.18
τ00 trialNum_fixed 2.64
ICC 0.87
N subject 461
N trialNum_fixed 25
Observations 11145
Marginal R2 / Conditional R2 0.027 / 0.873
Show the code
#Post hoc on significant covariates for M1.3
M1_NEP <- glmer(
  formula = decision ~ vege * NEP_score_centred + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)
  
tab_model(M1_NEP, transform = "exp") 
  decision
Predictors Odds Ratios CI p
(Intercept) 1.26 0.54 – 2.95 0.590
vege 1.64 0.70 – 3.83 0.257
NEP score centred 1.15 1.08 – 1.23 <0.001
vege × NEP score centred 1.04 0.95 – 1.14 0.421
Random Effects
σ2 3.29
τ00 subject 18.14
τ00 trialNum_fixed 2.66
ICC 0.86
N subject 463
N trialNum_fixed 25
Observations 11193
Marginal R2 / Conditional R2 0.090 / 0.876

2.2 RQ2a - diet predicts ΔDuration on attributes

2.2.1 Main models

Show the code
M2a.1 <- lmer(
  formula = delta_duration_att ~ vege + CB_carbonUp + CB_selfishLeft + (1 | subject),
  data = All_Measures_Per_Trial
)

M2a.2 <- lmer(
  formula = delta_duration_att ~ vege + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject),
  data = All_Measures_Per_Trial
)

M2a.3 <- lmer(
  formula = delta_duration_att ~ vege + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject),
  data = All_Measures_Per_Trial
)

To compare vegetarians and non-vegetarians in the proportion of visiting time spent on carbon boxes compared to bonus boxes (RQ2a), we run mixed-effects models with ΔDuration on attributes as the dependent variable and random intercepts for participants and trials.

  • In the first model (M2A.1), we include vege (coded as 1 for vegetarians, 0 for non-vegetarians) as the main predictor of interest. Additionally, attribute position (coded as 1 if carbon emissions are displayed at the top of the matrix, 0 if at the bottom) and option position (coded as 1 if the pro-environmental option is on the left, 0 if on the right) are also included as fixed effects to account for potential display effects.

  • In the second model (M2A.2), we test the sensitivity of results of M2A.1 to the addition of control variables related to the task by adding fixed effects for percentage difference in carbon emissions (ranging from 1 [10%] to 5 [100%]), percentage difference in bonus payment (ranging from 1 [10%] to 5 [100%]) and sequential position of the trial (ranging from 1 to 25).

  • In the third model (M2A.3), we test the sensitivity of results of M2A.1 to the addition of demographic control variables by adding fixed effects for sex, age, education, income, environmental attitudes (assessed by the New Ecological Paradigm), and beliefs in the efficacy of European Union Emission Trading System (measured on a 5-point Likert scale from 1=not effective at all to 5=very effective).

  delta_duration_att
Predictors Estimates CI p
(Intercept) 0.05 -0.02 – 0.12 0.128
vege 0.06 -0.02 – 0.14 0.170
CB carbonUp 0.01 -0.07 – 0.09 0.835
CB selfishLeft -0.00 -0.01 – 0.01 0.638
Random Effects
σ2 0.07
τ00 subject 0.19
ICC 0.73
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.003 / 0.732
  delta_duration_att
Predictors Estimates CI p
(Intercept) 0.04 -0.03 – 0.11 0.213
vege 0.06 -0.02 – 0.14 0.170
CB carbonUp 0.01 -0.07 – 0.09 0.836
CB selfishLeft -0.00 -0.01 – 0.01 0.672
carbon level 0.00 -0.00 – 0.00 0.657
bonus level 0.00 -0.00 – 0.01 0.233
trialNum centred 0.00 0.00 – 0.00 <0.001
Random Effects
σ2 0.07
τ00 subject 0.19
ICC 0.73
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.004 / 0.733
  delta_duration_att
Predictors Estimates CI p
(Intercept) -0.07 -0.31 – 0.17 0.561
vege 0.01 -0.07 – 0.09 0.725
CB carbonUp 0.00 -0.08 – 0.08 0.948
CB selfishLeft -0.00 -0.01 – 0.01 0.698
gender 0.03 -0.06 – 0.11 0.551
age centred 0.00 -0.00 – 0.00 0.495
education level 0.01 -0.03 – 0.04 0.774
income -0.01 -0.04 – 0.01 0.228
CertificatesEff 0.05 0.01 – 0.08 0.011
NEP score centred 0.01 0.01 – 0.01 <0.001
Random Effects
σ2 0.07
τ00 subject 0.18
ICC 0.72
N subject 461
Observations 11169
Marginal R2 / Conditional R2 0.052 / 0.735
      df      BIC
M2a.1  6 3691.496
M2a.2  9 3723.807
M2a.3 12 3761.873

2.3 RQ2b - diet predicts ΔDuration on options

2.3.1 Main models

Show the code
M2b.1 <- lmer(
  formula = delta_duration_opt ~ vege + CB_carbonUp + CB_selfishLeft + (1 | subject),
  data = All_Measures_Per_Trial
)

M2b.2 <- lmer(
  formula = delta_duration_opt ~ vege + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject),
  data = All_Measures_Per_Trial
)

M2b.3 <- lmer(
  formula = delta_duration_opt ~ vege + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject),
  data = All_Measures_Per_Trial
)

To compare vegetarians and non-vegetarians in the proportion of visiting time spent on the pro-environmental option compared to pro-self option (RQ2b), we run mixed-effects models with ΔDuration on options as the dependent variable and random intercepts for participants and trials.

  • In the first model (M2B.1), we include vegetarianism (coded as 1 for vegetarians, 0 for non-vegetarians) as the main predictor of interest. Additionally, attribute position (coded as 1 if carbon emissions are displayed at the top of the matrix, 0 if at the bottom) and option position (coded as 1 if the pro-environmental option is on the left, 0 if on the right) are also included as fixed effects to account for potential display effects.

  • In the second model (M2B.2), we test the sensitivity of results of M2B.1 to the addition of control variables related to the task by adding fixed effects for percentage difference in carbon emissions (ranging from 1 [10%] to 5 [100%]), percentage difference in bonus payment (ranging from 1 [10%] to 5 [100%]) and sequential position of the trial (ranging from 1 to 25).

  • In the third model (M2B.3), we test the sensitivity of results of M2B.1 to the addition of demographic control variables by adding fixed effects for sex, age, education, income, environmental attitudes (assessed by the New Ecological Paradigm), and beliefs in the efficacy of European Union Emission Trading System (measured on a 5-point Likert scale from 1=not effective at all to 5=very effective).

  delta_duration_opt
Predictors Estimates CI p
(Intercept) -0.01 -0.02 – 0.01 0.248
vege 0.02 -0.00 – 0.03 0.092
CB carbonUp 0.02 0.01 – 0.04 0.012
CB selfishLeft -0.01 -0.02 – 0.00 0.067
Random Effects
σ2 0.05
τ00 subject 0.01
ICC 0.13
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.004 / 0.137
  delta_duration_opt
Predictors Estimates CI p
(Intercept) 0.00 -0.02 – 0.02 0.692
vege 0.02 -0.00 – 0.03 0.093
CB carbonUp 0.02 0.01 – 0.04 0.012
CB selfishLeft -0.01 -0.02 – 0.00 0.072
carbon level 0.01 0.01 – 0.01 <0.001
bonus level -0.01 -0.02 – -0.01 <0.001
trialNum centred -0.00 -0.00 – -0.00 0.027
Random Effects
σ2 0.05
τ00 subject 0.01
ICC 0.14
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.015 / 0.149
  delta_duration_opt
Predictors Estimates CI p
(Intercept) -0.03 -0.08 – 0.03 0.324
vege 0.01 -0.01 – 0.03 0.381
CB carbonUp 0.02 0.00 – 0.04 0.013
CB selfishLeft -0.01 -0.02 – 0.00 0.088
gender 0.01 -0.01 – 0.03 0.286
age centred 0.00 -0.00 – 0.00 0.317
education level -0.00 -0.01 – 0.01 0.624
income -0.00 -0.01 – 0.00 0.291
CertificatesEff 0.01 0.00 – 0.02 0.011
NEP score centred 0.00 0.00 – 0.00 <0.001
Random Effects
σ2 0.05
τ00 subject 0.01
ICC 0.13
N subject 461
Observations 11169
Marginal R2 / Conditional R2 0.013 / 0.139
      df       BIC
M2b.1  6 -1367.202
M2b.2  9 -1447.617
M2b.3 12 -1248.120

2.4 RQ2c - diet predicts first visit

2.4.1 Main models

Show the code
M2c.1 <- glmer(
  formula = first_visit ~ vege + CB_carbonUp + CB_selfishLeft + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

M2c.2 <- glmer(
  formula = first_visit ~ vege + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

M2c.3 <- glmer(
  formula = first_visit ~ vege + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

To compare vegetarians and non-vegetarians on the likelihood of performing their first visit on a carbon box (RQ2c), we run mixed-effects models with first visit as the dependent variable and random intercepts for participants and trials.

  • In the first model (M2C.1), we include vegetarianism (coded as 1 for vegetarians, 0 for non-vegetarians) as the main predictor of interest. Additionally, attribute position (coded as 1 if carbon emissions are displayed at the top of the matrix, 0 if at the bottom) and option position (coded as 1 if the pro-environmental option is on the left, 0 if on the right) are also included as fixed effects to account for potential display effects.

  • In the second model (M2C.2), we test the sensitivity of results of M2C.1 to the addition of control variables related to the task by adding fixed effects for percentage difference in carbon emissions (ranging from 1 [10%] to 5 [100%]), percentage difference in bonus payment (ranging from 1 [10%] to 5 [100%]) and sequential position of the trial (ranging from 1 to 25).

  • In the third model (M2C.3), we test the sensitivity of results of M2C.1 to the addition of demographic control variables by adding fixed effects for sex, age, education, income, environmental attitudes (assessed by the New Ecological Paradigm), and beliefs in the efficacy of European Union Emission Trading System (measured on a 5-point Likert scale from 1=not effective at all to 5=very effective).

  first_visit
Predictors Odds Ratios CI p
(Intercept) 0.05 0.03 – 0.09 <0.001
vege 2.08 1.04 – 4.17 0.039
CB carbonUp 482.57 224.93 – 1035.32 <0.001
CB selfishLeft 1.01 0.87 – 1.17 0.890
Random Effects
σ2 3.29
τ00 subject 11.07
ICC 0.77
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.402 / 0.863
  first_visit
Predictors Odds Ratios CI p
(Intercept) 0.05 0.03 – 0.10 <0.001
vege 2.09 1.04 – 4.21 0.039
CB carbonUp 500.62 232.21 – 1079.29 <0.001
CB selfishLeft 1.01 0.88 – 1.17 0.848
carbon level 0.98 0.93 – 1.03 0.474
bonus level 0.99 0.94 – 1.04 0.704
trialNum centred 1.03 1.02 – 1.04 <0.001
Random Effects
σ2 3.29
τ00 subject 11.20
ICC 0.77
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.403 / 0.864
  first_visit
Predictors Odds Ratios CI p
(Intercept) 0.01 0.00 – 0.10 <0.001
vege 1.57 0.78 – 3.15 0.205
CB carbonUp 465.19 219.06 – 987.85 <0.001
CB selfishLeft 1.02 0.88 – 1.17 0.839
gender 1.75 0.84 – 3.62 0.134
age centred 1.00 0.97 – 1.03 0.948
education level 1.13 0.82 – 1.55 0.451
income 0.99 0.80 – 1.22 0.920
CertificatesEff 1.23 0.89 – 1.72 0.211
NEP score centred 1.06 1.02 – 1.10 0.005
Random Effects
σ2 3.29
τ00 subject 10.66
ICC 0.76
N subject 461
Observations 11169
Marginal R2 / Conditional R2 0.418 / 0.863
      df      BIC
M2c.1  5 6142.180
M2c.2  8 6141.112
M2c.3 11 6144.405

2.4.2 Post Hoc analyses

If any control variables showed significant effects, we tested for potential interactions with vegetarianism.

Show the code
#Post hoc on significant covariates for M2c.1
M2c_CarbonUp <- glmer(
  formula = first_visit ~ vege * CB_carbonUp + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)
  
tab_model(M2c_CarbonUp, transform = "exp") 
  first_visit
Predictors Odds Ratios CI p
(Intercept) 0.04 0.02 – 0.07 <0.001
vege 3.99 1.49 – 10.68 0.006
CB carbonUp 858.90 316.68 – 2329.55 <0.001
vege × CB carbonUp 0.27 0.07 – 1.09 0.066
Random Effects
σ2 3.29
τ00 subject 11.01
ICC 0.77
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.405 / 0.863
Show the code
#Post hoc on significant covariates for M2c.2
M2c_trialNum <- glmer(
  formula = first_visit ~ vege * trialNum_centred + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)
  
tab_model(M2c_trialNum, transform = "exp") 
  first_visit
Predictors Odds Ratios CI p
(Intercept) 1.23 0.68 – 2.20 0.494
vege 1.89 0.78 – 4.56 0.155
trialNum centred 1.02 1.00 – 1.03 0.008
vege × trialNum centred 1.02 1.00 – 1.04 0.015
Random Effects
σ2 3.29
τ00 subject 21.34
ICC 0.87
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.006 / 0.867


Simple slopes analyses were conducted to interpret the interactions.

Pairwise contrasts at specific trial number
trialNum Contrast Odds Ratio 95% CI Signif. p-value
1 vege1 - vege0 1.43 0.58 3.54 0.4432
5 vege1 - vege0 1.57 0.64 3.82 0.3250
10 vege1 - vege0 1.76 0.73 4.25 0.2095
15 vege1 - vege0 1.98 0.82 4.77 0.1298
20 vege1 - vege0 2.22 0.91 5.41 0.0792
25 vege1 - vege0 2.49 1.00 6.19 * 0.0488
Show the code
#Post hoc on significant covariates for M2c.3
M2c_NEP <- glmer(
  formula = first_visit ~ vege * NEP_score_centred + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)
 
tab_model(M2c_NEP, transform = "exp") 
  first_visit
Predictors Odds Ratios CI p
(Intercept) 1.31 0.73 – 2.34 0.361
vege 1.54 0.65 – 3.69 0.328
NEP score centred 1.05 0.99 – 1.12 0.113
vege × NEP score centred 1.07 0.98 – 1.18 0.135
Random Effects
σ2 3.29
τ00 subject 20.41
ICC 0.86
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.033 / 0.866

2.5 RQ2d - diet predicts last visit

2.5.1 Main models

Show the code
M2d.1 <- glmer(
  formula = last_visit ~ vege + CB_carbonUp + CB_selfishLeft + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

M2d.2 <- glmer(
  formula = last_visit ~ vege + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

M2d.3 <- glmer(
  formula = last_visit ~ vege + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

To compare vegetarians and non-vegetarians on the likelihood of performing their last visit on a carbon box (RQ2c), we run mixed-effects models with first visit as the dependent variable and random intercepts for participants and trials.

  • In the first model (M2D.1), we include vegetarianism (coded as 1 for vegetarians, 0 for non-vegetarians) as the main predictor of interest. Additionally, attribute position (coded as 1 if carbon emissions are displayed at the top of the matrix, 0 if at the bottom) and option position (coded as 1 if the pro-environmental option is on the left, 0 if on the right) are also included as fixed effects to account for potential display effects.

  • In the second model (M2D.2), we test the sensitivity of results of M2D.1 to the addition of control variables related to the task by adding fixed effects for percentage difference in carbon emissions (ranging from 1 [10%] to 5 [100%]), percentage difference in bonus payment (ranging from 1 [10%] to 5 [100%]) and sequential position of the trial (ranging from 1 to 25).

  • In the third model (M2D.3), we test the sensitivity of results of M2D.1 to the addition of demographic control variables by adding fixed effects for sex, age, education, income, environmental attitudes (assessed by the New Ecological Paradigm), and beliefs in the efficacy of European Union Emission Trading System (measured on a 5-point Likert scale from 1=not effective at all to 5=very effective).

  last_visit
Predictors Odds Ratios CI p
(Intercept) 4.49 3.40 – 5.92 <0.001
vege 1.22 0.89 – 1.69 0.222
CB carbonUp 0.05 0.04 – 0.07 <0.001
CB selfishLeft 0.84 0.76 – 0.92 <0.001
Random Effects
σ2 3.29
τ00 subject 2.67
ICC 0.45
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.278 / 0.602
  last_visit
Predictors Odds Ratios CI p
(Intercept) 4.08 2.98 – 5.59 <0.001
vege 1.22 0.88 – 1.69 0.222
CB carbonUp 0.05 0.03 – 0.07 <0.001
CB selfishLeft 0.84 0.76 – 0.93 0.001
carbon level 1.02 0.98 – 1.05 0.392
bonus level 1.02 0.98 – 1.05 0.301
trialNum centred 1.02 1.01 – 1.03 <0.001
Random Effects
σ2 3.29
τ00 subject 2.69
ICC 0.45
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.281 / 0.605
  last_visit
Predictors Odds Ratios CI p
(Intercept) 2.84 1.07 – 7.54 0.036
vege 1.07 0.78 – 1.48 0.670
CB carbonUp 0.05 0.03 – 0.07 <0.001
CB selfishLeft 0.84 0.76 – 0.93 0.001
gender 1.09 0.78 – 1.52 0.630
age centred 1.00 0.99 – 1.02 0.584
education level 1.01 0.87 – 1.17 0.891
income 0.96 0.87 – 1.06 0.457
CertificatesEff 1.18 1.01 – 1.37 0.032
NEP score centred 1.03 1.02 – 1.05 <0.001
Random Effects
σ2 3.29
τ00 subject 2.55
ICC 0.44
N subject 461
Observations 11169
Marginal R2 / Conditional R2 0.293 / 0.602
      df      BIC
M2d.1  5 10490.96
M2d.2  8 10483.74
M2d.3 11 10496.04

3 Preregistered exploratory analyses

3.1 EX1 - diet predicts total visiting time

Show the code
M_TVT1 <- lmer(
  formula = t_total_scaled ~ vege + CB_carbonUp + CB_selfishLeft + (1 | subject),
  data = All_Measures_Per_Trial
)
  t_total_scaled
Predictors Estimates CI p
(Intercept) 0.75 0.69 – 0.82 <0.001
vege -0.03 -0.11 – 0.04 0.383
CB carbonUp -0.02 -0.09 – 0.06 0.694
CB selfishLeft 0.00 -0.02 – 0.02 0.861
Random Effects
σ2 0.25
τ00 subject 0.16
ICC 0.40
N subject 463
Observations 11217
Marginal R2 / Conditional R2 0.001 / 0.402

3.2 EX2 - diet predicts Payne index

Show the code
M_PI1 <- lmer(
  formula = payne_index ~ vege + CB_carbonUp + CB_selfishLeft + (1 | subject),
  data = All_Measures_Per_Trial
)
  payne_index
Predictors Estimates CI p
(Intercept) -0.46 -0.52 – -0.39 <0.001
vege 0.04 -0.04 – 0.12 0.313
CB carbonUp -0.06 -0.13 – 0.02 0.140
CB selfishLeft 0.01 -0.00 – 0.03 0.096
Random Effects
σ2 0.14
τ00 subject 0.17
ICC 0.54
N subject 462
Observations 11140
Marginal R2 / Conditional R2 0.004 / 0.546

3.3 EX3 - Attention predicts decision

Show the code
Mex3a <- glmer(
  formula = decision ~ delta_duration_att + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

Mex3b <- glmer(
  formula = decision ~ delta_duration_opt + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

Mex3c <- glmer(
  formula = decision ~ first_visit + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

Mex3d <- glmer(
  formula = decision ~ last_visit + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

Mex3e <- glmer(
  formula = decision ~ t_total_scaled + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)

Mex3f <- glmer(
  formula = decision ~ payne_index + (1 | subject) + (1 | trialNum_fixed),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 5e5))
)
  decision decision
Predictors Odds Ratios CI p Odds Ratios CI p
(Intercept) 1.50 0.71 – 3.17 0.283 1.68 0.80 – 3.55 0.172
delta duration att 5.26 4.06 – 6.80 <0.001
delta duration opt 36.98 26.41 – 51.80 <0.001
Random Effects
σ2 3.29 3.29
τ00 15.51 subject 18.56 subject
2.74 trialNum_fixed 2.59 trialNum_fixed
ICC 0.85 0.87
N 481 subject 481 subject
25 trialNum_fixed 25 trialNum_fixed
Observations 11626 11626
Marginal R2 / Conditional R2 0.031 / 0.852 0.029 / 0.869
  decision decision
Predictors Odds Ratios CI p Odds Ratios CI p
(Intercept) 1.26 0.58 – 2.70 0.561 1.39 0.65 – 2.98 0.399
first visit 1.75 1.37 – 2.22 <0.001
last visit 1.53 1.30 – 1.80 <0.001
Random Effects
σ2 3.29 3.29
τ00 18.89 subject 19.51 subject
2.66 trialNum_fixed 2.67 trialNum_fixed
ICC 0.87 0.87
N 481 subject 481 subject
25 trialNum_fixed 25 trialNum_fixed
Observations 11626 11626
Marginal R2 / Conditional R2 0.003 / 0.868 0.002 / 0.871
  decision decision
Predictors Odds Ratios CI p Odds Ratios CI p
(Intercept) 1.85 0.86 – 3.98 0.115 1.70 0.78 – 3.69 0.181
t total scaled 0.91 0.81 – 1.01 0.069
payne index 1.00 0.84 – 1.19 0.999
Random Effects
σ2 3.29 3.29
τ00 19.93 subject 20.41 subject
2.67 trialNum_fixed 2.74 trialNum_fixed
ICC 0.87 0.88
N 481 subject 480 subject
25 trialNum_fixed 25 trialNum_fixed
Observations 11626 11548
Marginal R2 / Conditional R2 0.000 / 0.873 0.000 / 0.876