Data processing

specify paths

US_PATH <- "data/1_raw_data/US/"
CN_PATH <- "data/1_raw_data/CN/"

MERGED_DATA_PATH <- here("data/2_merged/merged_all.csv")
MERGED_DEMOGS_PATH <- here("data/2_merged/merged_demogs.csv")


US_TBA_FD_PATH <- here("data/to_be_annotated/US/us_tba_fd.csv")
US_TBA_CA_PATH <- here("data/to_be_annotated/US/us_tba_ca.csv")
US_SYMS_LABEL_PATH <- here("data/to_be_annotated/US/us_syms_label.csv")
#funnel debriefing and sanity check 
US_HUMANREAD_PATH <- here("data/to_be_annotated/US/us_hr.csv")

CN_TBA_FD_PATH <- here("data/to_be_annotated/CN/cn_tba_fd.csv")
CN_TBA_CA_PATH <- here("data/to_be_annotated/CN/cn_tba_ca.csv")

CN_SYMS_LABEL_PATH <- here("data/to_be_annotated/CN/cn_syms_label.csv")
CN_HUMANREAD_PATH <- here("data/to_be_annotated/CN/cn_hr.csv")

# task-based exclusion and completion based exclusion
TRIMMED_DATA_PATH <- here("data/3_trimmed/trimmed_all.csv")
TRIMMED_DEMOGS_PATH <- here("data/3_trimmed/trimmed_demogs.csv")



# tidy data 
PROCESSED_MAIN_PATH <- here("data/4_processed/tidy_main.csv")
CONSERV_MAIN_PATH <- here("data/4_processed/tidy_conserv.csv")
HAND_EXCLUSION <- c(
                  # participant requested 
                  "SS1609806859776"
                  
)

tidy_d <- read_csv(PROCESSED_MAIN_PATH) %>% 
  filter(! subject %in% HAND_EXCLUSION)
## Warning: Missing column names filled in: 'X1' [1]
## Parsed with column specification:
## cols(
##   X1 = col_double(),
##   subject = col_character(),
##   culture = col_character(),
##   task_name = col_character(),
##   task_info = col_character(),
##   trial_info = col_double(),
##   resp_type = col_character(),
##   resp = col_double()
## )
## Warning: 17830 parsing failures.
##  row        col expected actual                                                                            file
## 9113 trial_info a double   RMTS '/Users/caoanjie/Desktop/projects/CCRR_analysis/data/4_processed/tidy_main.csv'
## 9114 trial_info a double   RMTS '/Users/caoanjie/Desktop/projects/CCRR_analysis/data/4_processed/tidy_main.csv'
## 9115 trial_info a double   RMTS '/Users/caoanjie/Desktop/projects/CCRR_analysis/data/4_processed/tidy_main.csv'
## 9116 trial_info a double   RMTS '/Users/caoanjie/Desktop/projects/CCRR_analysis/data/4_processed/tidy_main.csv'
## 9117 trial_info a double   RMTS '/Users/caoanjie/Desktop/projects/CCRR_analysis/data/4_processed/tidy_main.csv'
## .... .......... ........ ...... ...............................................................................
## See problems(...) for more details.

Descriptives

main

tidy_d %>% 
  group_by(subject, culture) %>%
  summarise(n = n()) %>%
  group_by(culture) %>%
  count()
## `summarise()` regrouping output by 'subject' (override with `.groups` argument)
## # A tibble: 2 x 2
## # Groups:   culture [2]
##   culture     n
##   <chr>   <int>
## 1 CN        160
## 2 US        108

RMTS

Summary

plot proportion relation match

#get means by ppt and group by country (0 is object match, 1 is relation)
RMTS_ms <- tidy_d %>%
  filter(task_name == "RMTS") %>% 
  group_by(subject, culture) %>%
  summarise(mean = mean(resp)) %>%
  group_by(culture) %>%
  tidyboot_mean(mean, na.rm=T)
