---
title: Supporting Information for "Can Rising Powers Reassure?  Shifting Power, Foreign Economic Policy, and Perceptions of Revisionist Intent"


date: |
      | October 2024
      |
    
fontsize: 11pt
documentclass: article
indent: true
output: 
    bookdown::pdf_document2:
      keep_tex: true
      toc: false
      number_sections: true
      

subparagraph: yes 

header-includes: |
  \usepackage{fullpage}  
  \usepackage{setspace}
  \usepackage{sectsty}
  \usepackage{amsmath}
  \usepackage{booktabs}
  \allsectionsfont{\singlespacing}
  \usepackage{siunitx}
  \newcolumntype{d}{S[input-symbols = ()]}
link-citations: true
linkcolor: Blue
---

```{r setup, include=FALSE}
library(tidyverse)
library(janitor)
library(knitr)
library(haven)
library(DescTools)
library(wesanderson)
library(kableExtra)
library(zipcodeR)
library(modelsummary)
library(haven)
library(survey)
library(usdata)
library(estimatr)
library(gt)
knitr::opts_chunk$set(echo = FALSE)
knitr::opts_chunk$set(message = FALSE)
knitr::opts_chunk$set(warning  = FALSE)

#load data 
load("PowersStrange.Rdata")

                     
library(qwraps2)


options(qwraps2_markup="markdown")
demos_summary<- list("Gender" =  
                       list("Male"=  ~ n_perc(Gender_recode == "Male", na_rm=TRUE),
                            "Female" = ~ n_perc(Gender_recode == "Female", na_rm=TRUE),
                            "Other/Prefer not to say" = ~ n_perc(Gender_recode == "Other/Prefer not to answer", na_rm=TRUE)), 
                     "Income" = 
                       list("Less than $30,000"=  ~ n_perc(Income_recode == "Less than $30,000", na_rm=TRUE),
                            "Between $30,000 and $59,000" = ~ n_perc(Income_recode == "Between $30,000 and $59,000", na_rm=TRUE),
                            "Between $60,000 and $120,000" = ~ n_perc(Income_recode == "Between $60,000 and $120,000", na_rm=TRUE),
                            "More than $120,000" = ~ n_perc(Income_recode == "More than $120,000", na_rm=TRUE),
                            "Prefer not to say" = ~ n_perc(Income_recode == "No response", na_rm=TRUE)),
                      "Race" = 
                       list("Asian"=  ~ n_perc(race_recode == "Asian", na_rm=TRUE),
                            "Black" = ~ n_perc(race_recode == "Black", na_rm=TRUE),
                            "Hispanic" = ~ n_perc(race_recode == "Hispanic", na_rm=TRUE),
                            "Indigenous" = ~ n_perc(race_recode == "Indigenous", na_rm=TRUE),
                             "White" = ~ n_perc(race_recode == "White", na_rm=TRUE),
                             "Other" = ~ n_perc(race_recode == "Other", na_rm=TRUE),
                            "Prefer not to say" = ~ n_perc(race_recode == "No response", na_rm=TRUE)),
                     "Age" = 
                       list("18--29" =  ~ n_perc(age_range == "18--29", na_rm=TRUE), 
                            "30--39" =  ~ n_perc(age_range == "30--39", na_rm=TRUE), 
                            "40--49" =  ~ n_perc(age_range == "40--49", na_rm=TRUE), 
                            "50--59" =  ~ n_perc(age_range == "50--59", na_rm=TRUE), 
                            "60--69" =  ~ n_perc(age_range == "60--69", na_rm=TRUE), 
                            "70+"    =  ~ n_perc(age_range == "70+", na_rm=TRUE),
                            "Prefer not to say"    =  ~ n_perc(age_range == "No response", na_rm=TRUE)), 
                    "Political Party" = 
                       list("Democratic" =  ~ n_perc(party_id_recode == "Democratic", na_rm=TRUE), 
                            "Independent/Other" =  ~ n_perc(party_id_recode == "Independent/Other", na_rm=TRUE), 
                            "Republican" =  ~ n_perc(party_id_recode == "Republican", na_rm=TRUE),
                             "Prefer not to say" =  ~ n_perc(party_id_recode == "No response", na_rm=TRUE)),
                      "Region" = 
                       list("Northeast"=  ~ n_perc(region == "Northeast", na_rm=TRUE),
                            "Midwest"=  ~ n_perc(region == "Midwest", na_rm=TRUE),
                            "South and Central"=  ~ n_perc(region == "South", na_rm=TRUE),
                            "West"=  ~ n_perc(region == "West", na_rm=TRUE),
                            "No response"=  ~ n_perc(region == "No response", na_rm=TRUE)), 
                     "Education" =
                     list("No high school diploma"=  ~ n_perc(Education_recode == "No high school diploma", na_rm=TRUE),
                          "High school graduate"=  ~ n_perc(Education_recode == "High school", na_rm=TRUE),
                          "Some college"=    ~ n_perc(Education_recode == "Some college", na_rm=TRUE),
                          "2-Year degree" =  ~ n_perc(Education_recode == "2-Year", na_rm=TRUE),
                          "4-Year degree"=  ~ n_perc(Education_recode == "4-Year", na_rm=TRUE), 
                          "Post-grad"=  ~ n_perc(Education_recode == "Post-Grad", na_rm=TRUE), 
                          "Prefer not to say"=  ~ n_perc(Education_recode == "No response", na_rm=TRUE)))
  
dlabss_demos <- summary_table(dlabss_data_JPR, demos_summary)

```



