Main Analyses - Consistent sample

Author

ZB

Published

last rendered on: Aug 11, 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=""))

#Filter consistent diet
All_Measures_Per_Trial <- All_Measures_Per_Trial %>%
  mutate(vegetarianism = case_when(
    vege == 1 & vege_Prolific == 1 ~ 1,
    vege == 0 & vege_Prolific == 0 ~ 0,
    TRUE ~ NA_real_
  ))

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 172 NA 196 NA NA NA
Age 40 10.569 38.398 11.573 1.388 0.166
Education 4.68 1.138 4.98 1.114 -2.543 0.011
Income 4.238 1.599 4.036 1.690 1.181 0.238
Gender Distribution by Group (Chi² p-value = 0.083)
Omnivore Vegetarian
W 80 110
M 92 86
Proportion of pro-environmental decisions
Variable Omnivore_Mean Omnivore_SD Vegetarian_Mean Vegetarian_SD
Decision 0.51 0.36 0.57 0.38

Number of participants consistently choosing the same option
Chosen.option Omnivores Vegetarians
Always pro-self 30 32
Always pro-environmental 23 45
Environmental attitude score and perceived efficacy of CO2 certificates
Variable Omnivore_Mean Omnivore_SD Vegetarian_Mean Vegetarian_SD t_value p_value
NEP score 54.808 9.434 56.694 9.291 -1.927 0.055
Certificates efficacy 3.326 1.081 3.653 1.004 -2.998 0.003

Process tracing measures
Variable Omnivore_Mean Omnivore_SD Vegetarian_Mean Vegetarian_SD
Delta duration on attributes 0.02 0.43 0.11 0.46
Delta duration on options 0.00 0.09 0.01 0.10
First acquisition on CO2 0.51 0.44 0.57 0.43
Last acquisition on CO2 0.46 0.34 0.52 0.35
Payne index -0.53 0.34 -0.44 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 ~ vegetarianism + 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 ~ vegetarianism + 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 ~ vegetarianism + 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 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 (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.39 0.13 – 1.20 0.099
vegetarianism 3.36 1.26 – 8.96 0.015
CB carbonUp 4.29 1.61 – 11.42 0.004
CB selfishLeft 0.99 0.85 – 1.14 0.840
Random Effects
σ2 3.29
τ00 subject 21.38
τ00 trialNum_fixed 3.09
ICC 0.88
N subject 368
N trialNum_fixed 25
Observations 8908
Marginal R2 / Conditional R2 0.030 / 0.885
  decision
Predictors Odds Ratios CI p
(Intercept) 0.72 0.24 – 2.19 0.565
vegetarianism 3.35 1.26 – 8.93 0.016
CB carbonUp 4.29 1.61 – 11.41 0.004
CB selfishLeft 0.99 0.85 – 1.14 0.846
carbon level 2.07 1.78 – 2.41 <0.001
bonus level 0.39 0.34 – 0.46 <0.001
trialNum centred 1.00 0.99 – 1.01 0.338
Random Effects
σ2 3.29
τ00 subject 21.36
τ00 trialNum_fixed 0.25
ICC 0.87
N subject 368
N trialNum_fixed 25
Observations 8908
Marginal R2 / Conditional R2 0.128 / 0.885
  decision
Predictors Odds Ratios CI p
(Intercept) 0.01 0.00 – 0.16 0.002
vegetarianism 1.72 0.63 – 4.65 0.289
CB carbonUp 4.27 1.61 – 11.33 0.004
CB selfishLeft 0.98 0.84 – 1.15 0.845
gender 2.32 0.82 – 6.54 0.112
age centred 1.01 0.97 – 1.05 0.697
education level 1.09 0.70 – 1.68 0.711
income 0.90 0.66 – 1.22 0.491
CertificatesEff 3.02 1.85 – 4.93 <0.001
NEP score centred 1.16 1.09 – 1.22 <0.001
Random Effects
σ2 3.29
τ00 subject 18.87
τ00 trialNum_fixed 3.10
ICC 0.87
N subject 368
N trialNum_fixed 25
Observations 8908
Marginal R2 / Conditional R2 0.150 / 0.889
Data: All_Measures_Per_Trial
Models:
M1.1: decision ~ vegetarianism + CB_carbonUp + CB_selfishLeft + (1 | subject) + (1 | trialNum_fixed)
M1.2: decision ~ vegetarianism + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject) + (1 | trialNum_fixed)
M1.3: decision ~ vegetarianism + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject) + (1 | trialNum_fixed)
     npar    AIC    BIC  logLik deviance  Chisq Df Pr(>Chisq)    