## `summarise()` regrouping output by 'subject' (override with `.groups` argument)
## Warning: `data_frame()` is deprecated as of tibble 1.1.0.
## Please use `tibble()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
## Warning: Problem with `mutate()` input `strap`.
## ℹ `as_data_frame()` is deprecated as of tibble 2.0.0.
## Please use `as_tibble()` instead.
## The signature and semantics have changed, see `?as_tibble`.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
## ℹ Input `strap` is `purrr::map(strap, dplyr::as_data_frame)`.
## Warning: `as_data_frame()` is deprecated as of tibble 2.0.0.
## Please use `as_tibble()` instead.
## The signature and semantics have changed, see `?as_tibble`.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
#plot means and CIs
ggplot(RMTS_ms, 
       aes(x = culture, y = mean, col = culture)) + 
  geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper)) + 
  ylab("Proportion relation match in ambiguous RMTS") + 
  xlab("Country") + 
  ylim(c(0,1)) + 
  geom_hline(yintercept = .5, lty = 2) + 
  theme_classic() + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")

Distribution

response histogram

#plot histogram
tidy_d %>%
  filter(task_name == "RMTS")  %>%
  group_by(subject, culture) %>%
  summarise(mean = mean(resp)) %>%
  ggplot(aes(x = mean)) +
  geom_histogram() +
  facet_wrap(~culture)
## `summarise()` regrouping output by 'subject' (override with `.groups` argument)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Ravens

Summary

#get means by ppt and group by country
RV_ms <- tidy_d %>%
  filter(task_name == "RV")  %>%
  group_by(subject, culture) %>%
  summarise(mean = mean(resp)) %>%
  group_by(culture) %>%
  tidyboot_mean(mean, na.rm=T) 
## `summarise()` regrouping output by 'subject' (override with `.groups` argument)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
RV_mss <- tidy_d %>%
  filter(task_name == "RV")  %>%
  group_by(subject, culture) %>%
  summarise(mean = mean(resp))
## `summarise()` regrouping output by 'subject' (override with `.groups` argument)
#plot means and CIs
ggplot(RV_ms, 
       aes(x = culture, y = mean,color = culture)) + 
  geom_violin(data = RV_mss, show.legend = FALSE,  bw = 0.08)+
  geom_jitter(data = RV_mss, width = .2, alpha = 0.2) +
  geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper), show.legend = FALSE) + 
guides(colour = guide_legend(override.aes = list(alpha = 1)))+
  ylab("Raven's SPM performance") + 
  xlab("Country") +
  ylim(0,1) + 
  scale_y_continuous(breaks = seq(0,1,0.25), 
                     labels = {function(x) paste0(as.character(x*100),"%")})+
  labs(color='Country') +
  theme_classic() +
  ggthemes::scale_color_solarized() + 
  scale_color_manual(values = c("red", "blue"))+
  theme(legend.position = "bottom")
## Scale for 'y' is already present. Adding another scale for 'y', which will
## replace the existing scale.
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.

Histograms

score histogram

#plot histogram
tidy_d %>%
  filter(task_name == "RV")  %>%
  group_by(subject, culture) %>%
  summarise(mean = mean(resp)) %>%
  ggplot(aes(x = mean)) +
  geom_histogram(binwidth = .1) +
  facet_wrap(~culture)
## `summarise()` regrouping output by 'subject' (override with `.groups` argument)

RT hist

Main

RT_raven <- read_csv(TRIMMED_DATA_PATH) %>% 
  filter(variable_type == "raven") %>% 
  select(subject, culture, rt) %>% 
  mutate(rt = as.numeric(rt))