```{r cces, include = FALSE}


cces_demos_df<- read_dta("cces.dta") %>% mutate(state = abbr2state(state2))

#gender
cces_demos_df <- cces_demos_df %>% mutate(gender_demos =  case_when( 
  gender == 1  ~ "Male", 
  gender == 2  ~ "Female",
  TRUE ~ NA_character_), gender_demos = factor(gender_demos, levels=c("Male" , "Female", "Other/Prefer not to say")))
#age
cces_demos_df <- cces_demos_df %>% 
  mutate(age_range = factor(age_range, levels= c("18--29", "30--39", "40--49", "50--59", "60--69", "70+", "Prefer not to say")))
#race
cces_demos_df <- cces_demos_df %>% mutate(race_demos = case_when(
  race2 == "White" ~ "White", 
  race2 == "Hispanic" ~ "Hispanic", 
  race2 == "Black" ~ "Black", 
  race2 == "Asian" ~ "Asian", 
  race2 == "Native American" ~ "Indigenous", 
  race2 == "Middle Eastern" | race2 == "Mixed" | race2 == "Other" ~ "Other")) %>%
  mutate(race_demos = factor(race_demos, levels= c("Asian", "Black", "Hispanic", "Indigenous", "White", "Other", "Prefer not to say")))

#region 
cces_demos_df <- cces_demos_df %>% mutate(region =  case_when( 
  state == "Alaska" ~ "West", 
  state == "Alabama" ~ "South", 
  state == "Arkansas" ~ "South", 
  state == "Arizona" ~ "West", 
  state == "California" ~ "West", 
  state == "Colorado" ~ "West", 
  state == "Connecticut" ~ "Northeast", 
  state == "District of Columbia" ~ "South", 
  state == "Delaware" ~ "South", 
  state == "Florida" ~ "South", 
  state == "Georgia" ~ "South", 
  state == "Hawaii" ~ "West", 
  state == "Iowa" ~ "Midwest", 
  state == "Idaho" ~ "West", 
  state == "Illinois" ~ "Midwest", 
  state == "Indiana" ~ "Midwest", 
  state == "Kansas" ~ "Midwest", 
  state == "Kentucky" ~ "South", 
  state == "Louisiana" ~ "South", 
  state == "Massachusetts" ~ "Northeast", 
  state == "Maryland" ~ "South", 
  state == "Maine" ~ "Northeast", 
  state == "Michigan" ~ "Midwest", 
  state == "Minnesota" ~ "Midwest", 
  state == "Missouri" ~ "Midwest", 
  state == "Mississippi" ~ "South", 
  state == "Montana" ~ "West", 
  state == "North Carolina" ~ "South", 
  state == "North Dakota" ~ "Midwest", 
  state == "Nebraska" ~ "Midwest", 
  state == "New Hampshire" ~ "Northeast", 
  state == "New Jersey" ~ "Northeast", 
  state == "New Mexico" ~ "West", 
  state == "Nevada" ~ "West", 
  state == "New York" ~ "Northeast", 
  state == "Ohio" ~ "Midwest", 
  state == "Oklahoma" ~ "West", 
  state == "Oregon" ~ "West", 
  state == "Pennsylvania" ~ "Northeast", 
  state == "Rhode Island" ~ "Northeast", 
  state == "South Carolina" ~ "South", 
  state == "South Dakota" ~ "Midwest", 
  state == "Tennessee" ~ "South", 
  state == "Texas" ~ "South", 
  state == "Utah" ~ "West", 
  state == "Virginia" ~ "South", 
  state == "Vermont" ~ "Northeast", 
  state == "Washington" ~ "West", 
  state == "Wisconsin" ~ "Midwest", 
  state == "West Virginia" ~ "South", 
  state == "Wyoming" ~ "West",
  TRUE ~ NA_character_)) %>% mutate(region = factor(region, levels = c("Northeast", "Midwest", "South", "West", "No response")))

#pid
cces_demos_df <- cces_demos_df %>% mutate(pid_demos = case_when( 
  pid3_leaner == 1  ~ "Democrat", 
  pid3_leaner == 2 ~ "Republican",
  pid3_leaner == 3 ~ "Independent/Other",
  pid3_leaner == 8 ~ "Independent/Other",
  TRUE ~ NA_character_)) %>%  mutate(pid_demos = factor(pid_demos, levels=c("Democrat", "Independent/Other", "Republican",  "Prefer not to say")))

#income 
cces_demos_df <- cces_demos_df %>% 
  mutate(income_range = factor(income_range, levels=c("Less than $30,000", "Between $30,000 and $59,999", "Between $60,000 and $120,000", "More than $120,000", "Prefer not to say")))

#edu
cces_demos_df <- cces_demos_df %>% mutate(edu =  case_when( 
  educ == 1 ~  "No high school diploma", 
  educ == 2 ~  "High school graduate", 
  educ == 3 ~  "Some college", 
  educ == 4 ~  "2 year degree", 
  educ == 5 ~  "4 year degree", 
  educ == 6 ~  "Post-grad", 
  TRUE ~ NA_character_), edu = factor(edu, levels=c(
    "No high school diploma", "High school graduate", "Some college", "2 year degree", "4 year degree", "Post-grad", "Prefer not to say" )))

#sample weights
cces_design <- svydesign(ids=~0, weights=~weight, data=cces_demos_df)

#region
cces_region <- svytable(~region, cces_design) %>% 
        as_tibble() %>% mutate(variable = "Region") %>%
        rename(level = region)


#race
cces_race <- svytable(~race_demos, cces_design) %>% 
        as_tibble() %>% mutate(variable = "Race") %>%
        rename(level = race_demos)

#gender
cces_gender <- svytable(~gender_demos, cces_design) %>% 
        as_tibble() %>% mutate(variable = "Gender") %>%
        rename(level = gender_demos)
#partyid
cces_pid <- svytable(~pid_demos, cces_design) %>% 
  as_tibble() %>% mutate(variable = "Party ID") %>%
  rename(level = pid_demos) 

#income 
cces_inc <- svytable(~income_range, cces_design) %>% 
  as_tibble() %>% 
  mutate(variable = "Income")  %>%
  rename(level = income_range) 
  

#education 
cces_edu <- svytable(~edu, cces_design)  %>% 
  as_tibble() %>% mutate(variable = "Education") %>%
  rename(level = edu)

#age
cces_age <- svytable(~age_range, cces_design) %>% 
  as_tibble() %>% mutate(variable = "Age") %>%
  rename(level = age_range)


cces_bind <- rbind(cces_gender,cces_inc, cces_race, cces_age,  cces_pid, cces_region, cces_edu) %>%
  group_by(variable) %>%
  mutate(total = sum(n), prop = round((n/total*100), 2)) %>%
  mutate(prop = paste0(prop,"%"))
cces_bind
#
dlabss_tbl <- dlabss_demos %>% tibble()


##grab the summary table object from dlabbs and replace the stats with our manually created ones from the CES. 
var_levels <- c("Gender", "Income", "Race", "Age", "Party ID", "Region", "Education")
indexes <- cces_bind %>% summarise(index = n()) %>% mutate(variable = factor(variable, levels = var_levels ))  %>% arrange(variable)
cces_indexes <- indexes$index
names(cces_indexes) <- indexes$variable


# Create rows for each unique group
unique_groups <- unique(cces_bind$variable)
new_rows <- data.frame(level = unique_groups, n = NA, variable = unique_groups, total = NA, prop = NA)

# Initialize an empty list to hold the final ordered rows
final_rows <- list()

# Loop through each group and add the group label and corresponding rows
for(group in unique_groups) {
  final_rows <- append(final_rows, list(new_rows[new_rows$variable == group, ]))
  final_rows <- append(final_rows, list(cces_bind[cces_bind$variable == group, ]))
}

# Combine all rows into a final DataFrame
packed_df <- do.call(rbind, final_rows)

#get dlabbs
dlabss_tbl_extracted <- dlabss_tbl %>% pull(.)
dlabss_props <- dlabss_tbl_extracted[,2] %>% as_tibble()
dlabss_names <- dlabss_tbl_extracted[,1] %>% as_tibble()
combined <- cbind(dlabss_names, dlabss_props,packed_df)
colnames(combined) <- c("level", "dlabss", "level_cces", "n", "variable", "total", "prop")
combined_for_out <- combined %>% select(level_cces, dlabss, prop) %>% filter(!is.na(prop))



```



