library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✔ ggplot2 3.3.6      ✔ purrr   0.3.4 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.0      ✔ stringr 1.4.1 
## ✔ readr   2.1.2      ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(here)
## here() starts at /Users/caoanjie/Desktop/projects/CCRR_writeups
library(broom)


d1 <- read_csv(here("data/03_processed_data/exp1/tidy_main.csv"))
## New names:
## • `` -> `...1`
## Rows: 37595 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (6): subject, culture, task_name, task_info, trial_info, resp_type
## dbl (2): ...1, resp
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
d2 <- read_csv(here("data/03_processed_data/exp2/tidy_main.csv"))
## Warning: One or more parsing issues, see `problems()` for details
## Rows: 40257 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (7): subject, culture, task_name, task_info, trial_info, resp_type, resp
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
d1_demog <- read_csv(here("data/03_processed_data/exp1/tidy_demog.csv"))
## New names:
## Rows: 5468 Columns: 6
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," chr
## (5): subject, which_regions, demog_question, demog_response, culture dbl (1):
## ...1
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
d2_demog <- read_csv(here("data/03_processed_data/exp2/tidy_demog.csv"))
## Rows: 25417 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (4): subject, culture, demog_question, demog_response
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
us_regions <- read_csv(here("data/03_processed_data/us_regions.csv"))
## Rows: 51 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): State, State Code, Region, Coast, Division
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
cn_regions <- read_csv(here("data/03_processed_data/cn_regions.csv"))
## Rows: 33 Columns: 17
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (2): Province, GrowProv
## dbl (15): PercentPaddy, RiceCat, UNFAORiceSuitabilityIndexAll, PerCapitaGDP1...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Task-global identity relationships

Since we only collected scales for study 2, here we are only running the test with study 2

d2_with_scale <- d2 %>% 
  left_join(d2_demog %>% 
  mutate(scale_type = case_when(
    grepl("identity_local", demog_question) ~ "identity_local",
    grepl("identity_global", demog_question) ~ "identity_global",
    grepl("consumption_local", demog_question) ~ "consumption_local",
    grepl("consumption_global", demog_question) ~ "consumption_global",
    grepl("cosmopolitanism", demog_question) ~ "cosmopolitanism", 
    TRUE ~ "non_scale"
  )) %>% 
  filter(!(scale_type == "non_scale")) %>% 
  mutate(demog_response = as.numeric(demog_response) + 1, 
         demog_response = case_when(
           grepl("local", scale_type) ~ -demog_response, 
           TRUE ~ demog_response
         )) %>% 
  group_by(subject, culture) %>% 
  summarise(scale_sum_score = sum(demog_response)), 
  by = c("subject", "culture"))
## `summarise()` has grouped output by 'subject'. You can override using the
## `.groups` argument.
# RMTS, FD, CD, SSI, CA, TD, SeI, RV
# cleaning 
clean_d2_CD <- d2_with_scale %>% 
  filter(task_name == "CD", task_info == "context") %>% 
  group_by(subject, culture, task_name, scale_sum_score) %>% 
  filter(!resp == "null") %>% 
  summarise(resp_num = mean(as.numeric(resp)))
## `summarise()` has grouped output by 'subject', 'culture', 'task_name'. You can
## override using the `.groups` argument.
clean_d2_SSI <- d2_with_scale %>% 
  filter(task_name == "SSI", resp_type == "task_score_ratio") %>%
  mutate(resp_num = as.numeric(resp))

clean_d2_CA <- d2_with_scale %>% 
  filter(task_name == "CA", task_info == "situational") %>% 
  group_by(subject, culture, task_name, scale_sum_score) %>% 
  filter(!is.na(resp)) %>% 
  summarise(resp_num = mean(as.numeric(resp)))
## `summarise()` has grouped output by 'subject', 'culture', 'task_name'. You can
## override using the `.groups` argument.
clean_d2_TD <- d2_with_scale %>% 
  filter(task_name == "TD", task_info == "triads") %>% 
  group_by(subject, culture, task_name, scale_sum_score) %>% 
  filter(!is.na(resp)) %>% 
  summarise(resp_num = mean(as.numeric(as.logical(resp))))
## `summarise()` has grouped output by 'subject', 'culture', 'task_name'. You can
## override using the `.groups` argument.
clean_d2_SeI <- d2_with_scale %>% 
  filter(task_name == "SeI", task_info == "critical") %>% 
  mutate(resp = case_when(
    resp == "causal_historical" ~ 1, 
    TRUE ~ 0)) %>% 
  group_by(subject, culture, task_name, scale_sum_score) %>% 
  summarise(resp_num = mean(as.numeric(resp)))
## `summarise()` has grouped output by 'subject', 'culture', 'task_name'. You can
## override using the `.groups` argument.
d2_task_giscale <- d2_with_scale  %>% 
  filter(task_name %in% c("RMTS","RV","FD"))  %>% 
  mutate(resp_num = as.numeric(resp))  %>% 
  group_by(subject, culture, task_name, scale_sum_score) %>% 
  summarise(resp_num = mean(resp_num)) %>% 
  bind_rows(clean_d2_CD, clean_d2_SSI, clean_d2_CA, 
            clean_d2_TD, clean_d2_SeI) %>% 
  group_by(task_name) %>% 
  nest() |>
  mutate(mod = map(data, 
                   function (df) lm(resp_num ~ scale_sum_score * culture, 
                                    data = df)), 
         tidy = map(mod, tidy)) |>
  select(-mod, -data) |>
  unnest(cols = c(tidy)) |>
  filter(term %in% c("scale_sum_score","scale_sum_score:cultureUS")) 
## `summarise()` has grouped output by 'subject', 'culture', 'task_name'. You can
## override using the `.groups` argument.
d2_task_giscale$adjusted = p.adjust(d2_task_giscale$p.value, method = "bonferroni")

saveRDS(d2_task_giscale, here("cached_results/ea/task_giscale_df.RDS"))

d2_task_giscale|>
  knitr::kable(digits = 3)
