Hello readers of this Markdown! This is a first pass at analyzing the full study data. Please see all the pre-registered main analyses and exploratory analyses (especially #5) for results. Thank you :)

Import Data

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.3     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data <- read.csv("~/Google drive/My Drive/Stanford Google Drive/Gossip Project NEW/raw_qualtrics_data.csv") %>% 
  slice(-(1:2)) %>%# from piloting
  filter(Contribution != "") %>% 
  filter(Informed.Consent == 1) %>% 
  filter(attention_check == 2)

Light data cleaning

data <- data %>% 
  mutate(Condition = ifelse(FL_102_DO != "", FL_102_DO, "")) %>% 
  mutate(Condition = ifelse(FL_43_DO != "" & Condition == "", FL_43_DO, Condition)) %>% 
  mutate(Stimuli = Condition) 

data$Stimuli <- substr(data$Stimuli, 0, 4)

data <- data %>% 
  mutate(Condition = ifelse(FL_102_DO != "", "Objective", "")) %>% 
  mutate(Condition = ifelse(FL_43_DO != "" & Condition == "", "Subjective", Condition)) %>% 
  mutate(Condition = ifelse(FL_41_DO== "StimuliDescriptionControl", "Control", Condition))

data <- data %>% 
  select(ResponseId, ProlificID, Informed.Consent, attention_check, comp1, comp2, comp3, comp4, comp5, contributionExp:Contribution, contributionGuess, Condition, Stimuli, household_income:age, trust:norms_1, CRT_1:CRT_3) %>% 
  mutate(Contribution = as.numeric(Contribution))

negNotes <- read.csv("~/Google drive/My Drive/Stanford Google Drive/Gossip Project NEW/Group_Gossip_Breakdown.csv") %>% 
  select(-Condition)

data <- data %>%
  left_join(negNotes, by = c("Stimuli")) %>%
  mutate(negativeNotes_Number = as.factor(negativeNotes_Number))

Pre-registered main analyses

1. We will compare the reputational information group with the numeric information group using the following linear models. For these models, the numeric information group will be specified as the reference level.

1a. Effect of condition on estimated group contribution mean in the previous public goods game they learned about: lm(Estimate ~ Experimental condition)

model_data <- data %>% 
  filter(Condition == "Objective" | Condition == 
          "Subjective") %>% 
  mutate(contributionGuess = as.numeric(contributionGuess))%>% 
  mutate(contributionExp = as.numeric(contributionExp))%>% 
  mutate(Contribution = as.numeric(Contribution))
model = model_data %>% 
  lm(contributionGuess ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionGuess ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.7661 -1.5685  0.2339  1.4315  5.4315 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           5.7661     0.1482  38.919  < 2e-16 ***
## ConditionSubjective  -1.1976     0.2095  -5.716 1.89e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.333 on 494 degrees of freedom
## Multiple R-squared:  0.06203,    Adjusted R-squared:  0.06013 
## F-statistic: 32.67 on 1 and 494 DF,  p-value: 1.893e-08

The mean contribution guess in the numeric condition was 5.77 (SE = 0.15) and the mean contribution guess in the gossip condition was 4.57 (SE = 0.21). Difference in means is significant; t(494) = -5.72, p < .001.

ggplot(data = model_data,
       mapping = aes(x = Condition, 
                     y = contributionGuess, 
                     color = Condition)) +
  # means with confidence intervals 
  geom_point(alpha = 0.4,
             position = position_jitter(width = 0.1, height = 0),
             size = 2)+
  stat_summary(fun.data = "mean_cl_boot",
               geom = "pointrange",
               color = "black",
               fill = "black",
               shape = 21,
               size = .5) + 
  # individual data points (jittered horizontally)
  theme_bw()+
  theme(legend.position="none")

1b. Effect of condition on estimated group contribution forecasts for participants’ future public goods game: lm(Forecast ~ Experimental condition)

model = model_data %>% 
  lm(contributionExp ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionExp ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.5847 -0.5847 -0.3065  1.4153  4.6935 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           5.5847     0.1308  42.687   <2e-16 ***
## ConditionSubjective  -0.2782     0.1850  -1.504    0.133    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.06 on 494 degrees of freedom
## Multiple R-squared:  0.004557,   Adjusted R-squared:  0.002542 
## F-statistic: 2.261 on 1 and 494 DF,  p-value: 0.1333

The mean contribution expectation in the numeric condition was 5.59 (SE = 0.13) and the mean contribution expectation in the gossip condition was 5.31 (SE = 0.19). Difference in means is not significant; t(494) = -1.50, p = .133.

ggplot(data = model_data,
       mapping = aes(x = Condition, 
                     y = contributionExp, 
                     color = Condition)) +
  # means with confidence intervals 
  geom_point(alpha = 0.4,
             position = position_jitter(width = 0.1, height = 0),
             size = 2)+
  stat_summary(fun.data = "mean_cl_boot",
               geom = "pointrange",
               color = "black",
               fill = "black",
               shape = 21,
               size = .5) + 
  # individual data points (jittered horizontally)
  theme_bw()+
  theme(legend.position="none")

1c. Effect of condition on contribution to the group fund in their own public goods game: lm(Contribution ~ Experimental condition)

model = model_data %>% 
  lm(Contribution ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = Contribution ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.3347 -1.3347 -0.2581  3.6653  3.7419 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          6.33468    0.20220  31.329   <2e-16 ***
## ConditionSubjective -0.07661    0.28595  -0.268    0.789    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.184 on 494 degrees of freedom
## Multiple R-squared:  0.0001453,  Adjusted R-squared:  -0.001879 
## F-statistic: 0.07178 on 1 and 494 DF,  p-value: 0.7889

The mean contribution in the numeric condition was 6.34 (SE = 0.20) and the mean contribution in the gossip condition was 6.26 (SE = 0.29). Difference in means is not significant; t(494) = -0.27, p = .79.

ggplot(data = model_data,
       mapping = aes(x = Condition, 
                     y = Contribution, 
                     color = Condition)) +
  # means with confidence intervals 
  geom_point(alpha = 0.4,
             position = position_jitter(width = 0.1, height = 0),
             size = 2)+
  stat_summary(fun.data = "mean_cl_boot",
               geom = "pointrange",
               color = "black",
               fill = "black",
               shape = 21,
               size = .5) + 
  # individual data points (jittered horizontally)
  theme_bw()+
  theme(legend.position="none")

2. We will compare the reputational information group with the control group using the following linear models. For these models, the control group will be specified as the reference level.

2a. Effect of condition on estimated group contribution mean in the previous public goods game they learned about: lm(Estimate ~ Experimental condition)

model_data_1 <- data %>% 
  filter(Condition == "Control" | Condition == 
          "Subjective")%>% 
  mutate(contributionGuess = as.numeric(contributionGuess))%>% 
  mutate(contributionExp = as.numeric(contributionExp))%>% 
  mutate(Contribution = as.numeric(Contribution))
model = model_data_1 %>% 
  lm(contributionGuess ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionGuess ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.5685 -1.5685 -0.5685  1.2954  5.4315 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           5.7046     0.1398  40.815  < 2e-16 ***
## ConditionSubjective  -1.1361     0.1955  -5.813 1.12e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.152 on 483 degrees of freedom
## Multiple R-squared:  0.06538,    Adjusted R-squared:  0.06344 
## F-statistic: 33.79 on 1 and 483 DF,  p-value: 1.119e-08

The mean contribution guess in the control condition was 5.71 (SE = 0.14) and the mean contribution guess in the gossip condition was 4.57 (SE = 0.20). Difference in means is significant; t(483) = -5.81, p < .001.

ggplot(data = model_data_1,
       mapping = aes(x = Condition, 
                     y = contributionGuess, 
                     color = Condition)) +
  # means with confidence intervals 
  geom_point(alpha = 0.4,
             position = position_jitter(width = 0.1, height = 0),
             size = 2)+
  stat_summary(fun.data = "mean_cl_boot",
               geom = "pointrange",
               color = "black",
               fill = "black",
               shape = 21,
               size = .5) + 
  # individual data points (jittered horizontally)
  theme_bw()+
  theme(legend.position="none")

2b. Effect of condition on estimated group contribution forecasts for participants’ future public goods game: lm(Forecast ~ Experimental condition)

model = model_data_1 %>% 
  lm(contributionExp ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionExp ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.6076 -0.6076 -0.3065  1.3924  4.6935 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           5.6076     0.1312  42.732   <2e-16 ***
## ConditionSubjective  -0.3011     0.1835  -1.641    0.101    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.02 on 483 degrees of freedom
## Multiple R-squared:  0.005544,   Adjusted R-squared:  0.003486 
## F-statistic: 2.693 on 1 and 483 DF,  p-value: 0.1014

The mean contribution expectation in the control condition was 5.61 (SE = 0.13) and the mean contribution expectation in the gossip condition was 5.31 (SE = 0.18). Difference in means is not significant; t(483) = -1.64, p = .10).

ggplot(data = model_data_1,
       mapping = aes(x = Condition, 
                     y = contributionExp, 
                     color = Condition)) +
  # means with confidence intervals 
  geom_point(alpha = 0.4,
             position = position_jitter(width = 0.1, height = 0),
             size = 2)+
  stat_summary(fun.data = "mean_cl_boot",
               geom = "pointrange",
               color = "black",
               fill = "black",
               shape = 21,
               size = .5) + 
  # individual data points (jittered horizontally)
  theme_bw()+
  theme(legend.position="none")

2c. Effect of condition on contribution to the group fund in their own public goods game: lm(Contribution ~ Experimental condition)

model = model_data_1 %>% 
  lm(Contribution ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = Contribution ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.2581 -1.2581 -0.2581  3.7419  3.8143 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          6.18565    0.21226  29.142   <2e-16 ***
## ConditionSubjective  0.07241    0.29683   0.244    0.807    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.268 on 483 degrees of freedom
## Multiple R-squared:  0.0001232,  Adjusted R-squared:  -0.001947 
## F-statistic: 0.05951 on 1 and 483 DF,  p-value: 0.8074

The mean contribution in the control condition was 6.19 (SE = 0.21) and the mean contribution in the gossip condition was 6.26 (SE = 0.30). Difference in means is not significant; t(483) = 0.244, p = .81).

ggplot(data = model_data_1,
       mapping = aes(x = Condition, 
                     y = Contribution, 
                     color = Condition)) +
  # means with confidence intervals 
  geom_point(alpha = 0.4,
             position = position_jitter(width = 0.1, height = 0),
             size = 2)+
  stat_summary(fun.data = "mean_cl_boot",
               geom = "pointrange",
               color = "black",
               fill = "black",
               shape = 21,
               size = .5) + 
  # individual data points (jittered horizontally)
  theme_bw()+
  theme(legend.position="none")

Pre-registered exploratory analyses

1. We will conduct within condition correlations between information we provide (perceptions of past group) and own behavior

1a. Gossip condition correlation

gossip_data <- data %>% 
  filter(Condition == "Subjective") %>% 
  mutate(Contribution = as.numeric(Contribution)) %>% 
  mutate(contributionGuess = as.numeric(contributionGuess))
cor.test(gossip_data$contributionGuess, gossip_data$Contribution)
## 
##  Pearson's product-moment correlation
## 
## data:  gossip_data$contributionGuess and gossip_data$Contribution
## t = 3.2183, df = 246, p-value = 0.001463
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.07839702 0.31761587
## sample estimates:
##       cor 
## 0.2010012

1b. Numeric condition correlation

numeric_data <- data %>% 
  filter(Condition == "Objective")%>% 
  mutate(Contribution = as.numeric(Contribution)) %>% 
  mutate(contributionGuess = as.numeric(contributionGuess))
cor.test(numeric_data$contributionGuess, numeric_data$Contribution)
## 
##  Pearson's product-moment correlation
## 
## data:  numeric_data$contributionGuess and numeric_data$Contribution
## t = 2.6991, df = 246, p-value = 0.007436
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.04599706 0.28807387
## sample estimates:
##       cor 
## 0.1695925

1c. Control condition correlation

control_data <- data %>% 
  filter(Condition == "Control")%>% 
  mutate(Contribution = as.numeric(Contribution)) %>% 
  mutate(contributionGuess = as.numeric(contributionGuess))
cor.test(control_data$contributionGuess, control_data$Contribution)
## 
##  Pearson's product-moment correlation
## 
## data:  control_data$contributionGuess and control_data$Contribution
## t = 5.0683, df = 235, p-value = 8.129e-07
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1942484 0.4243636
## sample estimates:
##       cor 
## 0.3139084

Figure

scatter_data <- data %>% 
  mutate(Contribution = as.numeric(Contribution)) %>% 
  mutate(contributionGuess = as.numeric(contributionGuess))

ggplot(scatter_data, aes(x=contributionGuess, y=Contribution, color=Condition, shape=Condition)) +
  geom_point(alpha = 0.5, position=position_jitter(height=.05, width=.05)) + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE)
## `geom_smooth()` using formula = 'y ~ x'

2. We will conduct the main regression analyses after controlling for participants self-reported demographic information.

2a. We will compare the reputational information group with the numeric information group using the following linear models. For these models, the numeric information group will be specified as the reference level.

model_data_2 <- model_data %>% 
  mutate(age = as.numeric(age)) %>% 
  mutate(household_income = as.numeric(household_income)) %>% 
  mutate(education = as.numeric(education)) %>% 
  filter(gender == 1 | gender == 2)

2a.1. Effect of condition on estimated group contribution mean in the previous public goods game they learned about, controlling for demographic information: lm(Estimate ~ Experimental condition + Demographics)

model = model_data_2 %>% 
  lm(contributionGuess ~ Condition + gender + age + household_income + education, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionGuess ~ Condition + gender + age + household_income + 
##     education, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.7976 -1.6544  0.0507  1.4762  5.5838 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          5.6239170  0.4869293  11.550  < 2e-16 ***
## ConditionSubjective -1.2468415  0.2152345  -5.793 1.26e-08 ***
## gender2             -0.0762533  0.2166656  -0.352    0.725    
## age                  0.0083245  0.0080738   1.031    0.303    
## household_income    -0.0006375  0.0457755  -0.014    0.989    
## education           -0.0345494  0.0988756  -0.349    0.727    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.343 on 475 degrees of freedom
## Multiple R-squared:  0.06983,    Adjusted R-squared:  0.06003 
## F-statistic: 7.131 on 5 and 475 DF,  p-value: 1.902e-06

The mean contribution guess in the numeric condition was 5.62 (SE = 0.49) and the mean contribution guess in the gossip condition was 4.38 (SE = 0.22), holding age, gender, education, and income constant. Difference in means is significant; t(475) = -5.79, p < .001.

2a.2. Effect of condition on estimated group contribution forecasts for participants’ future public goods game, controlling for demographic information: lm(Forecast ~ Experimental condition + Demographics)

model = model_data_2 %>% 
  lm(contributionExp ~ Condition + gender + age + household_income + education, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionExp ~ Condition + gender + age + household_income + 
##     education, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.6962 -1.0030 -0.2316  1.2981  5.0686 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          4.999999   0.427781  11.688   <2e-16 ***
## ConditionSubjective -0.295520   0.189089  -1.563   0.1188    
## gender2             -0.463987   0.190347  -2.438   0.0152 *  
## age                  0.014399   0.007093   2.030   0.0429 *  
## household_income     0.061367   0.040215   1.526   0.1277    
## education           -0.015978   0.086865  -0.184   0.8541    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.059 on 475 degrees of freedom
## Multiple R-squared:  0.02882,    Adjusted R-squared:  0.01859 
## F-statistic: 2.819 on 5 and 475 DF,  p-value: 0.01604

The mean expected contribution in the numeric condition was 5.00 (SE = 0.43) and the mean expected contribution in the gossip condition was 4.71 (SE = 0.19), holding age, gender, education, and income constant. Difference in means is not significant; t(475) = -1.56, p = .12.

2a.3. Effect of condition on contribution to the group fund in their own public goods game, controlling for demographic information: lm(Contribution ~ Experimental condition + Demographics)

model = model_data_2 %>% 
  lm(Contribution ~ Condition + gender + age + household_income + education, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = Contribution ~ Condition + gender + age + household_income + 
##     education, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.6801 -1.5484 -0.2146  3.4720  4.1382 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          5.692598   0.664826   8.563   <2e-16 ***
## ConditionSubjective -0.046475   0.293869  -0.158    0.874    
## gender2             -0.228628   0.295823  -0.773    0.440    
## age                  0.003392   0.011024   0.308    0.758    
## household_income     0.005363   0.062499   0.086    0.932    
## education            0.172695   0.134999   1.279    0.201    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.199 on 475 degrees of freedom
## Multiple R-squared:  0.005623,   Adjusted R-squared:  -0.004844 
## F-statistic: 0.5372 on 5 and 475 DF,  p-value: 0.7481

The mean contribution in the numeric condition was 5.69 (SE = 0.67) and the mean contribution in the gossip condition was 5.65 (SE = 0.30), holding age, gender, education, and income constant. Difference in means is not significant; t(475) = -0.16, p = .87.

2b. We will compare the control group with the numeric information group using the following linear models. For these models, the control group will be specified as the reference level.

model_data_3 <- model_data_1 %>% 
  mutate(age = as.numeric(age)) %>% 
  mutate(household_income = as.numeric(household_income)) %>% 
  mutate(education = as.numeric(education)) %>% 
  filter(gender == 1 | gender == 2)

2b.1. Effect of condition on estimated group contribution mean in the previous public goods game they learned about, controlling for demographic information: lm(Estimate ~ Experimental condition + Demographics)

model = model_data_3 %>% 
  lm(contributionGuess ~ Condition + gender + age + household_income + education, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionGuess ~ Condition + gender + age + household_income + 
##     education, data = .)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -4.848 -1.367 -0.483  1.416  5.585 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          5.338251   0.459900  11.607  < 2e-16 ***
## ConditionSubjective -1.151752   0.199040  -5.787 1.32e-08 ***
## gender2             -0.055934   0.200491  -0.279    0.780    
## age                  0.011854   0.007963   1.489    0.137    
## household_income     0.005369   0.043505   0.123    0.902    
## education           -0.031401   0.090548  -0.347    0.729    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.154 on 467 degrees of freedom
## Multiple R-squared:  0.07306,    Adjusted R-squared:  0.06314 
## F-statistic: 7.362 on 5 and 467 DF,  p-value: 1.172e-06

The mean contribution guess in the control condition was 5.34 (SE = 0.46) and the mean contribution guess in the gossip condition was 4.19 (SE = 0.20), holding age, gender, education, and income constant. Difference in means is significant; t(467) = -5.79, p < .001.

2b.2. Effect of condition on estimated group contribution forecasts for participants’ future public goods game, controlling for demographic information: lm(Forecast ~ Experimental condition + Demographics)

model = model_data_3 %>% 
  lm(contributionExp ~ Condition + gender + age + household_income + education, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionExp ~ Condition + gender + age + household_income + 
##     education, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.7957 -0.8432 -0.3002  1.3980  4.9349 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          4.990888   0.431684  11.561   <2e-16 ***
## ConditionSubjective -0.276651   0.186828  -1.481    0.139    
## gender2             -0.216791   0.188190  -1.152    0.250    
## age                  0.012046   0.007474   1.612    0.108    
## household_income     0.048880   0.040836   1.197    0.232    
## education           -0.007991   0.084992  -0.094    0.925    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.022 on 467 degrees of freedom
## Multiple R-squared:  0.01507,    Adjusted R-squared:  0.004529 
## F-statistic: 1.429 on 5 and 467 DF,  p-value: 0.2122

The mean expected contribution in the control condition was 4.99 (SE = 0.43) and the mean contribution expectation in the gossip condition was 4.71 (SE = 0.19), holding age, gender, education, and income constant. Difference in means is not significant; t(467) = -1.48, p = .14.

2b.3. Effect of condition on contribution to the group fund in their own public goods game, controlling for demographic information: lm(Contribution ~ Experimental condition + Demographics)

model = model_data_3 %>% 
  lm(Contribution ~ Condition + gender + age + household_income + education, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = Contribution ~ Condition + gender + age + household_income + 
##     education, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.7629 -1.5496 -0.2485  3.5910  4.1629 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          5.912166   0.701107   8.433 4.25e-16 ***
## ConditionSubjective  0.143555   0.303432   0.473    0.636    
## gender2             -0.189562   0.305644  -0.620    0.535    
## age                  0.009971   0.012139   0.821    0.412    
## household_income     0.024758   0.066323   0.373    0.709    
## education           -0.059661   0.138038  -0.432    0.666    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.284 on 467 degrees of freedom
## Multiple R-squared:  0.002981,   Adjusted R-squared:  -0.007694 
## F-statistic: 0.2792 on 5 and 467 DF,  p-value: 0.9245

The mean contribution in the control condition was 5.91 (SE = 0.70) and the mean contribution in the gossip condition was 6.06 (SE = 0.30), holding age, gender, education, and income constant. Difference in means is not significant; t(467) = 0.47, p = .64.

3. We will conduct the main regression analyses after controlling for participants self-reported trust, cynicism, and critical reasoning items.

3a. We will compare the reputational information group with the numeric information group using the following linear models. For these models, the numeric information group will be specified as the reference level.

model_data_4 <- model_data %>% 
  mutate(trust = as.numeric(trust)) %>% 
  mutate(cynicism_1 = as.numeric(cynicism_1)) %>% 
  mutate(cynicism_2 = as.numeric(cynicism_2)) %>% 
  rowwise() %>% 
  mutate(cynicism_score = mean(c_across(starts_with("cyn")), na.rm = T)) %>% 
  ungroup() %>% 
  mutate(CRT_1 = ifelse(CRT_1 == "5", 1, 0)) %>% 
  mutate(CRT_2 = ifelse(CRT_2 == "5", 1, 0)) %>% 
  mutate(CRT_3 = ifelse(CRT_3 == "47", 1, 0)) %>% 
  rowwise() %>% 
  mutate(CRT_score = sum(c_across(starts_with("CRT")), na.rm = T)) %>% 
  ungroup()

3a.1. Effect of condition on estimated group contribution mean in the previous public goods game they learned about, controlling for other variables: lm(Estimate ~ Experimental condition + Other)

model = model_data_4 %>% 
  lm(contributionGuess ~ Condition + trust + cynicism_score + CRT_score, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionGuess ~ Condition + trust + cynicism_score + 
##     CRT_score, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.9034 -1.6813  0.0515  1.3900  5.7280 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          5.72930    0.64861   8.833  < 2e-16 ***
## ConditionSubjective -1.21046    0.21041  -5.753 1.54e-08 ***
## trust                0.06268    0.08474   0.740    0.460    
## cynicism_score      -0.05419    0.07885  -0.687    0.492    
## CRT_score           -0.01569    0.09075  -0.173    0.863    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.335 on 491 degrees of freedom
## Multiple R-squared:  0.0663, Adjusted R-squared:  0.05869 
## F-statistic: 8.716 on 4 and 491 DF,  p-value: 8.39e-07

The mean contribution guess in the numeric condition was 5.73 (SE = 0.65) and the mean contribution guess in the gossip condition was 4.52 (SE = 0.21), holding trust, cynicism, and critical reasoning constant. Difference in means is significant; t(491) = -5.75, p < .001.

3a.2. Effect of condition on estimated group contribution forecasts for participants’ future public goods game, controlling for other variables: lm(Forecast ~ Experimental condition + Other)

model = model_data_4 %>% 
  lm(contributionExp ~ Condition + trust + cynicism_score + CRT_score, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionExp ~ Condition + trust + cynicism_score + 
##     CRT_score, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.9296 -0.9356 -0.2804  1.2901  4.9384 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          4.65497    0.56711   8.208 1.99e-15 ***
## ConditionSubjective -0.30004    0.18397  -1.631   0.1035    
## trust                0.16394    0.07409   2.213   0.0274 *  
## cynicism_score      -0.01549    0.06895  -0.225   0.8223    
## CRT_score            0.16198    0.07935   2.041   0.0418 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.042 on 491 degrees of freedom
## Multiple R-squared:  0.02848,    Adjusted R-squared:  0.02056 
## F-statistic: 3.598 on 4 and 491 DF,  p-value: 0.00664

The mean contribution expectation in the numeric condition was 4.66 (SE = 0.57) and the mean contribution expectation in the gossip condition was 4.36 (SE = 0.18), holding trust, cynicism, and critical reasoning constant. Difference in means is not significant; t(491) = -1.63, p = 0.10.

3a.3. Effect of condition on contribution to the group fund in their own public goods game, controlling for other variables: lm(Contribution ~ Experimental condition + Other)

model = model_data_4 %>% 
  lm(Contribution ~ Condition + trust + cynicism_score + CRT_score, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = Contribution ~ Condition + trust + cynicism_score + 
##     CRT_score, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.0547 -1.8328 -0.1698  3.2360  4.9928 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          6.11113    0.87743   6.965 1.06e-11 ***
## ConditionSubjective -0.12364    0.28464  -0.434    0.664    
## trust                0.17979    0.11463   1.568    0.117    
## cynicism_score      -0.16572    0.10667  -1.554    0.121    
## CRT_score            0.05139    0.12277   0.419    0.676    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.159 on 491 degrees of freedom
## Multiple R-squared:  0.02202,    Adjusted R-squared:  0.01405 
## F-statistic: 2.764 on 4 and 491 DF,  p-value: 0.02708

The mean contribution in the numeric condition was 6.11 (SE = 0.88) and the mean contribution in the gossip condition was 5.99 (SE = 0.29), holding trust, cynicism, and critical reasoning constant. Difference in means is not significant; t(491) = -0.43, p = 0.66.

3b. We will compare the control group with the numeric information group using the following linear models. For these models, the control group will be specified as the reference level.

model_data_5 <- model_data_1 %>% 
  mutate(trust = as.numeric(trust)) %>% 
  mutate(cynicism_1 = as.numeric(cynicism_1)) %>% 
  mutate(cynicism_2 = as.numeric(cynicism_2)) %>% 
  rowwise() %>% 
  mutate(cynicism_score = mean(c_across(starts_with("cyn")), na.rm = T)) %>% 
  ungroup() %>% 
  mutate(CRT_1 = ifelse(CRT_1 == "5", 1, 0)) %>% 
  mutate(CRT_2 = ifelse(CRT_2 == "5", 1, 0)) %>% 
  mutate(CRT_3 = ifelse(CRT_3 == "47", 1, 0)) %>% 
  rowwise() %>% 
  mutate(CRT_score = sum(c_across(starts_with("CRT")), na.rm = T)) %>% 
  ungroup()

3b.1. Effect of condition on estimated group contribution mean in the previous public goods game they learned about, controlling for other variables: lm(Estimate ~ Experimental condition + Other)

model = model_data_5 %>% 
  lm(contributionGuess ~ Condition + trust + cynicism_score + CRT_score, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionGuess ~ Condition + trust + cynicism_score + 
##     CRT_score, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.9029 -1.2292 -0.3572  1.2789  5.8136 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          5.40966    0.59305   9.122  < 2e-16 ***
## ConditionSubjective -1.15244    0.19554  -5.894 7.13e-09 ***
## trust                0.09955    0.07763   1.282    0.200    
## cynicism_score      -0.05115    0.07245  -0.706    0.481    
## CRT_score            0.03421    0.08359   0.409    0.683    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.148 on 480 degrees of freedom
## Multiple R-squared:  0.07472,    Adjusted R-squared:  0.06701 
## F-statistic: 9.691 on 4 and 480 DF,  p-value: 1.522e-07

The mean contribution guess in the control condition was 5.41 (SE = 0.59) and the mean contribution guess in the gossip condition was 4.26 (SE = 0.20), holding trust, cynicism, and critical reasoning constant. Difference in means is significant; t(480) = -5.89, p < .001.

3b.2. Effect of condition on estimated group contribution forecasts for participants’ future public goods game, controlling for other variables: lm(Forecast ~ Experimental condition + Other)

model = model_data_5 %>% 
  lm(contributionExp ~ Condition + trust + cynicism_score + CRT_score, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionExp ~ Condition + trust + cynicism_score + 
##     CRT_score, data = .)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -5.908 -1.017 -0.264  1.310  5.219 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          4.48984    0.54911   8.177 2.63e-15 ***
## ConditionSubjective -0.34388    0.18106  -1.899   0.0581 .  
## trust                0.20046    0.07188   2.789   0.0055 ** 
## cynicism_score      -0.01695    0.06708  -0.253   0.8006    
## CRT_score            0.19201    0.07740   2.481   0.0135 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.988 on 480 degrees of freedom
## Multiple R-squared:  0.04252,    Adjusted R-squared:  0.03454 
## F-statistic: 5.328 on 4 and 480 DF,  p-value: 0.0003318

The mean contribution expectation in the control condition was 4.49 (SE = 0.55) and the mean contribution expectation in the gossip condition was 4.15 (SE = 0.18), holding trust, cynicism, and critical reasoning constant. Difference in means is not significant; t(480) = -1.90, p = 0.06.

3b.3. Effect of condition on contribution to the group fund in their own public goods game, controlling for other variables: lm(Contribution ~ Experimental condition + Other)

model = model_data_5 %>% 
  lm(Contribution ~ Condition + trust + cynicism_score + CRT_score, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = Contribution ~ Condition + trust + cynicism_score + 
##     CRT_score, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.2550 -1.9353 -0.2804  3.2026  5.3235 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          5.08788    0.88869   5.725 1.82e-08 ***
## ConditionSubjective  0.03256    0.29303   0.111  0.91157    
## trust                0.32528    0.11633   2.796  0.00538 ** 
## cynicism_score      -0.10988    0.10856  -1.012  0.31197    
## CRT_score            0.05775    0.12527   0.461  0.64498    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.218 on 480 degrees of freedom
## Multiple R-squared:  0.0362, Adjusted R-squared:  0.02817 
## F-statistic: 4.507 on 4 and 480 DF,  p-value: 0.001391

The mean contribution in the control condition was 5.09 (SE = 0.89) and the mean contribution in the gossip condition was 5.12 (SE = 0.29), holding trust, cynicism, and critical reasoning constant. Difference in means is not significant; t(480) = 0.11, p = 0.91.

4. We will compare the numeric information group with the control group using the following linear models. For these models, the control group will be specified as the reference level.

model_data_6 <- data %>% 
  filter(Condition == "Control" | Condition == 
          "Objective")%>% 
  mutate(contributionGuess = as.numeric(contributionGuess))%>% 
  mutate(contributionExp = as.numeric(contributionExp))%>% 
  mutate(Contribution = as.numeric(Contribution))

4a. Effect of condition on estimated group contribution mean in the previous public goods game they learned about: lm(Estimate ~ Experimental condition)

model = model_data_6 %>% 
  lm(contributionGuess ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionGuess ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.7661 -0.7661 -0.7046  1.2954  4.2954 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         5.70464    0.12455  45.802   <2e-16 ***
## ConditionObjective  0.06149    0.17418   0.353    0.724    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.917 on 483 degrees of freedom
## Multiple R-squared:  0.000258,   Adjusted R-squared:  -0.001812 
## F-statistic: 0.1246 on 1 and 483 DF,  p-value: 0.7242

The mean contribution guess in the control condition was 5.71 (SE = 0.13) and the mean contribution guess in the numeric condition was 5.77 (SE = 0.17). Difference in means is not significant; t(483) = 0.35, p = 0.72.

4b. Effect of condition on contribution to the group fund in their own public goods game: lm(Contribution ~ Experimental condition)

model = model_data_6 %>% 
  lm(Contribution ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = Contribution ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.3347 -1.3347 -0.3347  3.6653  3.8143 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          6.1857     0.1934  31.978   <2e-16 ***
## ConditionObjective   0.1490     0.2705   0.551    0.582    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.978 on 483 degrees of freedom
## Multiple R-squared:  0.000628,   Adjusted R-squared:  -0.001441 
## F-statistic: 0.3035 on 1 and 483 DF,  p-value: 0.582

The mean contribution in the control condition was 6.19 (SE = 0.19) and the mean contribution in the numeric condition was 6.34 (SE = 0.27). Difference in means is not significant; t(483) = 0.55, p = .58.

5. We will use the number of negative pieces of information received as a moderator in the main models comparing reputational information to numeric information.

5a. Effect of condition on estimated group mean in the previous public goods game they learned about moderated by number of negative notes: lm(Estimate ~ Experimental condition * Number of Negative Notes)

model_data_7 <- model_data %>% 
  mutate(negativeNotes_Number = as.numeric(negativeNotes_Number)) %>% 
  rowwise() %>% 
  mutate(negativeNotes_Number = (negativeNotes_Number - 1)) %>% 
  ungroup()
model = model_data_7 %>% 
  lm(contributionGuess ~ Condition * negativeNotes_Number, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = contributionGuess ~ Condition * negativeNotes_Number, 
##     data = .)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -6.405 -1.168 -0.364  1.411  5.861 
## 
## Coefficients:
##                                          Estimate Std. Error t value Pr(>|t|)
## (Intercept)                                7.4049     0.3410  21.714  < 2e-16
## ConditionSubjective                        0.4098     0.4816   0.851 0.395246
## negativeNotes_Number                      -0.6186     0.1188  -5.209  2.8e-07
## ConditionSubjective:negativeNotes_Number  -0.6067     0.1677  -3.619 0.000327
##                                             
## (Intercept)                              ***
## ConditionSubjective                         
## negativeNotes_Number                     ***
## ConditionSubjective:negativeNotes_Number ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.072 on 492 degrees of freedom
## Multiple R-squared:  0.2632, Adjusted R-squared:  0.2587 
## F-statistic: 58.57 on 3 and 492 DF,  p-value: < 2.2e-16

For people in the gossip condition, they estimate .61 less points than participants in the numeric condition for additional negative gossip note, on average. So while participants in the numeric condition decrease their guess according to the number of negative notes (coef = -.62), participants in the gossip condition see an additional decrease for each one unit increase in number of negative notes.

5b.Effect of condition on contribution to the group fund in their own public goods game moderated by number of negative notes: lm(Contribution ~ Experimental condition * Number of Negative Notes)

model = model_data_7 %>% 
  lm(Contribution ~ Condition * negativeNotes_Number, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = Contribution ~ Condition * negativeNotes_Number, 
##     data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.7024 -1.4794 -0.2334  3.5206  3.9665 
## 
## Coefficients:
##                                          Estimate Std. Error t value Pr(>|t|)
## (Intercept)                                6.9253     0.5242  13.211   <2e-16
## ConditionSubjective                       -0.4810     0.7403  -0.650    0.516
## negativeNotes_Number                      -0.2229     0.1825  -1.221    0.223
## ConditionSubjective:negativeNotes_Number   0.1526     0.2577   0.592    0.554
##                                             
## (Intercept)                              ***
## ConditionSubjective                         
## negativeNotes_Number                        
## ConditionSubjective:negativeNotes_Number    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.185 on 492 degrees of freedom
## Multiple R-squared:  0.003469,   Adjusted R-squared:  -0.002608 
## F-statistic: 0.5709 on 3 and 492 DF,  p-value: 0.6344

For people in the gossip condition, they contribute .15 more points (not significant) than participants in the numeric condition for additional negative gossip note, on average.

6. We will conduct comparisons between the reputational information group, the numeric information group, and the control group on additional, exploratory dependent variables.

6a. Similarity to perceived group norm

model_data <- model_data %>% 
  mutate(norms_1 = as.numeric(norms_1))

model_data_1 <- model_data_1 %>% 
  mutate(norms_1 = as.numeric(norms_1))

6a.1. We will compare the reputational information group with the numeric group using the following linear models. For these models, the numeric group will be specified as the reference level.

model = model_data %>% 
  lm(norms_1 ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = norms_1 ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.7742 -0.7742  0.2621  1.2258  2.2621 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          4.77419    0.10283   46.43   <2e-16 ***
## ConditionSubjective -0.03629    0.14542   -0.25    0.803    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.619 on 494 degrees of freedom
## Multiple R-squared:  0.0001261,  Adjusted R-squared:  -0.001898 
## F-statistic: 0.06228 on 1 and 494 DF,  p-value: 0.803

The mean perceived similarity to group norm in the numeric condition was 4.77 (SE = 0.10) and the mean perceived similarity to group norm in the gossip condition was 4.74 (SE = 0.15). Difference in means is not significant; t(494) = -0.25, p = .80.

6a.2. We will compare the reputational information group with the control group using the following linear models. For these models, the numeric group will be specified as the reference level.

model = model_data_1 %>% 
  lm(norms_1 ~ Condition, data = .)
model %>% 
  summary()
## 
## Call:
## lm(formula = norms_1 ~ Condition, data = .)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.0380 -1.0380  0.2621  1.2621  2.2621 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           5.0380     0.1053  47.856   <2e-16 ***
## ConditionSubjective  -0.3001     0.1472  -2.038   0.0421 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.621 on 483 degrees of freedom
## Multiple R-squared:  0.008528,   Adjusted R-squared:  0.006475 
## F-statistic: 4.155 on 1 and 483 DF,  p-value: 0.04207

The mean perceived similarity to group norm in the control condition was 5.04 (SE = 0.10) and the mean perceived similarity to group norm in the gossip condition was 4.74 (SE = 0.15). Difference in means is significant; t(483) = -2.04, p = 0.04.

7. We will run a correlation test between the number of negative reputational notes participants received (e.g., 4 negative notes), and the participants’ contributions to the group fund.

gossip_data <- gossip_data %>% 
  mutate(negativeNotes_Number = as.numeric(negativeNotes_Number)) %>% 
  rowwise() %>% 
  mutate(negativeNotes_Number = (negativeNotes_Number - 1)) %>% 
  ungroup()

cor.test(gossip_data$negativeNotes_Number, gossip_data$Contribution)
## 
##  Pearson's product-moment correlation
## 
## data:  gossip_data$negativeNotes_Number and gossip_data$Contribution
## t = -0.35605, df = 246, p-value = 0.7221
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.1468470  0.1021609
## sample estimates:
##         cor 
## -0.02269502

Main takeaways

The data suggests, very broadly, that participants in the gossip condition view past players more negatively than participants in the numeric condition and the control condition. However, this does not affect their future behavior or expectations of future group mates. This suggests that in the face of gossip, participants are able to put what they observe to the side and act prosocially. Wow!