```{r}
     
ttngo_demos_summary<- list("Gender" =  
                       list("Male"=  ~ n_perc(gender_formatted == "Male", na_rm=TRUE),
                            "Female" = ~ n_perc(gender_formatted == "Female", na_rm=TRUE),
                            "Prefer not to say" = ~ n_perc(gender_formatted == "Prefer not to say/No response" | gender_formatted == "Other",    na_rm=TRUE)), 
                       "Race" = 
                       list("Asian"=  ~ n_perc(race_recode == "Asian", na_rm=TRUE),
                            "Black" = ~ n_perc(race_recode == "Black", na_rm=TRUE),
                            "Hispanic" = ~ n_perc(race_recode == "Hispanic", na_rm=TRUE),
                            "Indigenous" = ~ n_perc(race_recode == "Indigenous", na_rm=TRUE),
                             "White" = ~ n_perc(race_recode == "White", na_rm=TRUE),
                             "Other" = ~ n_perc(race_recode == "Other", na_rm=TRUE),
                            "Prefer not to say" = ~ n_perc(race_recode == "No response", na_rm=TRUE)),
                     "Age" = 
                       list("18--29" =  ~ n_perc(age_formatted == "18--29", na_rm=TRUE), 
                            "30--39" =  ~ n_perc(age_formatted == "30--39", na_rm=TRUE), 
                            "40--49" =  ~ n_perc(age_formatted == "40--49", na_rm=TRUE), 
                            "50--59" =  ~ n_perc(age_formatted == "50--59", na_rm=TRUE), 
                            "60--69" =  ~ n_perc(age_formatted == "60--69", na_rm=TRUE), 
                            "70+"    =  ~ n_perc(age_formatted == "70+", na_rm=TRUE),
                            "Prefer not to say"    =  ~ n_perc(age_formatted == "Prefer not to say/No response", na_rm=TRUE)), 
                    "Political Party" = 
                       list("Democratic" =  ~ n_perc(party_id_formatted == "Democrat", na_rm=TRUE), 
                            "Independent/Other" =  ~ n_perc(party_id_formatted == "Independent/Other", na_rm=TRUE), 
                            "Republican" =  ~ n_perc(party_id_formatted == "Republican", na_rm=TRUE),
                             "Prefer not to say" =  ~ n_perc(party_id_formatted == "No response", na_rm=TRUE)),
                     "Education" =
                     list("B.A. or B.S."=  ~ n_perc(education_formatted == "B.A. or B.S.", na_rm=TRUE), 
                          "Master's"=  ~ n_perc(education_formatted == "Master's", na_rm=TRUE), 
                          "M.D."=  ~ n_perc(education_formatted == "M.D.", na_rm=TRUE), 
                          "J.D."=  ~ n_perc(education_formatted == "J.D.", na_rm=TRUE), 
                          "Ph.D."=  ~ n_perc(education_formatted == "Ph.D.", na_rm=TRUE),
                          "Other"=  ~ n_perc(education_formatted == "Other", na_rm=TRUE),
                          "Prefer not to say"=  ~ n_perc(education_formatted == "Prefer not to say/No response", na_rm=TRUE)))
       
ttngo_demos <- summary_table(ttngo_data_JPR, ttngo_demos_summary, 
                             qable_args = list(kable_args = list(caption = "Demographic distribution for elite sample."), 
                                            font_size = 7,
                                            cnames = c("Think Tank/NGO Sample (N=813)")))

```