## Warning: Missing column names filled in: 'X1' [1]
## Parsed with column specification:
## cols(
##   .default = col_character(),
##   X1 = col_double(),
##   trial_index = col_double(),
##   time_elapsed = col_double(),
##   correct = col_logical(),
##   answer_correct = col_double(),
##   passed = col_logical(),
##   labels_locations = col_logical(),
##   unique_position = col_double(),
##   activate = col_logical(),
##   startTime = col_double(),
##   endTime = col_double(),
##   RT = col_double()
## )
## See spec(...) for full column specifications.
## Warning: 149 parsing failures.
##   row              col           expected                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     actual                                                                            file
## 19952 labels_locations 1/0/T/F/TRUE/FALSE {"label_text":"{\"attrs\":{\"text\":\"我\",\"x\":170.25833518600868,\"y\":66,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":170.25833518600868,"label_y":66},{"label_text":"{\"attrs\":{\"text\":\"我\",\"x\":399.6837836859094,\"y\":339,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":399.6837836859094,"label_y":339}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          '/Users/caoanjie/Desktop/projects/CCRR_analysis/data/3_trimmed/trimmed_all.csv'
## 20102 labels_locations 1/0/T/F/TRUE/FALSE {"label_text":"{\"attrs\":{\"text\":\"我\",\"x\":144.89555371841578,\"y\":202,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":144.89555371841578,"label_y":202},{"label_text":"{\"attrs\":{\"x\":144.89555371841578,\"y\":202,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":144.89555371841578,"label_y":202},{"label_text":"{\"attrs\":{\"text\":\"爷爷奶奶\",\"x\":293.63488080021466,\"y\":159,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":293.63488080021466,"label_y":159},{"label_text":"{\"attrs\":{\"text\":\"妈妈\",\"x\":56.339822922176054,\"y\":294,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":56.339822922176054,"label_y":294},{"label_text":"{\"attrs\":{\"text\":\"爸爸\",\"x\":169.97685681117767,\"y\":314,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":169.97685681117767,"label_y":314},{"label_text":"{\"attrs\":{\"x\":169.97685681117767,\"y\":314,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":169.97685681117767,"label_y":314}                                                                                                                                                                                                        '/Users/caoanjie/Desktop/projects/CCRR_analysis/data/3_trimmed/trimmed_all.csv'
## 20318 labels_locations 1/0/T/F/TRUE/FALSE {"label_text":"{\"attrs\":{\"text\":\"我\",\"x\":102.59422209179507,\"y\":269,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":102.59422209179507,"label_y":269},{"label_text":"{\"attrs\":{\"text\":\"爸爸\",\"x\":167.37401686262075,\"y\":116,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":167.37401686262075,"label_y":116},{"label_text":"{\"attrs\":{\"x\":167.37401686262075,\"y\":116,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":167.37401686262075,"label_y":116},{"label_text":"{\"attrs\":{\"x\":167.37401686262075,\"y\":116,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":167.37401686262075,"label_y":116},{"label_text":"{\"attrs\":{\"text\":\"妈妈\",\"x\":192.86419686396277,\"y\":261,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":192.86419686396277,"label_y":261},{"label_text":"{\"attrs\":{\"text\":\"姥姥\",\"x\":251.64161672015584,\"y\":404,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":251.64161672015584,"label_y":404},{"label_text":"{\"attrs\":{\"text\":\"姥爷\",\"x\":79.59956896751928,\"y\":390,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":79.59956896751928,"label_y":390} '/Users/caoanjie/Desktop/projects/CCRR_analysis/data/3_trimmed/trimmed_all.csv'
## 20468 labels_locations 1/0/T/F/TRUE/FALSE {"label_text":"{\"attrs\":{\"text\":\"爸爸\",\"x\":113.10290798430026,\"y\":71,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":113.10290798430026,"label_y":71},{"label_text":"{\"attrs\":{\"x\":113.10290798430026,\"y\":71,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":113.10290798430026,"label_y":71},{"label_text":"{\"attrs\":{\"text\":\"妈妈\",\"x\":393.79695953753725,\"y\":106,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":393.79695953753725,"label_y":106},{"label_text":"{\"attrs\":{\"text\":\"我\",\"x\":239.48518681059687,\"y\":386,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":239.48518681059687,"label_y":386}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    '/Users/caoanjie/Desktop/projects/CCRR_analysis/data/3_trimmed/trimmed_all.csv'
## 20672 labels_locations 1/0/T/F/TRUE/FALSE {"label_text":"{\"attrs\":{\"text\":\"我\",\"x\":96.79810430798162,\"y\":100,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":96.79810430798162,"label_y":100},{"label_text":"{\"attrs\":{\"text\":\"爸爸\",\"x\":444.4342560238989,\"y\":252,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":444.4342560238989,"label_y":252},{"label_text":"{\"attrs\":{\"text\":\"妈妈\",\"x\":185.2839556687078,\"y\":251,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":185.2839556687078,"label_y":251},{"label_text":"{\"attrs\":{\"text\":\"爷爷\",\"x\":401.5049024320361,\"y\":26,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":401.5049024320361,"label_y":26},{"label_text":"{\"attrs\":{\"text\":\"奶奶\",\"x\":270.39817079971493,\"y\":69,\"fontSize\":20,\"fill\":\"white\"},\"className\":\"Text\"}","label_x":270.39817079971493,"label_y":
RT_raven_ms <- RT_raven %>% 
  group_by(subject, culture) %>%
  summarise(mean = mean(rt)) %>%
  group_by(culture) %>%
  tidyboot_mean(mean, na.rm=T)
