Gummer, Tobias, Bartholomäus, Saskia, and Weiss, Bernd (2026): “Respondents’ Preferred Survey Topics: Measurement and Prevalence.” Survey Research Methods.
Respondents’ interest in a survey’s topic is used frequently by survey researchers to explain and predict survey errors. Whether respondents are interested in a survey’s content relates to their participation and cognitive answering processes, which consequently impacts nonresponse and measurement errors. Since the content of a survey is under the control of the researchers who design and conduct it, the content could be varied to improve participation and answering behavior. Unfortunately, research is lacking as to (i) how to measure these preferences, (ii) whether groups of respondents differ in their topic preferences, and (iii) the topic preferences in the social science survey samples. We have addressed this research gap by presenting the findings of three experimental studies that we conducted. In our study, we validated a measurement instrument to assess respondents’ topic interests. Moreover, we found that topic preferences varied between samples and respondent subgroups. However, across samples we consistently found that respondents were more interested in answering questions on personal rather than political topics. Based on our empirical findings, we provide practical recommendations for survey research and outline future research opportunities.
The ReplicationFileStudy2.html contains all analyses of study 2 reported in the cited article. The published R.Rmd files allow users to replicate the results. To access the data set required for replication, a data use agreement is necessary. To reproduce the analyses, please follow these steps:
GESIS – Leibniz Institute for the Social Sciences (2024). GESIS Panel - Standard Edition (ZA5665; Version 54.0.0) [Data set]. https://doi.org/10.4232/1.14386
# Random Number Generation
set.seed(42)
The data required for the replication code can be accessed under a data use agreement.
GESIS – Leibniz Institute for the Social Sciences (2024). GESIS Panel - Standard Edition (ZA5665; Version 54.0.0) [Data set]. https://doi.org/10.4232/1.14386
# Loading Dataset
cat("gesispanel_dta <- read_dta('[INCLUDE PATH TO THE PRETEST DATA SET HERE]/ZA5665_GESIS_Panel_v54-0-0.dta')")
## gesispanel_dta <- read_dta('[INCLUDE PATH TO THE PRETEST DATA SET HERE]/ZA5665_GESIS_Panel_v54-0-0.dta')
cat("gesispanel_dta <- remove_all_labels(gesispanel_dta)")
## gesispanel_dta <- remove_all_labels(gesispanel_dta)
# Renaming Variables
gesispanel_dta <- dplyr::rename(gesispanel_dta,
tp_well = kaea069a,
tp_pol = kaea070a,
tp_nature = kaea071a,
tp_personal = kaea072a,
tp_media = kaea073a,
tp_work = kaea074a,
tp_migration = kaea075a,
tp_economy = kaea076a,
tp_leisure = kaea077a,
tp_crisis = kaea078a,
i_polinterest = kazc030a,
i_trust = kazc056a,
i_gender = jdzh023b,
year = jdzh024c,
i_education = jdzh030a,
east_a12 = a12d021b,
east_d12 = d12d025b,
east_f12 = f12d021b,
east_i12 = i12c049b)
# Variable Labels
labels <- list(
i_gender = "Gender",
i_age = "Age in Years",
i_education = "Educaional Level",
i_east = "Eastern Germany",
i_polinterest = "Political Interest",
i_trust = "General Trust",
tp_pol = "Topic Interest Politics",
tp_well = "Topic Interest Well-Being",
tp_nature = "Topic Interest Nature",
tp_media = "Topic Interest Media",
tp_work = "Topic Interest Work",
tp_migration = "Topic Interest Migration",
tp_economy = "Topic Interest Economy",
tp_crisis = "Topic Interest Crisis",
tp_personal = "Topic Interest Personality",
tp_leisure = "Topic Interest Leisure")
# Value Labels
gesispanel_dta <- set_labels(gesispanel_dta, i_gender, labels = c("male" = 1, "female" = 2))
gesispanel_dta <- set_labels(gesispanel_dta, i_education, labels = c("low" = 1, "medium" = 2, "high" = 3))
gesispanel_dta <- set_labels(gesispanel_dta, i_east, labels = c("west" = 1, "east" = 2))
gesispanel_dta <- set_labels(gesispanel_dta, i_trust, labels = c("not at all" = 1, "very strong" = 7))
gesispanel_dta <- set_labels(gesispanel_dta, i_polinterest, labels = c("not at all" = 1, "very strong" = 5))
gesispanel_dta <- set_labels(gesispanel_dta, tp_pol, tp_well, tp_nature, tp_personal, tp_media, tp_work, tp_migration, tp_economy, tp_crisis, tp_leisure,
labels = c("very interested" = 7, "not interestes at all" = 1))
# Creating Subsets
subset <- select(gesispanel_dta, z000001a, tp_well:tp_crisis, i_polinterest, i_trust, i_gender, year, i_education, east_a12, east_d12, east_f12, east_i12)
# Defining Missing Values
subset[subset == -11 | subset == -22 | subset == -33 | subset == -55 | subset == -77 | subset == -88 | subset == -99 | subset == -111 | subset == 97 | subset == 98] <- NA
save(subset, labels, file = "data/subset.RData")
# Merging Variables of Groups
subset <- mutate(subset, i_east = ifelse(!is.na(subset$east_a12), east_a12, east_d12))
subset <- mutate(subset, i_east = ifelse(!is.na(subset$i_east), i_east, east_f12))
subset <- mutate(subset, i_east = ifelse(!is.na(subset$i_east), i_east, east_i12))
# Recoding Age in Years
subset <- mutate(subset, i_age = 2023-year)
subset <- mutate(subset, age_group = case_when(i_age <= 48 ~ 1, i_age > 48 & i_age <= 63 ~ 2, i_age > 63 ~ 3))
subset <- set_labels(subset, age_group, labels = c("<= 48" = 1, "49 - 63" = 2, "> 63" = 3))
# Categorizing Education
subset <- mutate(subset, i_education = case_match(i_education, 1 ~ 2, 2 ~ 1, 3 ~ 1, 4 ~ 1, 5 ~ 2, 6 ~ 1, 7 ~ 2, 8 ~ 3, 9 ~ 3))
# Recoding Political Interest
subset <- mutate(subset, i_polinterest = case_match(i_polinterest, 1 ~ 5, 2 ~ 4, 3 ~ 3, 4 ~ 2, 5 ~ 1))
# Defining Factor Variables
subset$i_gender <- as_factor(subset$i_gender)
subset$i_education <- as_factor(subset$i_education)
subset$i_east <- as_factor(subset$i_east)
subset$age_group <- as_factor(subset$age_group)
# Save Datasets
save(subset, labels, file = "data/subset.RData")
rm(list = setdiff(ls(), c("custom_theme")))
Political Engagement
sumtable(subset, vars=c("i_polinterest"), add.median = TRUE, digits = 3, out = "kable") %>%
kableExtra::kable_styling(bootstrap_options = "basic")
| Variable | N | Mean | Std. Dev. | Min | Pctl. 25 | Pctl. 50 | Pctl. 75 | Max |
|---|---|---|---|---|---|---|---|---|
| i_polinterest | 4560 | 3.21 | 0.993 | 1 | 3 | 3 | 4 | 5 |
#rm(subset, labels)
sumtable(subset, vars=c("i_trust"), add.median = TRUE, digits = 3, out = "kable") %>%
kableExtra::kable_styling(bootstrap_options = "basic")
| Variable | N | Mean | Std. Dev. | Min | Pctl. 25 | Pctl. 50 | Pctl. 75 | Max |
|---|---|---|---|---|---|---|---|---|
| i_trust | 4546 | 3.76 | 1.7 | 1 | 2 | 4 | 5 | 7 |
#rm(subset, labels)
Age Groups
sumtable(subset, vars = "i_age", label = "Age in Years",
add.median = TRUE, digits = 3, out = "kable") %>%
kableExtra::kable_styling(bootstrap_options = "basic")
| Variable | N | Mean | Std. Dev. | Min | Pctl. 25 | Pctl. 50 | Pctl. 75 | Max |
|---|---|---|---|---|---|---|---|---|
| Age in Years | 4610 | 58 | 14.3 | 28 | 48 | 59 | 69 | 80 |
sumtable(subset, vars = "age_group", label = "Age Group", out = "kable") %>%
kableExtra::kable_styling(bootstrap_options = "basic")
| Variable | N | Percent |
|---|---|---|
| Age Group | 4610 | |
| … 1 | 1181 | 26% |
| … 2 | 1621 | 35% |
| … 3 | 1808 | 39% |
Gender
sumtable(subset, vars = "i_gender", label = "Gender", out = "kable") %>%
kableExtra::kable_styling(bootstrap_options = "basic")
| Variable | N | Percent |
|---|---|---|
| Gender | 4648 | |
| … 1 | 2328 | 50% |
| … 2 | 2320 | 50% |
Education
sumtable(subset, vars = "i_education", label = "Education", out = "kable") %>%
kableExtra::kable_styling(bootstrap_options = "basic")
| Variable | N | Percent |
|---|---|---|
| Education | 4613 | |
| … 1 | 733 | 16% |
| … 2 | 1522 | 33% |
| … 3 | 2358 | 51% |
Eastern Germany
sumtable(subset, vars = "i_east", label = "Residence in Germany", out = "kable") %>%
kableExtra::kable_styling(bootstrap_options = "basic")
| Variable | N | Percent |
|---|---|---|
| Residence in Germany | 9025 | |
| … 1 | 6712 | 74% |
| … 2 | 2313 | 26% |
Topic Popularity
subset_tp <- select(subset, tp_nature, tp_crisis, tp_personal, tp_economy, tp_leisure, tp_well, tp_migration, tp_work, tp_pol, tp_media )
subset_tp <- subset_tp[complete.cases(subset_tp), ]
sumtable(subset_tp, vars=c("tp_nature", "tp_crisis", "tp_personal", "tp_economy", "tp_leisure", "tp_well", "tp_migration", "tp_work", "tp_pol", "tp_media"),
labels = c("Nature", "Crisis", "Personality", "Economy", "Leisure", "Well-Being", "Migration", "Work", "Politics", "Media"), out = "kable", add.median = TRUE, digits = 3) %>%
kableExtra::kable_styling(bootstrap_options = "basic")
| Variable | N | Mean | Std. Dev. | Min | Pctl. 25 | Pctl. 50 | Pctl. 75 | Max |
|---|---|---|---|---|---|---|---|---|
| Nature | 4336 | 5.43 | 1.34 | 1 | 5 | 6 | 6 | 7 |
| Crisis | 4336 | 5.32 | 1.42 | 1 | 5 | 6 | 6 | 7 |
| Personality | 4336 | 5.26 | 1.36 | 1 | 4 | 5 | 6 | 7 |
| Economy | 4336 | 5.08 | 1.36 | 1 | 4 | 5 | 6 | 7 |
| Leisure | 4336 | 4.96 | 1.34 | 1 | 4 | 5 | 6 | 7 |
| Well-Being | 4336 | 4.85 | 1.51 | 1 | 4 | 5 | 6 | 7 |
| Migration | 4336 | 4.83 | 1.58 | 1 | 4 | 5 | 6 | 7 |
| Work | 4336 | 4.7 | 1.62 | 1 | 4 | 5 | 6 | 7 |
| Politics | 4336 | 4.52 | 1.61 | 1 | 4 | 5 | 6 | 7 |
| Media | 4336 | 4.42 | 1.51 | 1 | 4 | 4 | 5 | 7 |
Test of Comparisons
topics <- c("tp_nature", "tp_crisis", "tp_personal", "tp_economy", "tp_leisure", "tp_well", "tp_migration", "tp_work", "tp_pol", "tp_media")
tt_results <- list()
for (i in 1:(length(topics) - 1)) {
for (j in (i + 1):length(topics)) {
var1 <- topics[i]
var2 <- topics[j]
tab <- map_df(list(t.test(subset_tp[[var1]], subset_tp[[var2]], paired = TRUE, alternative = "two.sided")), tidy)
tt_results[[paste(var1, "_vs_", var2, sep = "")]] <- tab
}
}
ttresults_df <- do.call(rbind, tt_results)
ttresults_df$Comparison <- gsub("_vs_", " vs. ", rownames(ttresults_df))
ttresults_df <- ttresults_df[c("Comparison", "estimate", "statistic", "p.value", "conf.low", "conf.high", "method")]
ttresults_df[c("Comparison", "estimate", "statistic", "p.value", "conf.low", "conf.high", "method")] %>%
kbl(align = "llllll", col.names = c("Comparison", "Difference in Means", "t", "p.value", "conf.low", "conf.high", "Method"),
digits = 3, caption = "Difference of Topic Popularity") %>%
kable_styling() %>%
kableExtra::scroll_box(width = "100%", height = "300px")
| Comparison | Difference in Means | t | p.value | conf.low | conf.high | Method |
|---|---|---|---|---|---|---|
| tp_nature vs. tp_crisis | 0.116 | 5.004 | 0.000 | 0.070 | 0.161 | Paired t-test |
| tp_nature vs. tp_personal | 0.175 | 8.662 | 0.000 | 0.135 | 0.215 | Paired t-test |
| tp_nature vs. tp_economy | 0.347 | 15.148 | 0.000 | 0.302 | 0.391 | Paired t-test |
| tp_nature vs. tp_leisure | 0.466 | 19.930 | 0.000 | 0.420 | 0.512 | Paired t-test |
| tp_nature vs. tp_well | 0.577 | 23.916 | 0.000 | 0.529 | 0.624 | Paired t-test |
| tp_nature vs. tp_migration | 0.606 | 23.785 | 0.000 | 0.556 | 0.656 | Paired t-test |
| tp_nature vs. tp_work | 0.736 | 26.507 | 0.000 | 0.682 | 0.790 | Paired t-test |
| tp_nature vs. tp_pol | 0.916 | 36.587 | 0.000 | 0.867 | 0.965 | Paired t-test |
| tp_nature vs. tp_media | 1.015 | 41.222 | 0.000 | 0.967 | 1.064 | Paired t-test |
| tp_crisis vs. tp_personal | 0.059 | 2.434 | 0.015 | 0.012 | 0.107 | Paired t-test |
| tp_crisis vs. tp_economy | 0.231 | 12.313 | 0.000 | 0.194 | 0.268 | Paired t-test |
| tp_crisis vs. tp_leisure | 0.351 | 13.514 | 0.000 | 0.300 | 0.401 | Paired t-test |
| tp_crisis vs. tp_well | 0.461 | 16.573 | 0.000 | 0.406 | 0.515 | Paired t-test |
| tp_crisis vs. tp_migration | 0.490 | 24.884 | 0.000 | 0.452 | 0.529 | Paired t-test |
| tp_crisis vs. tp_work | 0.620 | 21.485 | 0.000 | 0.564 | 0.677 | Paired t-test |
| tp_crisis vs. tp_pol | 0.800 | 35.140 | 0.000 | 0.756 | 0.845 | Paired t-test |
| tp_crisis vs. tp_media | 0.899 | 34.870 | 0.000 | 0.849 | 0.950 | Paired t-test |
| tp_personal vs. tp_economy | 0.172 | 7.282 | 0.000 | 0.125 | 0.218 | Paired t-test |
| tp_personal vs. tp_leisure | 0.291 | 13.369 | 0.000 | 0.249 | 0.334 | Paired t-test |
| tp_personal vs. tp_well | 0.402 | 19.708 | 0.000 | 0.362 | 0.441 | Paired t-test |
| tp_personal vs. tp_migration | 0.431 | 16.090 | 0.000 | 0.379 | 0.484 | Paired t-test |
| tp_personal vs. tp_work | 0.561 | 22.145 | 0.000 | 0.511 | 0.611 | Paired t-test |
| tp_personal vs. tp_pol | 0.741 | 27.707 | 0.000 | 0.689 | 0.793 | Paired t-test |
| tp_personal vs. tp_media | 0.840 | 36.788 | 0.000 | 0.795 | 0.885 | Paired t-test |
| tp_economy vs. tp_leisure | 0.120 | 4.817 | 0.000 | 0.071 | 0.168 | Paired t-test |
| tp_economy vs. tp_well | 0.230 | 8.428 | 0.000 | 0.176 | 0.283 | Paired t-test |
| tp_economy vs. tp_migration | 0.259 | 13.237 | 0.000 | 0.221 | 0.298 | Paired t-test |
| tp_economy vs. tp_work | 0.389 | 14.415 | 0.000 | 0.336 | 0.442 | Paired t-test |
| tp_economy vs. tp_pol | 0.569 | 26.899 | 0.000 | 0.528 | 0.611 | Paired t-test |
| tp_economy vs. tp_media | 0.669 | 26.085 | 0.000 | 0.618 | 0.719 | Paired t-test |
| tp_leisure vs. tp_well | 0.110 | 4.876 | 0.000 | 0.066 | 0.155 | Paired t-test |
| tp_leisure vs. tp_migration | 0.140 | 4.869 | 0.000 | 0.083 | 0.196 | Paired t-test |
| tp_leisure vs. tp_work | 0.270 | 10.311 | 0.000 | 0.218 | 0.321 | Paired t-test |
| tp_leisure vs. tp_pol | 0.450 | 14.831 | 0.000 | 0.390 | 0.509 | Paired t-test |
| tp_leisure vs. tp_media | 0.549 | 22.228 | 0.000 | 0.500 | 0.597 | Paired t-test |
| tp_well vs. tp_migration | 0.030 | 0.996 | 0.319 | -0.029 | 0.088 | Paired t-test |
| tp_well vs. tp_work | 0.159 | 5.872 | 0.000 | 0.106 | 0.213 | Paired t-test |
| tp_well vs. tp_pol | 0.339 | 11.790 | 0.000 | 0.283 | 0.396 | Paired t-test |
| tp_well vs. tp_media | 0.439 | 17.036 | 0.000 | 0.388 | 0.489 | Paired t-test |
| tp_migration vs. tp_work | 0.130 | 4.297 | 0.000 | 0.071 | 0.189 | Paired t-test |
| tp_migration vs. tp_pol | 0.310 | 12.896 | 0.000 | 0.263 | 0.357 | Paired t-test |
| tp_migration vs. tp_media | 0.409 | 14.835 | 0.000 | 0.355 | 0.463 | Paired t-test |
| tp_work vs. tp_pol | 0.180 | 5.833 | 0.000 | 0.120 | 0.241 | Paired t-test |
| tp_work vs. tp_media | 0.279 | 10.268 | 0.000 | 0.226 | 0.333 | Paired t-test |
| tp_pol vs. tp_media | 0.099 | 3.534 | 0.000 | 0.044 | 0.154 | Paired t-test |
chi_results <- list()
sim_results <- list()
for (i in 1:(length(topics) - 1)) {
for (j in (i + 1):length(topics)) {
var1 <- topics[i]
var2 <- topics[j]
tab <- map_df(list(chisq.test(subset_tp[[var1]], subset_tp[[var2]])), tidy)
tab2 <- map_df(list(chisq.test(subset_tp[[var1]], subset_tp[[var2]], simulate.p.value = TRUE)), tidy)
chi_results[[paste(var1, "_vs_", var2, sep = "")]] <- tab
sim_results[[paste(var1, "_vs_", var2, sep = "")]] <- tab2
}
}
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
## Warning in chisq.test(subset_tp[[var1]], subset_tp[[var2]]): Chi-Quadrat-Approximation kann inkorrekt sein
chiresults_df <- do.call(rbind, chi_results)
chiresults_df$Comparison <- gsub("_vs_", " vs. ", rownames(chiresults_df))
chiresults_df <- chiresults_df[c("statistic", "p.value", "parameter", "method")]
chiresults_df[c("statistic", "p.value", "parameter", "method")] %>%
kbl(align = "llllll", col.names = c("Chisq", "p.value", "df", "Method"), digits = 3, caption = "Difference of Topic Popularity") %>%
kable_styling() %>%
kableExtra::scroll_box(width = "100%", height = "300px")
| Chisq | p.value | df | Method |
|---|---|---|---|
| 1782.427 | 0 | 36 | Pearson’s Chi-squared test |
| 3233.592 | 0 | 36 | Pearson’s Chi-squared test |
| 1701.711 | 0 | 36 | Pearson’s Chi-squared test |
| 1443.398 | 0 | 36 | Pearson’s Chi-squared test |
| 1665.624 | 0 | 36 | Pearson’s Chi-squared test |
| 1512.237 | 0 | 36 | Pearson’s Chi-squared test |
| 1050.893 | 0 | 36 | Pearson’s Chi-squared test |
| 1907.879 | 0 | 36 | Pearson’s Chi-squared test |
| 1777.728 | 0 | 36 | Pearson’s Chi-squared test |
| 1520.199 | 0 | 36 | Pearson’s Chi-squared test |
| 4123.208 | 0 | 36 | Pearson’s Chi-squared test |
| 1236.371 | 0 | 36 | Pearson’s Chi-squared test |
| 858.242 | 0 | 36 | Pearson’s Chi-squared test |
| 4103.974 | 0 | 36 | Pearson’s Chi-squared test |
| 941.917 | 0 | 36 | Pearson’s Chi-squared test |
| 2414.463 | 0 | 36 | Pearson’s Chi-squared test |
| 1347.352 | 0 | 36 | Pearson’s Chi-squared test |
| 1645.366 | 0 | 36 | Pearson’s Chi-squared test |
| 2096.214 | 0 | 36 | Pearson’s Chi-squared test |
| 3323.729 | 0 | 36 | Pearson’s Chi-squared test |
| 1149.516 | 0 | 36 | Pearson’s Chi-squared test |
| 1829.546 | 0 | 36 | Pearson’s Chi-squared test |
| 1522.473 | 0 | 36 | Pearson’s Chi-squared test |
| 2491.849 | 0 | 36 | Pearson’s Chi-squared test |
| 1597.552 | 0 | 36 | Pearson’s Chi-squared test |
| 973.966 | 0 | 36 | Pearson’s Chi-squared test |
| 4816.725 | 0 | 36 | Pearson’s Chi-squared test |
| 1447.778 | 0 | 36 | Pearson’s Chi-squared test |
| 3058.373 | 0 | 36 | Pearson’s Chi-squared test |
| 1329.368 | 0 | 36 | Pearson’s Chi-squared test |
| 2121.086 | 0 | 36 | Pearson’s Chi-squared test |
| 953.356 | 0 | 36 | Pearson’s Chi-squared test |
| 1587.992 | 0 | 36 | Pearson’s Chi-squared test |
| 611.517 | 0 | 36 | Pearson’s Chi-squared test |
| 1626.780 | 0 | 36 | Pearson’s Chi-squared test |
| 806.702 | 0 | 36 | Pearson’s Chi-squared test |
| 1457.680 | 0 | 36 | Pearson’s Chi-squared test |
| 1754.143 | 0 | 36 | Pearson’s Chi-squared test |
| 1627.367 | 0 | 36 | Pearson’s Chi-squared test |
| 1090.728 | 0 | 36 | Pearson’s Chi-squared test |
| 2557.840 | 0 | 36 | Pearson’s Chi-squared test |
| 1216.853 | 0 | 36 | Pearson’s Chi-squared test |
| 918.526 | 0 | 36 | Pearson’s Chi-squared test |
| 1568.726 | 0 | 36 | Pearson’s Chi-squared test |
| 1498.601 | 0 | 36 | Pearson’s Chi-squared test |
simresults_df <- do.call(rbind, sim_results)
simresults_df$Comparison <- gsub("_vs_", " vs. ", rownames(simresults_df))
simresults_df <- simresults_df[c("statistic", "p.value", "parameter", "method")]
simresults_df[c("statistic", "p.value", "parameter", "method")] %>%
kbl(align = "llllll", col.names = c("Chisq", "p.value", "df", "Method"), digits = 3, caption = "Difference of Topic Popularity") %>%
kable_styling() %>%
kableExtra::scroll_box(width = "100%", height = "300px")
| Chisq | p.value | df | Method |
|---|---|---|---|
| 1782.427 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 3233.592 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1701.711 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1443.398 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1665.624 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1512.237 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1050.893 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1907.879 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1777.728 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1520.199 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 4123.208 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1236.371 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 858.242 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 4103.974 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 941.917 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 2414.463 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1347.352 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1645.366 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 2096.214 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 3323.729 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1149.516 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1829.546 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1522.473 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 2491.849 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1597.552 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 973.966 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 4816.725 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1447.778 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 3058.373 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1329.368 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 2121.086 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 953.356 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1587.992 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 611.517 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1626.780 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 806.702 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1457.680 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1754.143 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1627.367 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1090.728 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 2557.840 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1216.853 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 918.526 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1568.726 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
| 1498.601 | 0 | NA | Pearson’s Chi-squared test with simulated p-value (based on 2000 replicates) |
Identifying Number of Components
i_topic <- select(subset, tp_nature, tp_crisis, tp_personal, tp_economy, tp_leisure, tp_well, tp_migration, tp_work, tp_pol, tp_media)
i_topic <- i_topic[complete.cases(i_topic), ]
scree_plot(i_topic, method="pc")
Table Principal Component Analysis
| Topic Interest | Factor Loadings 1 | Factor Loadings 2 | Uniqueness | Complexity |
|---|---|---|---|---|
| Nature | 0.41 | 0.54 | 0.53 | 1.86 |
| Crisis | 0.81 | 0.19 | 0.31 | 1.12 |
| Values | 0.24 | 0.77 | 0.35 | 1.2 |
| Economy | 0.81 | 0.22 | 0.3 | 1.14 |
| Leisure | 0.04 | 0.73 | 0.46 | 1.01 |
| Well-Being | 0.08 | 0.78 | 0.39 | 1.02 |
| Migration | 0.83 | 0.14 | 0.3 | 1.05 |
| Work | 0.16 | 0.59 | 0.62 | 1.15 |
| Politics | 0.77 | 0.16 | 0.39 | 1.08 |
| Media | 0.29 | 0.6 | 0.56 | 1.44 |
| Eigenvalues | 4.24 | 1.56 | ||
| N | 4336 |
Plot Principal Component Analysis
g_pca <- ggplot(results_pca, aes(x = `Factor Loadings 1`, y = `Factor Loadings 2`)) +
labs(x = "Factor Loadings 1", y = "Factor Loadings 2") +
geom_point(aes(colour = `Factor Loadings 1` < 0.5 & `Factor Loadings 2` > 0.5), show.legend = FALSE) +
geom_text(aes(label = c("nature and environment", "current crisis", "personality and values", "economy and society", "leisure and rest", "satisfaction and well-being", "flight and migration", "work and occupation", "political attiudes and behavior", "media and social networks")),
hjust = 0, nudge_x = 0.02, size = 3, family = "Times New Roman", colour = "gray45") +
theme_light() + custom_theme + scale_color_grey() +
scale_y_continuous(limits = c(0, 1.)) +
scale_x_continuous(limits = c(0, 1.)) +
geom_hline(yintercept = 0.5) +
geom_vline(xintercept = 0.5) +
guides(colour = guide_legend(title.position = "top", title.hjust = 0.5))
g_pca
# Creating Subset
subset_tp <- select(subset, tp_nature, tp_crisis, tp_personal, tp_economy, tp_leisure, tp_well, tp_migration, tp_work, tp_pol, tp_media, i_gender, i_education, age_group, i_east, i_trust, i_polinterest)
subset_tp <- subset_tp[complete.cases(subset_tp), ]
# Rescaling Variables
subset_tp$st_trust <- scale(subset_tp$i_trust)
subset_tp$st_polinterest <- scale(subset_tp$i_polinterest)
response_vars <- c("tp_pol", "tp_crisis", "tp_economy", "tp_migration")
refitted_models <- list()
coefficients_list <- list()
for (response_var in response_vars) {
formula <- as.formula(paste(response_var, "~ age_group + i_gender + i_east + i_education + st_polinterest + st_trust"))
model <- lm(formula, data=subset_tp)
# Breusch-Pagan test
bp_test <- lmtest::bptest(model)
print(paste("Breusch-Pagan test for", response_var))
print(bp_test)
# Identify influential cases
cooksd <- cooks.distance(model)
influential_cases <- as.numeric(names(cooksd)[(cooksd > 4*mean(cooksd, na.rm=TRUE))])
# Subset the data excluding influential cases
subset_no_influential <- subset_tp[-influential_cases, ]
# Refit the model without influential cases
if (bp_test$p.value < 0.05) {
refit_model <- lm_robust(formula, data=subset_no_influential)
print(paste("Summary of refitted robust model for", response_var))
} else {
refit_model <- lm(formula, data=subset_no_influential)
print(paste("Summary of refitted standard model for", response_var))
}
refitted_models[[response_var]] <- refit_model
print(summary(refit_model))
coefficients <- tidy(refit_model) %>%
filter(term %in% c("st_trust", "st_polinterest", "i_gender2", "i_education2", "i_education3", "age_group2", "age_group3", "i_east2"))
coefficients$response_var <- response_var # Add response variable name to the coefficients data frame
coefficients_list[[response_var]] <- coefficients
}
## [1] "Breusch-Pagan test for tp_pol"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 88.09, df = 8, p-value = 1.135e-15
##
## [1] "Summary of refitted robust model for tp_pol"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 4.44442 0.07679 57.8743 0.000e+00 4.29386 4.59498 3965
## age_group2 0.17879 0.05648 3.1658 1.558e-03 0.06807 0.28952 3965
## age_group3 0.12962 0.05739 2.2584 2.397e-02 0.01709 0.24214 3965
## i_gender2 -0.07247 0.04381 -1.6542 9.816e-02 -0.15835 0.01342 3965
## i_east2 0.02619 0.04937 0.5305 5.958e-01 -0.07061 0.12299 3965
## i_education2 -0.02131 0.06972 -0.3057 7.599e-01 -0.15801 0.11538 3965
## i_education3 0.04935 0.06634 0.7440 4.569e-01 -0.08071 0.17942 3965
## st_polinterest 0.84934 0.02372 35.8003 1.811e-243 0.80283 0.89585 3965
## st_trust 0.14949 0.02336 6.3987 1.749e-10 0.10369 0.19529 3965
##
## Multiple R-squared: 0.3213 , Adjusted R-squared: 0.3199
## F-statistic: 218.3 on 8 and 3965 DF, p-value: < 2.2e-16
## [1] "Breusch-Pagan test for tp_crisis"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 127.29, df = 8, p-value < 2.2e-16
##
## [1] "Summary of refitted robust model for tp_crisis"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 5.24609 0.07592 69.1017 0.000e+00 5.097251 5.3949367 3961
## age_group2 0.10014 0.05548 1.8051 7.113e-02 -0.008623 0.2089035 3961
## age_group3 0.13466 0.05834 2.3080 2.105e-02 0.020271 0.2490428 3961
## i_gender2 0.08065 0.04307 1.8724 6.122e-02 -0.003795 0.1650936 3961
## i_east2 -0.09515 0.04885 -1.9476 5.154e-02 -0.190929 0.0006347 3961
## i_education2 -0.07671 0.06883 -1.1144 2.652e-01 -0.211648 0.0582368 3961
## i_education3 0.02767 0.06553 0.4223 6.729e-01 -0.100812 0.1561577 3961
## st_polinterest 0.48997 0.02528 19.3802 5.160e-80 0.440404 0.5395378 3961
## st_trust 0.07972 0.02270 3.5123 4.491e-04 0.035223 0.1242265 3961
##
## Multiple R-squared: 0.1403 , Adjusted R-squared: 0.1386
## F-statistic: 64.92 on 8 and 3961 DF, p-value: < 2.2e-16
## [1] "Breusch-Pagan test for tp_economy"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 113.39, df = 8, p-value < 2.2e-16
##
## [1] "Summary of refitted robust model for tp_economy"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 4.981410 0.07267 68.54446 0.000e+00 4.83893 5.12389 3967
## age_group2 0.123137 0.05156 2.38801 1.699e-02 0.02204 0.22423 3967
## age_group3 0.128944 0.05374 2.39919 1.648e-02 0.02357 0.23431 3967
## i_gender2 -0.177441 0.04021 -4.41267 1.048e-05 -0.25628 -0.09860 3967
## i_east2 0.001238 0.04478 0.02765 9.779e-01 -0.08655 0.08903 3967
## i_education2 0.090008 0.06521 1.38031 1.676e-01 -0.03784 0.21785 3967
## i_education3 0.157741 0.06332 2.49131 1.277e-02 0.03360 0.28188 3967
## st_polinterest 0.492938 0.02359 20.89560 4.522e-92 0.44669 0.53919 3967
## st_trust 0.128996 0.02142 6.02176 1.882e-09 0.08700 0.17099 3967
##
## Multiple R-squared: 0.1855 , Adjusted R-squared: 0.1839
## F-statistic: 93.3 on 8 and 3967 DF, p-value: < 2.2e-16
## [1] "Breusch-Pagan test for tp_migration"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 190.06, df = 8, p-value < 2.2e-16
##
## [1] "Summary of refitted robust model for tp_migration"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 4.52752 0.08708 51.9909 0.000e+00 4.35679 4.69825 3958
## age_group2 0.29561 0.06146 4.8097 1.568e-06 0.17511 0.41611 3958
## age_group3 0.39323 0.06366 6.1775 7.171e-10 0.26843 0.51803 3958
## i_gender2 0.17588 0.04843 3.6316 2.852e-04 0.08093 0.27084 3958
## i_east2 -0.15703 0.05659 -2.7749 5.547e-03 -0.26798 -0.04608 3958
## i_education2 -0.04824 0.07963 -0.6058 5.447e-01 -0.20436 0.10788 3958
## i_education3 0.07492 0.07545 0.9930 3.208e-01 -0.07301 0.22285 3958
## st_polinterest 0.47460 0.02849 16.6580 2.857e-60 0.41875 0.53046 3958
## st_trust 0.16985 0.02595 6.5463 6.653e-11 0.11898 0.22072 3958
##
## Multiple R-squared: 0.1353 , Adjusted R-squared: 0.1335
## F-statistic: 63.92 on 8 and 3958 DF, p-value: < 2.2e-16
# Combine all coefficients into a single data frame
all_coefficients <- bind_rows(coefficients_list)
significant_coefficients <- all_coefficients %>%
filter(p.value <= 0.05)
tp_trust <- filter(significant_coefficients, term == "st_trust")
tp_polint <- filter(significant_coefficients, term == "st_polinterest")
tp_gender <- filter(significant_coefficients, term == "i_gender2")
tp_edu2 <- filter(significant_coefficients, term == "i_education2")
tp_edu3 <- filter(significant_coefficients, term == "i_education3")
tp_age2 <- filter(significant_coefficients, term == "age_group2")
tp_age3 <- filter(significant_coefficients, term == "age_group3")
tp_east <- filter(significant_coefficients, term == "i_east2")
pol <- bind_rows(tp_trust, tp_polint, tp_gender, tp_edu2, tp_edu3, tp_age2, tp_age3, tp_east)
Regression Table
r_pol <- refitted_models$tp_pol
r_migration <- refitted_models$tp_migration
r_economy <- refitted_models$tp_economy
r_crisis <- refitted_models$tp_crisis
tab_model(r_pol, r_migration, r_economy, r_crisis,
show.est = TRUE, show.se = TRUE, show.ci = FALSE, show.aic = TRUE, collapse.se = TRUE, linebreak = TRUE, p.style = "numeric", show.reflvl = TRUE,
pred.labels = c("Intercept", "Age Group 49-63", "Age Group >63", "Gender: Female", "Germany: East", "Education: Intermediate", "Education: High",
"Political Interest", "Social Trust" ),
dv.labels = c("Politics", "Migration", "Economy", "Crises"),
title = "Regression Models: Differences in Topic Interests",
CSS = list(css.thead = 'border-top: 1px solid;', css.summary= 'border-bottom: 1px solid;', css.table = 'width: 100%;'))
| Politics | Migration | Economy | Crises | |||||
|---|---|---|---|---|---|---|---|---|
| Predictors | Estimates | p | Estimates | p | Estimates | p | Estimates | p |
| Intercept |
4.44 (0.08) |
<0.001 |
4.53 (0.09) |
<0.001 |
4.98 (0.07) |
<0.001 |
5.25 (0.08) |
<0.001 |
| Age Group 49-63 |
0.18 (0.06) |
0.002 |
0.30 (0.06) |
<0.001 |
0.12 (0.05) |
0.017 |
0.10 (0.06) |
0.071 |
| Age Group >63 |
0.13 (0.06) |
0.024 |
0.39 (0.06) |
<0.001 |
0.13 (0.05) |
0.016 |
0.13 (0.06) |
0.021 |
| Gender: Female |
-0.07 (0.04) |
0.098 |
0.18 (0.05) |
<0.001 |
-0.18 (0.04) |
<0.001 |
0.08 (0.04) |
0.061 |
| Germany: East |
0.03 (0.05) |
0.596 |
-0.16 (0.06) |
0.006 |
0.00 (0.04) |
0.978 |
-0.10 (0.05) |
0.052 |
| Education: Intermediate |
-0.02 (0.07) |
0.760 |
-0.05 (0.08) |
0.545 |
0.09 (0.07) |
0.168 |
-0.08 (0.07) |
0.265 |
| Education: High |
0.05 (0.07) |
0.457 |
0.07 (0.08) |
0.321 |
0.16 (0.06) |
0.013 |
0.03 (0.07) |
0.673 |
| Political Interest |
0.85 (0.02) |
<0.001 |
0.47 (0.03) |
<0.001 |
0.49 (0.02) |
<0.001 |
0.49 (0.03) |
<0.001 |
| Social Trust |
0.15 (0.02) |
<0.001 |
0.17 (0.03) |
<0.001 |
0.13 (0.02) |
<0.001 |
0.08 (0.02) |
<0.001 |
| Observations | 3974 | 3967 | 3976 | 3970 | ||||
| R2 / R2 adjusted | 0.321 / 0.320 | 0.135 / 0.134 | 0.186 / 0.184 | 0.140 / 0.139 | ||||
| AIC | 16085.764 | 14285.659 | 14220.023 | 14363.764 | ||||
Regression Graph
pol$group <- ifelse(pol$outcome %in% c("tp_crisis", "tp_migration"), "Panel 1: Current Crises, Flight and Migration", "Panel 2: Economy and Society, Political Attitudes and Participation")
gpol <- ggplot(pol, aes(x = term, y = estimate, colour = outcome, shape = outcome)) +
labs(x = NULL, y = "Estimated Effects\nwith 95% Confidence Intervals", title = NULL) +
geom_pointrange(aes(ymin = conf.low, ymax = conf.high)) +
geom_point() +
geom_hline(yintercept = 0.0) +
coord_flip() + theme_light() + custom_theme +
scale_color_manual(limits = c("tp_crisis", "tp_economy", "tp_migration", "tp_pol"),
labels = c("Current Crises", "Economy and Society", "Flight and Migration", "Political Attitudes and Participation"),
values = c("#008080", "#7EAB96", "#CA562C", "#E19464"), drop = TRUE) +
scale_shape_manual(limits = c("tp_crisis", "tp_economy", "tp_migration", "tp_pol"),
labels = c("Current Crises", "Economy and Society", "Flight and Migration", "Political Attitudes and Participation"),
values = c(19, 21, 19, 21), drop = FALSE) +
guides(colour = guide_legend(nrow = 2)) +
scale_y_continuous(limits = c(-1.2, +1.0)) +
scale_x_discrete(limits = c("i_gender2", "i_gender1", "i_east2", "i_east1", "age_group3", "age_group2", "age_group1", "i_education3", "i_education1", "st_trust", "st_polinterest"),
labels = c("Female Gender", "Ref. Male Gender", "East Germany", "Ref. West Germany", "Age Group >63", "Age Group 49-63", "Ref. Age Group <49", "High Education", "Ref. Low Education",
"Std. Social Trust", "Std. Political Interest")) +
facet_wrap(~ group, nrow = 2) + theme(strip.text = element_blank(), plot.margin = margin(t = 5, r = 30, b = 5, l = 5))
gpol
response_vars <- c("tp_nature", "tp_well", "tp_personal", "tp_media", "tp_work", "tp_leisure")
refitted_models <- list()
coefficients_list <- list()
# Run diagnostics for each model
for (response_var in response_vars) {
formula <- as.formula(paste(response_var, "~ age_group + i_gender + i_east + i_education + st_polinterest + st_trust"))
model <- lm(formula, data=subset_tp)
# Breusch-Pagan test
bp_test <- lmtest::bptest(model)
print(paste("Breusch-Pagan test for", response_var))
print(bp_test)
# Identify influential cases
cooksd <- cooks.distance(model)
influential_cases <- as.numeric(names(cooksd)[(cooksd > 4*mean(cooksd, na.rm=TRUE))])
# Subset the data excluding influential cases
subset_no_influential <- subset_tp[-influential_cases, ]
# Refit the model without influential cases
if (bp_test$p.value < 0.05) {
refit_model <- lm_robust(formula, data=subset_no_influential)
print(paste("Summary of refitted robust model for", response_var))
} else {
refit_model <- lm(formula, data=subset_no_influential)
print(paste("Summary of refitted standard model for", response_var))
}
refitted_models[[response_var]] <- refit_model
print(summary(refit_model))
coefficients <- tidy(refit_model) %>%
filter(term %in% c("st_trust", "st_polinterest", "i_gender2", "i_education2", "i_education3", "age_group2", "age_group3", "i_east2"))
coefficients$response_var <- response_var # Add response variable name to the coefficients data frame
coefficients_list[[response_var]] <- coefficients
}
## [1] "Breusch-Pagan test for tp_nature"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 85.465, df = 8, p-value = 3.858e-15
##
## [1] "Summary of refitted robust model for tp_nature"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 5.107062 0.07737 66.00740 0.000e+00 4.95537 5.2588 3971
## age_group2 0.137524 0.05606 2.45323 1.420e-02 0.02762 0.2474 3971
## age_group3 0.203284 0.05865 3.46634 5.332e-04 0.08831 0.3183 3971
## i_gender2 0.298262 0.04259 7.00234 2.943e-12 0.21475 0.3818 3971
## i_east2 0.115963 0.04777 2.42741 1.525e-02 0.02230 0.2096 3971
## i_education2 0.006641 0.06759 0.09825 9.217e-01 -0.12588 0.1392 3971
## i_education3 0.058918 0.06547 0.89996 3.682e-01 -0.06944 0.1873 3971
## st_polinterest 0.186083 0.02541 7.32275 2.926e-13 0.13626 0.2359 3971
## st_trust 0.162455 0.02304 7.05183 2.073e-12 0.11729 0.2076 3971
##
## Multiple R-squared: 0.05314 , Adjusted R-squared: 0.05123
## F-statistic: 24.05 on 8 and 3971 DF, p-value: < 2.2e-16
## [1] "Breusch-Pagan test for tp_well"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 49.052, df = 8, p-value = 6.213e-08
##
## [1] "Summary of refitted robust model for tp_well"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 5.055885 0.08501 59.4723 0.000e+00 4.88921 5.2225576 3968
## age_group2 -0.124335 0.06372 -1.9511 5.111e-02 -0.24927 0.0006007 3968
## age_group3 -0.166718 0.06503 -2.5637 1.039e-02 -0.29421 -0.0392221 3968
## i_gender2 0.351188 0.04808 7.3043 3.352e-13 0.25692 0.4454514 3968
## i_east2 -0.008291 0.05474 -0.1515 8.796e-01 -0.11561 0.0990306 3968
## i_education2 -0.185805 0.07316 -2.5395 1.114e-02 -0.32925 -0.0423603 3968
## i_education3 -0.349317 0.07175 -4.8688 1.166e-06 -0.48998 -0.2086557 3968
## st_polinterest -0.018169 0.02711 -0.6701 5.028e-01 -0.07133 0.0349900 3968
## st_trust 0.160491 0.02577 6.2273 5.238e-10 0.10996 0.2110181 3968
##
## Multiple R-squared: 0.03034 , Adjusted R-squared: 0.02839
## F-statistic: 15.08 on 8 and 3968 DF, p-value: < 2.2e-16
## [1] "Breusch-Pagan test for tp_personal"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 62.234, df = 8, p-value = 1.696e-10
##
## [1] "Summary of refitted robust model for tp_personal"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 5.12636 0.07925 64.6823 0.000e+00 4.97098 5.28174 3969
## age_group2 -0.07078 0.05608 -1.2622 2.070e-01 -0.18073 0.03917 3969
## age_group3 -0.20036 0.05806 -3.4508 5.649e-04 -0.31420 -0.08653 3969
## i_gender2 0.46012 0.04280 10.7516 1.349e-26 0.37622 0.54402 3969
## i_east2 -0.01575 0.04898 -0.3215 7.479e-01 -0.11178 0.08029 3969
## i_education2 0.04918 0.06892 0.7137 4.755e-01 -0.08594 0.18431 3969
## i_education3 0.01136 0.06841 0.1661 8.681e-01 -0.12276 0.14549 3969
## st_polinterest 0.10246 0.02474 4.1415 3.523e-05 0.05395 0.15096 3969
## st_trust 0.18254 0.02310 7.9012 3.548e-15 0.13724 0.22783 3969
##
## Multiple R-squared: 0.05315 , Adjusted R-squared: 0.05124
## F-statistic: 25.29 on 8 and 3969 DF, p-value: < 2.2e-16
## [1] "Breusch-Pagan test for tp_media"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 24.236, df = 8, p-value = 0.002092
##
## [1] "Summary of refitted robust model for tp_media"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 4.48374 0.08553 52.4222 0.000e+00 4.31605 4.65143 3961
## age_group2 -0.10272 0.06234 -1.6476 9.951e-02 -0.22495 0.01951 3961
## age_group3 -0.24314 0.06537 -3.7192 2.026e-04 -0.37131 -0.11497 3961
## i_gender2 0.32833 0.04851 6.7686 1.492e-11 0.23323 0.42343 3961
## i_east2 -0.03094 0.05473 -0.5654 5.719e-01 -0.13824 0.07636 3961
## i_education2 -0.12268 0.07513 -1.6330 1.025e-01 -0.26997 0.02461 3961
## i_education3 -0.05795 0.07347 -0.7888 4.303e-01 -0.20198 0.08609 3961
## st_polinterest 0.09765 0.02775 3.5193 4.376e-04 0.04325 0.15206 3961
## st_trust 0.14322 0.02618 5.4707 4.761e-08 0.09189 0.19455 3961
##
## Multiple R-squared: 0.02745 , Adjusted R-squared: 0.02548
## F-statistic: 12.91 on 8 and 3961 DF, p-value: < 2.2e-16
## [1] "Breusch-Pagan test for tp_work"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 214, df = 8, p-value < 2.2e-16
##
## [1] "Summary of refitted robust model for tp_work"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 5.20299 0.08814 59.034 0.000e+00 5.03020 5.37579 3963
## age_group2 -0.24007 0.05659 -4.242 2.263e-05 -0.35102 -0.12912 3963
## age_group3 -1.02896 0.06648 -15.478 1.626e-52 -1.15930 -0.89863 3963
## i_gender2 0.12150 0.05072 2.395 1.665e-02 0.02206 0.22095 3963
## i_east2 0.07708 0.05801 1.329 1.840e-01 -0.03666 0.19081 3963
## i_education2 -0.14693 0.08392 -1.751 8.004e-02 -0.31145 0.01759 3963
## i_education3 -0.09777 0.08136 -1.202 2.295e-01 -0.25728 0.06174 3963
## st_polinterest 0.07870 0.02799 2.811 4.956e-03 0.02382 0.13358 3963
## st_trust 0.20576 0.02684 7.665 2.238e-14 0.15313 0.25838 3963
##
## Multiple R-squared: 0.08891 , Adjusted R-squared: 0.08707
## F-statistic: 44.12 on 8 and 3963 DF, p-value: < 2.2e-16
## [1] "Breusch-Pagan test for tp_leisure"
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 49.147, df = 8, p-value = 5.957e-08
##
## [1] "Summary of refitted robust model for tp_leisure"
##
## Call:
## lm_robust(formula = formula, data = subset_no_influential)
##
## Standard error type: HC2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|) CI Lower CI Upper DF
## (Intercept) 5.14138 0.07578 67.847 0.000e+00 4.99281 5.28995 3980
## age_group2 -0.07549 0.05617 -1.344 1.790e-01 -0.18561 0.03463 3980
## age_group3 -0.22244 0.05953 -3.736 1.892e-04 -0.33915 -0.10572 3980
## i_gender2 0.10546 0.04313 2.445 1.451e-02 0.02091 0.19002 3980
## i_east2 0.15904 0.04873 3.264 1.109e-03 0.06350 0.25458 3980
## i_education2 -0.06940 0.06634 -1.046 2.956e-01 -0.19946 0.06066 3980
## i_education3 -0.25378 0.06483 -3.915 9.201e-05 -0.38087 -0.12668 3980
## st_polinterest -0.09462 0.02506 -3.776 1.618e-04 -0.14375 -0.04549 3980
## st_trust 0.11272 0.02323 4.853 1.262e-06 0.06718 0.15825 3980
##
## Multiple R-squared: 0.02611 , Adjusted R-squared: 0.02415
## F-statistic: 12.89 on 8 and 3980 DF, p-value: < 2.2e-16
# Combine all coefficients into a single data frame
all_coefficients <- bind_rows(coefficients_list)
significant_coefficients <- all_coefficients %>%
filter(p.value <= 0.05)
tp_trust <- filter(significant_coefficients, term == "st_trust")
tp_polint <- filter(significant_coefficients, term == "st_polinterest")
tp_gender <- filter(significant_coefficients, term == "i_gender2")
tp_edu2 <- filter(significant_coefficients, term == "i_education2")
tp_edu3 <- filter(significant_coefficients, term == "i_education3")
tp_age2 <- filter(significant_coefficients, term == "age_group2")
tp_age3 <- filter(significant_coefficients, term == "age_group3")
tp_east <- filter(significant_coefficients, term == "i_east2")
priv <- bind_rows(tp_trust, tp_polint, tp_gender, tp_edu2, tp_edu3, tp_age2, tp_age3, tp_east)
Regression Table
r_nature <- refitted_models$tp_nature
r_well <- refitted_models$tp_well
r_personal <- refitted_models$tp_personal
r_work <- refitted_models$tp_work
r_leisure <- refitted_models$tp_leisure
r_media <- refitted_models$tp_media
tab_model(r_nature, r_well, r_personal,
show.est = TRUE, show.se = TRUE, show.ci = FALSE, show.aic = TRUE, collapse.se = TRUE, linebreak = TRUE, p.style = "numeric", show.reflvl = TRUE,
pred.labels = c("Intercept", "Age Group 49-63", "Age Group >63", "Gender: Female", "Germany: East", "Education: Intermediate", "Education: High", "Political Interest", "Social Trust" ),
dv.labels = c("Nature", "Well-Being", "Personality"),
title = "Regression Models: Differences in Topic Interests",
CSS = list(css.thead = 'border-top: 1px solid;', css.summary= 'border-bottom: 1px solid;', css.table = 'width: 100%;'))
| Nature | Well-Being | Personality | ||||
|---|---|---|---|---|---|---|
| Predictors | Estimates | p | Estimates | p | Estimates | p |
| Intercept |
5.11 (0.08) |
<0.001 |
5.06 (0.09) |
<0.001 |
5.13 (0.08) |
<0.001 |
| Age Group 49-63 |
0.14 (0.06) |
0.014 |
-0.12 (0.06) |
0.051 |
-0.07 (0.06) |
0.207 |
| Age Group >63 |
0.20 (0.06) |
0.001 |
-0.17 (0.07) |
0.010 |
-0.20 (0.06) |
0.001 |
| Gender: Female |
0.30 (0.04) |
<0.001 |
0.35 (0.05) |
<0.001 |
0.46 (0.04) |
<0.001 |
| Germany: East |
0.12 (0.05) |
0.015 |
-0.01 (0.05) |
0.880 |
-0.02 (0.05) |
0.748 |
| Education: Intermediate |
0.01 (0.07) |
0.922 |
-0.19 (0.07) |
0.011 |
0.05 (0.07) |
0.475 |
| Education: High |
0.06 (0.07) |
0.368 |
-0.35 (0.07) |
<0.001 |
0.01 (0.07) |
0.868 |
| Political Interest |
0.19 (0.03) |
<0.001 |
-0.02 (0.03) |
0.503 |
0.10 (0.02) |
<0.001 |
| Social Trust |
0.16 (0.02) |
<0.001 |
0.16 (0.03) |
<0.001 |
0.18 (0.02) |
<0.001 |
| Observations | 3980 | 3977 | 3978 | |||
| R2 / R2 adjusted | 0.053 / 0.051 | 0.030 / 0.028 | 0.053 / 0.051 | |||
| AIC | 13741.040 | 14621.263 | 13857.723 | |||
tab_model(r_work, r_leisure, r_media,
show.est = TRUE, show.se = TRUE, show.ci = FALSE, show.aic = TRUE, collapse.se = TRUE, linebreak = TRUE, p.style = "numeric", show.reflvl = TRUE,
pred.labels = c("Intercept", "Age Group 49-63", "Age Group >63", "Gender: Female", "Germany: East", "Education: Intermediate", "Education: High", "Political Interest", "Social Trust" ),
dv.labels = c("Work", "Leisure", "Media"),
title = "Regression Models: Differences in Topic Interests",
CSS = list(css.thead = 'border-top: 1px solid;', css.summary= 'border-bottom: 1px solid;', css.table = 'width: 100%;'))
| Work | Leisure | Media | ||||
|---|---|---|---|---|---|---|
| Predictors | Estimates | p | Estimates | p | Estimates | p |
| Intercept |
5.20 (0.09) |
<0.001 |
5.14 (0.08) |
<0.001 |
4.48 (0.09) |
<0.001 |
| Age Group 49-63 |
-0.24 (0.06) |
<0.001 |
-0.08 (0.06) |
0.179 |
-0.10 (0.06) |
0.100 |
| Age Group >63 |
-1.03 (0.07) |
<0.001 |
-0.22 (0.06) |
<0.001 |
-0.24 (0.07) |
<0.001 |
| Gender: Female |
0.12 (0.05) |
0.017 |
0.11 (0.04) |
0.015 |
0.33 (0.05) |
<0.001 |
| Germany: East |
0.08 (0.06) |
0.184 |
0.16 (0.05) |
0.001 |
-0.03 (0.05) |
0.572 |
| Education: Intermediate |
-0.15 (0.08) |
0.080 |
-0.07 (0.07) |
0.296 |
-0.12 (0.08) |
0.103 |
| Education: High |
-0.10 (0.08) |
0.230 |
-0.25 (0.06) |
<0.001 |
-0.06 (0.07) |
0.430 |
| Political Interest |
0.08 (0.03) |
0.005 |
-0.09 (0.03) |
<0.001 |
0.10 (0.03) |
<0.001 |
| Social Trust |
0.21 (0.03) |
<0.001 |
0.11 (0.02) |
<0.001 |
0.14 (0.03) |
<0.001 |
| Observations | 3972 | 3989 | 3970 | |||
| R2 / R2 adjusted | 0.089 / 0.087 | 0.026 / 0.024 | 0.027 / 0.025 | |||
| AIC | 15533.015 | 13504.056 | 14633.389 | |||
Regression Graph
priv$group <- ifelse(priv$outcome %in% c("tp_leisure", "tp_nature", "tp_well"), "Panel 1: Leisure, Nature, Well-being", "Panel 2: Media, Personality, Work")
gpriv <- ggplot(priv, aes(x = term, y = estimate, colour = outcome, shape = outcome)) +
labs(x = NULL, y = "Estimated Effects\nwith 95% Confidence Intervals", title = NULL) +
geom_point() + geom_pointrange(aes(ymin=conf.low, ymax=conf.high)) +
geom_hline(yintercept = 0.) +
theme_light() + coord_flip() + custom_theme +
scale_color_manual(limits = c("tp_leisure", "tp_media", "tp_nature", "tp_personal", "tp_well", "tp_work"),
labels = c("Leisure and Rest", "Media and Social Networks", "Nature and Environment", "Personality and Values", "Satisfaction and Well-Being", "Work and Occupation"),
values = c("#008080","#7EAB96", "#CA562C", "#E19464", "#F6EDBD", "#F6EDBD"), drop = TRUE) +
scale_shape_manual(limits = c("tp_leisure", "tp_media", "tp_nature", "tp_personal", "tp_well", "tp_work"),
labels = c("Leisure and Rest", "Media and Social Networks", "Nature and Environment", "Personality and Values", "Satisfaction and Well-Being", "Work and Occupation"),
values = c(19, 21, 19, 21, 19, 21), drop = FALSE) +
guides(colour = guide_legend(nrow = 2)) +
scale_y_continuous(limits = c(-1.2, +1.0)) +
scale_x_discrete(limits = c("i_gender2", "i_gender1","i_east2", "i_east1", "age_group3", "age_group2", "age_group1",
"i_education3", "i_education2", "i_education1","st_trust", "st_polinterest"),
labels = c("Female Gender", "Ref. Male Gender", "East Germany", "Ref. West Germany", "Age Group >63", "Age Group 49-63", "Ref. Age Group <49", "High Education", "Intermediate Education", "Ref. Low Education","Std. Social Trust", "Std. Political Interest")) +
facet_wrap(~ group, nrow = 2) + theme(strip.text = element_blank(), plot.margin = margin(t = 5, r = 30, b = 5, l = 5))
gpriv
session_info()
## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## setting value
## version R version 4.4.0 (2024-04-24 ucrt)
## os Windows 11 x64 (build 26100)
## system x86_64, mingw32
## ui RStudio
## language (EN)
## collate German_Germany.utf8
## ctype German_Germany.utf8
## tz Europe/Berlin
## date 2026-01-23
## rstudio 2025.09.2+418 Cucumberleaf Sunflower (desktop)
## pandoc 3.6.3 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown)
## quarto ERROR: Unknown command "TMPDIR=C:/Users/barthosa/AppData/Local/Temp/Rtmp0EISw1/file4ea033b53044". Did you mean command "install"? @ C:\\PROGRA~1\\RStudio\\RESOUR~1\\app\\bin\\quarto\\bin\\quarto.exe
##
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## package * version date (UTC) lib source
## abind 1.4-8 2024-09-12 [1] CRAN (R 4.4.1)
## backports 1.5.0 2024-05-23 [1] CRAN (R 4.4.0)
## base64enc 0.1-3 2015-07-28 [1] CRAN (R 4.4.0)
## bayestestR 0.16.1 2025-07-01 [1] CRAN (R 4.4.3)
## boot 1.3-31 2024-08-28 [1] CRAN (R 4.4.3)
## broom * 1.0.8 2025-03-28 [1] CRAN (R 4.4.3)
## bslib 0.9.0 2025-01-30 [1] CRAN (R 4.4.3)
## cachem 1.1.0 2024-05-16 [1] CRAN (R 4.4.0)
## car 3.1-3 2024-09-27 [1] CRAN (R 4.4.3)
## carData 3.0-5 2022-01-06 [1] CRAN (R 4.4.0)
## checkmate 2.3.1 2023-12-04 [1] CRAN (R 4.4.0)
## cli 3.6.5 2025-04-23 [1] CRAN (R 4.4.3)
## cluster 2.1.6 2023-12-01 [1] CRAN (R 4.4.0)
## coda 0.19-4.1 2024-01-31 [1] CRAN (R 4.4.1)
## codetools 0.2-20 2024-03-31 [1] CRAN (R 4.4.0)
## colorspace 2.1-0 2023-01-23 [1] CRAN (R 4.4.0)
## data.table 1.15.4 2024-03-30 [1] CRAN (R 4.4.0)
## datawizard 1.1.0 2025-05-09 [1] CRAN (R 4.4.3)
## devtools * 2.4.6 2025-10-03 [1] CRAN (R 4.4.3)
## dichromat 2.0-0.1 2022-05-02 [1] CRAN (R 4.4.0)
## digest 0.6.35 2024-03-11 [1] CRAN (R 4.4.0)
## dplyr * 1.1.4 2023-11-17 [1] CRAN (R 4.4.0)
## effectsize 1.0.1 2025-05-27 [1] CRAN (R 4.4.3)
## ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.4.0)
## emmeans 1.11.1 2025-05-04 [1] CRAN (R 4.4.3)
## estimability 1.5.1 2024-05-12 [1] CRAN (R 4.4.0)
## estimatr * 1.0.4 2024-03-31 [1] CRAN (R 4.4.0)
## evaluate 1.0.4 2025-06-18 [1] CRAN (R 4.4.3)
## factoextra 1.0.7 2020-04-01 [1] CRAN (R 4.4.3)
## farver 2.1.2 2024-05-13 [1] CRAN (R 4.4.0)
## fastmap 1.2.0 2024-05-15 [1] CRAN (R 4.4.0)
## forcats 1.0.0 2023-01-29 [1] CRAN (R 4.4.0)
## foreign 0.8-86 2023-11-28 [1] CRAN (R 4.4.0)
## Formula 1.2-5 2023-02-24 [1] CRAN (R 4.4.0)
## fs 1.6.6 2025-04-12 [1] CRAN (R 4.4.3)
## gdata 3.0.1 2024-10-22 [1] CRAN (R 4.4.3)
## generics 0.1.4 2025-05-09 [1] CRAN (R 4.4.3)
## ggeffects * 2.3.0 2025-06-13 [1] CRAN (R 4.4.3)
## ggplot2 * 3.5.2 2025-04-09 [1] CRAN (R 4.4.3)
## ggpubr * 0.6.1 2025-06-27 [1] CRAN (R 4.4.3)
## ggrepel 0.9.6 2024-09-07 [1] CRAN (R 4.4.3)
## ggsignif 0.6.4 2022-10-13 [1] CRAN (R 4.4.0)
## glue 1.7.0 2024-01-09 [1] CRAN (R 4.4.0)
## gmodels * 2.19.1 2024-03-06 [1] CRAN (R 4.4.1)
## gridExtra 2.3 2017-09-09 [1] CRAN (R 4.4.0)
## gtable 0.3.6 2024-10-25 [1] CRAN (R 4.4.3)
## gtools * 3.9.5 2023-11-20 [1] CRAN (R 4.4.0)
## haven * 2.5.4 2023-11-30 [1] CRAN (R 4.4.0)
## Hmisc * 5.1-3 2024-05-28 [1] CRAN (R 4.4.0)
## hms 1.1.3 2023-03-21 [1] CRAN (R 4.4.0)
## htmlTable 2.4.3 2024-07-21 [1] CRAN (R 4.4.3)
## htmltools 0.5.8.1 2024-04-04 [1] CRAN (R 4.4.0)
## htmlwidgets 1.6.4 2023-12-06 [1] CRAN (R 4.4.0)
## httr 1.4.7 2023-08-15 [1] CRAN (R 4.4.0)
## insight 1.3.1 2025-06-30 [1] CRAN (R 4.4.3)
## jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.4.0)
## jsonlite 2.0.0 2025-03-27 [1] CRAN (R 4.4.3)
## kableExtra * 1.4.0 2024-01-24 [1] CRAN (R 4.4.0)
## knitr * 1.50 2025-03-16 [1] CRAN (R 4.4.3)
## labeling 0.4.3 2023-08-29 [1] CRAN (R 4.4.0)
## lattice 0.22-6 2024-03-20 [1] CRAN (R 4.4.0)
## lifecycle 1.0.4 2023-11-07 [1] CRAN (R 4.4.0)
## lme4 * 1.1-35.3 2024-04-16 [1] CRAN (R 4.4.0)
## lmtest * 0.9-40 2022-03-21 [1] CRAN (R 4.4.0)
## magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.4.0)
## marginaleffects * 0.20.1 2024-05-08 [1] CRAN (R 4.4.0)
## MASS 7.3-60.2 2024-04-24 [1] local
## Matrix * 1.7-0 2024-03-22 [1] CRAN (R 4.4.0)
## memoise 2.0.1 2021-11-26 [1] CRAN (R 4.4.0)
## minqa 1.2.7 2024-05-20 [1] CRAN (R 4.4.0)
## mnormt 2.1.1 2022-09-26 [1] CRAN (R 4.4.0)
## multcomp 1.4-28 2025-01-29 [1] CRAN (R 4.4.3)
## mvtnorm 1.2-5 2024-05-21 [1] CRAN (R 4.4.1)
## nlme 3.1-164 2023-11-27 [1] CRAN (R 4.4.0)
## nloptr 2.0.3 2022-05-26 [1] CRAN (R 4.4.0)
## nnet 7.3-19 2023-05-03 [1] CRAN (R 4.4.0)
## parameters 0.27.0 2025-07-09 [1] CRAN (R 4.4.0)
## performance 0.14.0 2025-05-22 [1] CRAN (R 4.4.3)
## pillar 1.11.0 2025-07-04 [1] CRAN (R 4.4.3)
## pkgbuild 1.4.8 2025-05-26 [1] CRAN (R 4.4.3)
## pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.4.0)
## pkgload 1.4.1 2025-09-23 [1] CRAN (R 4.4.3)
## plyr * 1.8.9 2023-10-02 [1] CRAN (R 4.4.0)
## psych * 2.5.6 2025-06-23 [1] CRAN (R 4.4.3)
## purrr * 1.0.2 2023-08-10 [1] CRAN (R 4.4.0)
## qacDR * 0.1.0 2025-03-26 [1] Github (rkabacoff/qacDR@fd1d6a0)
## R6 2.6.1 2025-02-15 [1] CRAN (R 4.4.3)
## RColorBrewer 1.1-3 2022-04-03 [1] CRAN (R 4.4.0)
## Rcpp 1.0.12 2024-01-09 [1] CRAN (R 4.4.0)
## readr 2.1.5 2024-01-10 [1] CRAN (R 4.4.0)
## remotes 2.5.0 2024-03-17 [1] CRAN (R 4.4.0)
## rlang 1.1.4 2024-06-04 [1] CRAN (R 4.4.0)
## rmarkdown 2.29 2024-11-04 [1] CRAN (R 4.4.3)
## rpart 4.1.23 2023-12-05 [1] CRAN (R 4.4.0)
## rprojroot 2.1.1 2025-08-26 [1] CRAN (R 4.4.3)
## rstatix 0.7.2 2023-02-01 [1] CRAN (R 4.4.0)
## rstudioapi 0.17.1 2024-10-22 [1] CRAN (R 4.4.3)
## sandwich * 3.1-1 2024-09-15 [1] CRAN (R 4.4.3)
## sass 0.4.10 2025-04-11 [1] CRAN (R 4.4.3)
## scales 1.4.0 2025-04-24 [1] CRAN (R 4.4.3)
## sessioninfo 1.2.3 2025-02-05 [1] CRAN (R 4.4.3)
## sjlabelled * 1.2.0 2022-04-10 [1] CRAN (R 4.4.0)
## sjmisc 2.8.10 2024-05-13 [1] CRAN (R 4.4.0)
## sjPlot * 2.8.17 2024-11-29 [1] CRAN (R 4.4.3)
## sjstats 0.19.1 2025-06-13 [1] CRAN (R 4.4.3)
## stringi 1.8.4 2024-05-06 [1] CRAN (R 4.4.0)
## stringr 1.5.1 2023-11-14 [1] CRAN (R 4.4.0)
## survival 3.5-8 2024-02-14 [1] CRAN (R 4.4.0)
## svglite 2.1.3 2023-12-08 [1] CRAN (R 4.4.0)
## systemfonts 1.1.0 2024-05-15 [1] CRAN (R 4.4.0)
## texreg 1.39.4 2024-07-24 [1] CRAN (R 4.4.3)
## TH.data 1.1-3 2025-01-17 [1] CRAN (R 4.4.3)
## tibble 3.2.1 2023-03-20 [1] CRAN (R 4.4.0)
## tidyr * 1.3.1 2024-01-24 [1] CRAN (R 4.4.0)
## tidyselect 1.2.1 2024-03-11 [1] CRAN (R 4.4.0)
## tzdb 0.4.0 2023-05-12 [1] CRAN (R 4.4.0)
## usethis * 3.2.1 2025-09-06 [1] CRAN (R 4.4.3)
## vctrs 0.6.5 2023-12-01 [1] CRAN (R 4.4.0)
## viridisLite 0.4.2 2023-05-02 [1] CRAN (R 4.4.1)
## vtable * 1.4.8 2024-12-21 [1] CRAN (R 4.4.3)
## withr 3.0.2 2024-10-28 [1] CRAN (R 4.4.3)
## xfun 0.52 2025-04-02 [1] CRAN (R 4.4.3)
## xml2 1.3.6 2023-12-04 [1] CRAN (R 4.4.0)
## xtable 1.8-4 2019-04-21 [1] CRAN (R 4.4.0)
## yaml 2.3.8 2023-12-11 [1] CRAN (R 4.4.0)
## zoo * 1.8-12 2023-04-13 [1] CRAN (R 4.4.0)
##
## [1] C:/Program Files/R/R-4.4.0/library
## * ── Packages attached to the search path.
##
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────