M1.1    6 5737.1 5779.7 -2862.6   5725.1                         
M1.2    9 5683.7 5747.5 -2832.8   5665.7 59.413  3  7.846e-13 ***
M1.3   12 5694.6 5779.7 -2835.3   5670.6  0.000  3          1    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2.1.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 M1.1
M1_CarbonUp <- glmer(
  formula = decision ~ vegetarianism * 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.45 0.13 – 1.60 0.218
vegetarianism 2.51 0.61 – 10.24 0.200
CB carbonUp 3.17 0.76 – 13.24 0.113
vegetarianism × CB
carbonUp
1.77 0.25 – 12.53 0.569
Random Effects
σ2 3.29
τ00 subject 21.37
τ00 trialNum_fixed 3.09
ICC 0.88
N subject 368
N trialNum_fixed 25
Observations 8908
Marginal R2 / Conditional R2 0.031 / 0.885
Show the code
#Post hoc on significant covariates for M1.2
M1_Carbon <- glmer(
  formula = decision ~ vegetarianism * 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.08 0.02 – 0.34 0.001
vegetarianism 4.90 1.73 – 13.86 0.003
carbon level 2.24 1.50 – 3.35 <0.001
vegetarianism × carbon
level
0.85 0.77 – 0.95 0.004
Random Effects
σ2 3.29
τ00 subject 21.85
τ00 trialNum_fixed 2.03
ICC 0.88
N subject 368
N trialNum_fixed 25
Observations 8908
Marginal R2 / Conditional R2 0.048 / 0.885


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 vegetarianism0 - vegetarianism1 0.24 0.09 0.66 ** 0.00558
2 vegetarianism0 - vegetarianism1 0.28 0.10 0.76 * 0.01226
3 vegetarianism0 - vegetarianism1 0.33 0.12 0.88 * 0.02763
4 vegetarianism0 - vegetarianism1 0.39 0.14 1.04 0.06087
5 vegetarianism0 - vegetarianism1 0.45 0.16 1.25 0.12528
Show the code
#Post hoc on significant covariates for M1.2
M1_Bonus <- glmer(
  formula = decision ~ vegetarianism * 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) 20.00 5.39 – 74.27 <0.001
vegetarianism 1.51 0.53 – 4.32 0.441
bonus level 0.35 0.25 – 0.49 <0.001
vegetarianism × bonus
level
1.25 1.12 – 1.41 <0.001
Random Effects
σ2 3.29
τ00 subject 21.80
τ00 trialNum_fixed 1.34
ICC 0.88
N subject 368
N trialNum_fixed 25
Observations 8908
Marginal R2 / Conditional R2 0.072 / 0.885


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 vegetarianism0 - vegetarianism1 0.53 0.19 1.46 0.21808
2 vegetarianism0 - vegetarianism1 0.42 0.16 1.14 0.08857
3 vegetarianism0 - vegetarianism1 0.34 0.12 0.90 * 0.03033
4 vegetarianism0 - vegetarianism1 0.27 0.10 0.72 ** 0.00930
5 vegetarianism0 - vegetarianism1 0.21 0.08 0.59 ** 0.00277
Show the code
#Post hoc on significant covariates for M1.3
M1_Certif <- glmer(
  formula = decision ~ vegetarianism * 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.01 0.00 – 0.08 <0.001
vegetarianism 116.86 2.94 – 4641.44 0.011
CertificatesEff 4.53 2.18 – 9.40 <0.001
vegetarianism ×
CertificatesEff
0.33 0.12 – 0.90 0.030
Random Effects
σ2 3.29
τ00 subject 21.12
τ00 trialNum_fixed 3.09
ICC 0.88
N subject 368
N trialNum_fixed 25
Observations 8908
Marginal R2 / Conditional R2 0.057 / 0.887


Simple slopes analyses were conducted to interpret the interactions.

Pairwise contrasts at each perceived efficacy of CO2 certificates
CertificatesEff Contrast Odds Ratio 95% CI Signif. p-value
1 vegetarianism0 - vegetarianism1 0.03 0.00 0.40 ** 0.00882
2 vegetarianism0 - vegetarianism1 0.08 0.01 0.50 ** 0.00683
3 vegetarianism0 - vegetarianism1 0.24 0.08 0.76 * 0.01522
4 vegetarianism0 - vegetarianism1 0.74 0.24 2.29 0.59779
5 vegetarianism0 - vegetarianism1 2.25 0.37 13.74 0.38148
Show the code
#Post hoc on significant covariates for M1.3
M1_NEP <- glmer(
  formula = decision ~ vegetarianism * 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) 0.89 0.33 – 2.41 0.822
vegetarianism 2.33 0.86 – 6.32 0.096
NEP score centred 1.15 1.07 – 1.25 <0.001
vegetarianism × NEP score
centred
1.04 0.93 – 1.16 0.493
Random Effects
σ2 3.29
τ00 subject 20.21
τ00 trialNum_fixed 3.09
ICC 0.88
N subject 368
N trialNum_fixed 25
Observations 8908
Marginal R2 / Conditional R2 0.091 / 0.888

2.2 RQ2a - diet predicts ΔDuration on attributes

2.2.1 Main models

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

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

M2a.3 <- lmer(
  formula = delta_duration_att ~ vegetarianism + 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 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 (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.02 -0.07 – 0.10 0.715
vegetarianism 0.10 0.01 – 0.19 0.038
CB carbonUp 0.01 -0.08 – 0.10 0.889
CB selfishLeft 0.00 -0.01 – 0.01 0.958
Random Effects
σ2 0.06
τ00 subject 0.19
ICC 0.76
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.009 / 0.761
  delta_duration_att
Predictors Estimates CI p
(Intercept) 0.01 -0.07 – 0.10 0.782
vegetarianism 0.10 0.01 – 0.19 0.038
CB carbonUp 0.01 -0.08 – 0.10 0.889
CB selfishLeft 0.00 -0.01 – 0.01 0.933
carbon level -0.00 -0.00 – 0.00 0.701
bonus level 0.00 -0.00 – 0.01 0.317
trialNum centred 0.00 0.00 – 0.00 <0.001
Random Effects
σ2 0.06
τ00 subject 0.19
ICC 0.76
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.009 / 0.761
  delta_duration_att
Predictors Estimates CI p
(Intercept) -0.17 -0.44 – 0.10 0.230
vegetarianism 0.05 -0.04 – 0.15 0.242
CB carbonUp -0.00 -0.09 – 0.08 0.931
CB selfishLeft 0.00 -0.01 – 0.01 0.953
gender 0.05 -0.04 – 0.14 0.304
age centred 0.00 -0.00 – 0.01 0.180
education level 0.00 -0.04 – 0.04 0.875
income -0.01 -0.03 – 0.02 0.618
CertificatesEff 0.05 0.01 – 0.10 0.013
NEP score centred 0.01 0.01 – 0.02 <0.001
Random Effects
σ2 0.06
τ00 subject 0.18
ICC 0.74
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.073 / 0.763
Data: All_Measures_Per_Trial
Models:
M2a.1: delta_duration_att ~ vegetarianism + CB_carbonUp + CB_selfishLeft + (1 | subject)
M2a.2: delta_duration_att ~ vegetarianism + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject)
M2a.3: delta_duration_att ~ vegetarianism + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject)
      npar    AIC    BIC   logLik deviance  Chisq Df Pr(>Chisq)    
M2a.1    6 2036.5 2079.1 -1012.26   2024.5                         
M2a.2    9 2026.0 2089.8 -1003.98   2008.0 16.563  3  0.0008692 ***
M2a.3   12 2015.5 2100.7  -995.78   1991.5 16.414  3  0.0009327 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2.2.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 M2a.2
M2a_trialNum <- lmer(
  formula = delta_duration_att ~ vegetarianism * trialNum_centred + (1 | subject),
  data = All_Measures_Per_Trial
)
  
tab_model(M2a_trialNum, transform = NULL) 
  delta_duration_att
Predictors Estimates CI p
(Intercept) 0.02 -0.05 – 0.09 0.573
vegetarianism 0.10 0.01 – 0.19 0.038
trialNum centred 0.00 -0.00 – 0.00 0.428
vegetarianism × trialNum
centred
0.00 0.00 – 0.00 0.009
Random Effects
σ2 0.06
τ00 subject 0.19
ICC 0.76
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.009 / 0.761


Simple slopes analyses were conducted to interpret the interactions.

Pairwise contrasts at specific trial number
trialNum Contrast Estimate 95% CI Signif. p-value
1 vegetarianism1 - vegetarianism0 0.07 -0.02 0.16 0.1229
5 vegetarianism1 - vegetarianism0 0.08 -0.01 0.17 0.0850
10 vegetarianism1 - vegetarianism0 0.09 0.00 0.18 0.0522
15 vegetarianism1 - vegetarianism0 0.10 0.01 0.19 * 0.0316
20 vegetarianism1 - vegetarianism0 0.11 0.02 0.20 * 0.0191
25 vegetarianism1 - vegetarianism0 0.12 0.03 0.21 * 0.0117
Show the code
#Post hoc on significant covariates for M2a.3
M2a_Certif <- lmer(
  formula = delta_duration_att ~ vegetarianism * CertificatesEff + (1 | subject),
  data = All_Measures_Per_Trial
)
  
tab_model(M2a_Certif, transform = NULL) 
  delta_duration_att
Predictors Estimates CI p
(Intercept) -0.27 -0.49 – -0.06 0.011
vegetarianism 0.37 0.06 – 0.69 0.020
CertificatesEff 0.09 0.03 – 0.15 0.004
vegetarianism ×
CertificatesEff
-0.08 -0.17 – 0.00 0.057
Random Effects
σ2 0.06
τ00 subject 0.19
ICC 0.76
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.025 / 0.761
Show the code
#Post hoc on significant covariates for M2a.3
M2a_NEP <- lmer(
  formula = delta_duration_att ~ vegetarianism * NEP_score_centred + (1 | subject),
  data = All_Measures_Per_Trial
)
  
tab_model(M2a_NEP, transform = NULL) 
  delta_duration_att
Predictors Estimates CI p
(Intercept) 0.02 -0.04 – 0.09 0.470
vegetarianism 0.07 -0.02 – 0.16 0.106
NEP score centred 0.01 0.00 – 0.02 0.001
vegetarianism × NEP score
centred
0.00 -0.01 – 0.01 0.869
Random Effects
σ2 0.06
τ00 subject 0.18
ICC 0.75
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.057 / 0.761

2.3 RQ2b - diet predicts ΔDuration on options

2.3.1 Main models

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

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

M2b.3 <- lmer(
  formula = delta_duration_opt ~ vegetarianism + 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.02 -0.04 – -0.00 0.044
vegetarianism 0.02 -0.00 – 0.04 0.071
CB carbonUp 0.03 0.01 – 0.05 0.002
CB selfishLeft -0.00 -0.01 – 0.01 0.886
Random Effects
σ2 0.04
τ00 subject 0.01
ICC 0.14
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.006 / 0.143
  delta_duration_opt
Predictors Estimates CI p
(Intercept) -0.00 -0.03 – 0.02 0.699
vegetarianism 0.02 -0.00 – 0.04 0.073
CB carbonUp 0.03 0.01 – 0.05 0.002
CB selfishLeft -0.00 -0.01 – 0.01 0.895
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.030
Random Effects
σ2 0.04
τ00 subject 0.01
ICC 0.14
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.017 / 0.155
  delta_duration_opt
Predictors Estimates CI p
(Intercept) -0.05 -0.11 – 0.01 0.088
vegetarianism 0.01 -0.01 – 0.03 0.347
CB carbonUp 0.03 0.01 – 0.05 0.002
CB selfishLeft -0.00 -0.01 – 0.01 0.901
gender 0.02 -0.00 – 0.04 0.109
age centred 0.00 -0.00 – 0.00 0.291
education level -0.00 -0.01 – 0.01 0.834
income -0.00 -0.01 – 0.00 0.283
CertificatesEff 0.01 0.00 – 0.02 0.006
NEP score centred 0.00 0.00 – 0.00 0.006
Random Effects
σ2 0.04
τ00 subject 0.01
ICC 0.13
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.017 / 0.145
Data: All_Measures_Per_Trial
Models:
M2b.1: delta_duration_opt ~ vegetarianism + CB_carbonUp + CB_selfishLeft + (1 | subject)
M2b.2: delta_duration_opt ~ vegetarianism + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject)
M2b.3: delta_duration_opt ~ vegetarianism + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject)
      npar     AIC     BIC logLik deviance  Chisq Df Pr(>Chisq)    
M2b.1    6 -1800.0 -1757.5 906.02  -1812.0                         
M2b.2    9 -1913.6 -1849.7 965.79  -1931.6 119.54  3     <2e-16 ***
M2b.3   12 -1812.8 -1727.7 918.42  -1836.8   0.00  3          1    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2.4 RQ2c - diet predicts first visit

2.4.1 Main models

Show the code
M2c.1 <- glmer(
  formula = first_visit ~ vegetarianism + 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 ~ vegetarianism + 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 ~ vegetarianism + 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.03 0.01 – 0.07 <0.001
vegetarianism 3.06 1.34 – 6.97 0.008
CB carbonUp 598.45 240.17 – 1491.20 <0.001
CB selfishLeft 1.05 0.89 – 1.24 0.548
Random Effects
σ2 3.29
τ00 subject 12.18
ICC 0.79
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.401 / 0.873
  first_visit
Predictors Odds Ratios CI p
(Intercept) 0.04 0.02 – 0.08 <0.001
vegetarianism 3.07 1.34 – 7.03 0.008
CB carbonUp 617.41 246.52 – 1546.34 <0.001
CB selfishLeft 1.06 0.90 – 1.25 0.508
carbon level 0.95 0.90 – 1.01 0.095
bonus level 1.00 0.94 – 1.06 0.981
trialNum centred 1.02 1.01 – 1.03 <0.001
Random Effects
σ2 3.29
τ00 subject 12.29
ICC 0.79
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.402 / 0.874
  first_visit
Predictors Odds Ratios CI p
(Intercept) 0.00 0.00 – 0.04 <0.001
vegetarianism 2.30 1.00 – 5.25 0.049
CB carbonUp 543.24 224.35 – 1315.42 <0.001
CB selfishLeft 1.05 0.89 – 1.24 0.546
gender 2.56 1.08 – 6.07 0.032
age centred 1.01 0.98 – 1.05 0.455
education level 1.07 0.74 – 1.55 0.701
income 1.08 0.85 – 1.39 0.527
CertificatesEff 1.41 0.95 – 2.09 0.086
NEP score centred 1.06 1.01 – 1.11 0.015
Random Effects
σ2 3.29
τ00 subject 11.45
ICC 0.78
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.428 / 0.872
Data: All_Measures_Per_Trial
Models:
M2c.1: first_visit ~ vegetarianism + CB_carbonUp + CB_selfishLeft + (1 | subject)
M2c.2: first_visit ~ vegetarianism + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject)
M2c.3: first_visit ~ vegetarianism + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject)
      npar    AIC    BIC  logLik deviance   Chisq Df Pr(>Chisq)    
M2c.1    5 4735.9 4771.4 -2363.0   4725.9                          
M2c.2    8 4723.8 4780.6 -2353.9   4707.8 18.1426  3   0.000411 ***
M2c.3   11 4728.8 4806.9 -2353.4   4706.8  0.9994  3   0.801396    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

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 ~ vegetarianism * 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.02 0.01 – 0.06 <0.001
vegetarianism 6.23 1.92 – 20.22 0.002
CB carbonUp 1286.58 347.47 – 4763.84 <0.001
vegetarianism × CB
carbonUp
0.24 0.05 – 1.27 0.094
Random Effects
σ2 3.29
τ00 subject 12.15
ICC 0.79
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.405 / 0.873
Show the code
#Post hoc on significant covariates for M2c.2
M2c_trialNum <- glmer(
  formula = first_visit ~ vegetarianism * 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.02 0.49 – 2.14 0.956
vegetarianism 2.15 0.78 – 5.93 0.139
trialNum centred 1.00 0.99 – 1.02 0.809
vegetarianism × trialNum
centred
1.04 1.02 – 1.06 <0.001
Random Effects
σ2 3.29
τ00 subject 22.68
ICC 0.87
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.007 / 0.874


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 vegetarianism1 - vegetarianism0 1.35 0.47 3.82 0.5781
5 vegetarianism1 - vegetarianism0 1.57 0.56 4.39 0.3897
10 vegetarianism1 - vegetarianism0 1.90 0.69 5.26 0.2139
15 vegetarianism1 - vegetarianism0 2.31 0.84 6.37 0.1058
20 vegetarianism1 - vegetarianism0 2.80 1.01 7.80 * 0.0487
25 vegetarianism1 - vegetarianism0 3.40 1.20 9.66 * 0.0218
Show the code
#Post hoc on significant covariates for M2c.3
M2c_gender <- glmer(
  formula = first_visit ~ vegetarianism * gender + (1 | subject),
  data = All_Measures_Per_Trial,
  family = binomial(link = "logit"),
  control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)
 
tab_model(M2c_gender, transform = "exp") 
  first_visit
Predictors Odds Ratios CI p
(Intercept) 0.69 0.26 – 1.89 0.476
vegetarianism 1.29 0.31 – 5.42 0.729
gender 2.26 0.52 – 9.76 0.276
vegetarianism × gender 2.17 0.29 – 16.16 0.451
Random Effects
σ2 3.29
τ00 subject 22.01
ICC 0.87
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.021 / 0.873
Show the code
#Post hoc on significant covariates for M2c.3
M2c_NEP <- glmer(
  formula = first_visit ~ vegetarianism * 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.04 0.48 – 2.27 0.920
vegetarianism 1.92 0.66 – 5.58 0.231
NEP score centred 1.08 0.99 – 1.18 0.066
vegetarianism × NEP score
centred
1.04 0.93 – 1.17 0.483
Random Effects
σ2 3.29
τ00 subject 21.82
ICC 0.87
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.041 / 0.874

2.5 RQ2d - diet predicts last visit

2.5.1 Main models

Show the code
M2d.1 <- glmer(
  formula = last_visit ~ vegetarianism + 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 ~ vegetarianism + 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 ~ vegetarianism + 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) 3.99 2.85 – 5.59 <0.001
vegetarianism 1.40 0.97 – 2.02 0.075
CB carbonUp 0.05 0.03 – 0.07 <0.001
CB selfishLeft 0.82 0.74 – 0.92 0.001
Random Effects
σ2 3.29
τ00 subject 2.79
ICC 0.46
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.278 / 0.609
  last_visit
Predictors Odds Ratios CI p
(Intercept) 3.47 2.38 – 5.06 <0.001
vegetarianism 1.40 0.97 – 2.02 0.076
CB carbonUp 0.05 0.03 – 0.07 <0.001
CB selfishLeft 0.82 0.74 – 0.92 0.001
carbon level 1.03 0.99 – 1.07 0.167
bonus level 1.02 0.98 – 1.06 0.306
trialNum centred 1.02 1.01 – 1.03 <0.001
Random Effects
σ2 3.29
τ00 subject 2.81
ICC 0.46
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.281 / 0.612
  last_visit
Predictors Odds Ratios CI p
(Intercept) 2.71 0.89 – 8.26 0.080
vegetarianism 1.25 0.86 – 1.81 0.246
CB carbonUp 0.05 0.03 – 0.07 <0.001
CB selfishLeft 0.82 0.74 – 0.92 0.001
gender 1.13 0.77 – 1.66 0.543
age centred 1.01 0.99 – 1.03 0.274
education level 0.99 0.84 – 1.17 0.908
income 0.99 0.88 – 1.11 0.810
CertificatesEff 1.15 0.96 – 1.37 0.121
NEP score centred 1.04 1.02 – 1.06 0.001
Random Effects
σ2 3.29
τ00 subject 2.64
ICC 0.44
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.297 / 0.610
Data: All_Measures_Per_Trial
Models:
M2d.1: last_visit ~ vegetarianism + CB_carbonUp + CB_selfishLeft + (1 | subject)
M2d.2: last_visit ~ vegetarianism + CB_carbonUp + CB_selfishLeft + carbon_level + bonus_level + trialNum_centred + (1 | subject)
M2d.3: last_visit ~ vegetarianism + CB_carbonUp + CB_selfishLeft + gender + age_centred + education_level + income + CertificatesEff + NEP_score_centred + (1 | subject)
      npar    AIC    BIC  logLik deviance  Chisq Df Pr(>Chisq)    
M2d.1    5 8236.2 8271.7 -4113.1   8226.2                         
M2d.2    8 8218.3 8275.0 -4101.1   8202.3 23.915  3  2.603e-05 ***
M2d.3   11 8229.5 8307.6 -4103.8   8207.5  0.000  3          1    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

3 Preregistered exploratory analyses

3.1 EX1 - diet predicts total visiting time

Show the code
M_TVT1 <- lmer(
  formula = t_total_scaled ~ vegetarianism + CB_carbonUp + CB_selfishLeft + (1 | subject),
  data = All_Measures_Per_Trial
)
  t_total_scaled
Predictors Estimates CI p
(Intercept) 0.72 0.64 – 0.79 <0.001
vegetarianism 0.01 -0.08 – 0.09 0.886
CB carbonUp -0.01 -0.09 – 0.08 0.850
CB selfishLeft 0.00 -0.02 – 0.02 0.966
Random Effects
σ2 0.16
τ00 subject 0.16
ICC 0.49
N subject 368
Observations 8931
Marginal R2 / Conditional R2 0.000 / 0.493

3.2 EX2 - diet predicts Payne index

Show the code
M_PI1 <- lmer(
  formula = payne_index ~ vegetarianism + CB_carbonUp + CB_selfishLeft + (1 | subject),
  data = All_Measures_Per_Trial
)
  payne_index
Predictors Estimates CI p
(Intercept) -0.52 -0.59 – -0.44 <0.001
vegetarianism 0.09 0.01 – 0.17 0.034
CB carbonUp -0.04 -0.12 – 0.05 0.374
CB selfishLeft 0.01 -0.00 – 0.03 0.132
Random Effects
σ2 0.13
τ00 subject 0.16
ICC 0.56
N subject 368
Observations 8893
Marginal R2 / Conditional R2 0.009 / 0.560

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.69 0.80 – 3.56 0.171
delta duration att 5.26 4.06 – 6.80 <0.001
delta duration opt 37.04 26.44 – 51.88 <0.001
Random Effects
σ2 3.29 3.29
τ00 15.51 subject 18.79 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.028 / 0.870
  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