task_name term estimate std.error statistic p.value adjusted
RMTS scale_sum_score -0.003 0.002 -1.876 0.061 0.980
RMTS scale_sum_score:cultureUS 0.002 0.002 0.824 0.411 1.000
RV scale_sum_score 0.001 0.001 0.835 0.404 1.000
RV scale_sum_score:cultureUS 0.000 0.001 -0.327 0.744 1.000
FD scale_sum_score 0.000 0.001 0.212 0.832 1.000
FD scale_sum_score:cultureUS 0.000 0.001 -0.423 0.673 1.000
CD scale_sum_score -16.199 18.595 -0.871 0.384 1.000
CD scale_sum_score:cultureUS 9.872 22.574 0.437 0.662 1.000
SSI scale_sum_score -0.002 0.002 -0.627 0.531 1.000
SSI scale_sum_score:cultureUS 0.003 0.003 0.846 0.398 1.000
CA scale_sum_score -0.005 0.005 -0.924 0.356 1.000
CA scale_sum_score:cultureUS 0.012 0.006 1.989 0.047 0.758
TD scale_sum_score -0.001 0.001 -0.855 0.393 1.000
TD scale_sum_score:cultureUS 0.002 0.001 2.067 0.039 0.628
SeI scale_sum_score -0.002 0.002 -0.929 0.353 1.000
SeI scale_sum_score:cultureUS 0.001 0.002 0.513 0.608 1.000

Regional differences

toneless_dict <- pinyin::pydic("toneless")
demog_province_cleaned <- 
  bind_rows(d1_demog %>% mutate(study = "d1"), 
            d2_demog %>% mutate(study = "d2")) %>% 
  filter(demog_question == "state_grewup") %>% 
  rowwise() %>% 
  mutate(demog_response_clean = case_when(
    culture == "CN" ~ as.character(pinyin::py(demog_response, toneless_dict, 
                                              sep = "",
                                       other_replace = NULL)), 
    TRUE ~ demog_response
  )) %>% 
  mutate(demog_response_clean = case_when(
  demog_response_clean == "hena" ~ "Henan",
  demog_response_clean == "jita" ~ "Others",
  demog_response_clean == "haina" ~ "Hainan",
  demog_response_clean == "huna" ~ "Hunan",
  demog_response_clean == "andong" ~ "Guangdong",
  demog_response_clean == "namenggu" ~ "Inner Mongolia",
  demog_response_clean == "jinghai" ~ "Qinghai",
  demog_response_clean == "angxi" ~ "Guangxi",
  demog_response_clean == "anxi" ~ "Guangxi",
  demog_response_clean == "yunna" ~ "Yunnan",
  demog_response == "山西" ~ "Shanxi",
  demog_response == "宁夏" ~ "Ningxia",
  demog_response == "陕西" ~ "Shaanxi",
  TRUE ~ demog_response_clean
)) %>% 
  mutate(demog_response_clean = tolower(demog_response_clean)) %>% 
  left_join(us_regions %>% 
              mutate(demog_response_clean = tolower(State)) %>% 
              select(Region, Coast, demog_response_clean), by = "demog_response_clean"
            ) %>% 
  left_join(cn_regions %>% 
              mutate(demog_response_clean = tolower(Province)) %>% 
              select(PercentPaddy, RiceCat, demog_response_clean), 
            by = "demog_response_clean") %>% 
    janitor::clean_names() %>% 
   mutate(rice_cat = case_when(rice_cat == 1 ~ "wheat", 
                              rice_cat == 2 ~ "rice"))




us_d1_region_d <- demog_province_cleaned %>% 
  filter(study == "d1", culture == "US") %>% 
  select(subject, study, culture, study, coast, region)

us_d2_region_d <- demog_province_cleaned %>% 
  filter(study == "d2", culture == "US") %>% 
  select(subject, study, culture, study, coast, region)

cn_d1_region_d <- demog_province_cleaned %>% 
  filter(study == "d1", culture == "CN") %>% 
  select(subject, study, culture, study, rice_cat)

cn_d2_region_d <- demog_province_cleaned %>% 
  filter(study == "d2", culture == "CN") %>% 
  select(subject, study, culture, study, rice_cat)

study 1

clean_d1_ssi <- d1 %>% 
  filter(task_name == "SI") %>% 
  filter(resp_type == "inflation_score_ratio") %>% 
  mutate(resp_num = as.numeric(resp)) %>% 
  select(subject, culture, task_name, resp_num)

clean_d1_ebb <- d1 %>% 
  filter(task_name == "EBB", task_info == "IL") %>% 
  group_by(subject, culture, task_name) %>% 
  summarise(resp_num = mean(resp))
## `summarise()` has grouped output by 'subject', 'culture'. You can override
## using the `.groups` argument.
clean_d1_rmts <- d1 %>% 
  filter(task_name == "RMTS") %>% 
   group_by(subject, culture, task_name) %>% 
  summarise(resp_num = mean(resp))
## `summarise()` has grouped output by 'subject', 'culture'. You can override
## using the `.groups` argument.
clean_d1_hz <- d1 %>% 
  filter(task_name == "HZ", resp_type == "hz_height") %>% 
  mutate(resp_num = resp) %>% 
  select(subject, culture, task_name, resp_num)

clean_d1_up <- d1 %>% 
  filter(task_name == "CP") %>% 
  mutate(resp_num = resp) %>% 
  select(subject, culture, task_name, resp_num)

clean_d1_rv <- d1 %>% 
  filter(task_name == "RV") %>% 
   group_by(subject, culture, task_name) %>% 
  summarise(resp_num = mean(resp)) %>% 
  select(subject, culture, task_name, resp_num)
## `summarise()` has grouped output by 'subject', 'culture'. You can override
## using the `.groups` argument.
clean_d1_fd <- d1 %>% 
  filter(task_name == "FD", resp_type == "first_mention_focal") %>% 
   group_by(subject, culture, task_name) %>% 
  summarise(resp_num = mean(resp)) %>% 
  select(subject, culture, task_name, resp_num)
## `summarise()` has grouped output by 'subject', 'culture'. You can override
## using the `.groups` argument.
clean_d1_ca <- d1 %>% 
  filter(task_name == "CA", resp_type == "situation_attribution")%>% 
  group_by(subject, culture, task_name) %>% 
  summarise(resp_num = mean(resp)) %>% 
  select(subject, culture, task_name, resp_num)
## `summarise()` has grouped output by 'subject', 'culture'. You can override
## using the `.groups` argument.
d1_region_df <- bind_rows(clean_d1_ca, 
          clean_d1_ebb, 
          clean_d1_fd, 
          clean_d1_hz, 
          clean_d1_rmts, 
          clean_d1_rv, 
          clean_d1_ssi, 
          clean_d1_up) %>% 
  left_join(us_d1_region_d %>% select(subject, culture, coast, region), by = c("subject", "culture")) %>% 
  left_join(cn_d1_region_d %>% select(subject, culture, rice_cat), by = c("subject", "culture")) %>% 
   select(subject, culture, task_name, resp_num, rice_cat, coast,region) %>% 
  pivot_longer(cols = c("rice_cat", "coast", "region"), 
               names_to = "region_type", 
               values_to = "region") %>% 
  mutate(region = as.factor(region)) %>% 
  group_by(culture, task_name, region_type) %>% 
  nest() %>% 
  filter(!(culture == "CN" & region_type %in% c("coast", "region")), 
         !(culture == "US"& region_type == "rice_cat")) %>% 
  mutate(mod = case_when(
    region_type == "rice_cat" ~ map(data, function (df) lm(resp_num ~ relevel(region, 
                                                                              ref = 
                                                                              "wheat"),
                                  data = df)),
    region_type == "region" ~ map(data, function (df) lm(resp_num ~ relevel(region, 
                                                                              ref = 
                                                                          "West"),
                                  data = df)),
    region_type == "coast" ~ map(data, function (df) lm(resp_num ~ relevel(region, 
                                                                              ref = 
                                                                          "west_coast"),
                                  data = df))
  ), 
  tidy = map(mod, tidy)) %>% 
  select(-mod, -data) |>
  unnest(cols = c(tidy)) %>% 
  filter(grepl("region", term)) 


