# List of packages
packages <- c("tidyverse", "modelsummary", "forcats", "RColorBrewer", 
              "fst", "viridis", "knitr", "rmarkdown", "ggridges", "viridis", "questionr", "flextable", "infer", "broom", "effects", "sandwich")

# Install packages if they aren't installed already
new_packages <- packages[!(packages %in% installed.packages()[,"Package"])]
if(length(new_packages)) install.packages(new_packages)

# Load the packages
lapply(packages, library, character.only = TRUE)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.3     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## Loading required package: viridisLite
## 
## 
## Attaching package: 'flextable'
## 
## 
## The following object is masked from 'package:purrr':
## 
##     compose
## 
## 
## Loading required package: carData
## 
## lattice theme set by effectsTheme()
## See ?effectsTheme for details.
## [[1]]
##  [1] "lubridate" "forcats"   "stringr"   "dplyr"     "purrr"     "readr"    
##  [7] "tidyr"     "tibble"    "ggplot2"   "tidyverse" "stats"     "graphics" 
## [13] "grDevices" "utils"     "datasets"  "methods"   "base"     
## 
## [[2]]
##  [1] "modelsummary" "lubridate"    "forcats"      "stringr"      "dplyr"       
##  [6] "purrr"        "readr"        "tidyr"        "tibble"       "ggplot2"     
## [11] "tidyverse"    "stats"        "graphics"     "grDevices"    "utils"       
## [16] "datasets"     "methods"      "base"        
## 
## [[3]]
##  [1] "modelsummary" "lubridate"    "forcats"      "stringr"      "dplyr"       
##  [6] "purrr"        "readr"        "tidyr"        "tibble"       "ggplot2"     
## [11] "tidyverse"    "stats"        "graphics"     "grDevices"    "utils"       
## [16] "datasets"     "methods"      "base"        
## 
## [[4]]
##  [1] "RColorBrewer" "modelsummary" "lubridate"    "forcats"      "stringr"     
##  [6] "dplyr"        "purrr"        "readr"        "tidyr"        "tibble"      
## [11] "ggplot2"      "tidyverse"    "stats"        "graphics"     "grDevices"   
## [16] "utils"        "datasets"     "methods"      "base"        
## 
## [[5]]
##  [1] "fst"          "RColorBrewer" "modelsummary" "lubridate"    "forcats"     
##  [6] "stringr"      "dplyr"        "purrr"        "readr"        "tidyr"       
## [11] "tibble"       "ggplot2"      "tidyverse"    "stats"        "graphics"    
## [16] "grDevices"    "utils"        "datasets"     "methods"      "base"        
## 
## [[6]]
##  [1] "viridis"      "viridisLite"  "fst"          "RColorBrewer" "modelsummary"
##  [6] "lubridate"    "forcats"      "stringr"      "dplyr"        "purrr"       
## [11] "readr"        "tidyr"        "tibble"       "ggplot2"      "tidyverse"   
## [16] "stats"        "graphics"     "grDevices"    "utils"        "datasets"    
## [21] "methods"      "base"        
## 
## [[7]]
##  [1] "knitr"        "viridis"      "viridisLite"  "fst"          "RColorBrewer"
##  [6] "modelsummary" "lubridate"    "forcats"      "stringr"      "dplyr"       
## [11] "purrr"        "readr"        "tidyr"        "tibble"       "ggplot2"     
## [16] "tidyverse"    "stats"        "graphics"     "grDevices"    "utils"       
## [21] "datasets"     "methods"      "base"        
## 
## [[8]]
##  [1] "rmarkdown"    "knitr"        "viridis"      "viridisLite"  "fst"         
##  [6] "RColorBrewer" "modelsummary" "lubridate"    "forcats"      "stringr"     
## [11] "dplyr"        "purrr"        "readr"        "tidyr"        "tibble"      
## [16] "ggplot2"      "tidyverse"    "stats"        "graphics"     "grDevices"   
## [21] "utils"        "datasets"     "methods"      "base"        
## 
## [[9]]
##  [1] "ggridges"     "rmarkdown"    "knitr"        "viridis"      "viridisLite" 
##  [6] "fst"          "RColorBrewer" "modelsummary" "lubridate"    "forcats"     
## [11] "stringr"      "dplyr"        "purrr"        "readr"        "tidyr"       
## [16] "tibble"       "ggplot2"      "tidyverse"    "stats"        "graphics"    
## [21] "grDevices"    "utils"        "datasets"     "methods"      "base"        
## 
## [[10]]
##  [1] "ggridges"     "rmarkdown"    "knitr"        "viridis"      "viridisLite" 
##  [6] "fst"          "RColorBrewer" "modelsummary" "lubridate"    "forcats"     
## [11] "stringr"      "dplyr"        "purrr"        "readr"        "tidyr"       
## [16] "tibble"       "ggplot2"      "tidyverse"    "stats"        "graphics"    
## [21] "grDevices"    "utils"        "datasets"     "methods"      "base"        
## 
## [[11]]
##  [1] "questionr"    "ggridges"     "rmarkdown"    "knitr"        "viridis"     
##  [6] "viridisLite"  "fst"          "RColorBrewer" "modelsummary" "lubridate"   
## [11] "forcats"      "stringr"      "dplyr"        "purrr"        "readr"       
## [16] "tidyr"        "tibble"       "ggplot2"      "tidyverse"    "stats"       
## [21] "graphics"     "grDevices"    "utils"        "datasets"     "methods"     
## [26] "base"        
## 
## [[12]]
##  [1] "flextable"    "questionr"    "ggridges"     "rmarkdown"    "knitr"       
##  [6] "viridis"      "viridisLite"  "fst"          "RColorBrewer" "modelsummary"
## [11] "lubridate"    "forcats"      "stringr"      "dplyr"        "purrr"       
## [16] "readr"        "tidyr"        "tibble"       "ggplot2"      "tidyverse"   
## [21] "stats"        "graphics"     "grDevices"    "utils"        "datasets"    
## [26] "methods"      "base"        
## 
## [[13]]
##  [1] "infer"        "flextable"    "questionr"    "ggridges"     "rmarkdown"   
##  [6] "knitr"        "viridis"      "viridisLite"  "fst"          "RColorBrewer"
## [11] "modelsummary" "lubridate"    "forcats"      "stringr"      "dplyr"       
## [16] "purrr"        "readr"        "tidyr"        "tibble"       "ggplot2"     
## [21] "tidyverse"    "stats"        "graphics"     "grDevices"    "utils"       
## [26] "datasets"     "methods"      "base"        
## 
## [[14]]
##  [1] "broom"        "infer"        "flextable"    "questionr"    "ggridges"    
##  [6] "rmarkdown"    "knitr"        "viridis"      "viridisLite"  "fst"         
## [11] "RColorBrewer" "modelsummary" "lubridate"    "forcats"      "stringr"     
## [16] "dplyr"        "purrr"        "readr"        "tidyr"        "tibble"      
## [21] "ggplot2"      "tidyverse"    "stats"        "graphics"     "grDevices"   
## [26] "utils"        "datasets"     "methods"      "base"        
## 
## [[15]]
##  [1] "effects"      "carData"      "broom"        "infer"        "flextable"   
##  [6] "questionr"    "ggridges"     "rmarkdown"    "knitr"        "viridis"     
## [11] "viridisLite"  "fst"          "RColorBrewer" "modelsummary" "lubridate"   
## [16] "forcats"      "stringr"      "dplyr"        "purrr"        "readr"       
## [21] "tidyr"        "tibble"       "ggplot2"      "tidyverse"    "stats"       
## [26] "graphics"     "grDevices"    "utils"        "datasets"     "methods"     
## [31] "base"        
## 
## [[16]]
##  [1] "sandwich"     "effects"      "carData"      "broom"        "infer"       
##  [6] "flextable"    "questionr"    "ggridges"     "rmarkdown"    "knitr"       
## [11] "viridis"      "viridisLite"  "fst"          "RColorBrewer" "modelsummary"
## [16] "lubridate"    "forcats"      "stringr"      "dplyr"        "purrr"       
## [21] "readr"        "tidyr"        "tibble"       "ggplot2"      "tidyverse"   
## [26] "stats"        "graphics"     "grDevices"    "utils"        "datasets"    
## [31] "methods"      "base"
ess <- read_fst("All-ESS-Data.fst")
table(ess$essround)
## 
##     1     2     3     4     5     6     7     8     9    10 
## 42359 47537 43000 56752 52458 54673 40185 44387 49519 59685
ess$year <- NA
replacements <- c(2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 2018, 2020)
for(i in 1:10){
  ess$year[ess$essround == i] <- replacements[i]
}
sweden_data <- ess[ess$cntry == "SE", ]
sweden_data_subset <- sweden_data %>%
  filter(essround %in% c("8")) %>%
    mutate(
      current_union_member = case_when(
        mbtru == 1 ~ "Yes",
        mbtru %in% c(7, 8, 9) ~ NA_character_,
        TRUE ~ "No"
      ),
      educ_level = case_when(
      essround < 5 & edulvla == 5 ~ "BA",
      essround >= 5 & edulvlb > 600 ~ "BA",
      TRUE ~ "No BA"
      ),
      voted_right_of_center = case_when(
        prtvtbse %in% c(2, 5, 3, 10) ~ 1,
        prtvtbse %in% c(1, 4, 6, 7, 8, 9, 11) ~ 0,
        prtvtbse %in% c(66, 77, 88, 99) ~ NA_real_,
        TRUE ~ prtvtbse
      ),
      
      lr_scaled_parties = case_when(
        prtvtbse == 1 ~ "Centre",
        prtvtbse == 6 ~ "Centre-left",
        prtvtbse %in% c(2, 5) ~ "Centre-right",
        prtvtbse %in% c(3, 10) ~ "Right",
        prtvtbse %in% c(4, 7, 8) ~ "Left",
        prtvtbse %in% c(9, 11) ~ NA_character_,
        TRUE ~ NA_character_
      ),
      cohort = ifelse(yrbrn < 1930 | yrbrn > 2000, NA, yrbrn),
      gen = case_when(
        yrbrn %in% 1900:1945 ~ "1",
        yrbrn %in% 1946:1964 ~ "2",
        yrbrn %in% 1965:1979 ~ "3",
        yrbrn %in% 1980:1996 ~ "4",
        TRUE ~ as.character(cohort)
      ),
      gen = factor(gen, levels = c("1", "2", "3", "4"),
                   labels = c("Interwar", "Baby Boomers", "Gen X", "Millennials")),
      
    )
     