## `summarise()` regrouping output by 'subject' (override with `.groups` argument)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
RT_raven %>% 
  ggplot(aes(x=rt))+ 
  geom_histogram()+
  facet_wrap(~culture)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(RT_raven_ms, 
       aes(x = culture, y = mean, col = culture)) + 
  geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper)) + 
  ylab("Raven RT") + 
  xlab("Country") + 
  theme_classic() + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")

Conformance preference (pens, i.e., stickers)

Plot proportion conforming choice, with size of mean scaled by n

#pen choice means 
pen_ms <- tidy_d %>%
  filter(task_name == "CP")  %>%
  group_by(culture) %>%
  tidyboot_mean(resp, na.rm=T)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
#plot pen choice means
ggplot(pen_ms, 
       aes(x = culture, y = mean, col = culture)) + 
  geom_linerange(aes(ymin = ci_lower, ymax = ci_upper)) + 
  geom_point(aes(size=n)) +
  ylab("Proportion conforming choice") + 
  xlab("Country") + 
  theme_classic() + 
  ylim(0,1) + 
  scale_size_area(breaks = seq(0,50,5)) + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")

Quick stats check (not necessarily preregistered).

cp_lm_data <- tidy_d %>%
  filter(task_name == "CP")
  
cp_mod <- glm(resp ~ culture, data = cp_lm_data, family = "binomial")
summary(cp_mod)
## 
## Call:
## glm(formula = resp ~ culture, family = "binomial", data = cp_lm_data)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.4490  -1.2899   0.9282   0.9282   1.0689  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)   0.6190     0.1657   3.735 0.000188 ***
## cultureUS    -0.3583     0.2552  -1.404 0.160354    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 357.05  on 267  degrees of freedom
## Residual deviance: 355.08  on 266  degrees of freedom
## AIC: 359.08
## 
## Number of Fisher Scoring iterations: 4

Symbolic self-inflation (circles)

Score means (ratio)

si_ratio_ms <- tidy_d %>%
  filter(task_name == "SI")  %>%
  filter(resp_type == "inflation_score_ratio") %>% 
  group_by(culture) %>% 
  tidyboot_mean(resp, na.rm=T)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
#plot pen choice means
#
ggplot(si_ratio_ms, 
       aes(x = culture, y = mean, col = culture)) + 
  geom_linerange(aes(ymin = ci_lower, ymax = ci_upper)) + 
  geom_point(aes(size=n)) +
  ylab("(me_radius *2) / (other_radius * 2)") + 
  xlab("Country") + 
  theme_classic() + 
scale_size_area(breaks = seq(0,50,5)) + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")

Score difference

si_diff_ms <- tidy_d %>%
  filter(task_name == "SI")  %>%
  filter(resp_type == "inflation_score_diff") %>% 
  group_by(culture) %>% 
  tidyboot_mean(resp, na.rm=T)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
ggplot(si_diff_ms, 
       aes(x = culture, y = mean, col = culture)) + 
  geom_linerange(aes(ymin = ci_lower, ymax = ci_upper)) + 
  geom_point(aes(size=n)) +
  ylab("me_radius - other_radius") + 
  xlab("Country") + 
  theme_classic() + 
  ylim(0, -30)+