\clearpage

# About the elite survey

We included our experiment on a longer survey of U.S. foreign policy elites. Our partners gathered the names and contact information for 12,557 individuals working at think tanks or non-governmental organizations in the United States working on issues related to U.S. foreign policy. 1,276 individuals answered at least one question on the survey and 813 individuals completed our experiment. 

To be included in the sample, respondents had to be employed at one of 174 non-governmental organizations or 75 of the most influential U.S.-based IR think tanks tracked by the 2019 Global Go To Think Tank Index Report. Examples of think tanks included: Center for Strategic and International Studies, Heritage Foundation, Center for American Progress, German Marshall Fund of the US, and Center For New American Security. Examples of NGOs included: National Endowment for Democracy, Oxfam-America, The Carter Center, World Wildlife Fund. At orgnanizations that work on more than issues of relevance to U.S. foreign policy, only those employees are listed as working on foreign policy issues were surveyed. 

The elite experiment vignette differed in the following minor ways from that fielded on the public. First, we assumed a working knowledge of global governance institutions and so did not spell out what the IMF and World Bank actually do. Second, we did not remind respondents of the location of the recipient counties (Dominican Republic and Haiti). Third, the introduction to the experiment read somewhat differently. The elites saw, "Below we will describe the behavior of a hypothetical country. Please consider how you might feel about the country’s motives and how the United States might be affected by this country’s behavior." The public saw, "Below we will describe a country and give you some information about its foreign policy choices. Please consider how you might feel about the county’s motives and its ability to sway the future foreign policy choices of countries outside the United States."


```{r, echo=FALSE, results = "asis"}

ttngo_data_JPR %>%  
  tabyl(org_category) %>% adorn_pct_formatting() %>% 
  adorn_totals()  %>% 
  kable(caption = "Self-reported organization type among think tank and NGO respondents", booktabs=TRUE, col.names = c("Org. type", "N", "%")) %>% kable_styling(latex_options = "HOLD_position")


ttngo_data_JPR  %>% 
  tabyl(position_level) %>% adorn_pct_formatting() %>% adorn_totals()  %>%
  kable(caption = "Rank distribution among think tank and NGO respondents", booktabs=TRUE, col.names = c("Rank", "N", "%")) %>%   kable_styling(latex_options = "HOLD_position" ,)



```