d1_region_df$p.adjusted = p.adjust(d1_region_df$p.value,
                                    method = "bonferroni")

d1_region_df %>% 
  knitr::kable(digits = 3)
culture task_name region_type term estimate std.error statistic p.value p.adjusted
US CA coast relevel(region, ref = “west_coast”)inland -0.002 0.108 -0.019 0.985 1
US CA coast relevel(region, ref = “west_coast”)east_coast 0.107 0.136 0.783 0.435 1
US CA region relevel(region, ref = “West”)Midwest 0.098 0.145 0.675 0.501 1
US CA region relevel(region, ref = “West”)South -0.032 0.127 -0.253 0.800 1
US CA region relevel(region, ref = “West”)Northeast 0.152 0.166 0.916 0.361 1
CN CA rice_cat relevel(region, ref = “wheat”)rice 0.013 0.086 0.148 0.882 1
US EBB coast relevel(region, ref = “west_coast”)inland -0.047 0.035 -1.334 0.184 1
US EBB coast relevel(region, ref = “west_coast”)east_coast -0.035 0.045 -0.790 0.431 1
US EBB region relevel(region, ref = “West”)Midwest -0.055 0.048 -1.158 0.249 1
US EBB region relevel(region, ref = “West”)South 0.007 0.042 0.167 0.868 1
US EBB region relevel(region, ref = “West”)Northeast -0.019 0.055 -0.354 0.724 1
CN EBB rice_cat relevel(region, ref = “wheat”)rice 0.013 0.033 0.380 0.704 1
US FD coast relevel(region, ref = “west_coast”)inland 0.064 0.028 2.311 0.022 1
US FD coast relevel(region, ref = “west_coast”)east_coast 0.071 0.035 2.018 0.045 1
US FD region relevel(region, ref = “West”)Midwest 0.066 0.038 1.761 0.080 1
US FD region relevel(region, ref = “West”)South 0.063 0.033 1.911 0.058 1
US FD region relevel(region, ref = “West”)Northeast 0.065 0.043 1.505 0.134 1
CN FD rice_cat relevel(region, ref = “wheat”)rice 0.060 0.049 1.228 0.221 1
US HZ coast relevel(region, ref = “west_coast”)inland -0.038 0.026 -1.458 0.147 1
US HZ coast relevel(region, ref = “west_coast”)east_coast 0.040 0.033 1.233 0.220 1
US HZ region relevel(region, ref = “West”)Midwest -0.042 0.035 -1.181 0.239 1
US HZ region relevel(region, ref = “West”)South 0.004 0.031 0.116 0.908 1
US HZ region relevel(region, ref = “West”)Northeast 0.023 0.040 0.570 0.570 1
CN HZ rice_cat relevel(region, ref = “wheat”)rice 0.016 0.032 0.508 0.612 1
US RMTS coast relevel(region, ref = “west_coast”)inland 0.054 0.085 0.635 0.527 1
US RMTS coast relevel(region, ref = “west_coast”)east_coast 0.051 0.107 0.475 0.636 1
US RMTS region relevel(region, ref = “West”)Midwest -0.061 0.114 -0.532 0.595 1
US RMTS region relevel(region, ref = “West”)South 0.105 0.100 1.049 0.296 1
US RMTS region relevel(region, ref = “West”)Northeast 0.012 0.130 0.089 0.929 1
CN RMTS rice_cat relevel(region, ref = “wheat”)rice 0.005 0.076 0.070 0.944 1
US RV coast relevel(region, ref = “west_coast”)inland 0.008 0.042 0.191 0.849 1
US RV coast relevel(region, ref = “west_coast”)east_coast -0.002 0.053 -0.034 0.973 1
US RV region relevel(region, ref = “West”)Midwest 0.073 0.056 1.304 0.194 1
US RV region relevel(region, ref = “West”)South 0.032 0.049 0.658 0.511 1
US RV region relevel(region, ref = “West”)Northeast 0.039 0.064 0.610 0.543 1
CN RV rice_cat relevel(region, ref = “wheat”)rice -0.029 0.027 -1.066 0.288 1
CN SI rice_cat relevel(region, ref = “wheat”)rice -0.164 0.096 -1.709 0.090 1
US SI coast relevel(region, ref = “west_coast”)inland 0.025 0.057 0.441 0.660 1
US SI coast relevel(region, ref = “west_coast”)east_coast 0.039 0.070 0.554 0.581 1
US SI region relevel(region, ref = “West”)Midwest 0.023 0.073 0.314 0.754 1
US SI region relevel(region, ref = “West”)South 0.030 0.065 0.457 0.649 1
US SI region relevel(region, ref = “West”)Northeast -0.022 0.091 -0.238 0.812 1
US CP coast relevel(region, ref = “west_coast”)inland 0.006 0.087 0.071 0.943 1
US CP coast relevel(region, ref = “west_coast”)east_coast -0.116 0.110 -1.054 0.293 1
US CP region relevel(region, ref = “West”)Midwest -0.057 0.118 -0.481 0.631 1
US CP region relevel(region, ref = “West”)South 0.011 0.103 0.104 0.917 1
US CP region relevel(region, ref = “West”)Northeast -0.165 0.135 -1.224 0.223 1
CN CP rice_cat relevel(region, ref = “wheat”)rice 0.002 0.078 0.027 0.979 1

study 2

# here we are recycling the code snippet from above so that we can run batch models
d2_region_df <- d2_with_scale  %>% 
  filter(task_name %in% c("RMTS","RV","FD"))  %>% 
  mutate(resp_num = as.numeric(resp))  %>% 
  group_by(subject, culture, task_name, scale_sum_score) %>% 
  summarise(resp_num = mean(resp_num)) %>% 
  bind_rows(clean_d2_CD, clean_d2_SSI, clean_d2_CA, 
            clean_d2_TD, clean_d2_SeI) %>% 
  select(-scale_sum_score) %>% 