table(sweden_data_subset$current_union_member)
## 
##  No Yes 
## 788 757
table(sweden_data_subset$lr_scaled_parties)
## 
##       Centre  Centre-left Centre-right         Left        Right 
##           81          419          408          204          138

Hypothesis Testing

Step 1: Chi-squared statistic calculation

test_stat <- sweden_data_subset %>%
  specify(explanatory = current_union_member,
          response = lr_scaled_parties) %>% 
  hypothesize(null = "independence") %>%
  calculate(stat = "Chisq") 
## Warning: Removed 303 rows containing missing values.
print(test_stat$stat)
## X-squared 
##  45.73123

Using the Chi-squared test, we produce a value of 45.73 – the high magnitude of this value shows that the null hypothesis (that current union membership cannot be used to explain left-right party alignment) is unlikely to be true.

Step 2: Null distribution simulation

null_distribution <- sweden_data_subset %>%
  specify(explanatory = current_union_member,
          response = lr_scaled_parties) %>%
  hypothesize(null = "independence") %>%
  generate(reps = 1000, type = "permute") %>%
  calculate(stat = "Chisq")
## Warning: Removed 303 rows containing missing values.
print(null_distribution$stat)
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.21484537  2.28545917  3.30018773  3.26542362  4.30195727 12.15253416 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.96942158  2.19802335  5.29342100  7.10866067  5.76377852 10.56341546 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.34037889  6.62051642  0.96095007  1.86570638  3.98592812  0.75487293 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.55360120  1.61764789  4.35505433  2.32773475  4.24787711  4.47532995 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.10925714  5.66249918  4.44228529  1.87228402  5.23382856  2.04858534 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.49661947 10.40134581 12.00329951  1.09674644  3.30942436  3.27509885 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.61597575  4.39998519  3.34580006  1.94151154  5.91428521  1.49775610 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.88080464  1.71584576  1.88445308  4.80275160  1.05117225  4.11001200 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.77209577  5.19031574  4.05958663  4.64625567  1.53553078 10.78801784 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.07604442  3.57139382  3.76721656  2.13470721  8.57421292  0.65909505 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.14479457  4.47658086  1.63316462  2.78893931  1.15432112  6.42937528 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  6.46339774  1.99787368  0.45559466  2.67184297  2.80174674  4.64640285 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
## 15.56575252  2.69090596  2.90687344  3.07712267  1.66708087  5.54821488 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.17966060  4.43466135  6.95399046  6.95787144  3.59750066  2.16585762 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.43325652  3.02794866  4.57118484  4.36537795  5.46200368  5.36857769 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.79372832  2.63834434  0.97520600  3.21076515  3.65059400  4.24339413 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.02773396  4.30581050  3.44642655  4.53757548 13.60941621  3.21700006 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.88672043  4.42226457  2.23801663  3.57363589  8.02806830  4.48487037 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.23735676  3.65548809  1.88675620  3.64888845  4.93089945  6.82462443 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.62437828  2.20715949  5.16414590  4.14324790 10.79172078  5.96488106 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.46520233  1.36872616  8.28364428 13.30441355  3.20088553  1.52072617 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  7.83831460  0.75514977  4.02321324  1.72378149  2.04264216  1.34716760 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.11338178  1.66474001  1.65538066  6.89190490  2.16179658  3.81592153 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.49093344  3.41221452  3.13259208  0.68052152  7.38365523  3.46722860 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.14602959  3.21492955  2.25208804  3.70549021  0.75632742  0.40263898 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.11604276  4.92292954  3.20637623  1.59124025  4.86768612  1.68035014 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.33973171  1.51968745  1.29190462  8.85874829  7.14146959  2.56979642 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.30322138  6.86230802  4.78300468  8.16103094  3.50156899  8.08053602 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  8.35484132  3.88641953  4.56046233  8.07167692  1.32171062  3.17505964 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.77191278  5.64225930  2.88099853  4.44181899  0.89934865  4.06519953 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.96535581  4.30876406  3.61693193  5.27528218  1.16627440  3.40104316 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.47367343  1.84244639  2.69361092 10.36251399  3.94083111  3.94238074 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.60229916  3.30964418  4.77763273  2.14245888  5.69027579  8.67033974 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.08989771  1.23551672  6.00985894  4.27371371  3.33506118  6.97873026 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.28976493  2.55155554  0.24645748  0.98507512  3.04263730  5.04983268 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.00051308  2.12575076  9.47340650  3.66114764  3.05819193  1.37426299 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.21732610  3.85196899  1.18161533  1.15689425  3.30889861  9.04767133 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.94678057  6.71567811  0.74370010  1.97909758  3.50594404  1.28126057 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  7.80781427  4.81582191  1.71107688  1.12609771  1.27631615  2.38497644 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.66748494  4.58997381  7.97992436  0.98315748  0.07077937  2.44796412 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.45073023  4.83602312  3.59554704  3.93404668  1.52453803  0.75390371 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  9.63289013  1.37707594  2.86307478  1.90976920  2.58138411  3.71983094 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
## 11.53283277  7.50186420  3.91794195  1.04775275  0.73253448  2.86334942 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.51637404  3.23900663  1.09211080  1.03933210  6.95543020  0.68420683 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.87456824  3.92084552  4.38403700  1.86850192 12.13832918 12.65413871 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.36266984  4.47896809  4.40250684 13.83254305  1.43703162  2.54560606 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  7.70204066  4.17028570  7.13480177  3.24006432  4.97078550  5.74717162 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.68108858  6.52882940  3.57737424  2.81258210  4.29005631  2.24490704 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
## 11.04695183  4.20003761  5.28994248  1.66550229  2.97026158  3.64894482 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.48079456  6.48285500  3.10356282  4.66001815  9.73896139  3.27474783 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.56780621  4.86030430  4.26314394  3.01525568  3.44629693  4.27858599 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.75063897 11.68607255 12.88615692  5.57156627  5.53973346  6.92295958 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.20712276  3.03610775  2.15093828  0.29947935  3.60232651  4.63890953 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.70467976  2.12066484  1.84822279  4.95651097  6.31385550  3.02311803 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.43616213  9.65414280  6.31327974  1.76187149  3.65639806  1.52912116 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.03365791  5.07033291  6.24262038  3.95036626  1.93552216  4.32297351 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.55904865  3.26773602 10.51612509  1.15905506  2.61551135  4.61141649 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.06933193  1.27339365  0.82365440  4.30508068  1.47347691  5.49864512 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.51577186  1.53795158  9.31440941  8.17442773  5.27099768  2.95767346 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.32564789  4.89143184  4.06668554  5.70865447  5.89650027  6.56277510 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  6.63654936  3.55694596  0.41801444  2.69993365  2.99356097  3.98245317 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.94460324  2.19289763  2.98799879  4.31835452  7.21895535  2.51044868 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  6.35234119  1.81076852  4.17347260  1.09362045  1.84901492  4.57072389 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  6.06418447  6.20830113  2.63017458  3.80071621  1.87900976  2.94367262 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.30628203  2.09400843 10.40738062  7.85109335  4.41427720  3.84098514 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.92983542  1.80087408  6.50193296  0.24462929  3.52947811  1.88967504 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.38833683  1.53732824  3.55552592  3.69043203  3.07895097  3.36698608 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.81161224  0.78382411  0.28776568  1.79405591  0.97679969  2.23133570 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.62971564  8.18036053  7.32624578  1.75566923  2.03453969  4.70901313 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.36483333  3.47142110  2.80125476  3.57636710  4.25634884  2.56304793 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.57485637  2.07180811  4.81969126  2.34567292  2.00180411  4.43337138 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.69140467  1.60660623  3.00086646  2.64838265  1.80665940  3.15369868 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  8.66358717 11.05460684  3.12727149  6.64799593  7.67762609  1.58162955 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.42768244  1.64719630  3.57626512  0.65639536  1.88809680  3.98691914 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.10318721  2.02079975  2.22272513  6.15837098  0.90314276  2.78387859 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.78297742  1.28656421  6.24457531  2.76445983  2.62261334  1.12038641 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.20178568  3.63158137  4.11490114  2.38831275  8.54872261  2.10042443 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.34712498  1.32525507  5.80312032  6.34655022  2.92236016  5.77323436 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.80795358  7.86626253  7.39581623  3.30845536  1.68361280  1.48366604 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.63132730  8.12566295  0.76484225  1.96154449  0.94597602  7.12609086 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.53880300  2.18901977  1.96246512  1.36164758 11.77440702  2.19027773 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.49692929 11.27690765  6.43539934  3.60969184  4.68744590  1.93824506 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.87686841  3.05632742  1.32300618  8.89395536  3.90905288  2.85783142 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  9.08809869  3.36523204  0.63954784  2.45339897  1.34752573  4.79934421 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.63145818  3.83097497 10.14375706  4.21226102  2.15030971  3.74956807 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.61262594  3.64417260 10.13958094  9.14449874  5.33382623  3.68047016 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  9.40277428  5.77090281  7.94013997  1.63437091  2.35381521  2.37506708 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  7.00251819  0.90018718  4.58881171  3.27585755  2.03731717  3.38343607 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.40058577  4.35227862  3.96854805  4.61232721 13.69748919 11.82384848 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  6.30602981  5.96654691  2.35569947  4.15870521  1.07087762  4.09604199 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.70478984  5.67910989  2.24585052  0.41609039  4.79701492  1.72088669 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.84590126  6.12379473  0.99264838  2.37820960  5.13824549  0.28919437 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
## 12.85201484  2.18224376  2.84635040  9.57611870  1.22223131  3.47036692 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  8.53144128  3.67769320  5.84710168  0.84837762  2.65758780  7.71379143 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.44363150  7.10665755  4.18226388  4.80193781  3.14085043  3.24753625 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.96246512  5.17445691  7.78389761  3.83543120  5.03579929  6.57512415 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  7.57681024  1.28661906  4.42672825  0.97526001  0.94954194  3.65140957 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.52089028  9.28568027  3.04263271  2.08323284  2.05628056  5.09578102 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.27297472  4.91927689  4.01844624  1.99697802  9.67013378  1.80508061 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.27723873  1.61260929  2.55344053  0.70876397 12.13321922  3.77512657 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.22801690  1.75505485  1.27372671  2.20971513  2.11144257  2.70627576 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  7.74572311  7.14347804  4.33105237  1.69025194  2.70846554  2.90798398 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.74111839  5.38244227  6.46271958  8.67137091  4.67165588  8.36662233 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  6.49285728  1.15533064  3.16671078  3.30276136  4.17347478  0.22379787 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.02887987  0.38119509  2.60639853  5.97255103  2.95339869  4.35614507 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.87515864  8.34551551  1.57834127  3.76527580  1.45085888  1.61227748 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  8.66514852  4.01122686  3.53174824  0.93381802  4.04492992  2.66378965 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.93739353 13.09152255  2.49625390  1.10208493  2.38757568  3.90298370 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
## 14.56390658 13.57268651  2.28750502  1.19305263  3.28528296  5.99688719 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  6.60065574  5.66618659  6.62525159  1.10110995  1.10553948  2.42800662 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.04880007  1.54877499  3.34728712  6.64528172  0.75714792  1.78100458 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.70242578 10.84625395  2.02633392  2.71061621  7.71286659  1.43584627 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  9.73708406  2.08284504  2.83638768  2.87935668  1.32513932  3.18156819 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.58934396  4.54152747  6.18130687  5.38345863  2.20095823  3.85868606 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.07098929  2.50896685  3.58904721  1.03229493  1.38255832 11.42056169 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.08968340  2.39475835 13.61400401  5.95959797  4.19590694  5.60752498 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.85708509  5.27376596  2.90401575  5.35909637  5.37176623  5.09349246 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.22456264  4.34729474  0.78050640  0.68799660  4.52791195  5.79271790 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.35765222  1.71424083  1.88132892  5.21398205  6.87930917  7.88865873 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.10601486  7.22292415  6.08612613  2.37459552  2.70686259  1.84583117 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.23045898  5.44154000  2.08968734  1.20902685 10.88286429 10.10350588 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.59873436  5.24584402  6.21778320  5.98541634  1.41823061  3.01236503 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.70739797  3.18250030  4.82309892  2.62962130  1.61974763  0.56777404 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.65209261  2.97003349  4.86578271  2.77317673  6.77412266  3.98665868 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.63415699  2.55261916 11.96705958  2.38467202  1.01211498  3.17429933 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.67180959  7.83369495  2.75779499  1.38569031  3.73822307  1.82734405 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.01222824  6.57342365  4.95707640  7.52394239  0.71566982  1.49513202 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.03486605  5.21476640  4.94823407  3.57342733  1.33865379  0.76727378 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.27924100  1.60872116  5.73254889  3.24757470  6.90885219  1.99537914 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.48492849  1.77838520  3.32565539  1.57180336  1.20169786  6.97019049 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.57231069  5.56819504  1.17688877  2.37487370  4.75082367  1.26792468 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  4.31163021  3.24813854  3.21823515  6.60710917 17.25189954  7.29318984 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.70462731  2.82678537  7.84510963  6.68480093  0.65726368  4.06928759 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  6.01569290  3.65750607  8.38213145  0.80423313  0.97529783  9.92838087 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.64061145  1.82262050  6.64354154  5.89108790  3.04590553  9.32552651 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.31135112  3.07121253  2.81534004 11.27282789  4.25454137  1.34962556 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.71124832  5.86809523  6.18306693  3.37100669  7.13367952  8.43066056 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.07209422  2.08239225  4.26236677  3.35364545  5.84715302  3.02927191 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.05480675  4.27346987  0.49168501  9.73862613  1.30515645  7.19571603 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.46539843  3.25662107  7.37209857  1.55434835  4.88945982  2.97003349 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.72609464  4.09049622  2.35438816  1.42673305  6.66183326  3.85941099 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.55270353 10.83531726  1.44564176  1.91881530  2.32991350  1.78271363 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.47988268  3.87965151  3.14036425  3.93444140  5.79379961  5.15544100 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  9.20985011  2.84907248  4.50468338  9.03853193  3.56794496  2.98367281 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.45843828  4.79721942  2.70368103  5.26931871  0.72753930  3.31829193 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.63449069  2.22840345  1.05792367  6.37611586  2.99076951  6.96255242 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.37218943  0.91210332  1.49882485  3.56895461  3.79610748  5.42979285 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.57001718 14.17513901 10.00946201  3.18160590  2.42591167  3.24316486 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.69388269  3.40939311  9.33046614  6.63658306  8.31087463  1.56684481 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.45601290  4.21826520  4.67705307  5.01007381  2.77625760 11.81777978 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  6.27449248 10.60230890  2.47495254  7.54069785  3.99856378  5.48332409 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.12088458  6.18504953  4.77857198  3.66043251  2.28066781  2.28792249 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.05916209  2.93428048  2.71550908  9.73303519  1.72295413  2.73717008 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  9.48396963  1.48728871  6.80719881  6.19799990  7.41409760  4.68274640 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.94611466  1.94641130  0.99495732  0.15247733  2.54039093  2.63752470 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  7.30131629  4.43475588  4.52916460  3.10863484  1.57666882  8.17135954 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.32588340  2.71369070 11.12249360  1.82676474  3.77719790  2.48560110 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.52577805  1.69599004  0.85908714 11.00113416  2.14612315  6.71470706 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  2.31582273  3.37374267  3.21058495  3.96559454  2.69346417  6.87804724 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  0.20695791  1.91933730  5.79822178  2.04844795  5.26457449  0.98448974 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.74157712 11.55915768  1.50843353  3.48991659  1.44635130  6.92345566 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.10481045  3.64466837 13.38062719  3.11879593  2.95026421  1.63125583 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  1.62366393  4.57633233  2.10751290  1.51801457  6.50780282  0.94698171 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
## 11.96739770  3.09519908  1.93597351  4.80871603  5.68745787  0.82543448 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  5.55464681 16.69733848  5.72209139  1.58976267  5.14195867  1.85466039 
##   X-squared   X-squared   X-squared   X-squared   X-squared   X-squared 
##  3.64512232  9.69318167  3.23803181  3.18027768  4.57966796  4.30037937 
##   X-squared   X-squared   X-squared   X-squared 
##  9.49683065  4.29912114  4.20418790  2.48823944