All NGOs that undertake research, advocacy, or implementation work that “crosses borders” and are potentially influenced or affected by US foreign policy decisions were included in the final list.


# Demographics

## Public  demographics {.unnumbered}



```{r, echo=FALSE, results = "asis"}

 combined_for_out %>% 
  kbl(format="latex", booktabs=TRUE,  col.names = c("Label", "DLABSS", "CCES Benchmark (2020)"), row.names=FALSE, caption = 'Distribution of demographics in public sample') %>% 
  pack_rows(index=cces_indexes) %>%   kable_styling(font_size = 7, latex_options = "HOLD_position")
   
    

```

\clearpage

## Think Tank/NGO demographics {.unnumbered}

\footnotesize

```{r, echo=FALSE, results = "asis"}
print(ttngo_demos)


```

\normalsize
# Results tables

Models are estimated via OLS. The original scales were seven point Likert-style "strongly agree" to "strongly disagree" scales with a "neither agree nor disagree option" in the middle. For the binary models, we dichotomize the scale so that a 100 represents any level agreement while a 0 represents neither or any level of disagreement. 

## Results tables for models presented in main text

In the text, we first discuss the main effect of each treatment. We then discuss the results of models in which we interact the treatments with each other in order to produced disaggregated estimates. 

```{r, echo=FALSE}


custom_coeff_lab <- c("rhet_treatStatus Quo" = "SQ Rhetoric", 
                      "behav_treatStatus Quo" = "SQ Behavior",  
                      "rhet_treatStatus Quo:behav_treatStatus Quo" = "SQ Rhet.*SQ Behav.", 
                      "countryThe Dominican Republic" = "Dominican Republic",
                      "rhet_treatStatus Quo:countryThe Dominican Republic" =  "SQ Rhet.*Dom. Rep.",
                      "behav_treatStatus Quo:countryThe Dominican Republic" = "SQ Behav.*Dom. Rep.",
                      "rhet_treatStatus Quo:behav_treatStatus Quo:countryThe Dominican Republic" = "SQ Rhet.*SQ Behav.*Dom. Rep."
                      )
         
treatments <- c("rhet_treat*behav_treat*country")

#tt binary
dvs <- c("natsec_threat_bin", "popular_influence_bin", "will_challenge_bin", "elite_influence_bin", "should_more_influence_bin")
tt_bin_results = list(list())
for (i in seq_along(dvs)) {
  
  tmp_results = list()
  form <- as.formula(paste(dvs[i], paste(treatments, sep=" + "), sep = "~"))

  estimate <- lm_robust(form, data = ttngo_data_JPR)
  tmp_results[[1]] <- estimate
  
  tt_bin_results[[i]] <- tmp_results
}

tt_bin_models_text <- list ( 
              "-" =  tt_bin_results[[1]][[1]], 
              "-" = tt_bin_results[[3]][[1]],
              "-" = tt_bin_results[[5]][[1]],
              "-" = tt_bin_results[[2]][[1]],
              "-" = tt_bin_results[[4]][[1]])
             
```

```{r, echo=FALSE, results = "asis"}



modelsummary(tt_bin_models_text, fmt = 2,  output="kableExtra",
             stars = c(  '**' = .05, '***' = .001), 
              gof_map = c("nobs", "r.squared"),
              title = 'Results for think tank sample presented in text',
              coef_rename = custom_coeff_lab) %>%
    add_header_above(c(" " = 1, "Nat sec. threat" = 1, "Change rules" = 1, "More influence" = 1,  "Public influence" = 1, "Elite influence" = 1))  %>%
  kable_styling(font_size = 6, latex_options = "HOLD_position")
   
      


```



```{r, echo=FALSE}


treatments <- c("rhet_treat*behav_treat*country")

custom_coeff_lab <- c("rhet_treatStatus Quo" = "SQ Rhetoric", 
                      "behav_treatStatus Quo" = "SQ Behavior",  
                      "rhet_treatStatus Quo:behav_treatStatus Quo" = "SQ Rhet.*SQ Behav.", 
                      "countrythe Dominican Republic" = "Dominican Republic",
                      "rhet_treatStatus Quo:countrythe Dominican Republic" =  "SQ Rhet.*Dom. Rep.",
                      "behav_treatStatus Quo:countrythe Dominican Republic" = "SQ Behav.*Dom. Rep.",
                      "rhet_treatStatus Quo:behav_treatStatus Quo:countrythe Dominican Republic" = "SQ Rhet.*SQ Behav.*Dom. Rep."
                      )
         
#dlabbs binary
dvs <- c("threaten_us_influence_bin", "responsible_stakeholder_bin", "should_more_influence_bin", "elite_influence_bin", "will_challenge_bin", "natsec_threat_bin" )
dl_bin_results = list(list())
for (i in seq_along(dvs)) {
  
  tmp_results = list()
   form <- as.formula(paste(dvs[i], paste(treatments[1], sep=" + "), sep = "~"))

  estimate <- lm_robust(form, data = dlabss_data_JPR)
  tmp_results[[1]] <- estimate
  
  dl_bin_results[[i]] <- tmp_results
}

dl_bin_models_text <- list ( 
              "-" =  dl_bin_results[[6]][[1]],
              "-" = dl_bin_results[[5]][[1]],
              "-" = dl_bin_results[[3]][[1]],
              "-" = dl_bin_results[[4]][[1]])


```