# start combining the demographic information   
  left_join(cn_d2_region_d %>% select(subject, 
                                      culture, 
                                      rice_cat), by = c("subject", "culture")) %>% 
  left_join( us_d2_region_d %>% select(subject, culture, coast, region), 
             by = c("subject", "culture")) %>% 
  select(subject, culture, task_name, resp_num, rice_cat, coast,region) %>% 
  pivot_longer(cols = c("rice_cat", "coast", "region"), 
               names_to = "region_type", 
               values_to = "region") %>% 
  mutate(region = as.factor(region)) %>% 
  group_by(culture, task_name, region_type) %>% 
  nest() %>% 
  filter(!(culture == "CN" & region_type %in% c("coast", "region")), 
         !(culture == "US"& region_type == "rice_cat")) %>% 
  mutate(mod = case_when(
    region_type == "rice_cat" ~ map(data, function (df) lm(resp_num ~ relevel(region, 
                                                                              ref = 
                                                                              "wheat"),
                                  data = df)),
    region_type == "region" ~ map(data, function (df) lm(resp_num ~ relevel(region, 
                                                                              ref = 
                                                                          "West"),
                                  data = df)),
    region_type == "coast" ~ map(data, function (df) lm(resp_num ~ relevel(region, 
                                                                              ref = 
                                                                          "west_coast"),
                                  data = df))
  ), 
  tidy = map(mod, tidy)) %>% 
  select(-mod, -data) |>
  unnest() %>% 
  filter(grepl("region", term)) 
## `summarise()` has grouped output by 'subject', 'culture', 'task_name'. You can
## override using the `.groups` argument.
## Warning: `cols` is now required when using unnest().
## Please use `cols = c(tidy)`
d2_region_df$p.adjusted = p.adjust(d2_region_df$p.value,
                                    method = "bonferroni")


d2_region_df %>% 
  knitr::kable(digits = 3)
culture task_name region_type term estimate std.error statistic p.value p.adjusted
CN RMTS rice_cat relevel(region, ref = “wheat”)rice -0.064 0.064 -0.993 0.322 1.000
CN RV rice_cat relevel(region, ref = “wheat”)rice 0.038 0.035 1.074 0.284 1.000
CN FD rice_cat relevel(region, ref = “wheat”)rice 0.088 0.046 1.903 0.059 1.000
US FD coast relevel(region, ref = “west_coast”)inland -0.015 0.025 -0.591 0.555 1.000
US FD coast relevel(region, ref = “west_coast”)east_coast -0.006 0.027 -0.234 0.815 1.000
US FD region relevel(region, ref = “West”)Midwest -0.045 0.025 -1.789 0.075 1.000
US FD region relevel(region, ref = “West”)Northeast 0.015 0.026 0.585 0.559 1.000
US FD region relevel(region, ref = “West”)South -0.028 0.025 -1.120 0.264 1.000
US RMTS coast relevel(region, ref = “west_coast”)inland 0.050 0.074 0.670 0.503 1.000
US RMTS coast relevel(region, ref = “west_coast”)east_coast -0.075 0.081 -0.925 0.356 1.000
US RMTS region relevel(region, ref = “West”)Midwest 0.097 0.076 1.269 0.205 1.000
US RMTS region relevel(region, ref = “West”)Northeast -0.106 0.080 -1.329 0.185 1.000
US RMTS region relevel(region, ref = “West”)South -0.049 0.074 -0.660 0.509 1.000
US RV coast relevel(region, ref = “west_coast”)inland 0.138 0.045 3.056 0.002 0.118
US RV coast relevel(region, ref = “west_coast”)east_coast 0.097 0.049 1.978 0.049 1.000
US RV region relevel(region, ref = “West”)Midwest 0.148 0.046 3.193 0.002 0.075
US RV region relevel(region, ref = “West”)Northeast 0.075 0.049 1.530 0.127 1.000
US RV region relevel(region, ref = “West”)South 0.094 0.045 2.104 0.036 1.000
CN CD rice_cat relevel(region, ref = “wheat”)rice -880.421 735.700 -1.197 0.233 1.000
US CD coast relevel(region, ref = “west_coast”)inland 1042.399 711.246 1.466 0.144 1.000
US CD coast relevel(region, ref = “west_coast”)east_coast 1766.761 773.739 2.283 0.023 1.000
US CD region relevel(region, ref = “West”)Midwest 649.866 742.361 0.875 0.382 1.000
US CD region relevel(region, ref = “West”)Northeast 2111.613 785.166 2.689 0.008 0.367
US CD region relevel(region, ref = “West”)South 898.406 714.938 1.257 0.210 1.000
CN SSI rice_cat relevel(region, ref = “wheat”)rice -0.194 0.105 -1.842 0.067 1.000
US SSI coast relevel(region, ref = “west_coast”)inland 0.058 0.094 0.617 0.538 1.000
US SSI coast relevel(region, ref = “west_coast”)east_coast 0.014 0.101 0.135 0.893 1.000
US SSI region relevel(region, ref = “West”)Midwest -0.026 0.098 -0.262 0.793 1.000
US SSI region relevel(region, ref = “West”)Northeast 0.166 0.101 1.643 0.102 1.000
US SSI region relevel(region, ref = “West”)South -0.022 0.093 -0.233 0.816 1.000
CN CA rice_cat relevel(region, ref = “wheat”)rice 0.269 0.198 1.356 0.178 1.000
US CA coast relevel(region, ref = “west_coast”)inland 0.115 0.154 0.743 0.458 1.000
US CA coast relevel(region, ref = “west_coast”)east_coast 0.180 0.167 1.078 0.282 1.000
US CA region relevel(region, ref = “West”)Midwest 0.013 0.159 0.080 0.936 1.000
US CA region relevel(region, ref = “West”)Northeast -0.004 0.167 -0.022 0.982 1.000
US CA region relevel(region, ref = “West”)South 0.191 0.154 1.242 0.215 1.000
CN TD rice_cat relevel(region, ref = “wheat”)rice -0.008 0.042 -0.188 0.851 1.000
US TD coast relevel(region, ref = “west_coast”)inland 0.025 0.037 0.666 0.506 1.000
US TD coast relevel(region, ref = “west_coast”)east_coast 0.014 0.040 0.358 0.720 1.000
US TD region relevel(region, ref = “West”)Midwest 0.047 0.038 1.221 0.223 1.000
US TD region relevel(region, ref = “West”)Northeast -0.011 0.040 -0.264 0.792 1.000
US TD region relevel(region, ref = “West”)South -0.012 0.037 -0.332 0.740 1.000
CN SeI rice_cat relevel(region, ref = “wheat”)rice -0.022 0.066 -0.326 0.745 1.000
US SeI coast relevel(region, ref = “west_coast”)inland -0.049 0.067 -0.731 0.465 1.000
US SeI coast relevel(region, ref = “west_coast”)east_coast -0.059 0.072 -0.815 0.416 1.000
US SeI region relevel(region, ref = “West”)Midwest -0.023 0.069 -0.342 0.733 1.000
US SeI region relevel(region, ref = “West”)Northeast -0.048 0.072 -0.665 0.507 1.000
US SeI region relevel(region, ref = “West”)South -0.100 0.066 -1.514 0.131 1.000

