Introduction

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:

  1. Place all R.Rmd files in a subfolder named scripts and the data set in a subfolder named data.
  2. Required R packages are listed and loaded in 01am_pop.Rmd. Please review this file to ensure that all necessary packages are installed before proceeding. Note that running 01am_pop.Rmd will automatically create all required subfolders for the workflow.
  3. For the file 02dp_pop.Rmd, include the path to required data set in the first code chunk.
  4. After making any necessary adjustments, you only need to run 05re_pop.Rmd. This file will source all other scripts and reproduce the analyses and results as described in the project.

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)

Data Preparation

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")))

Descriptive Results

Political Engagement

sumtable(subset, vars=c("i_polinterest"), add.median = TRUE, digits = 3, out = "kable") %>% 
  kableExtra::kable_styling(bootstrap_options = "basic")
Summary Statistics
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")
Summary Statistics
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")
Summary Statistics
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")
Summary Statistics
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")
Summary Statistics
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")
Summary Statistics
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")
Summary Statistics
Variable N Percent
Residence in Germany 9025
… 1 6712 74%
… 2 2313 26%

Research Question 4. Analyses

Measurement Properties

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")
Summary Statistics
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")
Difference of Topic Popularity
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")
Difference of Topic Popularity
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")
Difference of Topic Popularity
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)

Principal Component Analysis

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


Research Question 5. Analyses

# 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)

Regression Political Topics

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%;'))
Regression Models: Differences in Topic Interests
  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

Regression Private Topics

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%;'))
Regression Models: Differences in Topic Interests
  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%;'))
Regression Models: Differences in Topic Interests
  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

Documentation

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.
## 
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────