SETUP

In this dataset (“experiment 0”), 40 adult participants from a Prolific sample viewed 24 posts (half true, half false; half with a source, half without), made ratings on their likelihood of liking and sharing each post, and provided an open response justification of why they chose that rating. As a reminder, 24 was only half of the total 48 posts, so in this sample, people only viewed half of the total stimuli.

Error bars in all graphs are standard error.

data <- readr::read_csv("IG-exp0-datalong.csv", col_names = TRUE)
## Parsed with column specification:
## cols(
##   Duration..in.seconds. = col_double(),
##   ID = col_character(),
##   Age = col_double(),
##   Gender = col_character(),
##   Race = col_character(),
##   Comments = col_character(),
##   Version = col_character(),
##   Why = col_character(),
##   Question_Num = col_double(),
##   Question_Type = col_character(),
##   Post = col_character(),
##   Accuracy = col_logical(),
##   Source = col_character(),
##   Prop_Known = col_double(),
##   Difficulty = col_character(),
##   Rating = col_double()
## )
data2 <- readr::read_csv("IG-exp0-datalong2.csv", col_names = TRUE)
## Parsed with column specification:
## cols(
##   Duration..in.seconds. = col_double(),
##   ID = col_character(),
##   Age = col_double(),
##   Gender = col_character(),
##   Race = col_character(),
##   Comments = col_character(),
##   Version = col_character(),
##   Question_Num = col_double(),
##   Post = col_character(),
##   Accuracy = col_logical(),
##   Source = col_character(),
##   Prop_Known = col_double(),
##   Difficulty = col_character(),
##   Like_Explain = col_character(),
##   Share_Why = col_character(),
##   Like_Rate = col_double(),
##   Share_Rate = col_double()
## )
#Export data for comment review
exp0_comments <- data2 %>%
  filter(!is.na(ID)) %>%
  group_by(ID)

write.csv(exp0_comments, "IG-exp0_comments.csv", row.names = FALSE)  

Load data

mean(data$Age, na.rm = TRUE)
## [1] 33.44737

Mean age

data %>%
  group_by(Gender) %>%
  summarise(n()/48)
## # A tibble: 3 x 2
##   Gender                  `n()/48`
## * <chr>                      <dbl>
## 1 Female                        27
## 2 Male                           9
## 3 Non-binary/third gender        2

Gender distribution

data %>%
  filter(!is.na(ID)) %>%
  group_by(ID,Accuracy,Question_Type,Source) %>%
  summarise(
    mean_rating = mean(Rating,na.rm=TRUE),
  ) %>%
  group_by(Accuracy,Question_Type,Source) %>%
  summarise(
    mean_rate = mean(mean_rating,na.rm=TRUE),
    sd_rate = sd(mean_rating,),
    se_rate = sd(mean_rating,)/sqrt(n()),
  )
## `summarise()` has grouped output by 'ID', 'Accuracy', 'Question_Type'. You can override using the `.groups` argument.
## `summarise()` has grouped output by 'Accuracy', 'Question_Type'. You can override using the `.groups` argument.
## # A tibble: 8 x 6
## # Groups:   Accuracy, Question_Type [4]
##   Accuracy Question_Type Source mean_rate sd_rate se_rate
##   <lgl>    <chr>         <chr>      <dbl>   <dbl>   <dbl>
## 1 FALSE    Like          No          3.89    2.39   0.388
## 2 FALSE    Like          Yes         3.61    2.24   0.363
## 3 FALSE    Share         No          3.16    2.27   0.369
## 4 FALSE    Share         Yes         3.03    2.17   0.352
## 5 TRUE     Like          No          4.07    2.10   0.341
## 6 TRUE     Like          Yes         4.10    2.27   0.368
## 7 TRUE     Share         No          3.39    2.19   0.355
## 8 TRUE     Share         Yes         3.40    2.41   0.390

Summary table of ratings as a function of question type, post accuracy, and source presence

data %>%
  filter(!is.na(ID)) %>%
  group_by(ID,Accuracy,Question_Type,Source) %>%
  summarise(
    mean_rating = mean(Rating,na.rm=TRUE),
  ) %>%
  group_by(Accuracy,Question_Type,Source) %>%
  summarise(
    mean_rate = mean(mean_rating,na.rm=TRUE),
    sd_rate = sd(mean_rating,),
    se_rate = sd(mean_rating,)/sqrt(n()),
  ) %>%
  ggplot(.) + aes(x = Question_Type, y = mean_rate, fill = Accuracy) +
      geom_bar(stat = "summary", fun.y = "mean", position = "dodge") + 
      xlab("Type of Rating") + ylab("Likelihood of Liking or Sharing Post") + labs(fill = "Accuracy of item") +
      theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black")) +
   geom_errorbar(aes(ymin= mean_rate - se_rate, ymax= mean_rate + se_rate), position=position_dodge(width=0.9), width=.1) +  geom_text(aes(label=round(mean_rate,digits=2)), position=position_dodge(width=.9), vjust=4.5) +  scale_fill_manual(values = wes_palette("GrandBudapest1")) + facet_wrap(vars(Source))