Basic demog

first putting the two clean df together

d1_clean <- bind_rows(clean_d1_ca, 
          clean_d1_ebb, 
          clean_d1_fd, 
          clean_d1_hz, 
          clean_d1_rmts, 
          clean_d1_rv, 
          clean_d1_ssi, 
          clean_d1_up) %>% 
  select(subject, culture, task_name, resp_num) 

d2_clean <- d2_with_scale  %>% 
  filter(task_name %in% c("RMTS","RV","FD"))  %>% 
  mutate(resp_num = as.numeric(resp))  %>% 
  group_by(subject, culture, task_name, scale_sum_score) %>% 
  summarise(resp_num = mean(resp_num)) %>% 
  bind_rows(clean_d2_CD, clean_d2_SSI, clean_d2_CA, 
            clean_d2_TD, clean_d2_SeI) %>% 
  select(subject, culture, task_name, resp_num) 
## `summarise()` has grouped output by 'subject', 'culture', 'task_name'. You can
## override using the `.groups` argument.
d12_joint_df <- bind_rows(d1_clean %>% mutate(study = "d1"), 
          d2_clean %>% mutate(study = "d2")) 
cleaned_basic_demog_df <- 
bind_rows(d1_demog %>% mutate(study = "d1"),
          d2_demog %>% mutate(study = "d2")) %>% 
  mutate(demog_response = case_when(
    demog_response == "没有国际经历" ~ "No experiences",
    demog_response == "一段国际经历" ~ "One experience",
    demog_response == "两段国际经历" ~ "Two experiences",
    demog_response == "三到五段国际经历" ~ "Three to five experiences",
    demog_response == "六段或更多国际经历" ~ "Six or more experiences", 
    TRUE ~ demog_response
  )) %>% 
  mutate(demog_response = case_when(
    demog_response == "No experiences" ~ "0", 
    demog_response ==  "One experience" ~ "1",
    demog_response == "Two experiences" ~ "2",
    demog_response ==  "Three to five experiences" ~ "3",
    demog_response ==  "Six or more experiences" ~ "4", 
    
    demog_response %in% c('8th grade/junior high or less', 
                          "九年级/初中及以下") ~ "0",
      
    demog_response %in% c('Some high school', 
                           "上过一部分高中") ~ "1",
      
    demog_response %in% c('High school graduate/GED', 
                          "普通高中或职业高中毕业/高中等级学历") ~"2",
    
    
    demog_response %in% c('One or more years of college, no degree', 
                          "一年或多年大学教育,无学位") ~ "3",
    
    demog_response %in% c('Two-year college degree/vocational school', 
                          "大专学历") ~ "4",
    
    demog_response %in% c("Four-/Five-year college Bachelor's degree", 
                          "四年/五年制大学本科学位") ~ "5", 
    
     demog_response %in% c("At least some graduate school", 
                          "有过一些研究生经历") ~ "6", 
    
    TRUE ~ demog_response
  ))
  • numeric: resimobinum - response too noisy overseaexpnum objectiveses - s1 only subjectiveses age

  • category: gender stem_or_not s2 only

numeric demog

demog_d12_numeric_df <- d12_joint_df %>% 
  left_join(cleaned_basic_demog_df, 
            by = c("subject", "culture", "study")) %>% 
  rename(demog_type = demog_question) %>% 
  filter(demog_type %in% c("overseaexpnum", "objectiveses","subjectiveses", "age")) %>% 
  mutate(demog_resp = as.numeric(demog_response))


demog_d12_numeric_mod <- demog_d12_numeric_df %>% 
  group_by(culture, task_name, study, demog_type) %>% 
  nest() %>% 
  mutate(mod = map(data, function (df) lm(resp_num ~ demog_resp, data = df)), 
         tidy = map(mod, tidy)) %>% 
  select(-mod, -data) %>% 
  unnest(cols = c(tidy))

demog_d12_numeric_mod$p.adjusted = p.adjust(demog_d12_numeric_mod$p.value,
          method = "bonferroni")


demog_d12_numeric_mod %>% 
  filter(term != "(Intercept)") %>% 
  knitr::kable(digits = 3)
