Why do citizens tolerate illiberal governance in a self-proclaimed democracy? We investigate the antecedents of support for illiberal governance tactics in the wake of Donald Trump’s reelection. We compare four families of explanations—partisan tradeoffs under polarization, authoritarian predispositions and preference for hierarchy, dark personality traits, and resentment captured by feelings of being devalued (FBD). We also examine populist attitudes as a contested case that may either license or restrain illiberalism. Using an original nationally matched survey of 1,059 US voters fielded in late 2024, we analyze predictors of two outcomes: approval of presidential lawbreaking and support for granting Trump permanent emergency powers. Results show sizable and consistent associations for partisanship, with dark-trait measures exerting significant independent effects, and psychopathy even rivaling a vote cast for Trump in the case of “casual” lawbreaking. Feelings of being devalued and social dominance orientation are also positively associated with illiberal attitudes, while right-wing authoritarianism relates specifically to support for emergency powers. By contrast, we find that populist attitudes–which are often loosely paired with illiberal attitudes in political commentary–are negatively associated with both outcomes, suggesting that anti-elite orientations may constrain rather than fuel illiberalism.
Below are the packages necessary for the analysis.
# Load all the necessary packages
library(estimatr)
library(huxtable)
library(car)
library(broom.mixed)
library(modelsummary)
library(ggplot2)
library(gridExtra)
library(dplyr)
library(grid)
library(stargazer)
library(tidyverse)
library(rcartocolor)
library(cluster)
library(factoextra)
library(corrplot)
library(readr)
library(pheatmap)
library(writexl)
library(ggplot2)
library(jtools)
library(haven)
library(readr)
library(readxl)
library(hrbrthemes)
library(viridis)
library(igraph)
library(leaps)
library(lmtest)
library(fmsb)
library(RColorBrewer)
library(scales)
library(patchwork)
library(stargazer)
# Disable scientific notation
options(scipen=999)
## Rows: 1059 Columns: 380
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (17): StartDate, EndDate, IPAddress, RecordedDate, ResponseId, Distribu...
## dbl (344): Status, Progress, Duration__in_seconds_, Finished, LocationLatitu...
## lgl (19): RecipientLastName, RecipientFirstName, RecipientEmail, ExternalRe...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Variable definition and recoding
df1 <- df1 %>%
mutate(
# keep as is
trump_lawbreaking_acceptance = Q39,
# keep as is
trump_emergency_powers_support = Q40,
# recode prefer not to say as NA
gender = ifelse(Q2 == 98, NA, Q2),
# calculate age
age = 2024 - Q3,
# keep education as is
education = Q5,
# keep republican as is
republican = Republicans,
# recode ethnic background into white dummy
white = ifelse(Q7 == 1, 1, 0),
# recode ideology
ideology = ifelse(Q24 == 99, NA, Q24),
# keep political interest as is
political_interest = Q22,
# keep Trump voter as is
trump_voter = TrumpVoter,
# fbd
fbd = rowMeans(across(c(Q20_1, Q20_2, Q20_3)), na.rm = TRUE),
# machiavellianism (averages Q33_1 through Q33_7)
machiavellianism = rowMeans(across(all_of(paste0("Q33_", 1:7))), na.rm = TRUE),
# narcissism (averages Q34_1 through Q34_7)
narcissism = rowMeans(across(all_of(paste0("Q34_", 1:7))), na.rm = TRUE),
#psychopathy (averages Q35_1 through Q35_7)
psychopathy = rowMeans(across(all_of(paste0("Q35_", 1:7))), na.rm = TRUE),
# sadism (averages Q36_1 through Q36_7)
sadism = rowMeans(across(all_of(paste0("Q36_", 1:7))), na.rm = TRUE),
# RWA reverse-coded items:
Q17_1r = 8 - Q17_1,
Q17_4r = 8 - Q17_4,
Q17_5r = 8 - Q17_5,
Q17_7r = 8 - Q17_7,
# RWA index: mean of all 8 (after reversing the 4 items)
rwa = rowMeans(across(c(Q17_1r, Q17_2, Q17_3, Q17_4r, Q17_5r, Q17_6)), na.rm = TRUE),
# SDO reverse-coded items: 1–7 scale, so use 8 - x
Q16_3r = 8 - Q16__3,
Q16_4r = 8 - Q16__4,
Q16_7r = 8 - Q16__7,
Q16_8r = 8 - Q16__8,
# SDO index: mean of all 8 items
sdo = rowMeans(across(c(Q16__1, Q16__2, Q16_3r, Q16_4r, Q16__5, Q16__6, Q16_7r, Q16_8r)), na.rm = TRUE),
# populist attitudes
populist_attitudes = rowMeans(across(paste0("Q37_", 1:8)), na.rm = TRUE)
)
# Reliability for multi-item scales
library(psych)
# --- Item sets (matching your questionnaire) ---
FBD_items <- df1 %>% dplyr::select(Q20_1, Q20_2, Q20_3)
POP_items <- df1 %>% dplyr::select(dplyr::all_of(paste0("Q37_", 1:8))) # Akkerman et al. 8 items
RWA_items <- df1 %>% dplyr::select(dplyr::all_of(paste0("Q17_", 1:6))) # Bizumic & Duckitt VSA items
SDO_items <- df1 %>% dplyr::select(dplyr::all_of(c("Q16__1","Q16__2","Q16__3","Q16__4",
"Q16__5","Q16__6","Q16__7","Q16__8"))) # SDO7(s)
MACH_items <- df1 %>% dplyr::select(dplyr::all_of(paste0("Q33_", 1:7))) # SD4 Machiavellianism
NARC_items <- df1 %>% dplyr::select(dplyr::all_of(paste0("Q34_", 1:7))) # SD4 Narcissism
PSY_items <- df1 %>% dplyr::select(dplyr::all_of(paste0("Q35_", 1:7))) # SD4 Psychopathy
SADISM_items<- df1 %>% dplyr::select(dplyr::all_of(paste0("Q36_", 1:7))) # SD4 Sadism (if used)
# --- Compute alphas; check.keys lets psych reverse-code as needed ---
a_FBD <- psych::alpha(FBD_items, check.keys = TRUE)
a_POP <- psych::alpha(POP_items, check.keys = TRUE)
a_RWA <- psych::alpha(RWA_items, check.keys = TRUE)
a_SDO <- psych::alpha(SDO_items, check.keys = TRUE)
a_MACH <- psych::alpha(MACH_items, check.keys = TRUE)
a_NARC <- psych::alpha(NARC_items, check.keys = TRUE)
a_PSY <- psych::alpha(PSY_items, check.keys = TRUE)
a_SADISM<- psych::alpha(SADISM_items,check.keys = TRUE)
# --- Rounded values for inline reporting ---
alpha_fbd <- round(a_FBD$total$raw_alpha, 2)
alpha_pop <- round(a_POP$total$raw_alpha, 2)
alpha_rwa <- round(a_RWA$total$raw_alpha, 2)
alpha_sdo <- round(a_SDO$total$raw_alpha, 2)
alpha_mach <- round(a_MACH$total$raw_alpha, 2)
alpha_narc <- round(a_NARC$total$raw_alpha, 2)
alpha_psy <- round(a_PSY$total$raw_alpha, 2)
alpha_sad <- round(a_SADISM$total$raw_alpha,2)
# Optional: quick table for the appendix
reliab_tbl <- tibble::tibble(
scale = c("Feelings of being devalued (FBD)", "Populist attitudes",
"Right-wing authoritarianism (RWA)", "Social dominance orientation (SDO)",
"Machiavellianism", "Narcissism", "Psychopathy", "Sadism"),
items = c(3, 8, 8, 8, 7, 7, 7, 7),
alpha = c(alpha_fbd, alpha_pop, alpha_rwa, alpha_sdo,
alpha_mach, alpha_narc, alpha_psy, alpha_sad)
)
knitr::kable(reliab_tbl, digits = 2, caption = "Internal consistency (Cronbach’s α) for all multi-item scales.")
scale | items | alpha |
---|---|---|
Feelings of being devalued (FBD) | 3 | 0.82 |
Populist attitudes | 8 | 0.82 |
Right-wing authoritarianism (RWA) | 8 | 0.58 |
Social dominance orientation (SDO) | 8 | 0.76 |
Machiavellianism | 7 | 0.78 |
Narcissism | 7 | 0.87 |
Psychopathy | 7 | 0.90 |
Sadism | 7 | 0.87 |
# Run OLS regression
model1 <- lm(trump_lawbreaking_acceptance ~ education + white + ideology + gender +
political_interest + trump_voter + fbd + populist_attitudes + psychopathy + narcissism + machiavellianism + rwa + sdo , data=df1
)
# Format Regression Table
stargazer(model1, report = "vcsp*", type = "html", star.char = c(".", "*", "**", "***"), star.cutoffs = c(0.1, 0.05, 0.01, 0.001), notes = c(". p<0.1; * p<0.05; ** p<0.01; *** p<0.001"), notes.append = FALSE, single.row=TRUE, dep.var.labels = c("Acceptance of presidential lawbreaking"), title = "Regression Results (Wave 2)", covariate.labels = c("Education", "White", "Ideology", "Gender", "Political interest", "Trump vote", "Feelings of being devalued", "Populist attitudes", "Psychopathy", "Narcissism", "Machiavellianism", "Right-wing authoritarianism", "Social dominance orientation"))
Dependent variable: | |
Acceptance of presidential lawbreaking | |
Education | -0.054 (0.051) |
p = 0.296 | |
White | -0.097 (0.106) |
p = 0.362 | |
Ideology | 0.042 (0.020) |
p = 0.039* | |
Gender | 0.001 (0.012) |
p = 0.953 | |
Political interest | -0.030 (0.060) |
p = 0.623 | |
Trump vote | 0.770 (0.116) |
p = 0.000*** | |
Feelings of being devalued | 0.116 (0.037) |
p = 0.002** | |
Populist attitudes | -0.260 (0.084) |
p = 0.003** | |
Psychopathy | 0.570 (0.064) |
p = 0.000*** | |
Narcissism | 0.324 (0.074) |
p = 0.00002*** | |
Machiavellianism | 0.164 (0.090) |
p = 0.068. | |
Right-wing authoritarianism | 0.029 (0.054) |
p = 0.591 | |
Social dominance orientation | 0.226 (0.055) |
p = 0.00004*** | |
Constant | -0.926 (0.436) |
p = 0.034* | |
Observations | 1,059 |
R2 | 0.336 |
Adjusted R2 | 0.328 |
Residual Std. Error | 1.632 (df = 1045) |
F Statistic | 40.695*** (df = 13; 1045) |
Note: | . p<0.1; * p<0.05; ** p<0.01; *** p<0.001 |
# Run OLS regression
model2 <- lm(trump_emergency_powers_support ~ education + white + ideology + gender +
political_interest + trump_voter + fbd + populist_attitudes + psychopathy + narcissism + machiavellianism + rwa + sdo , data=df1
)
# Format Regression Table
stargazer(model2, report = "vcsp*", type = "html", star.char = c(".", "*", "**", "***"), star.cutoffs = c(0.1, 0.05, 0.01, 0.001), notes = c(". p<0.1; * p<0.05; ** p<0.01; *** p<0.001"), notes.append = FALSE, single.row=TRUE, dep.var.labels = c("Support for Emergency Powers"), title = "Regression Results (Wave 2)", covariate.labels = c("Education", "White", "Ideology", "Gender", "Political interest", "Trump vote", "Feelings of being devalued", "Populist attitudes", "Psychopathy", "Narcissism", "Machiavellianism", "Right-wing authoritarianism", "Social dominance orientation"))
Dependent variable: | |
Support for Emergency Powers | |
Education | -0.185 (0.050) |
p = 0.0002*** | |
White | -0.110 (0.102) |
p = 0.284 | |
Ideology | 0.063 (0.020) |
p = 0.002** | |
Gender | 0.013 (0.012) |
p = 0.249 | |
Political interest | 0.064 (0.058) |
p = 0.270 | |
Trump vote | 1.295 (0.112) |
p = 0.000*** | |
Feelings of being devalued | 0.126 (0.035) |
p = 0.0004*** | |
Populist attitudes | -0.175 (0.081) |
p = 0.033* | |
Psychopathy | 0.302 (0.062) |
p = 0.00001*** | |
Narcissism | 0.515 (0.071) |
p = 0.000*** | |
Machiavellianism | 0.256 (0.087) |
p = 0.004** | |
Right-wing authoritarianism | 0.160 (0.052) |
p = 0.003** | |
Social dominance orientation | 0.210 (0.053) |
p = 0.0001*** | |
Constant | -2.182 (0.421) |
p = 0.00000*** | |
Observations | 1,059 |
R2 | 0.429 |
Adjusted R2 | 0.422 |
Residual Std. Error | 1.574 (df = 1045) |
F Statistic | 60.406*** (df = 13; 1045) |
Note: | . p<0.1; * p<0.05; ** p<0.01; *** p<0.001 |
# --- One Stargazer table for both models, written to a .tex file ---
stargazer(
model1, model2,
# se = rob_se, # <- uncomment to use robust SEs
type = "latex",
out = "Output/regression_table.tex", # <- this file goes to Overleaf
title = "Regression Results",
column.labels = c("Tolerance for lawbreaking", "Support for Trump emergency powers"),
dep.var.labels.include = FALSE,
report = "vcsp*", # coef, SE, p, and stars
digits = 3,
single.row = TRUE,
star.char = c(".", "*", "**", "***"),
star.cutoffs = c(0.1, 0.05, 0.01, 0.001),
covariate.labels = c(
"Education","White","Ideology","Gender","Political interest","Trump vote",
"Feelings of being devalued","Populist attitudes",
"Psychopathy","Narcissism","Machiavellianism",
"Right-wing authoritarianism","Social dominance orientation"
),
notes = c(". p<0.1; * p<0.05; ** p<0.01; *** p<0.001"),
notes.append = FALSE
)
# Clean labels for plotting
coef_labels <- c(
"Education" = "education",
"White" = "white",
"Ideology" = "ideology",
"Gender" = "gender",
"Political interest" = "political_interest",
"Trump vote" = "trump_voter",
"Feelings of being devalued" = "fbd",
"Populist attitudes" = "populist_attitudes",
"Psychopathy" = "psychopathy",
"Narcissism" = "narcissism",
"Machiavellianism" = "machiavellianism",
"Right-wing authoritarianism" = "rwa",
"Social dominance orientation" = "sdo"
)
# Overlay plot for both models
p_overlay <- plot_summs(
model1, model2,
model.names = c("Tolerance for Trump's lawbreaking", "Support for Trump emergency powers"),
coefs = coef_labels,
scale = TRUE, # standardized coefficients
robust = "HC2", # robust CIs
ci.level = 0.95,
plot.distributions = FALSE,
exclude.intercept = TRUE,
point.size = 2.6,
line.size = 0.7,
colors = c("darkgoldenrod1", "coral") # two distinct colors
) +
geom_vline(xintercept = 0, linetype = 2, linewidth = 0.5) +
labs(x = "Standardized coefficient (β)", y = NULL, title = "Comparing Trump Norm Violation Models") +
theme_minimal(base_size = 12) +
theme(
legend.position = "bottom",
legend.title = element_blank(),
panel.grid.minor = element_blank(),
axis.text.y = element_text(size = 10)
)
p_overlay
library(dplyr)
library(broom)
library(ggplot2)
# --- 1) Make z-scored copies of ALL predictors + BOTH DVs ---
preds_all <- c("education","white","ideology","gender","political_interest",
"trump_voter","fbd","populist_attitudes","psychopathy",
"narcissism","machiavellianism","rwa","sdo")
dfz <- df1 %>%
mutate(
across(all_of(preds_all), ~ as.numeric(.x), .names = "{.col}") %>%
{ mutate(., across(all_of(preds_all), ~ as.numeric(scale(.x)),
.names = "{.col}_z")) } %>%
mutate(lawbreaking_z = as.numeric(scale(trump_lawbreaking_acceptance)),
emerpowers_z = as.numeric(scale(trump_emergency_powers_support)))
)
# --- 2) Fit models ONLY on z-variables ---
m1z <- lm(lawbreaking_z ~ education_z + white_z + ideology_z + gender_z +
political_interest_z + trump_voter_z + fbd_z + populist_attitudes_z +
psychopathy_z + narcissism_z + machiavellianism_z + rwa_z + sdo_z,
data = dfz)
m2z <- lm(emerpowers_z ~ education_z + white_z + ideology_z + gender_z +
political_interest_z + trump_voter_z + fbd_z + populist_attitudes_z +
psychopathy_z + narcissism_z + machiavellianism_z + rwa_z + sdo_z,
data = dfz)
# --- 3) Tidy + 95%/99% CIs ---
df1_95 <- tidy(m1z, conf.int = TRUE) %>% mutate(Model = "Tolerance for Trump's lawbreaking")
df2_95 <- tidy(m2z, conf.int = TRUE) %>% mutate(Model = "Support for Trump emergency powers")
ci99_m1 <- confint(m1z, level = 0.99) %>% as.data.frame() %>%
mutate(term = rownames(.), Model = "Tolerance for Trump's lawbreaking")
ci99_m2 <- confint(m2z, level = 0.99) %>% as.data.frame() %>%
mutate(term = rownames(.), Model = "Support for Trump emergency powers")
names(ci99_m1)[1:2] <- c("conf.low2","conf.high2")
names(ci99_m2)[1:2] <- c("conf.low2","conf.high2")
ci99_df <- bind_rows(ci99_m1, ci99_m2)
coef_df <- bind_rows(df1_95, df2_95) %>%
left_join(ci99_df, by = c("term","Model")) %>%
filter(term != "(Intercept)") %>%
mutate(term = case_when(
term == "education_z" ~ "Education",
term == "white_z" ~ "White",
term == "ideology_z" ~ "Ideology",
term == "gender_z" ~ "Gender",
term == "political_interest_z" ~ "Political interest",
term == "trump_voter_z" ~ "Trump vote",
term == "fbd_z" ~ "Feelings of being devalued",
term == "populist_attitudes_z" ~ "Populist attitudes",
term == "psychopathy_z" ~ "Psychopathy",
term == "narcissism_z" ~ "Narcissism",
term == "machiavellianism_z" ~ "Machiavellianism",
term == "rwa_z" ~ "Right-wing authoritarianism",
term == "sdo_z" ~ "Social dominance orientation",
TRUE ~ term
))
# Order terms (top→bottom)
order_terms <- c("Education","White","Ideology","Gender","Political interest",
"Trump vote","Feelings of being devalued","Populist attitudes",
"Psychopathy","Narcissism","Machiavellianism",
"Right-wing authoritarianism","Social dominance orientation")
coef_df <- coef_df %>% mutate(term = factor(term, levels = rev(order_terms)))
# vertical offset so points/intervals don’t overlap
offset <- 0.18
coef_df <- coef_df %>%
mutate(term_id = as.numeric(term),
y = ifelse(Model == "Support for Trump emergency powers",
term_id + offset, term_id - offset))
# --- NEW: faint shading for selected substantively important predictors ---
highlight_terms <- c("Trump vote",
"Feelings of being devalued",
"Psychopathy",
"Narcissism",
"Social dominance orientation", "Ideology", "Populist attitudes")
band_df <- coef_df %>%
distinct(term, term_id) %>%
filter(term %in% highlight_terms) %>%
transmute(ymin = term_id - 0.5, ymax = term_id + 0.5)
# --- 4) Plot (with background bands) ---
p_better <- ggplot(coef_df, aes(y = y, x = estimate, shape = Model)) +
# background bands behind selected rows
geom_rect(data = band_df,
aes(xmin = -Inf, xmax = Inf, ymin = ymin, ymax = ymax),
inherit.aes = FALSE, fill = "grey90", alpha = 0.7) +
# CIs and points
geom_errorbarh(aes(xmin = conf.low2, xmax = conf.high2), height = 0,
linewidth = 0.4, color = "gray75", alpha = 0.5) + # 99% CI
geom_errorbarh(aes(xmin = conf.low, xmax = conf.high), height = 0,
linewidth = 0.7, color = "gray25") + # 95% CI
geom_point(size = 3, color = "black", fill = "white", stroke = 0.9) +
geom_vline(xintercept = 0, linetype = "dotted") +
scale_shape_manual(values = c(
"Support for Trump emergency powers" = 16, # solid circle
"Tolerance for Trump's lawbreaking" = 21 # circle with border + white fill
)) +
scale_y_continuous(
breaks = seq_along(levels(coef_df$term)),
labels = levels(coef_df$term),
expand = expansion(mult = c(0.02, 0.05))
) +
labs(x = "Standardized coefficient (β)", y = NULL,
caption = "Note: Shaded rows indicate predictors significant at the 95% level in both models."
) +
theme_minimal(base_size = 14) +
theme(
legend.position = "bottom",
legend.title = element_blank(),
panel.grid.minor = element_blank(),
plot.caption = element_text(size = 10, face = "italic", hjust = 0.5)
)
# save the plot as PNG in the Output folder
ggsave(filename = "Output/better_plot.png",
plot = p_better,
width = 8, height = 9.5, dpi = 300)
p_better
CONSIDER ADDING Partisan Propaganda / Normalization
Hypothesis
Support for norm violations is greater among respondents with high
exposure to right-wing media.
Make sure not to give flank to critiques of pathologizing populist and illiberal voters, or worse, right-wing politics. Avoid all language that suggests “psychological deficits”, “deficiencies,” or “disorders.” Try to stick to accepted terminology around dark traits and dark tetrad. We can say things like support for illiberal tactics correlates with elements of sublicnical forms of psychopathy, narcissism, but don’t go further. As Furedi (2021) says: “The project of representing people’s voting behavior as a personality issue – rather than a matter of political choice – invariably leads to the depoliticization of populist behavior. Of course, we can’t be accused of depoliticizing populist/illiberal behavior in our paper, since we’re tying it to political polarization, partisanship, and we actually find Trump vote to be the strongest predictor. But nonetheless, let’s tread carefully.
Look at Hawkins, Riding and Mudde 2017
Maybe think about delegative democracy as a concept–or maybe speak of endorsement of delegative democracy instead of illiberal attitudes?
# --- Make a complete-case dataset across ALL variables used anywhere ---
all_vars <- c(
# outcomes
"trump_lawbreaking_acceptance","trump_emergency_powers_support",
# demographics / controls
"education","white", "gender","political_interest",
# partisanship
"trump_voter", "ideology",
# authoritarian predispositions
"rwa","sdo",
# dark traits
"machiavellianism","narcissism","psychopathy",
# affect
"fbd",
# populism
"populist_attitudes"
)
df_cc <- df1 %>% dplyr::select(all_of(all_vars)) %>% na.omit()
nrow(df_cc) # report common N used in all blockwise models
## [1] 1059
# --- Define the conceptual blocks (vectors of variable names) ---
block_demog <- c("education","white","gender","political_interest")
block_party <- c("trump_voter", "ideology")
block_auth <- c("rwa","sdo")
block_dark <- c("machiavellianism","narcissism","psychopathy")
block_fbd <- c("fbd")
block_pop <- c("populist_attitudes")
blocks_list <- list(
"Demographics & ideology" = block_demog,
"Partisanship" = block_party,
"Authoritarian predispositions" = block_auth,
"Dark traits (SD4)" = block_dark,
"Affective resentment (FBD)" = block_fbd,
"Populist attitudes" = block_pop
)
# --- Helper: build hierarchical models and compute R2, ΔR2, F-change ---
run_blockwise <- function(outcome, blocks, data) {
# sequentially add blocks
models <- list()
terms_so_far <- character(0)
rows <- list()
i <- 0
for (bn in names(blocks)) {
i <- i + 1
terms_so_far <- c(terms_so_far, blocks[[bn]])
fml <- as.formula(paste(outcome, "~", paste(terms_so_far, collapse = " + ")))
m <- lm(fml, data = data)
models[[i]] <- m
# Collect stats
R2 <- summary(m)$r.squared
k_new <- length(blocks[[bn]])
if (i == 1) {
rows[[i]] <- tibble::tibble(
step = i,
block = bn,
k_added = k_new,
R2 = R2,
delta_R2 = R2,
F_change = NA_real_,
df1 = NA_integer_,
df2 = NA_integer_,
p_change = NA_real_
)
} else {
# F change test: nested ANOVA between previous and current model
a <- anova(models[[i-1]], models[[i]])
rows[[i]] <- tibble::tibble(
step = i,
block = bn,
k_added = k_new,
R2 = R2,
delta_R2 = R2 - summary(models[[i-1]])$r.squared,
F_change = a$F[2],
df1 = a$Df[2],
df2 = a$Res.Df[2],
p_change = a$`Pr(>F)`[2]
)
}
}
out_tbl <- dplyr::bind_rows(rows)
list(table = out_tbl, models = models)
}
bw_law <- run_blockwise("trump_lawbreaking_acceptance", blocks_list, df_cc)
law_tbl <- bw_law$table %>%
mutate(
R2 = round(R2, 3),
delta_R2 = round(delta_R2, 3),
F_change = ifelse(is.na(F_change), NA, round(F_change, 2)),
p_change = ifelse(is.na(p_change), NA, scales::pvalue(p_change))
)
knitr::kable(
law_tbl,
align = "lccrrrcc",
caption = "Blockwise variance decomposition for acceptance of presidential lawbreaking",
col.names = c("Step","Block","k added","R²","ΔR²","F-change","df1","df2","p")
)
Step | Block | k added | R² | ΔR² | F-change | df1 | df2 | p |
---|---|---|---|---|---|---|---|---|
1 | Demographics & ideology | 4 | 0.018 | 0.018 | NA | NA | NA | NA |
2 | Partisanship | 2 | 0.118 | 0.101 | 60.00 | 2 | 1052 | <0.001 |
3 | Authoritarian predispositions | 2 | 0.179 | 0.061 | 38.85 | 2 | 1050 | <0.001 |
4 | Dark traits (SD4) | 3 | 0.326 | 0.147 | 75.90 | 3 | 1047 | <0.001 |
5 | Affective resentment (FBD) | 1 | 0.330 | 0.005 | 7.08 | 1 | 1046 | 0.008 |
6 | Populist attitudes | 1 | 0.336 | 0.006 | 9.48 | 1 | 1045 | 0.002 |
ggplot(law_tbl, aes(x = reorder(block, step), y = delta_R2)) +
geom_col() +
geom_text(aes(label = sprintf("+%.3f", delta_R2)), vjust = -0.4, size = 3.5) +
labs(x = NULL, y = expression(Delta*R^2),
title = "Incremental variance explained by block (Lawbreaking)") +
theme_minimal(base_size = 12) +
theme(axis.text.x = element_text(angle = 15, hjust = 1))
bw_emerg <- run_blockwise("trump_emergency_powers_support", blocks_list, df_cc)
em_tbl <- bw_emerg$table %>%
mutate(
R2 = round(R2, 3),
delta_R2 = round(delta_R2, 3),
F_change = ifelse(is.na(F_change), NA, round(F_change, 2)),
p_change = ifelse(is.na(p_change), NA, scales::pvalue(p_change))
)
knitr::kable(
em_tbl,
align = "lccrrrcc",
caption = "Blockwise variance decomposition for support for permanent emergency powers",
col.names = c("Step","Block","k added","R²","ΔR²","F-change","df1","df2","p")
)
Step | Block | k added | R² | ΔR² | F-change | df1 | df2 | p |
---|---|---|---|---|---|---|---|---|
1 | Demographics & ideology | 4 | 0.041 | 0.041 | NA | NA | NA | NA |
2 | Partisanship | 2 | 0.254 | 0.213 | 150.37 | 2 | 1052 | <0.001 |
3 | Authoritarian predispositions | 2 | 0.298 | 0.043 | 32.50 | 2 | 1050 | <0.001 |
4 | Dark traits (SD4) | 3 | 0.421 | 0.123 | 74.17 | 3 | 1047 | <0.001 |
5 | Affective resentment (FBD) | 1 | 0.427 | 0.006 | 10.48 | 1 | 1046 | 0.001 |
6 | Populist attitudes | 1 | 0.429 | 0.003 | 4.61 | 1 | 1045 | 0.032 |
ggplot(em_tbl, aes(x = reorder(block, step), y = delta_R2)) +
geom_col() +
geom_text(aes(label = sprintf("+%.3f", delta_R2)), vjust = -0.4, size = 3.5) +
labs(x = NULL, y = expression(Delta*R^2),
title = "Incremental variance explained by block (Emergency powers)") +
theme_minimal(base_size = 12) +
theme(axis.text.x = element_text(angle = 15, hjust = 1))
Adorno, Theodor W., Else Frenkel- Brunswik, Daniel J. Levinson, and Nevitt R. Sanford. 1950. The Authoritarian Personality. New York: Harper.
Aichholzer, Julian, and Martina Zandonella. 2016. “Psychological Bases of Support for Radical Right Parties.” Personality and Individual Differences 96: 185– 190.
Akkerman, A., C. Mudde, and A. Zaslove (2014),‘How populist are the people? Measuring populist attitudes in voters’, Comparative Political Studies 47(9): 1324–1353.
Altemeyer, Bob. 1981. Right- Wing Authoritarianism. Winnipeg: University of Manitoba Press.
Altemeyer, Bob. 1988. Enemies of Freedom: Understanding Right- Wing Authoritarianism. San Francisco, CA: Jossey- Bass.
Altemeyer, Bob. 1996. The Authoritarian Specter. Cambridge, MA: Harvard University Press.
Assche, Jasper Van, Kristof Dhont, and Thomas F. Pettigrew. 2019. “The Social-Psychological Bases of Far-Right Support in Europe and the United States.” Journal of Community & Applied Social Psychology 29(5): 385– 401.
Bakker, Bert N., Gijs Schumacher, and Matthijs Rooduijn. 2020. “The Populist Appeal: Personality and Anti-Establishment Communication.” The Journal of Politics. https:// doi.org/ 10.1086/ 710014.
Bakker, Bert N., Matthijs Rooduijn, and Gijs Schumacher. 2016. “The Psychological Roots of Populist Voting: Evidence from the United States, the Netherlands and Germany.” European Journal of Political Research 55(2): 302– 320.
Carey, J., K. Clayton, G. Helmke, B. Nyhan, M. Sanders and S. Stokes (2022),‘Who will defend democracy? Evaluating tradeoffs in candidate support among partisan donors and voters’, Journal of Elections, Public Opinion and Parties 32(1): 230–245.
Çarkoğlu, Ali, and Ezgi Elçi. (2023). “Populist attitudes and challenges towards liberal democracy: An empirical assessment of the Turkish case.” International Political Science Review, 44(5): 729-746.
Cizmar, Anne M., Geoffrey C. Layman, John McTague, Shanna Pearson- Merkowitz, and Michael Spivey. 2014. “Authoritarianism and American Political Behavior from 1952 to 2008.” Political Research Quarterly 67(1): 71– 83.
Claassen, C. (2020),‘Does public support help democracy survive?’, American Journal of Political Science 64(1): 118–134.
Cohen, Mollie J., and Amy Erica Smith. 2016. “Do Authoritarians Vote for Authoritarians? Evidence from Latin America.” Research and Politics 3(4): 1– 8.
Conway, Lucian Gideon, and James D. McFarland. 2019. “Do Right- wing and Left- wing Authoritarianism Predict Election Outcomes?: Support for Obama and Trump across Two United States Presidential Elections.” Personality and Individual Differences 138: 84– 87.
Crowson, Howard Michael, and Joyce A. Brandes. 2017. “Differentiating Between Donald Trump and Hillary Clinton Voters Using Facets of Right- Wing Authoritarianism and Social- Dominance Orientation: A Brief Report.” Psychological Reports 120(3): 364– 373.
Donovan, Todd. (2019). “Authoritarian attitudes and support for radical right populists,” Journal of Elections, Public Opinion and Parties, 29:4: 448-464. DOI: 10.1080/17457289.2019.1666270
Duckitt, John. 2009. “Authoritarianism and Dogmatism.” In Handbook of Individual Differences in Social Behavior, edited by Mark R. Leary and Rick H. Hoyle, 298– 317. New York: Guildford Press.
Feldman, Stanley. 2003. “Enforcing Social Conformity: A Theory of Authoritarianism.” Political Psychology 24(1): 41– 74.
Feldman, Stanley. 2020. “Authoritarianism, Threat, and Intolerance.” In At the Forefront of Political Psychology: Essays in Honor of John L. Sullivan, edited by Eugene Borgida, Christopher Federico, and Joanne Miller, 35– 54. New York: Routledge.
Frederiksen, K.V.S. (2022),‘When democratic experience distorts democracy: citizen reactions to undemocratic incumbent behavior,’ European Journal of Political Research 61(1): 281–292.
Furedi, F. (2021), “The Psychological Construction of the Illiberal Subject,” in The Routledge Handbook of Illiberalism (1st ed), New York: Routledge.
Graham, M.H. and M.W. Svolik (2020),‘Democracy in America? Partisanship, polarization, and the robustness of support for democracy in the United States’, American Political Science Review 114(2): 392–409.
Hetherington, Marc J., and Elizabeth Suhay. 2011. “Authoritarianism, Threat, and Americans’ Support for the War on Terror.” American Journal of Political Science 55(3): 546– 560.
Inglehart, R. and P. Norris (2017),‘Trump and the populist authoritarian parties: the silent revolution in reverse’, Perspectives on Politics 15(2): 443–454.
Knuckey, Jonathan, and Komysha Hassan. 2020. “Authoritarianism and Support for Trump in the 2016 Presidential Election.” The Social Science Journal. https:// doi.org/ 10.1016/j.soscij.2019.06.008.
Kohn, Melvin L. 1977. Class and Conformity: A Study in Values. Chicago, IL: University of Chicago Press.
Lewandowsky, M. and M. Jankowski. (2023). Sympathy for the devil? Voter support for illiberal politicians. European Political Science Review 15: 39-56.
Mudde, C. (2021), Populism in Europe: an illiberal democratic response to undemocratic liberalism (the government and opposition/leonard schapiro lecture 2019)’, Government and Opposition 56(4): 577–597.
Müller, J.-W. (2016), What is Populism? Philadelphia: Penn Press.
Nießen, D., I. Schmidt, C. Beierlein and C. Lechner (2020),‘An English-language adaptation of the authoritarianism short scale (ksa−3)’, Retrieved from https://zis.gesis.org/skala/Nießen-Schmidt-Beierlein-Lechner-Authoritarianism-Short-Scale-(KSA−3
Norris, P. and R. Inglehart (2019), Cultural Backlash: Trump, Brexit and Authoritarian Populism, Cambridge: Cambridge University Press.
Ray, J.J. (1976),‘Do authoritarians hold authoritarian attitudes?’, Human Relations 29(4): 307–325.
Rodrik, D. (2021),‘Why does globalization fuel populism? Economics, culture, and the rise of right-wing populism’, Annual Review of Economics 13: 133–170.
Rooduijn, M. (2018),‘What unites the voter bases of populist parties? Comparing the electorates of 15 populist parties’, European Political Science Review 10(3): 351–368.
Stenner, Karen. 2005. The Authoritarian Dynamic. New York: Cambridge University Press.
Svolik, M.W. (2020),‘When polarization trumps civic virtue: partisan conflict and the subversion of democracy by incumbents’, Quarterly Journal of Political Science 15(1): 3–31.
Touchton, M., C. Klofstad, and J. Uscinski (2020),‘Does partisanship promote anti-democratic impulses? Evidence from a survey experiment’, Journal of Elections, Public Opinion and Parties (online first) doi: 10.1080/17457289.2020.1844218.
Urbinati, N. (2019), Me the People: How Populism Transforms Democracy, Cambridge: Harvard University Press.
Vasilopoulos, Pavlos, and Romain Lachat. 2018. “Authoritarianism and Political Choice in France.” Acta Politica 53(4): 612– 634.
Vasilopoulos, Pavlos, George E. Marcus, Nicholas A. Valentino, and Martial Foucault. 2019. “Fear, Anger, and Voting for the Far Right: Evidence from the November 13, 2015 Paris Terror Attacks.” Political Psychology 40(4): 679– 704.
Womick, Jake, Tobias Rothmund, Flavio Azevedo, Laura A. King, and John T. Jost. 2019. “Group- Based Dominance and Authoritarian Aggression Predict Support for Donald Trump in the 2016 U.S. Presidential Election.” Social Psychological and Personality Science 10(5): 643– 652.
Zakaria, Fareed. 1997. “The Rise of Illiberal Democracy.” Foreign Affairs 76(6): 22– 23.
Keenan O. & de Zavala A.G. Collective narcissism and weakening of American democracy. Anal Soc Issues Public Policy. (2021); 21: 237–258. https://doi.org/10.1111/asap.12274
Marchlewska, M., Cichocka, A., Furman, A. and Cislak, A. (2022), Who respects the will of the people? Support for democracy is linked to high secure national identity but low national narcissism. Br J Soc Psychol, 61: 599-621. https://doi.org/10.1111/bjso.12499
Lantos D, Forgas JP. The role of collective narcissism in populist attitudes and the collapse of democracy in Hungary. J Theo Soc Psychol. 2021; 5: 65–78. https://doi.org/10.1002/jts5.80
Marchlewska, M., Castellanos, K.A., Lewczuk, K., Kofta, M. and Cichocka, A. (2019), My way or the highway: High narcissism and low self-esteem predict decreased support for democracy. Br. J. Soc. Psychol., 58: 591-608. https://doi.org/10.1111/bjso.12290
Cichocka, A., Marchlewska, M. and Cislak, A. (2024), Self-Worth and Politics: The Distinctive Roles of Self-Esteem and Narcissism. Political Psychology, 45: 43-85. https://doi.org/10.1111/pops.12897
de Oliveira Santos, D., Jost, J.T. Liberal-conservative asymmetries in anti-democratic tendencies are partly explained by psychological differences in a nationally representative U.S. sample. Commun Psychol 2, 61 (2024). https://doi.org/10.1038/s44271-024-00096-3
Tilley, J., Hobolt, S. Narcissism and Affective Polarization. Polit Behav 47, 599–618 (2025). https://doi.org/10.1007/s11109-024-09963-5
Mayer, S. J., Berning, C. C., & Johann, D. (2020). The Two Dimensions of Narcissistic Personality and Support for the Radical Right: The Role of Right–Wing Authoritarianism, Social Dominance Orientation and Anti–Immigrant Sentiment. European Journal of Personality, 34(1), 60-76. https://doi.org/10.1002/per.2228 (Original work published 2020)
Neumann, Craig S., and Darlene A. Ngo. (2025). Malevolent vs. benevolent dispositions and conservative political ideology in the Trump era. Journal of Research in Personality 118: 104638. https://www.sciencedirect.com/science/article/pii/S0092656625000704?casa_token=kTUuHAK3g6QAAAAA:r9djp-Sm6yjYtrKS3pgD40EZ7cyYBpawjD95B172mSRYKrsFWm1TGIpKXpmGS8VTnGmCcE_UsAs
Malka, A., Federico, C. M., Costello, T. H., & Panish, A. R. (2025). Polarized Attitudes and Anti-Democratic Orientation: Robust Evidence for Paradoxical Relationships Among American Partisans. Political Studies, 0(0). https://doi.org/10.1177/00323217251359156
Preston, Olivia C. and Joye C. Anestis. (2018). Psychopathic traits and politics: Examining affiliation, support of political issues and the role of empathy. Personality and Individual Differences, 131: 142-148. https://www.sciencedirect.com/science/article/pii/S0191886918302332?casa_token=yJb3Dy_9QBQAAAAA:H0xm_QDT9dnfgVhI0XohBiJgH3tS6ZSriIBJrQBF09z5CPYoTdOtJKm9jgcTTlO4zOqS1_5ZUM4
Jonason PK, Żemojtel-Piotrowska M, Piotrowski J, et al. Country-level correlates of the Dark Triad traits in 49 countries. J Pers. 2020; 88: 1252–1267. https://doi.org/10.1111/jopy.12569
Nai, Alessandro, and Elizabeth L. Young. (2024). They choose violence. Dark personality traits drive support for politically motivated violence in five democracy. Personality and Individual Differences, 230: 112794. https://www.sciencedirect.com/science/article/pii/S019188692400254X
Galais, Carol, and Guillem Rico. (2021). An unjustified bad reputation? The Dark Triad and support for populism. Electoral Studies, 72: 102357. https://www.sciencedirect.com/science/article/pii/S0261379421000767
Gøtzsche-Astrup, Oluf. (2021). Dark triad, partisanship and violent intentions in the United States. Personality and Individual Differences, 173: 110633. 2
Duspara, Boris, and Tobias Greitemeyer. (2017). The impact of dark tetrad traits on political orientation and extremism: an analysis in the course of a presidential election. Heliyon, 3(10): e00425. https://www.cell.com/heliyon/fulltext/S2405-8440(17)31688-2
Hofstetter, Nathalie, and Maximiliamn Filsinger. (2024). A justified bad reputation after all? Dark personality traits and populist attitudes in comparitive perspective. Electoral Studies, 87: 102728. https://www.sciencedirect.com/science/article/pii/S0261379423001506
Furnham, A., Richards, S.C. and Paulhus, D.L. (2013), The Dark Triad of Personality: A 10 Year Review. Social and Personality Psychology Compass, 7: 199-216. https://doi.org/10.1111/spc3.12018
Bird, Ryan T. et al. (2022). The dark authoritarians: Profiling the personality, emotional style, and authoritarian attitudes of the major American parties. Personality and Individual differences, 186(B): 111298. https://www.sciencedirect.com/science/article/pii/S0191886921006772?casa_token=qxThdX-ylwwAAAAA:wr38wb4rWJL3Is_pVS4RXcpcTKj9NuUYNX87XAG_SW6GgGooTeSULGsY1W1tgmk2s8FuCIq2Lhw