scale_size_area(breaks = seq(0,50,5)) + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")

histogram

tidy_d %>%
  filter(task_name == "SI")  %>%
  filter(resp_type == "inflation_score_ratio") %>% 
  ggplot(aes(x = resp)) +
  geom_histogram(binwidth = .1) +
  facet_wrap(~culture)

tidy_d %>%
  filter(task_name == "SI")  %>%
  filter(resp_type == "inflation_score_diff") %>% 
  ggplot(aes(x = resp)) +
  geom_histogram(binwidth = .1) +
  facet_wrap(~culture)

Causal attribution

Summary

Plot means of person and situation attributions

#get means by ppt and group by country
CA_ms <- tidy_d %>%
  filter(task_name == "CA") %>% 
  group_by(culture, resp_type, subject) %>%
  summarise(subject_mean = mean(resp)) %>%
  group_by(culture, resp_type) %>% 
  tidyboot_mean(subject_mean, na.rm=T)
## `summarise()` regrouping output by 'culture', 'resp_type' (override with `.groups` argument)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
#plot means and CIs
ggplot(CA_ms, 
       aes(x = culture, y = mean, col = resp_type)) + 
  geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper), position = position_dodge2(.1)) + 
  ylab("Average number of attributions per trial") + 
  xlab("Country") + 
  ylim(c(0,1)) + 
  geom_hline(yintercept = .5, lty = 2) + 
  theme_classic() + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")

Histogram

tidy_d %>%
  filter(task_name == "CA")  %>%
  ggplot(aes(x = resp)) +
  geom_histogram(binwidth = 1) +
  facet_wrap(resp_type~culture)

tidy_d %>%
  filter(task_name == "CA")  %>%
  group_by(culture, resp_type, subject) %>%
  summarise(subject_mean = mean(resp)) %>%
  ggplot(aes(x = subject_mean)) +
  geom_histogram(binwidth = 1) +
  facet_wrap(resp_type~culture)
## `summarise()` regrouping output by 'culture', 'resp_type' (override with `.groups` argument)

Horizon

Horizon height

Plot mean height of the horizon line

# horizon height means
height_ms <- tidy_d %>%
  filter(task_name == "HZ") %>%
  filter(resp_type=="hz_height") %>%
  group_by(culture) %>%
  tidyboot_mean(resp, na.rm=T)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
# plot horizon height means
ggplot(height_ms, 
       aes(x = culture, y = mean, col = culture)) + 
  geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper)) + 
  geom_jitter(data = tidy_d %>%
                filter(task_name == "HZ") %>%
                filter(resp_type=="hz_height"), 
              aes(x = culture, y = resp, col = culture), width = .1) + 
  ylab("Average horizon height") + 
  xlab("Country") + 
  theme_classic() + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")

Histogram

Plot horizon height histogram

#horizon height histogram
tidy_d %>%
  filter(task_name == "HZ") %>%
  filter(resp_type == "hz_height") %>%
  ggplot(aes(x = resp)) +
  geom_histogram() +
  facet_wrap(~culture)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Number of stickers

Plot mean number of stickers used in the horizon task

Main

#sticker count means
stickerCount_ms <- tidy_d %>%
  filter(task_name == "HZ") %>%
  filter(resp_type=="stkr_count") %>%
  group_by(culture) %>%
  tidyboot_mean(resp, na.rm=T)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
#plot sticker count means
ggplot(stickerCount_ms, 
       aes(x = culture, y = mean, col = culture)) + 
  geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper)) + 
  geom_jitter(data = stickerCount_ms <- tidy_d %>%
                filter(task_name == "HZ") %>%
                filter(resp_type=="stkr_count") , 
              aes(x = culture, y = resp, col = culture), width = .1) + 
  ylab("Average number of stickers") + 
  xlab("Country") + 
  ylim(0, 20) + 
  theme_classic() + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")
## Warning: Removed 26 rows containing missing values (geom_point).

Number of stickers histograms

#sticker count histogram
tidy_d %>%
  filter(task_name == "HZ") %>%
  filter(resp_type == "stkr_count") %>%
  ggplot(aes(x = resp)) +
  geom_histogram() +
  facet_wrap(~culture)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Area covered