culture task_name study demog_type term estimate std.error statistic p.value p.adjusted
US CA d1 overseaexpnum demog_resp 0.050 0.039 1.278 0.203 1.000
US CA d1 objectiveses demog_resp -0.016 0.035 -0.463 0.644 1.000
US CA d1 subjectiveses demog_resp -0.019 0.025 -0.779 0.437 1.000
US CA d1 age demog_resp 0.010 0.008 1.225 0.222 1.000
CN CA d1 overseaexpnum demog_resp 0.013 0.033 0.384 0.702 1.000
CN CA d1 objectiveses demog_resp -0.077 0.038 -2.004 0.047 1.000
CN CA d1 subjectiveses demog_resp 0.005 0.028 0.188 0.851 1.000
CN CA d1 age demog_resp -0.014 0.011 -1.304 0.194 1.000
US EBB d1 overseaexpnum demog_resp 0.004 0.013 0.310 0.757 1.000
US EBB d1 objectiveses demog_resp 0.016 0.012 1.380 0.169 1.000
US EBB d1 subjectiveses demog_resp 0.010 0.008 1.184 0.238 1.000
US EBB d1 age demog_resp 0.002 0.003 0.653 0.515 1.000
CN EBB d1 overseaexpnum demog_resp 0.003 0.013 0.203 0.839 1.000
CN EBB d1 objectiveses demog_resp 0.007 0.015 0.441 0.660 1.000
CN EBB d1 subjectiveses demog_resp -0.013 0.011 -1.193 0.234 1.000
CN EBB d1 age demog_resp 0.007 0.004 1.733 0.085 1.000
US FD d1 overseaexpnum demog_resp -0.008 0.011 -0.721 0.472 1.000
US FD d1 objectiveses demog_resp -0.001 0.010 -0.056 0.955 1.000
US FD d1 subjectiveses demog_resp 0.000 0.007 0.054 0.957 1.000
US FD d1 age demog_resp -0.001 0.002 -0.555 0.580 1.000
CN FD d1 overseaexpnum demog_resp 0.007 0.019 0.370 0.712 1.000
CN FD d1 objectiveses demog_resp -0.015 0.022 -0.678 0.499 1.000
CN FD d1 subjectiveses demog_resp -0.008 0.016 -0.522 0.602 1.000
CN FD d1 age demog_resp 0.000 0.006 0.058 0.954 1.000
US HZ d1 overseaexpnum demog_resp -0.016 0.010 -1.698 0.091 1.000
US HZ d1 objectiveses demog_resp 0.005 0.009 0.586 0.559 1.000
US HZ d1 subjectiveses demog_resp 0.001 0.006 0.201 0.841 1.000
US HZ d1 age demog_resp 0.001 0.002 0.755 0.451 1.000
CN HZ d1 overseaexpnum demog_resp -0.022 0.012 -1.803 0.073 1.000
CN HZ d1 objectiveses demog_resp -0.005 0.015 -0.318 0.751 1.000
CN HZ d1 subjectiveses demog_resp -0.010 0.010 -0.950 0.344 1.000
CN HZ d1 age demog_resp -0.005 0.004 -1.209 0.228 1.000
US RMTS d1 overseaexpnum demog_resp 0.041 0.031 1.324 0.187 1.000
US RMTS d1 objectiveses demog_resp 0.038 0.027 1.400 0.163 1.000
US RMTS d1 subjectiveses demog_resp 0.009 0.020 0.480 0.632 1.000
US RMTS d1 age demog_resp 0.005 0.006 0.825 0.411 1.000
CN RMTS d1 overseaexpnum demog_resp 0.034 0.029 1.176 0.241 1.000
CN RMTS d1 objectiveses demog_resp 0.019 0.034 0.560 0.576 1.000
CN RMTS d1 subjectiveses demog_resp 0.037 0.025 1.529 0.128 1.000
CN RMTS d1 age demog_resp 0.022 0.009 2.479 0.014 1.000
US RV d1 overseaexpnum demog_resp -0.003 0.016 -0.223 0.824 1.000
US RV d1 objectiveses demog_resp 0.025 0.014 1.781 0.077 1.000
US RV d1 subjectiveses demog_resp 0.006 0.010 0.581 0.562 1.000
US RV d1 age demog_resp 0.005 0.003 1.753 0.081 1.000
CN RV d1 overseaexpnum demog_resp 0.010 0.010 1.007 0.316 1.000
CN RV d1 objectiveses demog_resp -0.002 0.012 -0.134 0.893 1.000
CN RV d1 subjectiveses demog_resp -0.006 0.009 -0.688 0.493 1.000
CN RV d1 age demog_resp -0.006 0.003 -1.791 0.075 1.000
CN SI d1 overseaexpnum demog_resp 0.003 0.039 0.084 0.933 1.000
CN SI d1 objectiveses demog_resp 0.049 0.045 1.098 0.274 1.000
CN SI d1 subjectiveses demog_resp 0.034 0.031 1.096 0.275 1.000
CN SI d1 age demog_resp 0.026 0.013 2.091 0.038 1.000
US SI d1 overseaexpnum demog_resp -0.003 0.021 -0.143 0.887 1.000
US SI d1 objectiveses demog_resp 0.008 0.017 0.477 0.634 1.000
US SI d1 subjectiveses demog_resp -0.024 0.013 -1.866 0.065 1.000
US SI d1 age demog_resp 0.000 0.004 -0.070 0.944 1.000
US CP d1 overseaexpnum demog_resp -0.053 0.032 -1.662 0.098 1.000
US CP d1 objectiveses demog_resp -0.017 0.029 -0.602 0.548 1.000
US CP d1 subjectiveses demog_resp -0.055 0.020 -2.748 0.007 1.000
US CP d1 age demog_resp -0.005 0.006 -0.758 0.449 1.000
CN CP d1 overseaexpnum demog_resp -0.039 0.030 -1.305 0.194 1.000
CN CP d1 objectiveses demog_resp 0.023 0.036 0.642 0.522 1.000
CN CP d1 subjectiveses demog_resp -0.031 0.026 -1.222 0.223 1.000
CN CP d1 age demog_resp 0.006 0.009 0.617 0.538 1.000
CN RMTS d2 overseaexpnum demog_resp -0.046 0.042 -1.095 0.275 1.000
CN RMTS d2 subjectiveses demog_resp -0.040 0.020 -2.053 0.042 1.000
CN RMTS d2 age demog_resp 0.012 0.008 1.470 0.144 1.000
CN RV d2 overseaexpnum demog_resp 0.024 0.023 1.035 0.302 1.000
CN RV d2 subjectiveses demog_resp -0.020 0.011 -1.890 0.060 1.000
CN RV d2 age demog_resp -0.003 0.005 -0.644 0.521 1.000
CN FD d2 overseaexpnum demog_resp 0.007 0.030 0.237 0.813 1.000
CN FD d2 subjectiveses demog_resp 0.014 0.014 0.967 0.336 1.000
CN FD d2 age demog_resp -0.006 0.006 -0.904 0.368 1.000
US FD d2 overseaexpnum demog_resp 0.007 0.006 1.301 0.194 1.000
US FD d2 subjectiveses demog_resp 0.002 0.005 0.395 0.693 1.000
US FD d2 age demog_resp 0.001 0.001 1.822 0.070 1.000
US RMTS d2 overseaexpnum demog_resp -0.005 0.017 -0.314 0.754 1.000
US RMTS d2 subjectiveses demog_resp 0.015 0.016 0.965 0.335 1.000
US RMTS d2 age demog_resp 0.000 0.002 0.099 0.921 1.000
US RV d2 overseaexpnum demog_resp 0.008 0.011 0.774 0.440 1.000
US RV d2 subjectiveses demog_resp -0.020 0.009 -2.140 0.033 1.000
US RV d2 age demog_resp -0.002 0.001 -1.990 0.047 1.000
CN CD d2 overseaexpnum demog_resp -1184.074 458.873 -2.580 0.011 1.000
CN CD d2 subjectiveses demog_resp -735.858 221.148 -3.327 0.001 0.246
CN CD d2 age demog_resp 286.657 95.098 3.014 0.003 0.676
US CD d2 overseaexpnum demog_resp -4.436 173.038 -0.026 0.980 1.000
US CD d2 subjectiveses demog_resp 209.453 155.242 1.349 0.179 1.000
US CD d2 age demog_resp 131.543 17.525 7.506 0.000 0.000
CN SSI d2 overseaexpnum demog_resp 0.077 0.067 1.144 0.254 1.000
CN SSI d2 subjectiveses demog_resp 0.029 0.032 0.915 0.362 1.000
CN SSI d2 age demog_resp 0.011 0.014 0.775 0.440 1.000
US SSI d2 overseaexpnum demog_resp -0.005 0.022 -0.242 0.809 1.000
US SSI d2 subjectiveses demog_resp 0.013 0.020 0.662 0.508 1.000
US SSI d2 age demog_resp 0.000 0.002 -0.176 0.860 1.000
CN CA d2 overseaexpnum demog_resp -0.204 0.123 -1.657 0.100 1.000
CN CA d2 subjectiveses demog_resp 0.044 0.058 0.756 0.451 1.000
CN CA d2 age demog_resp -0.017 0.033 -0.497 0.620 1.000
US CA d2 overseaexpnum demog_resp -0.008 0.036 -0.231 0.817 1.000
US CA d2 subjectiveses demog_resp 0.009 0.033 0.273 0.785 1.000
US CA d2 age demog_resp -0.006 0.004 -1.595 0.112 1.000
CN TD d2 overseaexpnum demog_resp -0.046 0.027 -1.687 0.093 1.000
CN TD d2 subjectiveses demog_resp -0.026 0.013 -2.046 0.042 1.000
CN TD d2 age demog_resp -0.007 0.006 -1.224 0.223 1.000
US TD d2 overseaexpnum demog_resp 0.015 0.009 1.701 0.090 1.000
US TD d2 subjectiveses demog_resp 0.000 0.008 -0.057 0.955 1.000
US TD d2 age demog_resp 0.001 0.001 1.252 0.211 1.000
CN SeI d2 overseaexpnum demog_resp -0.023 0.043 -0.528 0.598 1.000
CN SeI d2 subjectiveses demog_resp -0.019 0.020 -0.969 0.334 1.000
CN SeI d2 age demog_resp -0.003 0.009 -0.379 0.705 1.000
US SeI d2 overseaexpnum demog_resp 0.033 0.015 2.146 0.033 1.000
US SeI d2 subjectiveses demog_resp 0.006 0.014 0.408 0.684 1.000
US SeI d2 age demog_resp 0.002 0.002 0.980 0.328 1.000