```{r, echo=FALSE, results = "asis"}


modelsummary(dl_bin_models_text, fmt = 2,  output="kableExtra",
             stars = c(  '**' = .05, '***' = .001), 
              gof_map = c("nobs", "r.squared"),
              title = 'Results tables for public sample presented in text',
              coef_rename = custom_coeff_lab) %>%
    add_header_above(c(" " = 1, "Nat sec. threat" = 1, "Change rules" = 1, "More influence" = 1, "Elite influence" = 1))  %>%
  kable_styling(font_size = 7, latex_options = "HOLD_position")
   
       

```

\newpage

## Results with pre-treatment controls

 In these models, we also control for potentially relevant pre-treatment demographic characteristics. Gender is a binary variable that takes on a value of 0 if the respondent is male and 1 if the respondent is female. Ideology is a three point scale from 1 (conservative) to 3 (liberal) with "middle of the road" in between. Education is on an integer scale ranging from 1 (no high school) to 5 (advanced degree). Age is recorded in years since birth. 

```{r, echo=FALSE}



custom_coeff_lab <- c("rhet_treatStatus Quo" = "SQ Rhetoric", 
                      "behav_treatStatus Quo" = "SQ Behavior",  
                      "rhet_treatStatus Quo:behav_treatStatus Quo" = "SQ Rhet.*SQ Behav.",
                      "countryThe Dominican Republic" = "Dominican Republic",
                      "rhet_treatStatus Quo:countryThe Dominican Republic" =  "SQ Rhet.*Dom. Rep.",
                      "behav_treatStatus Quo:countryThe Dominican Republic" = "SQ Behav.*Dom. Rep.",
                      "rhet_treatStatus Quo:behav_treatStatus Quo:countryThe Dominican Republic" = "SQ Rhet.*SQ Behav.*Dom. Rep.",
                      "age"="Age", 
                      "gender_num"="Female",
                      "edu_num"= "Education", 
                      "ideo_num"="Ideology (3-pt, L to R)")
         
treatments <- "rhet_treat*behav_treat*country"
control_vars <- c("age", "gender_num", "ideo_num", "edu_num")

#tt binary
dvs <- c("natsec_threat_bin", "popular_influence_bin", "will_challenge_bin", "elite_influence_bin", "should_more_influence_bin")
tt_bin_results = list(list())
for (i in seq_along(dvs)) {
  
  tmp_results = list()
  
   #controls
  form <- as.formula(paste(dvs[i], paste(treatments, paste(control_vars, collapse=" + "), sep=" + "), sep = "~"))

  estimate <- lm_robust(form, data = ttngo_data_JPR)
  tmp_results[[1]] <- estimate
  
  tt_bin_results[[i]] <- tmp_results
}

tt_bin_models <- list ( 
              "w/ ctrls" =  tt_bin_results[[1]][[1]], 
              "w/ ctrls" = tt_bin_results[[3]][[1]],
              "w/ ctrls" = tt_bin_results[[5]][[1]],
              "w/ ctrls" = tt_bin_results[[2]][[1]],
              "w/ ctrls" = tt_bin_results[[4]][[1]])
```

```{r, echo=FALSE, results = "asis"}



modelsummary(tt_bin_models, fmt = 2,  output="kableExtra",
             stars = c( '**' = .05, '***' = .001), 
              gof_map = c("nobs", "r.squared"),
              title = 'Results for think tank sample, binary DVs',
              coef_rename = custom_coeff_lab) %>%
    add_header_above(c(" " = 1, "Nat sec. threat" = 1, "Change rules" = 1, "More influence" = 1,  "Public influence" = 1, "Elite influence" = 1))  %>%
  kable_styling(font_size = 7, latex_options = "HOLD_position")
   
      


```


