This analysis examines the central tendency and distribution of extremism within specific communities based on religiosity in Israel across six waves of data collection. We focus on normative points (NP), extremism points (EP), and their ratios (EP/NP) to identify significant trends in extremism patterns.
community_variable <- "pe_religiosity"
community_order <-
c("Secular", "Religious", "National Religious", "Ultra-Orthodox")
dimensions_order <- c("Overall", "Cognitive", "Behavioral", "Social")
# Read the data from indices_table.txt
df <- as.data.frame(readRDS("Israel Survey/data/il_pe.RDS"))
indices_df <- af_gauge_indices(df, pop_var1 = "Wave", comm_var1 = community_variable)
indices_data <- indices_df$indices_table
# Filter for rows that contain community data (non-NA community indices)
community_data <- indices_data %>%
filter(!is.na(cnp_c))
# Extract unique communities
communities <- unique(community_data[[community_variable]])
# Focus on the absolute indices for communities
community_absolute <- community_data %>%
dplyr::select(Wave, !!sym(community_variable), cnp_c, bnp_c, snp_c, onp_c, cep_c, bep_c, sep_c, oep_c) %>%
mutate(!!sym(community_variable) := factor(!!sym(community_variable), levels = community_order))
# Calculate EP/NP ratios for each dimension within each community
community_absolute <- community_absolute %>%
mutate(
cep_cnp_ratio = cep_c / cnp_c,
bep_bnp_ratio = bep_c / bnp_c,
sep_snp_ratio = sep_c / snp_c,
oep_onp_ratio = oep_c / onp_c
)
The cognitive dimension (cnp_c) shows different patterns across the different religiosity groups. Secular communities display increasing values in later waves, with the highest values in waves Five and Six. Traditional communities consistently show the lowest cognitive dimension values across most waves. The relationship between religiosity and cognitive extremism appears to be complex.
The behavioral dimension (bnp_c) shows the least variation between communities among all three dimensions.Behavioral extremism shows very moderate growth (<5%) across all communities.
Except for the National Religious, the values of the other religious groups converge in later waves, with very small differences between by wave Six. This suggests that support for political violence (behavioral dimension) has become more homogeneous across religious communities over time.
Internal polarization is measures based on the EP/NP Ratio. Higher ratio means higher polarization.
The Secular and Traditional communities showed a consistent high polarization in the cognitive dimension (EP/NP ratio cep_c/cnp_c across waves). The Orthodox and National Ultra-Orthodox showed decreasing internal polarization. The Religious community showed a U-shaped patterns and the national-religious had stable level of internal polarization with smaller fluctuations.
plot_data <- community_absolute
p1 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "onp_c",
grouping_variable = community_variable, show_points = TRUE,
title = "Overall - Normative Points",
y_label = "onp_c (1-7)",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p1)
p2 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "cnp_c",
grouping_variable = community_variable, show_points = TRUE,
title = "Cognitive Dimension - Normative Points",
y_label = "cnp_c (1-7)",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p2)
p3 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "bnp_c",
grouping_variable = community_variable, show_points = TRUE,
title = "Behavioral Dimension - Normative Points",
y_label = "bnp_c (1-7)",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p3)
p4 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "snp_c",
grouping_variable = community_variable, show_points = TRUE,
title = "Social Dimension - Normative Points",
y_label = "snp_c (1-7)",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p4)
plot_data <- community_absolute
p1 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "oep_c",
grouping_variable = community_variable, show_points = TRUE,
title = "Overall - Extremism Points",
y_label = "oep_c (1-7)",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p1)
p2 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "cep_c",
grouping_variable = community_variable, show_points = TRUE,
title = "Cognitive Dimension - Extremism Points",
y_label = "cep_c Value (1-7)",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p2)
p3 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "bep_c",
grouping_variable = community_variable, show_points = TRUE,
title = "Behavioral Dimension - Extremism Points",
y_label = "bep_c (1-7)",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p3)
p4 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "sep_c",
grouping_variable = community_variable, show_points = TRUE,
title = "Social Dimension - Extremism Points",
y_label = "sep_c (1-7)",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p4)
plot_data <- community_absolute %>% dplyr::filter(!!sym(community_variable) == "Secular")
p1 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("onp_c", "cnp_c", "bnp_c", "snp_c"),
y_var_labels = dimensions_order,
title = "Secular - Normative Points",
y_label = "Normative Points Value (1-7)",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p1)
p2 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("oep_c", "cep_c", "bep_c", "sep_c"),
y_var_labels = dimensions_order,
title = "Secular - Extremism Points",
y_label = "Extremism Points Value (1-7)",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p2)
plot_data <- community_absolute %>% dplyr::filter(!!sym(community_variable) == "Religious")
p1 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("onp_c", "cnp_c", "bnp_c", "snp_c"),
y_var_labels = dimensions_order,
title = "Religious - Normative Points Comparison",
y_label = "Normative Points Value (1-7)",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p1)
p2 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("oep_c", "cep_c", "bep_c", "sep_c"),
y_var_labels = dimensions_order,
title = "Religious - Extremism Points Comparison",
y_label = "Extremism Points Value (1-7)",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p2)
plot_data <- community_absolute %>% dplyr::filter(!!sym(community_variable) == "National Religious")
p1 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("onp_c", "cnp_c", "bnp_c", "snp_c"),
y_var_labels = dimensions_order,
title = "National Religious - Normative Points Comparison",
y_label = "Normative Points Value (1-7)",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p1)
p2 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("oep_c", "cep_c", "bep_c", "sep_c"),
y_var_labels = dimensions_order,
title = "National Religious - Extremism Points Comparison",
y_label = "Extremism Points Value (1-7)",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p2)
plot_data <- community_absolute %>% dplyr::filter(!!sym(community_variable) == "Ultra-Orthodox")
p1 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("onp_c", "cnp_c", "bnp_c", "snp_c"),
y_var_labels = dimensions_order,
title = "Ultra-Orthodox - Normative Points Comparison",
y_label = "Normative Points Value (1-7)",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p1)
p2 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("oep_c", "cep_c", "bep_c", "sep_c"),
y_var_labels = dimensions_order,
title = "Ultra-Orthodox - Extremism Points Comparison",
y_label = "Extremism Points Value (1-7)",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p2)
plot_data <- community_absolute
p1 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "oep_onp_ratio",
grouping_variable = community_variable, show_points = TRUE,
title = "Overall - Internal Polarization",
y_label = "oep_c/onp_c",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p1)
p2 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "cep_cnp_ratio",
grouping_variable = community_variable, show_points = TRUE,
title = "Cognitive Dimension - Internal Polarization",
y_label = "cep_c/cnp_c",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p2)
p3 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "bep_bnp_ratio",
grouping_variable = community_variable, show_points = TRUE,
title = "Behavioral Dimension - Internal Polarization",
y_label = "bep_c/bnp_c",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p3)
p4 <- af_create_xy_plot(data = plot_data, x_var = "Wave", y_var = "sep_snp_ratio",
grouping_variable = community_variable, show_points = TRUE,
title = "Social Dimension - Internal Polarization",
y_label = "sep_c/snp_c",
legend_position = "bottom") + scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p4)
plot_data <- community_absolute %>% dplyr::filter(!!sym(community_variable) == "Secular")
p1 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("oep_onp_ratio",
"cep_cnp_ratio",
"bep_bnp_ratio",
"sep_snp_ratio"),
y_var_labels = dimensions_order,
title = "Secular - Internal Polarization",
y_label = "EP / NP Ratio",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p1)
plot_data <- community_absolute %>% dplyr::filter(!!sym(community_variable) == "Religious")
p2 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("oep_onp_ratio",
"cep_cnp_ratio",
"bep_bnp_ratio",
"sep_snp_ratio"),
y_var_labels = dimensions_order,
title = "Religious - Internal Polarization",
y_label = "EP / NP Ratio",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p2)
plot_data <- community_absolute %>% dplyr::filter(!!sym(community_variable) == "National Religious")
p3 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("oep_onp_ratio",
"cep_cnp_ratio",
"bep_bnp_ratio",
"sep_snp_ratio"),
y_var_labels = dimensions_order,
title = "National Religious - Internal Polarization",
y_label = "EP / NP Ratio",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p3)
plot_data <- community_absolute %>% dplyr::filter(!!sym(community_variable) == "Ultra-Orthodox")
p4 <- af_create_x_multi_y_plot (data = plot_data, x_var = "Wave",
y_var_names = c("oep_onp_ratio",
"cep_cnp_ratio",
"bep_bnp_ratio",
"sep_snp_ratio"),
y_var_labels = dimensions_order,
title = "Ultra-Orthodox - Internal Polarization",
y_label = "EP / NP Ratio",
legend_position = "bottom", show_points = TRUE) +
scale_x_discrete(limits = levels(df$Wave))
af_event_labels(p4)
Volatility refers to the extent of variation within a specific community or dimension across the six survey waves. It captures the degree to which a given dimension changes for each community over time. I measure volatility using the coefficient of variation (CV), calculated as the ratio of the standard deviation to the mean of normative points within each dimension. The CV provides a standardized measure of dispersion, indicating the degree of heterogeneity or instability in the central tendency of cognitive extremism across communities. Higher CV values reflect greater variability or dispersion.
# Calculate coefficient of variation for each community NP
community_cv <- community_absolute %>%
group_by(!!sym(community_variable)) %>%
summarize(
cv_cnp = sd(cnp_c) / mean(cnp_c),
cv_bnp = sd(bnp_c) / mean(bnp_c),
cv_snp = sd(snp_c) / mean(snp_c),
cv_onp = sd(onp_c) / mean(onp_c),
.groups = "drop"
) %>%
pivot_longer(
cols = starts_with("cv_"),
names_to = "dimension",
values_to = "cv"
) %>%
mutate(
dimension = case_when(
dimension == "cv_cnp" ~ "Cognitive",
dimension == "cv_bnp" ~ "Behavioral",
dimension == "cv_snp" ~ "Social",
dimension == "cv_onp" ~ "Overall"
),
dimension = factor(dimension, levels = dimensions_order)
)
af_create_xy_bar(data = community_cv, x_var = community_variable, y_var = "cv",
fill_var = "dimension",
title = "Community Volatility in Normative Points Across Waves",
subtitle = "Higher CV means higher disperssion across waves",
x_label = "Community",
y_label = "Coefficient of Variation (CV)",
legend_position = "bottom")
# Calculate coefficient of variation for each community EP
community_cv <- community_absolute %>%
group_by(!!sym(community_variable)) %>%
summarize(
cv_cep = sd(cep_c) / mean(cep_c),
cv_bep = sd(bep_c) / mean(bep_c),
cv_sep = sd(sep_c) / mean(sep_c),
cv_oep = sd(oep_c) / mean(oep_c),
.groups = "drop"
) %>%
pivot_longer(
cols = starts_with("cv_"),
names_to = "dimension",
values_to = "cv"
) %>%
mutate(
dimension = case_when(
dimension == "cv_cep" ~ "Cognitive",
dimension == "cv_bep" ~ "Behavioral",
dimension == "cv_sep" ~ "Social",
dimension == "cv_oep" ~ "Overall"
),
dimension = factor(dimension, levels = dimensions_order)
)
af_create_xy_bar(data = community_cv, x_var = community_variable, y_var = "cv",
fill_var = "dimension",
title = "Community Volatility in Extremism Points Across Waves",
subtitle = "Higher CV means higher disperssion across waves",
x_label = "Community",
y_label = "Coefficient of Variation (CV)",
legend_position = "bottom")
Comparing all three dimensions reveals distinctly different patterns in how extremism manifests across religious communities. The social dimension shows the strongest and most consistent relationship with religiosity, the cognitive dimension shows a more complex non-linear relationship, and the behavioral dimension shows minimal community differences.
# NP average heatmap by community and dimension
dimension_summary <- community_absolute %>%
group_by(!!sym(community_variable)) %>%
summarize(
avg_overall = mean(onp_c),
avg_cognitive = mean(cnp_c),
avg_behavioral = mean(bnp_c),
avg_social = mean(snp_c),
.groups = "drop"
) %>%
arrange(desc(avg_social))
# Create a heatmap of average values
dimension_summary_long <- dimension_summary %>%
pivot_longer(
cols = starts_with("avg_"),
names_to = "dimension",
values_to = "average"
) %>%
mutate(
dimension = case_when(
dimension == "avg_overall" ~ "Overall",
dimension == "avg_cognitive" ~ "Cognitive",
dimension == "avg_behavioral" ~ "Behavioral",
dimension == "avg_social" ~ "Social"
),
dimension = factor(dimension, levels = dimensions_order)
)
af_create_heatmap(data = dimension_summary_long, x_var = "dimension", y_var = community_variable,
fill_var = "average",
title = "Average Normative Points by Community and Dimension",
x_label = "Dimension",
y_label = "Community",
legend_position = "bottom")
# EP average heatmap by community and dimension
dimension_summary <- community_absolute %>%
group_by(!!sym(community_variable)) %>%
summarize(
avg_overall = mean(oep_c),
avg_cognitive = mean(cep_c),
avg_behavioral = mean(bep_c),
avg_social = mean(sep_c),
.groups = "drop"
) %>%
arrange(desc(avg_social))
# Create a heatmap of average values
dimension_summary_long <- dimension_summary %>%
pivot_longer(
cols = starts_with("avg_"),
names_to = "dimension",
values_to = "average"
) %>%
mutate(
dimension = case_when(
dimension == "avg_overall" ~ "Overall",
dimension == "avg_cognitive" ~ "Cognitive",
dimension == "avg_behavioral" ~ "Behavioral",
dimension == "avg_social" ~ "Social"
),
dimension = factor(dimension, levels = dimensions_order)
)
af_create_heatmap(data = dimension_summary_long, x_var = "dimension", y_var = community_variable,
fill_var = "average",
title = "Average Extremism Points by Community and Dimension",
x_label = "Dimension",
y_label = "Community",
legend_position = "bottom")