Packages and Data Preparation

Below are the packages necessary for the analysis.

# Load all the necessary packages 
library(estimatr)
library(huxtable)
library(jtools)
library(car)
library(broom.mixed)
library(modelsummary)
library(ggplot2)
library(gridExtra)
# Load the dataset
load('all_data_may24.rda')
# Subset by country
US_data <- all_data[all_data$country == "US",]
GB_data <- all_data[all_data$country == "GB",]
FR_data <- all_data[all_data$country == "FR",]
PL_data <- all_data[all_data$country == "PL",]

Personality is a puzzle. How does FBD help us understand the relationship between conspiracy belief and personality traits? Personality traits are working through FBD?

Populism Models (Main Effects, Personality, and Full)

Personality is a puzzle. How does FBD help us understand the relationship between conspiracy belief and personality traits? Personality traits are working through FBD?

PopulismUS_MainEffect = lm(populism_rw_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=US_data)
PopulismPL_MainEffect = lm(populism_rw_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=PL_data)
PopulismFR_MainEffect = lm(populism_rw_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=FR_data)
PopulismGB_MainEffect = lm(populism_rw_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=GB_data)
PopulismUS_personality = lm(populism_rw_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=US_data)
PopulismPL_personality = lm(populism_rw_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=PL_data)
PopulismFR_personality = lm(populism_rw_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=FR_data)
PopulismGB_personality = lm(populism_rw_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=GB_data)
PopulismUS_fullFBD = lm(populism_rw_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=US_data)
PopulismPL_fullFBD = lm(populism_rw_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=PL_data)
PopulismFR_fullFBD = lm(populism_rw_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=FR_data)
PopulismGB_fullFBD = lm(populism_rw_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=GB_data)

Model Plots

# for the US
PopulismmodelsUS <- plot_summs(PopulismUS_MainEffect, PopulismUS_personality, PopulismUS_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Populism-Main Effects Model", "Populism-Personality Model", "Populism-Full Model"))
PopulismmodelsUS + labs(title="Populism Models (US only)")+ theme(plot.title=element_text(family="sans", face="bold"))

# for PL
PopulismmodelsPL <- plot_summs(PopulismPL_MainEffect, PopulismPL_personality, PopulismPL_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Populism-Main Effects Model", "Populism-Personality Model", "Populism-Full Model"))
PopulismmodelsPL + labs(title="Populism Models (PL only)")+ theme(plot.title=element_text(family="sans", face="bold"))

# for FR
PopulismmodelsFR <- plot_summs(PopulismFR_MainEffect, PopulismFR_personality, PopulismFR_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Populism-Main Effects Model", "Populism-Personality Model", "Populism-Full Model"))
PopulismmodelsFR + labs(title="Populism Models (FR only)")+ theme(plot.title=element_text(family="sans", face="bold"))

# for GB
PopulismmodelsGB <- plot_summs(PopulismGB_MainEffect, PopulismGB_personality, PopulismGB_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Populism-Main Effects Model", "Populism-Personality Model", "Populism-Full Model"))
PopulismmodelsGB + labs(title="Populism Models (GB only)")+ theme(plot.title=element_text(family="sans", face="bold"))

Regression Tables

comparison_modelsUSPopulism<-export_summs(PopulismUS_MainEffect, PopulismUS_personality, PopulismUS_fullFBD,
                                  scale=TRUE, model.names=c("Populism-Main Effects Model", "Populism-Personality Model", "Populism-Full Model"), 
                                  statistics=c("adjusted R-Squared" ="adj.r.squared","p-value"="p.value", "F statistic"="statistic"), 
                                  stars = c(`***` = 0.001, `**` = 0.01, `*` = 0.05, `Ā·` = 0.1))#, to.file="word", file.name = "modelsUS.docx")
comparison_modelsUSPopulism              
Populism-Main Effects ModelPopulism-Personality ModelPopulism-Full Model
(Intercept)-0.08Ā Ā Ā Ā -0.08Ā Ā Ā Ā -0.09 Ā·Ā Ā 
(0.05)Ā Ā Ā (0.05)Ā Ā Ā (0.05)Ā Ā Ā 
ethnocentrism_std0.06 **Ā 0.05 Ā·Ā Ā 0.02Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
church_attendance_std-0.07 ***-0.08 ***-0.06 **Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
ideology_std0.29 ***0.28 ***0.24 ***
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
ethnic_majority0.05Ā Ā Ā Ā 0.04Ā Ā Ā Ā 0.06Ā Ā Ā Ā 
(0.05)Ā Ā Ā (0.05)Ā Ā Ā (0.05)Ā Ā Ā 
age_std-0.08 ***-0.08 **Ā 0.00Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
education_collapse-0.06 **Ā -0.06 *Ā Ā -0.06 **Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
Q1_interest_in_politics_std0.16 ***0.17 ***0.13 ***
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
income0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.02Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
marital_status0.08 Ā·Ā Ā 0.08 Ā·Ā Ā 0.07 Ā·Ā Ā 
(0.04)Ā Ā Ā (0.04)Ā Ā Ā (0.04)Ā Ā Ā 
rwa_stdĀ Ā Ā Ā Ā Ā Ā 0.04Ā Ā Ā Ā 0.04 Ā·Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
sdo_stdĀ Ā Ā Ā Ā Ā Ā -0.01Ā Ā Ā Ā -0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.03)Ā Ā Ā 
big5_conscientiousness_stdĀ Ā Ā Ā Ā Ā Ā 0.04Ā Ā Ā Ā 0.09 ***
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
big5_agreeableness_stdĀ Ā Ā Ā Ā Ā Ā -0.06 *Ā Ā -0.04Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
big5_extraversion_stdĀ Ā Ā Ā Ā Ā Ā -0.03Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_openness_stdĀ Ā Ā Ā Ā Ā Ā -0.01Ā Ā Ā Ā -0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_stability_stdĀ Ā Ā Ā Ā Ā Ā -0.03Ā Ā Ā Ā 0.07 **Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
devalued_stdĀ Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā 0.45 ***
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā 
adjusted R-Squared0.17Ā Ā Ā Ā 0.17Ā Ā Ā Ā 0.33Ā Ā Ā Ā 
p-value0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 
F statistic45.84Ā Ā Ā Ā 26.69Ā Ā Ā Ā 58.08Ā Ā Ā Ā 
All continuous predictors are mean-centered and scaled by 1 standard deviation. *** p < 0.001; ** p < 0.01; * p < 0.05; Ā· p < 0.1.

Conspiracy Models (Main Effects, Personality, and Full)

conspiracyUS_MainEffect = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=US_data)
conspiracyPL_MainEffect = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=PL_data)
conspiracyFR_MainEffect = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=FR_data)
conspiracyGB_MainEffect = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=GB_data)
conspiracyUS_personality = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=US_data)
conspiracyPL_personality = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=PL_data)
conspiracyFR_personality = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=FR_data)
conspiracyGB_personality = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=GB_data)
conspiracyUS_fullFBD = lm(conspiratorial_orientation_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=US_data)
conspiracyPL_fullFBD = lm(conspiratorial_orientation_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=PL_data)
conspiracyFR_fullFBD = lm(conspiratorial_orientation_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=FR_data)
conspiracyGB_fullFBD = lm(conspiratorial_orientation_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=GB_data)