Step 3: P-value calculation

p_val <- null_distribution %>% 
  get_pvalue(obs_stat = test_stat, direction = "greater") 
## Warning: Please be cautious in reporting a p-value of 0. This result is an
## approximation based on the number of `reps` chosen in the `generate()` step.
## See `?get_p_value()` for more information.
p_val
## # A tibble: 1 × 1
##   p_value
##     <dbl>
## 1       0

We produce a p value approximately 0, which strongly suggests to us that we can reject our null hypothesis.

Step 4: Visualization

conf_int <- null_distribution %>%
  get_confidence_interval(level = 0.95, type = "percentile")


null_distribution %>%
  visualize() +
  shade_p_value(obs_stat = test_stat, direction = "greater") +
  shade_confidence_interval(endpoints = conf_int)
## Warning in min(diff(unique_loc)): no non-missing arguments to min; returning
## Inf

null_distribution
## Response: lr_scaled_parties (factor)
## Explanatory: current_union_member (factor)
## Null Hypothesis: independence
## # A tibble: 1,000 × 2
##    replicate  stat
##        <int> <dbl>
##  1         1  3.21
##  2         2  2.29
##  3         3  3.30
##  4         4  3.27
##  5         5  4.30
##  6         6 12.2 
##  7         7  2.97
##  8         8  2.20
##  9         9  5.29
## 10        10  7.11
## # ℹ 990 more rows