## `summarise()` has grouped output by 'ID', 'Accuracy', 'Question_Type'. You can override using the `.groups` argument.
## `summarise()` has grouped output by 'Accuracy', 'Question_Type'. You can override using the `.groups` argument.

Like and share ratings as a function of post accuracy and source presence.

data %>%
  filter(!is.na(ID),!is.na(Difficulty)) %>%
  group_by(ID,Accuracy,Question_Type,Difficulty) %>%
  summarise(
    mean_rating = mean(Rating,na.rm=TRUE),
  ) %>%
  group_by(Accuracy,Question_Type,Difficulty) %>%
  summarise(
    mean_rate = mean(mean_rating,na.rm=TRUE),
    sd_rate = sd(mean_rating,),
    se_rate = sd(mean_rating,)/sqrt(n()),
  ) %>%
  ggplot(.) + aes(x = Question_Type, y = mean_rate, fill = Accuracy) +
      geom_bar(stat = "summary", fun.y = "mean", position = "dodge") + 
      xlab("Type of Rating") + ylab("Likelihood of Liking or Sharing Post") + labs(fill = "Accuracy of item") +
      theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black")) +
   geom_errorbar(aes(ymin= mean_rate - se_rate, ymax= mean_rate + se_rate), position=position_dodge(width=0.9), width=.1) +  geom_text(aes(label=round(mean_rate,digits=2)), position=position_dodge(width=.9), vjust=4.5) +  scale_fill_manual(values = wes_palette("GrandBudapest1")) + facet_wrap(vars(Difficulty))
## `summarise()` has grouped output by 'ID', 'Accuracy', 'Question_Type'. You can override using the `.groups` argument.
## `summarise()` has grouped output by 'Accuracy', 'Question_Type'. You can override using the `.groups` argument.

Like and share ratings as a function of post accuracy and how well-known the post is.

Interestingly, people report being more likely to share true than false posts for LESSER known items as compared to well-known items. In other words, people are just as likely to share posts that are well-known to be true and false, but are more likely to share true posts than false posts when the info is lesser known.

data %>%
  filter(!is.na(ID),!is.na(Difficulty)) %>%
  filter(Question_Type == "Like") %>%
  group_by(ID,Accuracy,Difficulty,Source) %>%
  summarise(
    mean_rating = mean(Rating,na.rm=TRUE),
  ) %>%
  group_by(Accuracy,Difficulty,Source) %>%
  summarise(
    mean_rate = mean(mean_rating,na.rm=TRUE),
    sd_rate = sd(mean_rating,),
    se_rate = sd(mean_rating,)/sqrt(n()),
  ) %>%
  ggplot(.) + aes(x = Difficulty, y = mean_rate, fill = Accuracy) +
      geom_bar(stat = "summary", fun.y = "mean", position = "dodge") + 
      xlab("Difficulty of item") + ylab("Likelihood of Liking Post") + labs(fill = "Accuracy of item") +
      theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black")) +
   geom_errorbar(aes(ymin= mean_rate - se_rate, ymax= mean_rate + se_rate), position=position_dodge(width=0.9), width=.1) +  geom_text(aes(label=round(mean_rate,digits=2)), position=position_dodge(width=.9), vjust=4.5) +  scale_fill_manual(values = wes_palette("GrandBudapest1")) + facet_wrap(vars(Source))
## `summarise()` has grouped output by 'ID', 'Accuracy', 'Difficulty'. You can override using the `.groups` argument.
## `summarise()` has grouped output by 'Accuracy', 'Difficulty'. You can override using the `.groups` argument.

Like ratings as a function of post accuracy, source presence, and how well-known the post is.

data %>%
  filter(!is.na(ID),!is.na(Difficulty)) %>%
  filter(Question_Type == "Share") %>%
  group_by(ID,Accuracy,Difficulty,Source) %>%
  summarise(
    mean_rating = mean(Rating,na.rm=TRUE),
  ) %>%
  group_by(Accuracy,Difficulty,Source) %>%
  summarise(
    mean_rate = mean(mean_rating,na.rm=TRUE),
    sd_rate = sd(mean_rating,),
    se_rate = sd(mean_rating,)/sqrt(n()),
  ) %>%
  ggplot(.) + aes(x = Difficulty, y = mean_rate, fill = Accuracy) +
      geom_bar(stat = "summary", fun.y = "mean", position = "dodge") + 
      xlab("Difficulty of item") + ylab("Likelihood of Sharing Post") + labs(fill = "Accuracy of item") +
      theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black")) +
   geom_errorbar(aes(ymin= mean_rate - se_rate, ymax= mean_rate + se_rate), position=position_dodge(width=0.9), width=.1) +  geom_text(aes(label=round(mean_rate,digits=2)), position=position_dodge(width=.9), vjust=4.5) +  scale_fill_manual(values = wes_palette("GrandBudapest1")) + facet_wrap(vars(Source))
## `summarise()` has grouped output by 'ID', 'Accuracy', 'Difficulty'. You can override using the `.groups` argument.
## `summarise()` has grouped output by 'Accuracy', 'Difficulty'. You can override using the `.groups` argument.

Share ratings as a function of post accuracy, source presence, and how well-known the post is.