categorical demog

demog_d12_cat_df <- d12_joint_df %>% 
  left_join(cleaned_basic_demog_df, 
            by = c("subject", "culture", "study")) %>% 
  rename(demog_type = demog_question) %>% 
  filter(demog_type %in% c("gender", "stem_or_not"))


demog_d12_cat_mod <- demog_d12_cat_df %>% 
  group_by(culture, task_name, study, demog_type) %>% 
  nest() %>% 
  mutate(mod = map(data, function (df) lm(resp_num ~ demog_response, data = df)), 
         tidy = map(mod, tidy)) %>% 
  select(-mod, -data) %>% 
  unnest(cols = c(tidy))

demog_d12_cat_mod$p.adjusted = p.adjust(demog_d12_cat_mod$p.value, 
          method = "bonferroni")


demog_d12_cat_mod %>% 
  filter(term != "(Intercept)") %>% 
  knitr::kable(digits = 3)
culture task_name study demog_type term estimate std.error statistic p.value p.adjusted
US CA d1 gender demog_responseFemale -0.333 0.434 -0.769 0.443 1.000
US CA d1 gender demog_responseMale -0.443 0.440 -1.008 0.315 1.000
US CA d1 gender demog_responseNon-binary -0.222 0.475 -0.468 0.641 1.000
CN CA d1 gender demog_response拒绝回答 -0.342 0.305 -1.123 0.263 1.000
CN CA d1 gender demog_response男性 -0.078 0.088 -0.881 0.380 1.000
CN CA d1 gender demog_response非二元性别者 0.824 0.524 1.575 0.117 1.000
US EBB d1 gender demog_responseFemale 0.074 0.144 0.511 0.610 1.000
US EBB d1 gender demog_responseMale 0.069 0.146 0.474 0.636 1.000
US EBB d1 gender demog_responseNon-binary 0.183 0.158 1.161 0.247 1.000
CN EBB d1 gender demog_response拒绝回答 0.075 0.122 0.617 0.538 1.000
CN EBB d1 gender demog_response男性 0.005 0.035 0.134 0.894 1.000
CN EBB d1 gender demog_response非二元性别者 -0.208 0.209 -0.994 0.322 1.000
US FD d1 gender demog_responseFemale 0.185 0.119 1.553 0.122 1.000
US FD d1 gender demog_responseMale 0.198 0.121 1.637 0.104 1.000
US FD d1 gender demog_responseNon-binary 0.206 0.131 1.577 0.117 1.000
CN FD d1 gender demog_response拒绝回答 -0.244 0.175 -1.396 0.165 1.000
CN FD d1 gender demog_response男性 -0.037 0.051 -0.735 0.463 1.000
CN FD d1 gender demog_response非二元性别者 -0.578 0.301 -1.921 0.056 1.000
US HZ d1 gender demog_responseFemale -0.076 0.108 -0.703 0.483 1.000
US HZ d1 gender demog_responseMale -0.080 0.110 -0.727 0.468 1.000
US HZ d1 gender demog_responseNon-binary -0.057 0.119 -0.482 0.630 1.000
CN HZ d1 gender demog_response拒绝回答 0.107 0.115 0.924 0.357 1.000
CN HZ d1 gender demog_response男性 0.058 0.033 1.733 0.085 1.000
CN HZ d1 gender demog_response非二元性别者 0.008 0.198 0.040 0.968 1.000
US RMTS d1 gender demog_responseFemale 0.439 0.340 1.290 0.199 1.000
US RMTS d1 gender demog_responseMale 0.313 0.344 0.907 0.366 1.000
US RMTS d1 gender demog_responseNon-binary 0.333 0.372 0.895 0.372 1.000
CN RMTS d1 gender demog_response拒绝回答 -0.048 0.275 -0.176 0.860 1.000
CN RMTS d1 gender demog_response男性 -0.039 0.079 -0.486 0.627 1.000
CN RMTS d1 gender demog_response非二元性别者 -0.382 0.471 -0.810 0.419 1.000
US RV d1 gender demog_responseFemale -0.208 0.173 -1.202 0.231 1.000
US RV d1 gender demog_responseMale -0.161 0.176 -0.916 0.361 1.000
US RV d1 gender demog_responseNon-binary -0.153 0.190 -0.804 0.422 1.000
CN RV d1 gender demog_response拒绝回答 -0.153 0.097 -1.576 0.117 1.000
CN RV d1 gender demog_response男性 -0.011 0.028 -0.388 0.699 1.000
CN RV d1 gender demog_response非二元性别者 0.153 0.167 0.915 0.361 1.000
CN SI d1 gender demog_response拒绝回答 -0.016 0.389 -0.040 0.968 1.000
CN SI d1 gender demog_response男性 0.081 0.101 0.796 0.427 1.000
CN SI d1 gender demog_response非二元性别者 1.073 0.547 1.962 0.052 1.000
US SI d1 gender demog_responseFemale -0.268 0.184 -1.460 0.147 1.000
US SI d1 gender demog_responseMale -0.268 0.187 -1.429 0.156 1.000
US SI d1 gender demog_responseNon-binary -0.108 0.209 -0.514 0.608 1.000
US CP d1 gender demog_responseFemale 0.605 0.353 1.716 0.088 1.000
US CP d1 gender demog_responseMale 0.545 0.358 1.525 0.129 1.000
US CP d1 gender demog_responseNon-binary 0.444 0.387 1.149 0.252 1.000
CN CP d1 gender demog_response拒绝回答 -0.283 0.284 -0.995 0.321 1.000
CN CP d1 gender demog_response男性 0.051 0.082 0.616 0.539 1.000
CN CP d1 gender demog_response非二元性别者 0.384 0.488 0.787 0.433 1.000
CN RMTS d2 stem_or_not demog_response是 -0.101 0.071 -1.431 0.154 1.000
CN RMTS d2 gender demog_response拒绝回答 -0.042 0.243 -0.173 0.862 1.000
CN RMTS d2 gender demog_response男性 -0.115 0.065 -1.789 0.075 1.000
CN RV d2 stem_or_not demog_response是 -0.064 0.038 -1.674 0.096 1.000
CN RV d2 gender demog_response拒绝回答 0.083 0.131 0.634 0.527 1.000
CN RV d2 gender demog_response男性 -0.117 0.034 -3.435 0.001 0.113
CN FD d2 stem_or_not demog_response是 0.109 0.050 2.171 0.032 1.000
CN FD d2 gender demog_response拒绝回答 0.075 0.154 0.486 0.628 1.000
CN FD d2 gender demog_response男性 0.014 0.048 0.289 0.773 1.000
US FD d2 stem_or_not demog_responseYes 0.009 0.019 0.456 0.649 1.000
US FD d2 gender demog_responseFemale 0.013 0.074 0.171 0.865 1.000
US FD d2 gender demog_responseMale 0.008 0.074 0.109 0.914 1.000
US FD d2 gender demog_responseNon-binary 0.043 0.097 0.440 0.660 1.000
US RMTS d2 stem_or_not demog_responseYes -0.002 0.059 -0.035 0.972 1.000
US RMTS d2 gender demog_responseFemale -0.037 0.227 -0.162 0.872 1.000
US RMTS d2 gender demog_responseMale -0.033 0.226 -0.148 0.882 1.000
US RMTS d2 gender demog_responseNon-binary 0.163 0.299 0.543 0.587 1.000
US RV d2 stem_or_not demog_responseYes 0.098 0.035 2.805 0.005 0.815
US RV d2 gender demog_responseFemale -0.045 0.138 -0.326 0.745 1.000
US RV d2 gender demog_responseMale -0.015 0.138 -0.110 0.912 1.000
US RV d2 gender demog_responseNon-binary 0.113 0.182 0.617 0.538 1.000
CN CD d2 stem_or_not demog_response是 -162.554 826.378 -0.197 0.844 1.000
CN CD d2 gender demog_response拒绝回答 3969.185 2654.875 1.495 0.137 1.000
CN CD d2 gender demog_response男性 -1010.071 738.325 -1.368 0.173 1.000
US CD d2 stem_or_not demog_responseYes -224.383 567.500 -0.395 0.693 1.000
US CD d2 gender demog_responseFemale 5145.774 2328.988 2.209 0.028 1.000
US CD d2 gender demog_responseMale 4530.248 2321.603 1.951 0.052 1.000
US CD d2 gender demog_responseNon-binary 871.530 2904.759 0.300 0.764 1.000
CN SSI d2 stem_or_not demog_response是 -0.072 0.118 -0.611 0.542 1.000
CN SSI d2 gender demog_response拒绝回答 -0.161 0.385 -0.417 0.677 1.000
CN SSI d2 gender demog_response男性 0.065 0.108 0.606 0.545 1.000
US SSI d2 stem_or_not demog_responseYes -0.082 0.072 -1.139 0.256 1.000
US SSI d2 gender demog_responseFemale 0.186 0.299 0.621 0.535 1.000
US SSI d2 gender demog_responseMale 0.129 0.298 0.433 0.665 1.000
US SSI d2 gender demog_responseNon-binary 0.140 0.373 0.376 0.708 1.000
CN CA d2 stem_or_not demog_response是 0.483 0.211 2.292 0.024 1.000
CN CA d2 gender demog_response拒绝回答 -0.130 1.045 -0.124 0.902 1.000
CN CA d2 gender demog_response男性 0.501 0.202 2.478 0.015 1.000
US CA d2 stem_or_not demog_responseYes -0.171 0.120 -1.423 0.156 1.000
US CA d2 gender demog_responseFemale -0.277 0.467 -0.594 0.553 1.000
US CA d2 gender demog_responseMale -0.495 0.465 -1.065 0.288 1.000
US CA d2 gender demog_responseNon-binary 0.103 0.616 0.168 0.867 1.000
CN TD d2 stem_or_not demog_response是 0.008 0.046 0.183 0.855 1.000
CN TD d2 gender demog_response拒绝回答 -0.336 0.159 -2.111 0.036 1.000
CN TD d2 gender demog_response男性 -0.061 0.042 -1.475 0.142 1.000
US TD d2 stem_or_not demog_responseYes 0.063 0.029 2.196 0.029 1.000
US TD d2 gender demog_responseFemale 0.188 0.112 1.673 0.095 1.000
US TD d2 gender demog_responseMale 0.189 0.112 1.690 0.092 1.000
US TD d2 gender demog_responseNon-binary 0.287 0.148 1.933 0.054 1.000
CN SeI d2 stem_or_not demog_response是 -0.025 0.072 -0.345 0.730 1.000
CN SeI d2 gender demog_response拒绝回答 0.161 0.256 0.630 0.529 1.000
CN SeI d2 gender demog_response男性 0.051 0.067 0.765 0.445 1.000
US SeI d2 stem_or_not demog_responseYes 0.081 0.052 1.564 0.119 1.000
US SeI d2 gender demog_responseFemale -0.165 0.202 -0.817 0.415 1.000
US SeI d2 gender demog_responseMale -0.182 0.202 -0.904 0.367 1.000
US SeI d2 gender demog_responseNon-binary -0.075 0.267 -0.281 0.779 1.000