This RMarkdown tutorial replicates the core analyses in Xu and Zhao (2023): “The Power of History: How A Victimization Narrative Shapes National Identity and Public Opinion in China.” The replication, conducted by Jinwen Wu, a predoctoral fellow at Stanford University, is supervised by Professor Yiqing Xu. The replication summarizes the main data analyses from the original paper; please refer to the original paper for a comprehensive understanding of the ideas presented.
Click the Code
button in the top right and select
Show All Code
to reveal all code used in this RMarkdown.
Click Show
in paragraphs to reveal the code used to
generate a finding. The original replication files can be downloaded
from here.
The authors examine how victimization narrative can shape national identity and public opinion in China through an online survey experiment of 1,890 urban Chinese citizens. The result suggests that emphasizing China’s humiliating past in the late Qing
These effects appear to be particularly pronounced among respondents without a college degree.
Political psychologists have identified several critical components of national identity. Xu and Zhao’s analysis is built upon Kosterman and Feshbach (1989) framework dividing national identity into patriotic sentiment, attachment and affection for one’s country, and nationalistic sentiment, belief in the superiority of one’s country. In the paper, the authors refer to the latter as victim sentiment. Victim sentiment can lead to defensive and anti-foreign attitudes, while patriotic sentiment manifests as pride and love for China.
The two components of national identity can have different effects on political attitudes and policy preferences. Historical narratives that emphasize past accomplishments can enhance patriotic sentiment (Jager 2016), while an emphasis on victimization can foster resentment toward out-groups and a desire to restore national dignity (Fukuyama 2018).
The authors summarize the relationships of Official Narrative, Collective Memory, Patriotic Sentiment & Victim Sentiment, and Policy Preferences below:
Victimization narratives have been extensively studied in various authoritarian countries, for example:
These narratives create collective memory of historical victimization and legitimize autocratic rule. Potentially, autocratic governments can cultivate political support and shape policy preferences by strengthening national identity through victimization narratives. However, few have established a clear causal mechanism.
The authors focus on the “Century of Humiliation” narrative in China. Today, China’s national identity is heavily influenced by a sense of shame and victimhood stemming from its history of foreign invasion and domination, particularly during the “century of humiliation” (1840-1949). This period included military defeats and territorial concessions to foreign powers, such as the Boxer Rebellion (1899-1901), which the Chinese Communist Party (CCP) portrays as a patriotic movement despite violent suppressions and the punitive Boxer Protocol that followed. The CCP started to emphasize this narrative in the 1990s, possibly as a means to legitimize its rule after the 1989 Tiananmen Massacre.
To evaluate the impact of the victimization narrative on national identity and policy preferences, Xu and Zhao (2023) use quota sampling strategy (based on gender, age, education, and region) to obtain a diverse sample of 1890 urban Chinese citizens for an online survey experiment. The experiment first records the respondents’ individual characteristics, such as education and income, as well as ideological predispositions using questions from Pan and Xu (2018).
Each participant is randomly assigned to read a vignette from one control or either of the three treatment conditions. They are:
After reading the assigned vignettes, the participant answers several questions about national identity and policy preferences.
Several R packages are required for subsequent data analysis and visualization. The code chunk below checks for all required messages and installs the missing ones.
Packages: “haven”, “estimatr”, “RColorBrewer”, “ggplot2”, “scales”, “patchwork”, “mediation”
install_all <- function(packages) {
installed_pkgs <- installed.packages()[, "Package"]
for (pkg in packages) {
if (!pkg %in% installed_pkgs) {
install.packages(pkg)
}
}
}
# packages to be installed
packages <- c( "haven", "estimatr", "RColorBrewer", "ggplot2", "scales", "patchwork",
"mediation", "dplyr", "cobalt", "pander","tidyr", "broom")
install_all(packages)
After the installation, call to load the packages. Then, load the
experiment data. The file is in the Replication folder titled
as victimization.dta
in the replication files.
# Clear the environment
rm(list = ls(all = TRUE))
# Load the packages
library(haven)
library(estimatr)
library(RColorBrewer)
library(ggplot2)
library(scales)
library(patchwork)
library(mediation)
library(dplyr)
library(cobalt)
library(tidyr)
library(pander)
library(broom)
# Load data
d0 <- read_dta("victimization.dta", encoding = "latin1")
First, we tabulate treatment conditions in the experimental sample:
# Define variables
# Tabulate the treatment status
treatment_tab <- table(d0[['treat']])
# Create a data frame for better readability and labeling
treatment_df <- as.data.frame(treatment_tab)
colnames(treatment_df) <- c("Treatment Status", "Count")
# Add descriptive labels
treatment_df$`Treatment Status` <- factor(treatment_df$`Treatment Status`, levels = c(0, 1, 2, 3),
labels = c("Control", "Tr: Victim", "Tr: Liberal", "Tr: Olympic"))
pander(treatment_df, justify = c('left', 'center'))
Treatment Status | Count |
---|---|
Control | 467 |
Tr: Victim | 470 |
Tr: Liberal | 493 |
Tr: Olympic | 460 |
We then check covariance balance using omnibus \(F\) tests:
# Subset the data
balance_check <- subset(d0, select = c("treat", "ideology_nati", "ideology_poli", "ideology_econ", "age", "female", "hschool", "jcollege", "college", "income", "substatus", "knwl", "minority", "ccp"))
# Define the covariates
covars <- c("ideology_nati", "ideology_poli", "ideology_econ", "age", "female", "hschool", "jcollege", "college", "income", "substatus", "knwl", "minority", "ccp")
# Rename map
covariate_names <- c(
ideology_nati = "Nationalistic Ideology",
ideology_poli = "Liberal Ideology",
ideology_econ = "Market Ideology",
female = "Gender",
age = "Age",
hschool = "Completed High School",
jcollege = "Completed Junior College",
college = "Completed College",
income = "Individual Monthly Income",
substatus = "Subjective Financial Status",
knwl = "Political Knowledge",
minority = "Ethnic Minority",
ccp = "Communist Party Membership"
)
# Ensure the treat variable has the correct levels and labels
balance_check$treat <- factor(balance_check$treat,
levels = c(0, 1, 2, 3),
labels = c("Control",
"Tr: Victim",
"Tr: Liberal",
"Tr: Olympic"))
# Initialize an empty dataframe to store the results
balance_table <- data.frame()
# Loop through each covariate
for (var in covars) {
# Calculate means for each treatment group
means <- balance_check %>%
group_by(treat) %>%
summarise(mean = mean(!!sym(var), na.rm = TRUE)) %>%
pivot_wider(names_from = treat, values_from = mean) %>%
mutate(Covariate = covariate_names[var])
# Ensure column renaming does not exclude any group
colnames(means) <- c(levels(balance_check$treat), "Covariate")
# Perform the ANOVA F test
anova_result <- aov(as.formula(paste(var, "~ treat")), data = balance_check)
p_value <- summary(anova_result)[[1]][["Pr(>F)"]][1]
# Round the means and add the p-value to the balance table
means <- means %>%
mutate(across(where(is.numeric), round, 2))
balance_table <- rbind(balance_table, cbind(means, p_value = round(p_value, 2)))
}
# Rename the columns properly and reorder them
colnames(balance_table) <- c("Control", "Tr: Victim", "Tr: Liberal", "Tr: Olympic", "Covariate", "p-value")
balance_table <- balance_table %>% select(Covariate, `Control`, `Tr: Victim`, `Tr: Liberal`, `Tr: Olympic`, `p-value`)
panderOptions('table.split.table', Inf)
pander(balance_table, justify = c('left', rep('center',5)))
Covariate | Control | Tr: Victim | Tr: Liberal | Tr: Olympic | p-value |
---|---|---|---|---|---|
Nationalistic Ideology | 0.02 | -0.05 | 0.06 | -0.03 | 0.33 |
Liberal Ideology | 0.05 | 0.04 | -0.09 | 0 | 0.13 |
Market Ideology | -0.02 | -0.01 | 0 | 0.03 | 0.85 |
Age | 31.79 | 32.17 | 31.08 | 31.9 | 0.26 |
Gender | 0.44 | 0.48 | 0.41 | 0.45 | 0.14 |
Completed High School | 0.19 | 0.19 | 0.22 | 0.21 | 0.61 |
Completed Junior College | 0.21 | 0.2 | 0.2 | 0.2 | 0.89 |
Completed College | 0.4 | 0.41 | 0.41 | 0.42 | 0.91 |
Individual Monthly Income | 4.92 | 5.13 | 5 | 5.08 | 0.43 |
Subjective Financial Status | 2.24 | 2.26 | 2.22 | 2.17 | 0.26 |
Political Knowledge | 2.32 | 2.33 | 2.3 | 2.48 | 0.33 |
Ethnic Minority | 0.03 | 0.04 | 0.04 | 0.04 | 0.75 |
Communist Party Membership | 0.15 | 0.19 | 0.1 | 0.13 | 0 |
Almost all covariates are balanced across the treatment arms, with large p-values for the omnibus \(F\) test. Only one variable, Communist Party Membership, shows a significant difference with a small p-value. The authors control for these variables in the regression analyses.
The authors define and label the five outcome variables. The variable
names in the victimization.dta
are listed for researchers
to refer back to:
- nat
: Victim Sentiments
- pat
: Patriotic Sentiments
- system
: Support for Current System
- perception
: Perception of Intention
- hawk
: Support for Hawkish Policies
The figure below shows regression estimates of treatment effects on Chinese national identity, adjusting for pretreatment covariates. It demonstrates that the victimization narrative shifts respondents’ attachment to the victim side of the Chinese national identity by about 0.13 standard deviations. The Olympic treatment also increases victim sentiments. Yet, the effect of the liberal or Olympic treatment is not statistically significant at the 5% level.
Patriotic sentiments remain unaffected. The victimization narrative strengthens the belief that foreign countries will continue to exploit China and that humiliation from foreign powers has marked China’s modern history. This finding supports that the victimization narrative increases people’s attachment to victim sentiments, which can be a force driving public opinion.
# Define the treatments, covariates, and outcomes
treat <- c("tr_victim", "tr_liberal", "tr_olympic")
covars <- c("ideology_nati", "ideology_poli", "ideology_econ", "age", "age_sq", "female", "hschool", "jcollege", "college", "factor(prov)", "income", "substatus", "knwl", "minority", "ccp")
outcomes <- c("nat", "pat")
# Prepare the array to store estimates
est <- array(NA, dim = c(length(treat), 5, 2))
# estimates of victim sentiments
formula <- as.formula(paste0(outcomes[1], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+")))
out <- lm_robust(formula, data = d0, se_type = "HC1")
out2 <- lm_robust(formula, data = d0, se_type = "HC1", alpha = 0.1)
x0 <- c(1:length(treat)) + 1
est[, , 1] <- cbind(out$coefficients[x0], out$conf.low[x0], out$conf.high[x0], out2$conf.low[x0], out2$conf.high[x0])
# estimates of patriotic sentiments
formula2 <- as.formula(paste0(outcomes[2], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+")))
out3 <- lm_robust(formula2, data = d0, se_type = "HC1")
out4 <- lm_robust(formula2, data = d0, se_type = "HC1", alpha = 0.1)
x0 <- c(1:length(treat)) + 1
est[, , 2] <- cbind(out3$coefficients[x0], out3$conf.low[x0], out3$conf.high[x0], out4$conf.low[x0], out4$conf.high[x0])
# Define the plotting parameters
adj <- c(-0.1, 0, 0.1) # Adjustments for plotting points
mypch <- c(15, 16, 17) # Symbols for points
tr.labs <- c("Victim Treatment", "Liberal Treatment", "Olympic Treatment") # Labels for legend
# Plotting
par(mar = c(3, 3, 3, 1))
plot(1, type = "n", xlim = c(0.5, 2.5), ylim = c(-0.4, 0.6), axes = FALSE)
box()
axis(2)
axis(1, at = 1:2, labels = c("Victim Sentiments", "Patriotic Sentiments"), line = -0.2, tick = FALSE)
abline(h = seq(-0.4, 0.6, 0.1), col = "#AAAAAA50") # treatment line color
abline(h = 0, lwd = 2, col = "#DDDDDD")
for (i in 1:2) {
for (j in 1:length(treat)) {
x0 <- i + adj[j]
lines(c(x0, x0), c(est[j, 2, i], est[j, 3, i]), lwd = 1, col = "grey30")
lines(c(x0, x0), c(est[j, 4, i], est[j, 5, i]), lwd = 3, col = "grey30")
points(x0, est[j, 1, i], col = "grey30", pch = mypch[j], cex = 1.5)
}
}
legend("top", legend = tr.labs, border = NA, bty = "n", ncol = 3, col = "grey30", lwd = 2, pch = mypch, cex = 1, seg.len = 2)
Replicating Figure 3 in the article
The authors examine pre-registered heterogeneous treatment effects to understand which subgroup is more susceptible to the “century of humiliation” narrative. They find that the victimization narrative has a stronger effect among respondents without a college degree.
The victimization narrative increases victim sentiment among individuals without a college degree by 0.2 standard deviations. In contrast, evoking memories of national humiliation does not significantly strengthen victim sentiments among college-educated respondents. This may be because more educated individuals have greater access to a wider range of information, exposing them to diverse opinions in addition to the official narrative. Education may also make individuals more critical and less susceptible to media influence. Similar patterns persist when examining other outcome variables.
par(mfrow = c(1,2))
# Subset data based on education
d.high <- d0[which(d0$eduyr >= 16),]
d.low <- d0[which(d0$eduyr < 16),]
d.list <- list(d.low, d.high)
sample.labs <- c("Below College", "College or Above")
# Initialize array to store estimates
est <- array(NA, dim = c(length(treat), 5, 4))
# Estimate and store results for both sentiment types and education levels
for (i in 1:2) {
d0[,outcomes[i]] <- scale(d0[,outcomes[i]]) # Scaling within loop might not be ideal if outcomes[i] affects all d0
formula.m <- list(
as.formula(paste0(outcomes[1], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+"))),
as.formula(paste0(outcomes[2], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+")))
)
for (edu in 1:2) {
s <- d.list[[edu]]
out <- lm_robust(formula.m[[1]], data = s, se_type = "HC1")
out2 <- lm_robust(formula.m[[1]], data = s, se_type = "HC1", alpha = 0.1)
out3 <- lm_robust(formula.m[[2]], data = s, se_type = "HC1")
out4 <- lm_robust(formula.m[[2]], data = s, se_type = "HC1", alpha = 0.1)
x0 <- (1:length(treat)) + 1
est[, , 2*edu-1] <- cbind(out$coefficients[x0], out$conf.low[x0], out$conf.high[x0], out2$conf.low[x0], out2$conf.high[x0])
est[, , 2*edu] <- cbind(out3$coefficients[x0], out3$conf.low[x0], out3$conf.high[x0], out4$conf.low[x0], out4$conf.high[x0])
}
}
# Function to plot sentiments by education level
plot_sentiments <- function(start_index, title) {
par(mar = c(3,3,3,1))
plot(1, type = "n", xlim = c(0.5, 2.5), ylim = c(-0.4, 0.6), axes = FALSE, xlab = "", ylab = "")
box()
axis(2)
axis(1, at = 1:2, labels = sample.labs, line = -2.2, tick = FALSE)
axis(1, at = 1.5, labels = title, line = -.2, tick = FALSE)
abline(h = seq(-0.4, 0.6, 0.1), col = "#AAAAAA50")
abline(h = 0, lwd = 2, col = "#DDDDDD")
for (i in start_index:(start_index+1)) {
for (j in 1:length(treat)) {
x0 <- (i-start_index+1) + adj[j]
lines(c(x0, x0), c(est[j,2,i], est[j,3,i]), lwd = 1, col = "grey30")
lines(c(x0, x0), c(est[j,4,i], est[j,5,i]), lwd = 3, col = "grey30")
points(x0, est[j,1,i], col = "grey30", pch = mypch[j], cex = 1.5)
}
}
legend("top", legend=tr.labs, border=NA, bty="n", ncol=3, col="grey30", lwd=2, pch=mypch, cex=0.8, seg.len=1, text.width = 0.4)
}
# Plot Victim Sentiments by Education
plot_sentiments(1, "Victim Sentiments")
# Plot Patriotic Sentiments by Education
plot_sentiments(3, "Patriotic Sentiments")
Replicating Figure 4 in the article
Does activating memories of national humiliation increase anti-foreign sentiment? The figure below shows that the victimization narrative heightens individuals’ suspicion of foreign governments’ intentions in international disputes. Recipients of the victimization narrative are more likely to view foreign actions as attempts to slow China’s rise rather than legitimate moves to protect national interests. The victimization narrative raises suspicion of foreign intentions across four issue areas and increases support for more hawkish foreign policies (particularly regarding the US-China trade dispute and U.S. sanctions against Huawei).
Evoking memories of national humiliation strengthens public preference for retaliation, thus, discouraging cooperation or negotiation. The Olympic treatment has smaller and marginally significant effects.
debug_formula1 <- paste0(outcomes[1], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+"))
debug_formula2 <- paste0(outcomes[2], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+"))
formula1 <- as.formula(paste0(outcomes[1], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+")))
out1 <- lm_robust(formula1, data = d0, se_type = "HC1")
out2 <- lm_robust(formula1, data = d0, se_type = "HC1", alpha = 0.1)
x0 <- c(1:length(treat)) + 1
est <- array(NA, dim = c(length(treat), 5, 2))
est[,,1] <- cbind(out1$coefficients[x0], out1$conf.low[x0], out1$conf.high[x0], out2$conf.low[x0], out2$conf.high[x0])
# Estimates of support for hawkish policies
formula2 <- as.formula(paste0(outcomes[2], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+")))
out3 <- lm_robust(formula2, data = d0, se_type = "HC1")
out4 <- lm_robust(formula2, data = d0, se_type = "HC1", alpha = 0.1)
est[,,2] <- cbind(out3$coefficients[x0], out3$conf.low[x0], out3$conf.high[x0], out4$conf.low[x0], out4$conf.high[x0])
# Plotting directly
par(mar = c(3,3,3,1))
plot(1, type = "n", xlim = c(0.5, 2.5), ylim = c(-0.4, 0.6), axes = FALSE)
box()
axis(2)
axis(1, at = 1:2, labels = c("Perception of Intention", "Support for Hawkish Policies"), line = -0.2, tick = FALSE)
abline(h = seq(-1, 1, 0.1), col = "#AAAAAA50") # treatment line color
abline(v = seq(0, 4, 0.1), col = "#AAAAAA50")
abline(h = 0, lwd = 5, col = "#DDDDDD")
for (i in 1:2) {
for (j in 1:length(treat)) {
x0 <- i + adj[j] # Ensure 'adj' and 'mypch' are defined or adjust accordingly
lines(c(x0, x0), c(est[j, 2, i], est[j, 3, i]), lwd = 1, col = "grey30")
lines(c(x0, x0), c(est[j, 4, i], est[j, 5, i]), lwd = 3, col = "grey30")
points(x0, est[j, 1, i], col = "grey30", pch = mypch[j], cex = 1.5)
}
}
legend("top", legend = tr.labs, border = NA, bty = "n", ncol = 3, col = "grey30", lwd = 2, pch = mypch, cex = 1, seg.len = 2)
Replicating Figure 5 in the article
Compared with college graduates, the victimization narrative and the Olympic treatment lead to more antagonistic views of foreign intentions among people without a college degree. For respondents with college degrees or higher, none of the treatment conditions have a statistically significant effect on foreign policy preferences.
par(mfrow = c(1,2))
# Redefine variables
outcomes <- c("nat","pat", "system", "perception","hawk")
y.lims <- list(c(-0.4, 0.6), c(-0.4, 0.6),c(-0.4, 0.6), c(-0.4, 0.6), c(-0.4,0.6))
treat <- c("tr_victim","tr_liberal","tr_olympic")
covars <- c("ideology_nati","ideology_poli","ideology_econ", "age","age_sq","female","hschool","jcollege","college","factor(prov)", "income", "substatus","knwl", "minority", "ccp")
# Figure 6 Effects on Perception of Intention and Support for Hawkish Policies by Education
d.high <- d0[which(d0$eduyr >= 16),]
d.low <- d0[which(d0$eduyr < 16),]
d.list <- list(d.low, d.high)
sample.labs <- c("Below College", "College or Above")
# estimates of perception of intention and support for hawkish policies
for (i in 1:2) {
d0[,outcomes[i]] <- scale(d0[,outcomes[i]])
d.list <- list(d.low, d.high)
formula.m <- c(
as.formula(paste0(outcomes[4], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+"))),
as.formula(paste0(outcomes[5], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+")))
)
}
est <- array(NA, dim = c(length(treat), 5, 4))
x0 <- c(1:length(treat)) + 1
out <- lm_robust(formula.m[[1]], data = d.low, se_type = "HC1")
out2 <- lm_robust(formula.m[[1]], data = d.low, se_type = "HC1", alpha = 0.1)
out3 <- lm_robust(formula.m[[1]], data = d.high, se_type = "HC1")
out4 <- lm_robust(formula.m[[1]], data = d.high, se_type = "HC1", alpha = 0.1)
out5 <- lm_robust(formula.m[[2]], data = d.low, se_type = "HC1")
out6 <- lm_robust(formula.m[[2]], data = d.low, se_type = "HC1", alpha = 0.1)
out7 <- lm_robust(formula.m[[2]], data = d.high, se_type = "HC1")
out8 <- lm_robust(formula.m[[2]], data = d.high, se_type = "HC1", alpha = 0.1)
est[,,1] <- cbind(out$coefficients[x0], out$conf.low[x0], out$conf.high[x0], out2$conf.low[x0], out2$conf.high[x0])
est[,,2] <- cbind(out3$coefficients[x0], out3$conf.low[x0], out3$conf.high[x0], out4$conf.low[x0], out4$conf.high[x0])
est[,,3] <- cbind(out5$coefficients[x0], out5$conf.low[x0], out5$conf.high[x0], out6$conf.low[x0], out6$conf.high[x0])
est[,,4] <- cbind(out7$coefficients[x0], out7$conf.low[x0], out7$conf.high[x0], out8$conf.low[x0], out8$conf.high[x0])
## plotting Figure 6 right side - support for hawkish policies
par(mar = c(3, 3, 3, 1))
plot(1, type = "n", xlim = c(0.5, 2.5), ylim = c(-0.4, 0.6), axes = FALSE, xlab = "", ylab = "")
box()
axis(2)
axis(1, at = 1:2, labels = c("Below College", "College or Above"), line = -2.2, tick = FALSE)
axis(1, at = 1.5, labels = c("Support for Hawkish Policies"), line = -.2, tick = FALSE)
abline(h = seq(-1, 1, 0.1), col = "#AAAAAA50")
abline(v = seq(0, 4, 0.1), col = "#AAAAAA50")
abline(h = 0, lwd = 5, col = "#DDDDDD")
for (i in 3:4) {
for (j in 1:length(treat)) {
x0 <- i + adj[j] - 2
lines(c(x0, x0), c(est[j, 2, i], est[j, 3, i]), lwd = 1, col = "grey30")
lines(c(x0, x0), c(est[j, 4, i], est[j, 5, i]), lwd = 3, col = "grey30")
points(x0, est[j, 1, i], col = "grey30", pch = mypch[j], cex = 1.5)
}
}
legend("top", legend = tr.labs, border = NA, bty = "n", ncol = 3, col = "grey30", lwd = 2, pch = mypch, cex = 0.8, seg.len = 1)
## plotting Figure 6 left side - perception of intention
par(mar = c(3, 3, 3, 1))
plot(1, type = "n", xlim = c(0.5, 2.5), ylim = c(-0.4, 0.6), axes = FALSE, xlab = "", ylab = "")
box()
axis(2)
axis(1, at = 1:2, labels = c("Below College", "College or Above"), line = -2.2, tick = FALSE)
axis(1, at = 1.5, labels = c("Perception of Intention"), line = -.2, tick = FALSE)
abline(h = seq(-1, 1, 0.1), col = "#AAAAAA50")
abline(v = seq(0, 4, 0.1), col = "#AAAAAA50")
abline(h = 0, lwd = 5, col = "#DDDDDD")
for (i in 1:2) {
for (j in 1:length(treat)) {
x0 <- i + adj[j]
lines(c(x0, x0), c(est[j, 2, i], est[j, 3, i]), lwd = 1, col = "grey30")
lines(c(x0, x0), c(est[j, 4, i], est[j, 5, i]), lwd = 3, col = "grey30")
points(x0, est[j, 1, i], col = "grey30", pch = mypch[j], cex = 1.5)
}
}
legend("top", legend = tr.labs, border = NA, bty = "n", ncol = 3, col = "grey30", lwd = 2, pch = mypch, cex = 0.8, seg.len = 1)
Replicating Figure 6 in the article
The authors then examine the effect of the victimization narrative on domestic political support. The figure below shows that recalling memories of national humiliation strengthens support for the Chinese political system only among respondents without college degrees.
Despite showing a small average effect in the sample, the victimization narrative is expected to have a substantial impact on public support for the Chinese political system because 41% of the online participants have post-secondary education, compared to only 7% of the Chinese population.
# Figure 7 Treatment Effects on Support for the Political System
d.high <- d0[which(d0$eduyr >= 16),]
d.low <- d0[which(d0$eduyr < 16),]
d.list <- list(d0, d.low, d.high)
sample.labs <- c("Full Sample", "Below College", "College or Above")
# estimates of support for the political system
est <- array(NA, dim = c(length(treat), 5, 3))
for (m in 1:length(d.list)) {
formula.m <- as.formula(paste0(outcomes[3], "~", paste(treat, collapse = "+"), "+", paste(covars, collapse = "+")))
s <- d.list[[m]]
out <- lm_robust(formula.m, data = s, se_type = "HC1")
out2 <- lm_robust(formula.m, data = s, se_type = "HC1", alpha = 0.1)
x0 <- c(1:length(treat)) + 1
est[, , m] <- cbind(out$coefficients[x0], out$conf.low[x0], out$conf.high[x0], out2$conf.low[x0], out2$conf.high[x0])
}
## plotting
par(mar = c(3, 3, 3, 1))
plot(1, type = "n", xlim = c(0.5, 3.5), ylim = c(-0.5, 0.6), axes = FALSE)
box()
axis(2)
axis(1, at = 1:3, labels = sample.labs, line = -0.2, tick = FALSE)
abline(h = seq(-1, 1, 0.1), col = "#AAAAAA50")
abline(v = seq(0, 4, 0.1), col = "#AAAAAA50")
abline(h = 0, lwd = 5, col = "#DDDDDD")
for (i in 1:3) {
for (j in 1:length(treat)) {
x0 <- i + adj[j]
lines(c(x0, x0), c(est[j, 2, i], est[j, 3, i]), lwd = 1, col = "grey30")
lines(c(x0, x0), c(est[j, 4, i], est[j, 5, i]), lwd = 3, col = "grey30")
points(x0, est[j, 1, i], col = "grey30", pch = mypch[j], cex = 1.5)
}
}
legend("top", legend = tr.labs, border = NA, bty = "n", ncol = 3, col = "grey30",
lwd = 2, pch = mypch, cex = 1, seg.len = 2)
Replicating Figure 7 in the article
The authors conduct robustness checks by restricting the sample based on different conditions and report their findings in the supplementary materials. These conditions include emotions experienced after reading the vignette, agreement with the vignette, understanding of the argument of the vignette, and time spent on the survey. They find that individuals who agree with the victimization narrative exhibit stronger treatment effects. Other results remain qualitatively the same as the main findings.
As for concerns about preference falsification in authoritarian regimes, the authors believe that it does not invalidate the findings. They argue that if people were under high pressure to express pro-regime attitudes, similar conformity biases across outcome variables should have been recorded. However, this is not observed in the experiment results. Falsifying preferences may lead people to show more patriotic love for their country, but the treatments largely do not affect patriotic sentiment and are more effective on victim sentiment. It is also unclear how preference falsification would contribute to more aggressive attitudes toward foreign countries.
They conduct mediation analyses to explore the mechanisms through which the treatments affect outcomes and find that victim sentiment is more likely a mechanism than patriotic sentiment for the victimization narrative treatment’s impact on support for hawkish foreign policy and perception of intention.
The study suggests that a victimization narrative propagated by an autocratic government can effectively provoke anger toward foreign countries while boosting domestic support. However, an excessive focus on victimization may weaken foreign relations and lead to a public opinion crisis that works against international collaboration. Previous research has shown that an angry public motivated by a strong national identity can protest against domestic government inaction when the government prefers softer foreign policies (Weiss and Dafoe 2019). A society can be seriously damaged by nationalistic fervor, as the Boxers did in the early 20th century.
The authors encourage more research to determine if these findings can be extended to other countries or contexts. Since most people do not witness historical events that took place long ago, and for those who do, their memories can be suppressed and their voices silenced, an authoritarian government is in a unique position to tell its citizens what happened in the past (Zerubavel 1995). A monopoly on media and authoritarian control over the education system can significantly facilitate the spread of the official narrative (See Callahan (2006), and Liu and Ma (2018) ), while in democratic societies, a free press, as well as mechanisms of checks and balances, allows for alternative narratives that challenge the official one.