```{r, echo=FALSE}

custom_coeff_lab <- c("rhet_treatStatus Quo" = "SQ Rhetoric", 
                      "behav_treatStatus Quo" = "SQ Behavior",  
                      "rhet_treatStatus Quo:behav_treatStatus Quo" = "SQ Rhet.*SQ Behav.",
                      "countryThe Dominican Republic" = "Dominican Republic",
                      "rhet_treatStatus Quo:countryThe Dominican Republic" =  "SQ Rhet.*Dom. Rep.",
                      "behav_treatStatus Quo:countryThe Dominican Republic" = "SQ Behav.*Dom. Rep.",
                      "rhet_treatStatus Quo:behav_treatStatus Quo:countryThe Dominican Republic" = "SQ Rhet.*SQ Behav.*Dom. Rep.",
                      "age"="Age", 
                      "gender_num"="Female",
                      "edu_num"= "Education", 
                      "ideo_num"="Ideology (3-pt, L to R)")
         
#tt orig
ttngo_data_JPR <- ttngo_data_JPR %>%
    mutate(natsec_threat_num = as.numeric(natsec_threat), 
           popular_influence_num = as.numeric(popular_influence), 
           will_challenge_num = as.numeric(will_challenge),
           elite_influence_num = as.numeric(elite_influence),
           should_more_influence_num = as.numeric(should_more_influence))


dvs <- c("natsec_threat_num", "popular_influence_num", "will_challenge_num", "elite_influence_num", "should_more_influence_num")
tt_orig_results = list(list())
for (i in seq_along(dvs)) {
  
  tmp_results = list()
  
   #controls
  form <- as.formula(paste(dvs[i], paste(treatments, paste(control_vars, collapse=" + "), sep=" + "), sep = "~"))

  estimate <- lm(form, data = ttngo_data_JPR)
  tmp_results[[1]] <- estimate
  
  tt_orig_results[[i]] <- tmp_results
}

tt_orig_models <- list ( 
              "w/ ctrls" =  tt_orig_results[[1]][[1]], 
              "w/ ctrls" = tt_orig_results[[3]][[1]],
              "w/ ctrls" = tt_orig_results[[5]][[1]],
              "w/ ctrls" = tt_orig_results[[2]][[1]],
              "w/ ctrls" = tt_orig_results[[4]][[1]])

```



```{r, echo=FALSE, results = "asis"}
            


modelsummary(tt_orig_models, fmt = 2,  output="kableExtra",
             stars = c(  '**' = .05, '***' = .001), 
              gof_map = c("nobs", "r.squared"),
              title = 'Results for think tank, original scale DVs',
              coef_rename = custom_coeff_lab) %>%
    add_header_above(c(" " = 1, "Nat sec. threat" = 1, "Change rules" = 1, "More influence" = 1,  "Public influence" = 1, "Elite influence" = 1))  %>%
  kable_styling(font_size = 7, latex_options = "HOLD_position")
   
      

```


```{r, echo=FALSE}


custom_coeff_lab <- c("rhet_treatStatus Quo" = "SQ Rhetoric", 
                      "behav_treatStatus Quo" = "SQ Behavior",  
                      "rhet_treatStatus Quo:behav_treatStatus Quo" = "SQ Rhet.*SQ Behav.",
                      "countrythe Dominican Republic" = "Dominican Republic",
                      "rhet_treatStatus Quo:countrythe Dominican Republic" =  "SQ Rhet.*Dom. Rep.",
                      "behav_treatStatus Quo:countrythe Dominican Republic" = "SQ Behav.*Dom. Rep.",
                      "rhet_treatStatus Quo:behav_treatStatus Quo:countrythe Dominican Republic" = "SQ Rhet.*SQ Behav.*Dom. Rep.",
                      "age"="Age", 
                      "gender_num"="Female",
                      "edu_num"= "Education", 
                      "ideo_num"="Ideology (3-pt, L to R)")
         
#tt orig

control_vars <- c("age", "gender_num", "ideo_num", "edu_num")
treatments <- "rhet_treat*behav_treat*country"


#dlabbs binary
dvs <- c("threaten_us_influence_bin", "responsible_stakeholder_bin", "should_more_influence_bin", "elite_influence_bin", "will_challenge_bin", "natsec_threat_bin" )
dl_bin_results = list(list())
for (i in seq_along(dvs)) {
  
  tmp_results = list()
  form <- as.formula(paste(dvs[i], paste(treatments, paste(control_vars, collapse=" + "), sep=" + "), sep = "~"))
  estimate <- lm_robust(form, data = dlabss_data_JPR)
  tmp_results[[1]] <- estimate
  dl_bin_results[[i]] <- tmp_results
}

dl_bin_models <- list ( 
              "w/ ctrls" =  dl_bin_results[[6]][[1]],
              "w/ ctrls" = dl_bin_results[[5]][[1]],
              "w/ ctrls" = dl_bin_results[[3]][[1]],
              "w/ ctrls" = dl_bin_results[[4]][[1]])

```

```{r, echo=FALSE, results = "asis"}

modelsummary(dl_bin_models, fmt = 2,  output="kableExtra",
             stars = c(  '**' = .05, '***' = .001), 
              gof_map = c("nobs", "r.squared"),
              title = 'Results tables for public, binary DVs',
              coef_rename = custom_coeff_lab) %>%
    add_header_above(c(" " = 1, "Nat sec. threat" = 1, "Change rules" = 1, "More influence" = 1, "Elite influence" = 1))  %>%
  kable_styling(font_size = 7, latex_options = "HOLD_position")
   
       

```