The 95% confidence interval is shaded in green, but is not necessary for distinguishing our results. We can observe that the red line sourced from the chi-squared statistic falls entirely outside the null distribution, and shows that we are able to reject the null hypothesis.

We thus conclude that union membership has a strong relationship with how respondents support parties on the left-right scale.

Modelling

model1 <- glm(voted_right_of_center ~ current_union_member, data = sweden_data_subset, family = binomial)
model2 <- glm(voted_right_of_center ~ current_union_member + gen, data = sweden_data_subset, family = binomial)
model3 <- glm(voted_right_of_center ~ current_union_member + educ_level, data = sweden_data_subset, family = binomial)

modelsummary(
  list(model1, model2, model3),
  fmt = 1,
  estimate  = c( "{estimate} ({std.error}){stars}",
                "{estimate} ({std.error}){stars}",
                "{estimate} ({std.error}){stars}"),
  statistic = NULL,
  coef_omit = "Intercept")
 (1)   (2)   (3)
current_union_memberYes −0.7 (0.1)*** −0.8 (0.1)*** −0.7 (0.1)***
genBaby Boomers 0.0 (0.2)
genGen X 0.3 (0.2)
genMillennials 0.0 (0.2)
educ_levelNo BA −0.2 (0.1)+
Num.Obs. 1260 1259 1260
AIC 1690.9 1689.0 1689.6
BIC 1701.1 1714.7 1705.0
Log.Lik. −843.435 −839.497 −841.794
RMSE 0.49 0.49 0.49
exp(coef(model1))
##             (Intercept) current_union_memberYes 
##               1.0912281               0.4986914