Model Plots

# for the US
conspiracymodelsUS <- plot_summs(conspiracyUS_MainEffect, conspiracyUS_personality, conspiracyUS_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Conspiracism-Main Effects Model", "Conspiracism-Personality Model", "Conspiracism-Full Model"))
conspiracymodelsUS + labs(title="Conspiracism Models (US only)")+ theme(plot.title=element_text(family="sans", face="bold"))

# for PL
conspiracymodelsPL <- plot_summs(conspiracyPL_MainEffect, conspiracyPL_personality, conspiracyPL_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Conspiracism-Main Effects Model", "Conspiracism-Personality Model", "Conspiracism-Full Model"))
conspiracymodelsPL + labs(title="Conspiracism Models (PL only)")+ theme(plot.title=element_text(family="sans", face="bold"))

# for FR
conspiracymodelsFR <- plot_summs(conspiracyFR_MainEffect, conspiracyFR_personality, conspiracyFR_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Conspiracism-Main Effects Model", "Conspiracism-Personality Model", "Conspiracism-Full Model"))
conspiracymodelsFR + labs(title="Conspiracism Models (FR only)")+ theme(plot.title=element_text(family="sans", face="bold"))

# for GB
conspiracymodelsGB <- plot_summs(conspiracyGB_MainEffect, conspiracyGB_personality, conspiracyGB_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Conspiracism-Main Effects Model", "Conspiracism-Personality Model", "Conspiracism-Full Model"))
conspiracymodelsGB + labs(title="Conspiracism Models (GB only)")+ theme(plot.title=element_text(family="sans", face="bold"))

Regression Tables

comparison_modelsUSConspiracy<-export_summs(conspiracyUS_MainEffect, conspiracyUS_personality, conspiracyUS_fullFBD,
                                  scale=TRUE, model.names=c("Conspiracism-Main Effects Model", "Conspiracism-Personality Model", "Conspiracism-Full Model"), 
                                  statistics=c("adjusted R-Squared" ="adj.r.squared","p-value"="p.value", "F statistic"="statistic"), 
                                  stars = c(`***` = 0.001, `**` = 0.01, `*` = 0.05, `Ā·` = 0.1))#, to.file="word", file.name = "modelsUS.docx")
comparison_modelsUSConspiracy              
Conspiracism-Main Effects ModelConspiracism-Personality ModelConspiracism-Full Model
(Intercept)-0.06Ā Ā Ā Ā -0.03Ā Ā Ā Ā -0.04Ā Ā Ā Ā 
(0.05)Ā Ā Ā (0.05)Ā Ā Ā (0.04)Ā Ā Ā 
ethnocentrism_std0.13 ***0.04 Ā·Ā Ā 0.02Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
church_attendance_std-0.07 **Ā -0.05 *Ā Ā -0.03Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
ideology_std0.35 ***0.31 ***0.27 ***
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
ethnic_majority-0.00Ā Ā Ā Ā -0.03Ā Ā Ā Ā -0.02Ā Ā Ā Ā 
(0.05)Ā Ā Ā (0.05)Ā Ā Ā (0.05)Ā Ā Ā 
age_std-0.22 ***-0.19 ***-0.12 ***
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
education_collapse-0.09 ***-0.08 ***-0.09 ***
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
Q1_interest_in_politics_std0.02Ā Ā Ā Ā 0.04 *Ā Ā 0.01Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
income-0.01Ā Ā Ā Ā -0.01Ā Ā Ā Ā -0.00Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
marital_status0.10 *Ā Ā 0.10 *Ā Ā 0.10 **Ā 
(0.04)Ā Ā Ā (0.04)Ā Ā Ā (0.04)Ā Ā Ā 
rwa_stdĀ Ā Ā Ā Ā Ā Ā 0.07 **Ā 0.07 ***
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
sdo_stdĀ Ā Ā Ā Ā Ā Ā 0.12 ***0.11 ***
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
big5_conscientiousness_stdĀ Ā Ā Ā Ā Ā Ā -0.03Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_agreeableness_stdĀ Ā Ā Ā Ā Ā Ā -0.05 *Ā Ā -0.03Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_extraversion_stdĀ Ā Ā Ā Ā Ā Ā -0.04 Ā·Ā Ā -0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_openness_stdĀ Ā Ā Ā Ā Ā Ā 0.05 *Ā Ā 0.05 **Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_stability_stdĀ Ā Ā Ā Ā Ā Ā -0.06 **Ā 0.02Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
devalued_stdĀ Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā 0.37 ***
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā 
adjusted R-Squared0.26Ā Ā Ā Ā 0.28Ā Ā Ā Ā 0.39Ā Ā Ā Ā 
p-value0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 
F statistic79.45Ā Ā Ā Ā 49.63Ā Ā Ā Ā 75.80Ā Ā Ā Ā 
All continuous predictors are mean-centered and scaled by 1 standard deviation. *** p < 0.001; ** p < 0.01; * p < 0.05; Ā· p < 0.1.

Correlation Matrices

#install.packages("corrplot")
library(corrplot)
## corrplot 0.92 loaded

All Countries

all_data_numeric_only = subset(all_data, select = c(devalued_std, populism_rw_std, populism_main_std, conspiratorial_orientation_std, big5_openness_std, big5_conscientiousness_std, big5_extraversion_std, big5_agreeableness_std, big5_stability_std, rwa_std, sdo_std, ethnic_majority, income, gender, age_std, ideology_std))

correlation_matrix_allcountries= cor(all_data_numeric_only, method="pearson", use="pairwise.complete.obs")

corrplot(correlation_matrix_allcountries, method="color", order="alphabet", tl.col = 'steelblue4', tl.pos="lt", tl.cex=0.7, tl.srt=45, number.cex=0.7, addgrid.col = 'white', addCoef.col = 'black')

US only

US_data_numeric_only = subset(US_data, select = c(devalued_std, populism_rw_std, populism_main_std, conspiratorial_orientation_std, big5_openness_std, big5_conscientiousness_std, big5_extraversion_std, big5_agreeableness_std, big5_stability_std, rwa_std, sdo_std, ethnic_majority, income, gender, age_std, ideology_std))

correlation_matrix_US= cor(US_data_numeric_only, method="pearson", use="pairwise.complete.obs")

corrplot(correlation_matrix_US, method="color", order="alphabet", tl.col = 'steelblue4', tl.pos="lt", tl.cex=0.7, tl.srt=45, number.cex=0.7, addgrid.col = 'white', addCoef.col = 'black')

Poland only

PL_data_numeric_only = subset(PL_data, select = c(devalued_std, populism_rw_std, populism_main_std, conspiratorial_orientation_std, big5_openness_std, big5_conscientiousness_std, big5_extraversion_std, big5_agreeableness_std, big5_stability_std, rwa_std, sdo_std, ethnic_majority, income, gender, age_std, ideology_std))

correlation_matrix_PL= cor(PL_data_numeric_only, method="pearson", use="pairwise.complete.obs")

corrplot(correlation_matrix_PL, method="color", order="alphabet", tl.col = 'steelblue4', tl.pos="lt", tl.cex=0.7, tl.srt=45, number.cex=0.7, addgrid.col = 'white', addCoef.col = 'black')

France only

FR_data_numeric_only = subset(FR_data, select = c(devalued_std, populism_rw_std, populism_main_std, conspiratorial_orientation_std, big5_openness_std, big5_conscientiousness_std, big5_extraversion_std, big5_agreeableness_std, big5_stability_std, rwa_std, sdo_std, ethnic_majority, income, gender, age_std, ideology_std))

correlation_matrix_FR= cor(FR_data_numeric_only, method="pearson", use="pairwise.complete.obs")

corrplot(correlation_matrix_FR, method="color", order="alphabet", tl.col = 'steelblue4', tl.pos="lt", tl.cex=0.7, tl.srt=45, number.cex=0.7, addgrid.col = 'white', addCoef.col = 'black')

United Kingdom only

GB_data_numeric_only = subset(GB_data, select = c(devalued_std, populism_rw_std, populism_main_std, conspiratorial_orientation_std, big5_openness_std, big5_conscientiousness_std, big5_extraversion_std, big5_agreeableness_std, big5_stability_std, rwa_std, sdo_std, ethnic_majority, income, gender, age_std, ideology_std))

correlation_matrix_GB= cor(GB_data_numeric_only, method="pearson", use="pairwise.complete.obs")

corrplot(correlation_matrix_GB, method="color", order="alphabet", tl.col = 'steelblue4', tl.pos="lt", tl.cex=0.7, tl.srt=45, number.cex=0.7, addgrid.col = 'white', addCoef.col = 'black')

Density Plots

# Create the density plot for Feelings of Being Devalued (FBD) in all_data
ggplot(all_data, aes(x=devalued)) + 
  geom_density(fill="darkorange", alpha=0.5) +
  labs(title="Feelings of Being Devalued (all countries)", x="devalued_std", y="Density") +ylim(0, 0.4)

# Create the density plot for FBD in US_data
ggplot(US_data, aes(x=devalued)) + 
  geom_density(fill="darkred", alpha=0.5) +
  labs(title="Feelings of Being Devalued (United States)", x="devalued_std", y="Density") +ylim(0, 0.4)

# Create the density plot for FBD in PL_data
ggplot(PL_data, aes(x=devalued)) + 
  geom_density(fill="darkred", alpha=0.5) +
  labs(title="Feelings of Being Devalued (Poland)", x="devalued_std", y="Density") +ylim(0, 0.4)

# Create the density plot for FBD in FR_data
ggplot(FR_data, aes(x=devalued)) + 
  geom_density(fill="darkred", alpha=0.5) +
  labs(title="Feelings of Being Devalued (France)", x="devalued_std", y="Density") +ylim(0, 0.4)

# Create the density plot for FBD in GB_data
ggplot(GB_data, aes(x=devalued)) + 
  geom_density(fill="darkred", alpha=0.5) +
  labs(title="Feelings of Being Devalued (United Kingdom)", x="devalued_std", y="Density") +ylim(0, 0.4)

Scatterplots

FBD with populism and conspiracy orientation

library(tidyverse) 
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## āœ” dplyr     1.1.2     āœ” readr     2.1.4
## āœ” forcats   1.0.0     āœ” stringr   1.5.0
## āœ” lubridate 1.9.2     āœ” tibble    3.2.1
## āœ” purrr     1.0.1     āœ” tidyr     1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## āœ– dplyr::add_rownames() masks huxtable::add_rownames()
## āœ– dplyr::combine()      masks gridExtra::combine()
## āœ– dplyr::filter()       masks stats::filter()
## āœ– dplyr::lag()          masks stats::lag()
## āœ– dplyr::recode()       masks car::recode()
## āœ– purrr::some()         masks car::some()
## āœ– ggplot2::theme_grey() masks huxtable::theme_grey()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(scales)
## 
## Attaching package: 'scales'
## 
## The following object is masked from 'package:purrr':
## 
##     discard
## 
## The following object is masked from 'package:readr':
## 
##     col_factor
## 
## The following object is masked from 'package:huxtable':
## 
##     number_format
# scatterplot populism x FBD
populismFBD_scatter <- ggplot(data = all_data, mapping = aes(x = devalued_std, y = populism_rw_std)) +
    geom_jitter(width = 0.1, height = 0.1, alpha = 0.2) +
  geom_point(alpha = 0.2) +
  geom_smooth(method = "lm") +
  labs(x = "Feelings of Being Devalued", y = "Populism", title = "FBD x Populism (all countries)") +
  facet_wrap(~ country) 

# scatterplot conspiratorial orientation x FBD
conspiracyFBD_scatter <- ggplot(data = all_data, mapping = aes(x = devalued_std, y = conspiratorial_orientation_std)) +
    geom_jitter(width = 0.1, height = 0.1, alpha = 0.2) +
  geom_point(alpha = 0.2) +
  geom_smooth(method = "lm") +
  labs(x = "Feelings of Being Devalued", y = "Conspiracy Orientation", title = "FBD x Conspiracism (all countries)") +
  facet_wrap(~ country)

populismFBD_scatter + theme_minimal() + theme(panel.grid.minor = element_blank())
## `geom_smooth()` using formula = 'y ~ x'

conspiracyFBD_scatter + theme_minimal() + theme(panel.grid.minor = element_blank())
## `geom_smooth()` using formula = 'y ~ x'

FBD with Big Five

# Create the scatter plot
big5_scatter <- ggplot(data = all_data, aes(x = devalued_std)) +
  geom_jitter(width = 0.1, height = 0.1, alpha = 0.2) +  # Reduces overplotting
  geom_smooth(method = "lm", color = "blue", se = FALSE) +  # Adds a linear model fit line without confidence interval
  facet_wrap(~ trait, scales = "free_y") +  # One plot per Big 5 trait with independent y scaling
  labs(x = "Feelings of Being Devalued", y = "Standardized Score", title = "Relationship between FBD and Big 5 Personality Traits") +
  theme_minimal() +  # Minimal theme for clean visualization
  theme(panel.grid.minor = element_blank())  # Remove minor grid lines for clarity

# To make 'big5_scatter' work, you need to reshape your data from wide to long format using tidyr
library(tidyr)
all_data_long <- pivot_longer(all_data,
                              cols = c(big5_openness_std, big5_agreeableness_std, big5_conscientiousness_std, big5_stability_std, big5_extraversion_std),
                              names_to = "trait",
                              values_to = "trait_value")

# Update the ggplot call with the reshaped data and correct mappings
big5_scatter <- ggplot(data = all_data_long, aes(x = devalued_std, y = trait_value)) +
  geom_jitter(width = 0.1, height = 0.1, alpha = 0.2) +
  geom_point(alpha = 0.2) +
  geom_smooth(method = "lm", color = "blue", se = FALSE) +
  facet_wrap(~ trait, scales = "free_y") +
  labs(x = "Feelings of Being Devalued", y = "Standardized Score", title = "Relationship between FBD and Big 5 Personality Traits (all countries)") +
  theme_minimal() +
  theme(panel.grid.minor = element_blank())

# Plot
print(big5_scatter)
## `geom_smooth()` using formula = 'y ~ x'

Trump Models (Main Effects, Personality, and Full)

TrumpUS_MainEffect = lm(vote_trump~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=US_data)
TrumpUS_personality = lm(vote_trump~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=US_data)
TrumpUS_fullFBD = lm(vote_trump~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=US_data)

Model Plots

TrumpmodelsUS <- plot_summs(TrumpUS_MainEffect, TrumpUS_personality, TrumpUS_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Trump-Main Effects Model", "Trump-Personality Model", "Trump-Full Model"))
TrumpmodelsUS + labs(title="Trump Models (US only)")+ theme(plot.title=element_text(family="sans", face="bold"))

Regression Tables

comparison_modelsUSTrump<-export_summs(TrumpUS_MainEffect, TrumpUS_personality, TrumpUS_fullFBD,
                                  scale=TRUE, model.names=c("Trump-Main Effects Model", "Trump-Personality Model", "Trump-Full Model"), 
                                  statistics=c("adjusted R-Squared" ="adj.r.squared","p-value"="p.value", "F statistic"="statistic"), 
                                  stars = c(`***` = 0.001, `**` = 0.01, `*` = 0.05, `Ā·` = 0.1))#, to.file="word", file.name = "modelsUS.docx")
comparison_modelsUSPopulism              
Populism-Main Effects ModelPopulism-Personality ModelPopulism-Full Model
(Intercept)-0.08Ā Ā Ā Ā -0.08Ā Ā Ā Ā -0.09 Ā·Ā Ā 
(0.05)Ā Ā Ā (0.05)Ā Ā Ā (0.05)Ā Ā Ā 
ethnocentrism_std0.06 **Ā 0.05 Ā·Ā Ā 0.02Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
church_attendance_std-0.07 ***-0.08 ***-0.06 **Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
ideology_std0.29 ***0.28 ***0.24 ***
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
ethnic_majority0.05Ā Ā Ā Ā 0.04Ā Ā Ā Ā 0.06Ā Ā Ā Ā 
(0.05)Ā Ā Ā (0.05)Ā Ā Ā (0.05)Ā Ā Ā 
age_std-0.08 ***-0.08 **Ā 0.00Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
education_collapse-0.06 **Ā -0.06 *Ā Ā -0.06 **Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
Q1_interest_in_politics_std0.16 ***0.17 ***0.13 ***
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
income0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.02Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
marital_status0.08 Ā·Ā Ā 0.08 Ā·Ā Ā 0.07 Ā·Ā Ā 
(0.04)Ā Ā Ā (0.04)Ā Ā Ā (0.04)Ā Ā Ā 
rwa_stdĀ Ā Ā Ā Ā Ā Ā 0.04Ā Ā Ā Ā 0.04 Ā·Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
sdo_stdĀ Ā Ā Ā Ā Ā Ā -0.01Ā Ā Ā Ā -0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.03)Ā Ā Ā 
big5_conscientiousness_stdĀ Ā Ā Ā Ā Ā Ā 0.04Ā Ā Ā Ā 0.09 ***
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
big5_agreeableness_stdĀ Ā Ā Ā Ā Ā Ā -0.06 *Ā Ā -0.04Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
big5_extraversion_stdĀ Ā Ā Ā Ā Ā Ā -0.03Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_openness_stdĀ Ā Ā Ā Ā Ā Ā -0.01Ā Ā Ā Ā -0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_stability_stdĀ Ā Ā Ā Ā Ā Ā -0.03Ā Ā Ā Ā 0.07 **Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
devalued_stdĀ Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā 0.45 ***
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā 
adjusted R-Squared0.17Ā Ā Ā Ā 0.17Ā Ā Ā Ā 0.33Ā Ā Ā Ā 
p-value0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 
F statistic45.84Ā Ā Ā Ā 26.69Ā Ā Ā Ā 58.08Ā Ā Ā Ā 
All continuous predictors are mean-centered and scaled by 1 standard deviation. *** p < 0.001; ** p < 0.01; * p < 0.05; Ā· p < 0.1.

Le Pen Models (Main Effects, Personality, and Full)

lepenUS_MainEffect = lm(vote_lepen~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=FR_data)
lepenUS_personality = lm(vote_lepen~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=FR_data)
lepenUS_fullFBD = lm(vote_lepen~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=FR_data)

Model Plots

lepenmodelsUS <- plot_summs(lepenUS_MainEffect, lepenUS_personality, lepenUS_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("lepen-Main Effects Model", "lepen-Personality Model", "lepen-Full Model"))
lepenmodelsUS + labs(title="Le Pen Vote Models (FR only)")+ theme(plot.title=element_text(family="sans", face="bold"))

Regression Tables

comparison_modelsUSlepen<-export_summs(lepenUS_MainEffect, lepenUS_personality, lepenUS_fullFBD,
                                  scale=TRUE, model.names=c("Le Pen-Main Effects Model", "Le Pen-Personality Model", "Le Pen-Full Model"), 
                                  statistics=c("adjusted R-Squared" ="adj.r.squared","p-value"="p.value", "F statistic"="statistic"), 
                                  stars = c(`***` = 0.001, `**` = 0.01, `*` = 0.05, `Ā·` = 0.1))#, to.file="word", file.name = "modelsUS.docx")
comparison_modelsUSPopulism              
Populism-Main Effects ModelPopulism-Personality ModelPopulism-Full Model
(Intercept)-0.08Ā Ā Ā Ā -0.08Ā Ā Ā Ā -0.09 Ā·Ā Ā 
(0.05)Ā Ā Ā (0.05)Ā Ā Ā (0.05)Ā Ā Ā 
ethnocentrism_std0.06 **Ā 0.05 Ā·Ā Ā 0.02Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
church_attendance_std-0.07 ***-0.08 ***-0.06 **Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
ideology_std0.29 ***0.28 ***0.24 ***
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
ethnic_majority0.05Ā Ā Ā Ā 0.04Ā Ā Ā Ā 0.06Ā Ā Ā Ā 
(0.05)Ā Ā Ā (0.05)Ā Ā Ā (0.05)Ā Ā Ā 
age_std-0.08 ***-0.08 **Ā 0.00Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
education_collapse-0.06 **Ā -0.06 *Ā Ā -0.06 **Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
Q1_interest_in_politics_std0.16 ***0.17 ***0.13 ***
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
income0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.02Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
marital_status0.08 Ā·Ā Ā 0.08 Ā·Ā Ā 0.07 Ā·Ā Ā 
(0.04)Ā Ā Ā (0.04)Ā Ā Ā (0.04)Ā Ā Ā 
rwa_stdĀ Ā Ā Ā Ā Ā Ā 0.04Ā Ā Ā Ā 0.04 Ā·Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
sdo_stdĀ Ā Ā Ā Ā Ā Ā -0.01Ā Ā Ā Ā -0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.03)Ā Ā Ā 
big5_conscientiousness_stdĀ Ā Ā Ā Ā Ā Ā 0.04Ā Ā Ā Ā 0.09 ***
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
big5_agreeableness_stdĀ Ā Ā Ā Ā Ā Ā -0.06 *Ā Ā -0.04Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.03)Ā Ā Ā (0.02)Ā Ā Ā 
big5_extraversion_stdĀ Ā Ā Ā Ā Ā Ā -0.03Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_openness_stdĀ Ā Ā Ā Ā Ā Ā -0.01Ā Ā Ā Ā -0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
big5_stability_stdĀ Ā Ā Ā Ā Ā Ā -0.03Ā Ā Ā Ā 0.07 **Ā 
Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
devalued_stdĀ Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā 0.45 ***
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā (0.02)Ā Ā Ā 
adjusted R-Squared0.17Ā Ā Ā Ā 0.17Ā Ā Ā Ā 0.33Ā Ā Ā Ā 
p-value0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 
F statistic45.84Ā Ā Ā Ā 26.69Ā Ā Ā Ā 58.08Ā Ā Ā Ā 
All continuous predictors are mean-centered and scaled by 1 standard deviation. *** p < 0.001; ** p < 0.01; * p < 0.05; Ā· p < 0.1.

Brexit Models (Main Effects, Personality, and Full)

brexitGB_MainEffect = lm(vote_brexit~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=GB_data)
brexitGB_personality = lm(vote_brexit~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=GB_data)
brexitGB_fullFBD = lm(vote_brexit~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=GB_data)

Model Plots

brexitmodelsGB <- plot_summs(brexitGB_MainEffect, brexitGB_personality, brexitGB_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("Brexit-Main Effects Model", "Brexit-Personality Model", "Brexit-Full Model"))
brexitmodelsGB + labs(title="Brexit Vote Models (GB only)")+ theme(plot.title=element_text(family="sans", face="bold"))

Regression Tables

comparison_modelsGBbrexit<-export_summs(brexitGB_MainEffect, brexitGB_personality, brexitGB_fullFBD,
                                  scale=TRUE, model.names=c("Brexit-Main Effects Model", "Brexit-Personality Model", "Brexit-Full Model"), 
                                  statistics=c("adjusted R-Squared" ="adj.r.squared","p-value"="p.value", "F statistic"="statistic"), 
                                  stars = c(`***` = 0.001, `**` = 0.01, `*` = 0.05, `Ā·` = 0.1))#, to.file="word", file.name = "modelsGB.docx")
comparison_modelsGBbrexit           
Brexit-Main Effects ModelBrexit-Personality ModelBrexit-Full Model
(Intercept)0.25 ***0.24 ***0.24 ***
(0.03)Ā Ā Ā (0.03)Ā Ā Ā (0.03)Ā Ā Ā 
ethnocentrism_std0.04 ***0.03 *Ā Ā 0.03 *Ā Ā 
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
church_attendance_std0.03 **Ā 0.03 **Ā 0.04 **Ā 
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
ideology_std0.12 ***0.10 ***0.10 ***
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
ethnic_majority0.12 ***0.14 ***0.14 ***
(0.03)Ā Ā Ā (0.03)Ā Ā Ā (0.03)Ā Ā Ā 
age_std0.12 ***0.10 ***0.10 ***
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
education_collapse-0.04 ***-0.03 **Ā -0.03 **Ā 
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
Q1_interest_in_politics_std0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
income-0.02 Ā·Ā Ā -0.02 Ā·Ā Ā -0.02 Ā·Ā Ā 
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
marital_status0.01Ā Ā Ā Ā 0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
rwa_stdĀ Ā Ā Ā Ā Ā Ā 0.05 ***0.05 ***
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
sdo_stdĀ Ā Ā Ā Ā Ā Ā -0.00Ā Ā Ā Ā -0.00Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_conscientiousness_stdĀ Ā Ā Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.02Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_agreeableness_stdĀ Ā Ā Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_extraversion_stdĀ Ā Ā Ā Ā Ā Ā -0.02Ā Ā Ā Ā -0.02Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_openness_stdĀ Ā Ā Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_stability_stdĀ Ā Ā Ā Ā Ā Ā 0.02 Ā·Ā Ā 0.02 *Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
devalued_stdĀ Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā 0.00Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā 
adjusted R-Squared0.18Ā Ā Ā Ā 0.19Ā Ā Ā Ā 0.19Ā Ā Ā Ā 
p-value0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 
F statistic48.85Ā Ā Ā Ā 29.91Ā Ā Ā Ā 28.15Ā Ā Ā Ā 
All continuous predictors are mean-centered and scaled by 1 standard deviation. *** p < 0.001; ** p < 0.01; * p < 0.05; Ā· p < 0.1.

PiS Models (Main Effects, Personality, and Full)

prawoPL_MainEffect = lm(vote_prawo~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=PL_data)
prawoPL_personality = lm(vote_prawo~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=PL_data)
prawoPL_fullFBD = lm(vote_prawo~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income
                        +marital_status,  
                              data=PL_data)

Model Plots

prawomodelsPL <- plot_summs(prawoPL_MainEffect, prawoPL_personality, prawoPL_fullFBD, scale=TRUE, legend.title="Model", coefs=c("Ethnocentrism"="ethnocentrism_std","Religiosity"="church_attendance_std","Ideology"="ideology_std",
                               "Ethnic Majority"="ethnic_majority","Age"="age_std","Education"="education_collapse", "Political Interest"="Q1_interest_in_politics_std","Income"="income","Marital Status"="marital_status", "RWA"="rwa_std","SDO"="sdo_std", "Big 5 - Openness"="big5_openness_std","Big 5 - Conscientiousness"="big5_conscientiousness_std", "Big 5 - Extraversion"="big5_extraversion_std","Big 5 - Agreeableness"="big5_agreeableness_std", "Big 5 - Emotional Stability"="big5_stability_std", "Feelings of Being Devalued"="devalued_std"),
                       model.names = c("PiS -Main Effects Model", "PiS -Personality Model", "PiS -Full Model"))
prawomodelsPL + labs(title="PiS Vote Models (PL only)")+ theme(plot.title=element_text(family="sans", face="bold"))

Regression Tables

comparison_modelsPLprawo<-export_summs(prawoPL_MainEffect, prawoPL_personality, prawoPL_fullFBD,
                                  scale=TRUE, model.names=c("PiS -Main Effects Model", "PiS -Personality Model", "PiS -Full Model"), 
                                  statistics=c("adjusted R-Squared" ="adj.r.squared","p-value"="p.value", "F statistic"="statistic"), 
                                  stars = c(`***` = 0.001, `**` = 0.01, `*` = 0.05, `Ā·` = 0.1))#, to.file="word", file.name = "modelsPL.docx")
comparison_modelsPLprawo           
PiS -Main Effects ModelPiS -Personality ModelPiS -Full Model
(Intercept)0.16 ***0.16 ***0.16 ***
(0.04)Ā Ā Ā (0.04)Ā Ā Ā (0.04)Ā Ā Ā 
ethnocentrism_std0.03 ***0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
church_attendance_std-0.07 ***-0.04 ***-0.04 ***
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
ideology_std0.18 ***0.16 ***0.16 ***
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
ethnic_majority0.09 *Ā Ā 0.09 *Ā Ā 0.09 *Ā Ā 
(0.04)Ā Ā Ā (0.04)Ā Ā Ā (0.04)Ā Ā Ā 
age_std0.04 ***0.02 *Ā Ā 0.02 *Ā Ā 
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
education_collapse-0.03 **Ā -0.02 *Ā Ā -0.02 *Ā Ā 
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
Q1_interest_in_politics_std0.04 ***0.04 ***0.04 ***
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
income-0.00Ā Ā Ā Ā -0.00Ā Ā Ā Ā -0.00Ā Ā Ā Ā 
(0.01)Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
marital_status0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
(0.02)Ā Ā Ā (0.02)Ā Ā Ā (0.02)Ā Ā Ā 
rwa_stdĀ Ā Ā Ā Ā Ā Ā 0.08 ***0.08 ***
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
sdo_stdĀ Ā Ā Ā Ā Ā Ā -0.05 ***-0.05 ***
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_conscientiousness_stdĀ Ā Ā Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_agreeableness_stdĀ Ā Ā Ā Ā Ā Ā 0.02 *Ā Ā 0.02 *Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_extraversion_stdĀ Ā Ā Ā Ā Ā Ā 0.01Ā Ā Ā Ā 0.01Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_openness_stdĀ Ā Ā Ā Ā Ā Ā -0.03 **Ā -0.03 **Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
big5_stability_stdĀ Ā Ā Ā Ā Ā Ā -0.00Ā Ā Ā Ā -0.00Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā (0.01)Ā Ā Ā 
devalued_stdĀ Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā -0.00Ā Ā Ā Ā 
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā (0.01)Ā Ā Ā 
adjusted R-Squared0.28Ā Ā Ā Ā 0.31Ā Ā Ā Ā 0.31Ā Ā Ā Ā 
p-value0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 0.00Ā Ā Ā Ā 
F statistic85.72Ā Ā Ā Ā 56.35Ā Ā Ā Ā 53.01Ā Ā Ā Ā 
All continuous predictors are mean-centered and scaled by 1 standard deviation. *** p < 0.001; ** p < 0.01; * p < 0.05; Ā· p < 0.1.

Experimenting with plots

Conspiracy - Full models (select coefficients)

# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(conspiracyUS_fullFBD, conf.int = TRUE) %>% mutate(Country = "United States")
df2 <- tidy(conspiracyFR_fullFBD, conf.int = TRUE) %>% mutate(Country = "France")
df3 <- tidy(conspiracyPL_fullFBD, conf.int = TRUE) %>% mutate(Country = "Poland")
df4 <- tidy(conspiracyGB_fullFBD, conf.int = TRUE) %>% mutate(Country = "United Kingdom")


# Extracting 99% confidence intervals
ci99_df1 <- confint(conspiracyUS_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "United States")
ci99_df2 <- confint(conspiracyFR_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "France")
ci99_df3 <- confint(conspiracyPL_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "Poland")
ci99_df4 <- confint(conspiracyGB_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "United Kingdom")

# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df4)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3, ci99_df4)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3, df4)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Country"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)" & term != "age_std" &  
         term != "education_collapse" & term != "church_attendance_std" & term != "Q1_interest_in_politics_std" & term != "marital_status")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "income" ~ "Income",

    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Income", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Creating the plot with multi-level confidence intervals
plot1 <- ggplot(coefficients_df, aes(x = estimate, y = Country, color = Country)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("United States" = "black", "France" = "black", "Poland" = "black", "United Kingdom" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Conspiratorial Orientation") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )

Populism - Full models (select coefficients)

# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(PopulismUS_fullFBD, conf.int = TRUE) %>% mutate(Country = "United States")
df2 <- tidy(PopulismFR_fullFBD, conf.int = TRUE) %>% mutate(Country = "France")
df3 <- tidy(PopulismPL_fullFBD, conf.int = TRUE) %>% mutate(Country = "Poland")
df4 <- tidy(PopulismGB_fullFBD, conf.int = TRUE) %>% mutate(Country = "United Kingdom")


# Extracting 99% confidence intervals
ci99_df1 <- confint(PopulismUS_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "United States")
ci99_df2 <- confint(PopulismFR_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "France")
ci99_df3 <- confint(PopulismPL_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "Poland")
ci99_df4 <- confint(PopulismGB_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "United Kingdom")

# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df4)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3, ci99_df4)

# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3, df4)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Country"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)" & term != "age_std" & 
         term != "education_collapse" & term != "church_attendance_std" & term != "Q1_interest_in_politics_std" & term != "marital_status")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "income" ~ "Income",

    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Income", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))


# Creating the plot with multi-level confidence intervals
plot2 <- ggplot(coefficients_df, aes(x = estimate, y = Country, color = Country)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("United States" = "black", "France" = "black", "Poland" = "black", "United Kingdom" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Populist Attitudes") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )

if (!require(grid)) install.packages("grid")
library(grid)
# Creating the combined plot object with arrangeGrob
combined_plot <- arrangeGrob(
  plot1, plot2,
  ncol = 2,
  top = textGrob("Comparison of Conspiratorial and Populist Attitudes Across Countries\n", 
                 gp = gpar(fontface = "bold", fontsize = 20), vjust = 1),
  bottom = textGrob("\nNote: Age, education, marital status, religiosity, and political interest not displayed.",
                    gp = gpar(fontsize = 10), hjust = 0)
)

# Printing the combined plot with annotations
grid.draw(combined_plot)

Comparing Full, Personality and Main Effects models - US

# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(conspiracyUS_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(conspiracyUS_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(conspiracyUS_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(conspiracyUS_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(conspiracyUS_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(conspiracyUS_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))


# Creating the plot with multi-level confidence intervals
plot3 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Conspiratorial Orientation") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )
# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(PopulismUS_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(PopulismUS_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(PopulismUS_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(PopulismUS_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(PopulismUS_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(PopulismUS_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))

# Creating the plot with multi-level confidence intervals
plot4 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Populist Attitudes") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )

# Creating the combined plot object with arrangeGrob
combined_plot <- arrangeGrob(
  plot3, plot4,
  ncol = 2,
  top = textGrob("Comparison of Conspiratorial and Populist Attitudes (US only)\n", 
                 gp = gpar(fontface = "bold", fontsize = 20), vjust = 1)
)

# Printing the combined plot with annotations
grid.draw(combined_plot)

Comparing Full, Personality and Main Effects models - FR

# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(conspiracyFR_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(conspiracyFR_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(conspiracyFR_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(conspiracyFR_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(conspiracyFR_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(conspiracyFR_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))


# Creating the plot with multi-level confidence intervals
plot5 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Conspiratorial Orientation") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )
# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(PopulismFR_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(PopulismFR_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(PopulismFR_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(PopulismFR_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(PopulismFR_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(PopulismFR_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))

# Creating the plot with multi-level confidence intervals
plot6 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Populist Attitudes") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )

# Creating the combined plot object with arrangeGrob
combined_plot <- arrangeGrob(
  plot5, plot6,
  ncol = 2,
  top = textGrob("Comparison of Conspiratorial and Populist Attitudes (FR only)\n", 
                 gp = gpar(fontface = "bold", fontsize = 20), vjust = 1)
)

# Printing the combined plot with annotations
grid.draw(combined_plot)

Comparing Full, Personality and Main Effects models - PL

# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(conspiracyPL_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(conspiracyPL_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(conspiracyPL_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(conspiracyPL_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(conspiracyPL_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(conspiracyPL_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))


# Creating the plot with multi-level confidence intervals
plot7 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Conspiratorial Orientation") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )
# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(PopulismPL_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(PopulismPL_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(PopulismPL_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(PopulismPL_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(PopulismPL_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(PopulismPL_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))

# Creating the plot with multi-level confidence intervals
plot8 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Populist Attitudes") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )

# Creating the combined plot object with arrangeGrob
combined_plot <- arrangeGrob(
  plot7, plot8,
  ncol = 2,
  top = textGrob("Comparison of Conspiratorial and Populist Attitudes (PL only)\n", 
                 gp = gpar(fontface = "bold", fontsize = 20), vjust = 1)
)

# Printing the combined plot with annotations
grid.draw(combined_plot)

Comparing Full, Personality and Main Effects models - GB

# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(conspiracyGB_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(conspiracyGB_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(conspiracyGB_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(conspiracyGB_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(conspiracyGB_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(conspiracyGB_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))


# Creating the plot with multi-level confidence intervals
plot9 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Conspiratorial Orientation") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )
# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(PopulismGB_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(PopulismGB_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(PopulismGB_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(PopulismGB_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(PopulismGB_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(PopulismGB_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))

# Creating the plot with multi-level confidence intervals
plot10 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Populist Attitudes") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )

# Creating the combined plot object with arrangeGrob
combined_plot <- arrangeGrob(
  plot9, plot10,
  ncol = 2,
  top = textGrob("Comparison of Conspiratorial and Populist Attitudes (GB only)\n", 
                 gp = gpar(fontface = "bold", fontsize = 20), vjust = 1)
)

# Printing the combined plot with annotations
grid.draw(combined_plot)

RWP Vote - Full models (select coefficients)

# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(TrumpUS_fullFBD, conf.int = TRUE) %>% mutate(Country = "United States")
df2 <- tidy(lepenUS_fullFBD, conf.int = TRUE) %>% mutate(Country = "France")
df3 <- tidy(prawoPL_fullFBD, conf.int = TRUE) %>% mutate(Country = "Poland")
df4 <- tidy(brexitGB_fullFBD, conf.int = TRUE) %>% mutate(Country = "United Kingdom")


# Extracting 99% confidence intervals
ci99_df1 <- confint(TrumpUS_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "United States")
ci99_df2 <- confint(lepenUS_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "France")
ci99_df3 <- confint(prawoPL_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "Poland")
ci99_df4 <- confint(brexitGB_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Country = "United Kingdom")

# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df4)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3, ci99_df4)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3, df4)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Country"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Creating the plot with multi-level confidence intervals
plot_rwpvote <- ggplot(coefficients_df, aes(x = estimate, y = Country, color = Country)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("United States" = "black", "France" = "black", "Poland" = "black", "United Kingdom" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Right-Wing Populist Vote") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )

print(plot_rwpvote)

Four-country models

# Load the dataset
load('all_data_dum_may24.rda')
All_Populism_MainEffect = lm(populism_rw_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income_num_std
                        +marital_status
                        +country.GB
                        +country.PL
                        +country.US,  
                              data=all_data_dum)

All_Populism_personality = lm(populism_rw_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income_num_std
                        +marital_status
                        +country.GB
                        +country.PL
                        +country.US,  
                              data=all_data_dum)

All_Populism_fullFBD = lm(populism_rw_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income_num_std
                        +marital_status
                        +country.GB
                        +country.PL
                        +country.US,  
                              data=all_data_dum)

All_Conspiracy_MainEffect = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income_num_std
                        +marital_status
                        +country.GB
                        +country.PL
                        +country.US,  
                              data=all_data_dum)

All_Conspiracy_personality = lm(conspiratorial_orientation_std~ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income_num_std
                        +marital_status
                        +country.GB
                        +country.PL
                        +country.US,  
                              data=all_data_dum)

All_Conspiracy_fullFBD = lm(conspiratorial_orientation_std~devalued_std+ethnocentrism_std
                        +rwa_std
                        +sdo_std
                        +big5_conscientiousness_std
                        +big5_agreeableness_std
                        +big5_extraversion_std
                        +big5_openness_std
                        +big5_stability_std 
                        +church_attendance_std
                        +ideology_std
                        +ethnic_majority
                        +age_std
                        +education_collapse
                        +Q1_interest_in_politics_std
                        +income_num_std
                        +marital_status
                        +country.GB
                        +country.PL
                        +country.US,  
                              data=all_data_dum)

# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(All_Populism_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(All_Populism_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(All_Populism_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(All_Populism_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(All_Populism_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(All_Populism_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income_num_std" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    term == "country.PL" ~ "Country: Poland",
    term == "country.US" ~ "Country: United States",
    term == "country.GB" ~ "Country: United Kingdom",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued", "Country: United States", "Country: United Kingdom", "Country: Poland")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))

# Creating the plot with multi-level confidence intervals
plotall1 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Populist Attitudes") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )

# Extracting coefficients and creating a tidy data frame with confidence intervals
df1 <- tidy(All_Conspiracy_fullFBD, conf.int = TRUE) %>% mutate(Model = "Full FBD Model")
df2 <- tidy(All_Conspiracy_personality, conf.int = TRUE) %>% mutate(Model = "Personality Effects")
df3 <- tidy(All_Conspiracy_MainEffect, conf.int = TRUE) %>% mutate(Model = "Main Effects")



# Extracting 99% confidence intervals
ci99_df1 <- confint(All_Conspiracy_fullFBD, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Full FBD Model")
ci99_df2 <- confint(All_Conspiracy_personality, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Personality Effects")
ci99_df3 <- confint(All_Conspiracy_MainEffect, level = 0.99) %>% as.data.frame() %>% mutate(term = rownames(.), Model = "Main Effects")


# Renaming columns to match
colnames(ci99_df1)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df2)[1:2] <- c("conf.low2", "conf.high2")
colnames(ci99_df3)[1:2] <- c("conf.low2", "conf.high2")

# Combining the 99% CIs into one data frame
ci99_df <- bind_rows(ci99_df1, ci99_df2, ci99_df3)


# Preparing the combined dataframe
coefficients_df <- bind_rows(df1, df2, df3)
coefficients_df <- coefficients_df %>%
  left_join(ci99_df, by = c("term", "Model"))

# Filter out the intercept and other unwanted coefficients
coefficients_df <- coefficients_df %>%
  filter(term != "(Intercept)")

# Rename terms for readability
coefficients_df <- coefficients_df %>%
  mutate(term = case_when(
    term == "rwa_std" ~ "Right-Wing Authoritarianism",
    term == "sdo_std" ~ "Social Dominance Orientation",
    term == "devalued_std" ~ "Feelings of Being Devalued",
    term == "ethnocentrism_std" ~ "Ethnocentrism",
    term == "ideology_std" ~ "Ideology",
    term == "ethnic_majority" ~ "Ethnic Majority",
    term == "big5_openness_std" ~ "Openness to Experience",
    term == "big5_agreeableness_std" ~ "Agreeableness",
    term == "big5_stability_std" ~ "Emotional Stability",
    term == "big5_conscientiousness_std" ~ "Conscientiousness",
    term == "big5_extraversion_std" ~ "Extraversion",
    term == "age_std" ~ "Age",
    term == "church_attendance_std" ~ "Religiosity",
    term == "income_num_std" ~ "Income",
    term == "Q1_interest_in_politics_std" ~ "Political Interest",
    term == "marital_status" ~ "Marital Status",
    term == "education_collapse" ~ "Education",
    term == "country.PL" ~ "Country: Poland",
    term == "country.US" ~ "Country: United States",
    term == "country.GB" ~ "Country: United Kingdom",
    TRUE ~ term
  ))

# Define the desired order for facets
facet_order <- c("Age", "Income", "Marital Status", "Education", "Political Interest", "Religiosity", "Ethnocentrism", "Ideology", "Ethnic Majority",
                 "Right-Wing Authoritarianism", "Social Dominance Orientation",
                 "Openness to Experience", "Conscientiousness", "Extraversion",
                 "Agreeableness", "Emotional Stability", "Feelings of Being Devalued", "Country: United States", "Country: United Kingdom", "Country: Poland")

# Relevel the 'term' factor according to the desired facet order
coefficients_df <- coefficients_df %>%
  mutate(term = factor(term, levels = facet_order))

# Now redefine the Model factor to specify the order of the models
coefficients_df <- coefficients_df %>%
  mutate(Model = factor(Model, levels = c("Full FBD Model", "Personality Effects", "Main Effects")))

# Creating the plot with multi-level confidence intervals
plotall2 <- ggplot(coefficients_df, aes(x = estimate, y = Model, color = Model)) +
    facet_wrap(~ term, scales = "free_y", ncol = 1) +
    geom_point(size = 2, shape = 16) +
    geom_linerange(aes(xmin = conf.low2, xmax = conf.high2), height = 0.2, color = "gray70", size = 0.25) + # Wider CI in lighter gray
    geom_linerange(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray20", size = 0.25) + # Narrower CI in darker gray
    geom_vline(xintercept = 0, color = "black", size = .5, linetype = "solid") +  # Add vertical line for intercept
    scale_color_manual(values = c("Full FBD Model" = "black", "Personality Effects" = "black", "Main Effects" = "black")) +
    labs(x = "Point estimates", y = NULL, title = "DV: Conspiracism Attitudes") +
    theme_minimal() +
    theme(
        legend.position = "none",
        axis.text.y = element_text(size = 8),
        axis.title.x = element_text(size = 12),
        plot.title = element_text(hjust = 0.5, size = 14),
        strip.text = element_text(size = 12),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_line(size = .5, color = "gray", linetype = "dotted")
    )

# Creating the combined plot object with arrangeGrob
combined_plot <- arrangeGrob(
  plotall1, plotall2,
  ncol = 2,
  top = textGrob("Comparison of Conspiratorial and Populist Attitudes (all countries)\n", 
                 gp = gpar(fontface = "bold", fontsize = 20), vjust = 1)
)

# Printing the combined plot with annotations
grid.draw(combined_plot)