Plot average area covered by stickers in the horizon task

#sticker area means
stickerArea_ms <- tidy_d %>%
  filter(task_name == "HZ") %>%
  filter(resp_type=="stkr_area") %>%
  group_by(culture) %>%
  tidyboot_mean(resp, na.rm=T)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
#plot sticker count means
ggplot(stickerArea_ms, 
       aes(x = culture, y = mean, col = culture)) + 
  geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper)) + 
  ylab("Average area covered by stickers") + 
  xlab("Country") + 
  theme_classic() + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")

Area covered hist

Plot area covered by stickers for each participant in the horizon task

#sticker area histogram
tidy_d %>%
  filter(task_name == "HZ") %>%
  filter(resp_type == "stkr_area") %>%
  ggplot(aes(x = resp)) +
  geom_histogram() +
  facet_wrap(~culture)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Ebbinghaus

condition means

IC_ms <- tidy_d %>%
  filter(task_name == "EBB") %>%
  filter(task_info %in% c("IL","NC")) %>%
  group_by(subject, task_info, trial_info, culture) %>%
  summarise(mean = mean(resp)) %>%
  group_by(task_info, trial_info, culture) %>%
  tidyboot_mean(mean, na.rm=T)
## `summarise()` regrouping output by 'subject', 'task_info', 'trial_info' (override with `.groups` argument)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
ggplot(IC_ms, aes(x = trial_info, y = mean, col = culture)) + 
  facet_wrap(~task_info) + 
  geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper)) + 
  geom_smooth(method = "lm", formula = y ~ x + I(x^2)) + 
  ylab("Accuracy") + 
  xlab("Size Difference") + 
  theme_classic() + 
  ggthemes::scale_color_solarized() + 
  theme(legend.position = "bottom")

Free Description

First mention

Proportion of first-mentioned objects that are focal objects (first_mention_focal), per subject across stimuli. Plot means/CIs and histogram by culture.

# Free Description, first mention
#Proportion focal object first mention
mention_ms <- tidy_d %>%
  filter(task_name == "FD") %>%
  filter(resp_type=="first_mention_focal") %>%
  group_by(subject, culture) %>%
  summarise(mean = mean(resp)) %>%
  group_by(culture) %>%
  tidyboot_mean(mean, na.rm=T)
## `summarise()` regrouping output by 'subject' (override with `.groups` argument)
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(strap)`
mention_mss <- tidy_d %>%
  filter(task_name == "FD") %>%
  filter(resp_type=="first_mention_focal") %>%
  group_by(subject, culture) %>%
  summarise(mean = mean(resp)) 
## `summarise()` regrouping output by 'subject' (override with `.groups` argument)
#plot first mention proportions, averaged by subject and then culture
ggplot(mention_ms, 
       aes(x = culture, y = mean, col = culture)) + 
  geom_violin(data = mention_mss, show.legend = FALSE, bw = 0.08)+
  geom_jitter(data = mention_mss, width = .2, alpha = 0.2) +
  geom_pointrange(aes(ymin = ci_lower, ymax = ci_upper), show.legend = FALSE) + 
  guides(colour = guide_legend(override.aes = list(alpha = 1)))+
  scale_y_continuous(breaks = seq(0,1,0.25), 
                     labels = {function(x) paste0(as.character(x*100),"%")})+
  ylab("Proportion of focal object first mentions") + 
  xlab("Country") + 
  labs(color='Country') +
  theme_classic() +
  scale_color_manual(values = c("red", "blue"))+
  theme(legend.position = "bottom")

background emphasis

Description score (bckgrd_description - focal_description), per subject across stimuli. Plot means/CIs and histogram by culture.

# missing b/c of no coding criteria

Consideration for selecting item

There are no significant differences between cultures on the proportion of first mention being focal objects

FD_item_proportion

Also coded proportion of participants mentioning the picture looks “photoshopped” / faked

FD_item_psmention

Also roughly estimated the average description length for each item

FD_item_descriptionlength