```{r, echo=FALSE}

  
#dlabbs orig

dlabss_data_JPR <- dlabss_data_JPR %>%
    mutate(threaten_us_influence_num = as.numeric(threaten_us_influence), 
           responsible_stakeholder_num = as.numeric(responsible_stakeholder), 
           should_more_influence_num = as.numeric(should_more_influence),
           elite_influence_num = as.numeric(elite_influence),
           will_challenge_num = as.numeric(will_challenge),
           natsec_threat_num = as.numeric(natsec_threat))


dvs <- c("threaten_us_influence_num", "responsible_stakeholder_num", "should_more_influence_num", "elite_influence_num", "will_challenge_num", "natsec_threat_num" )
dl_orig_results = list(list())
for (i in seq_along(dvs)) {
  
  tmp_results = list()   #controls
  form <- as.formula(paste(dvs[i], paste(treatments, paste(control_vars, collapse=" + "), sep=" + "), sep = "~"))

  
  estimate <- lm_robust(form, data = dlabss_data_JPR)
  tmp_results[[1]] <- estimate
  
  dl_orig_results[[i]] <- tmp_results
}

dl_orig_models <- list ( 
  
              "w/ ctrls" =  dl_orig_results[[6]][[1]],
              "w/ ctrls" = dl_orig_results[[5]][[1]],
              "w/ ctrls" = dl_orig_results[[3]][[1]],
              "w/ ctrls" = dl_orig_results[[4]][[1]])
   
```

```{r, echo=FALSE, results = "asis"}


modelsummary(dl_orig_models, fmt = 2,  output="kableExtra",
             stars = c(  '**' = .05, '***' = .001), 
              gof_map = c("nobs", "r.squared"),
              title = 'Results for public, orig. scale',
              coef_rename = custom_coeff_lab) %>%
    add_header_above(c(" " = 1, "Nat sec. threat" = 1, "Change rules" = 1, "More influence" = 1, "Elite influence" = 1))  %>%
  kable_styling(font_size = 7, latex_options = "HOLD_position")
   
      
  
```


# Balance tests 

In the main text, we report estimates based on regression models that include only our treatment indicators (and their interaction) as the independent variables. To check for balance, we estimate models that predict potentially relevant pre-treatment characteristics (age, gender, ideology, and education level) as a function of treatment. The results show that balance across treatment conditions was quite good. Only in the case of gender in the think tank sample do we see evidence of a potentially important imbalance. Women are over represented somewhat in the SQ Rhetoric/Not SQ Behavior treatment condition. But, as the results above show, controlling for gender does not alter any of the conclusions that we draw about our treatments. Ideology is a three point scale from 1 (conservative) to 3 (liberal) with "middle of the road" in between. Education is on an integer scale ranging from 1 (no high school) to 5 (advanced degree). Age is recorded in years since birth. 



```{r, echo=FALSE, results = "asis"}

custom_coeff_lab <- c("rhet_treatStatus Quo" = "SQ Rhetoric", 
                      "behav_treatStatus Quo" = "SQ Behavior",  
                      "rhet_treatStatus Quo:behav_treatStatus Quo" = "SQ Rhet.*SQ Behav.")
                      
                      
balance <- list( "Age" = lm_robust(age ~ rhet_treat * behav_treat, data=ttngo_data_JPR ),
                "Ideology" = lm_robust(ideo_num ~ rhet_treat * behav_treat, data=ttngo_data_JPR ),
                "Education" = lm_robust(edu_num ~ rhet_treat * behav_treat, data=ttngo_data_JPR ),
                "Female" = lm_robust(gender_num ~ rhet_treat * behav_treat, data=ttngo_data_JPR ))


modelsummary(balance, fmt = 2,  output="kableExtra",
              stars = c(  '**' = .05, '***' = .001), 
              gof_map = c("nobs", "r.squared"),
              title = 'Predicting demographic features as a function of treatment assignment (Think Tank Sample).',
              coef_rename = custom_coeff_lab) %>%   kable_styling(font_size = 7, latex_options = "HOLD_position")



balance <- list( "Age" = lm(age ~ rhet_treat * behav_treat, data=dlabss_data_JPR ),
                "Ideology" = lm(ideo_num ~ rhet_treat * behav_treat, data=dlabss_data_JPR ),
                "Education" = lm(edu_num ~ rhet_treat * behav_treat, data=dlabss_data_JPR ),
                "Gender" = lm(gender_num ~ rhet_treat * behav_treat, data=dlabss_data_JPR ))


modelsummary(balance, fmt = 2,  output="kableExtra",
             stars = c(  '**' = .05, '***' = .001), ,
              gof_map = c("nobs", "r.squared"),
              title = 'Predicting demographic features as a function of treatment assignment (Public Sample).',
              coef_rename = custom_coeff_lab) %>%   kable_styling(font_size = 7, latex_options = "HOLD_position")

```




\clearpage





