Init

library(kirkegaard)
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ 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: magrittr
## 
## 
## Attaching package: 'magrittr'
## 
## 
## The following object is masked from 'package:purrr':
## 
##     set_names
## 
## 
## The following object is masked from 'package:tidyr':
## 
##     extract
## 
## 
## Loading required package: weights
## 
## Loading required package: Hmisc
## 
## 
## Attaching package: 'Hmisc'
## 
## 
## The following objects are masked from 'package:dplyr':
## 
##     src, summarize
## 
## 
## The following objects are masked from 'package:base':
## 
##     format.pval, units
## 
## 
## Loading required package: assertthat
## 
## 
## Attaching package: 'assertthat'
## 
## 
## The following object is masked from 'package:tibble':
## 
##     has_name
## 
## 
## Loading required package: psych
## 
## 
## Attaching package: 'psych'
## 
## 
## The following object is masked from 'package:Hmisc':
## 
##     describe
## 
## 
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
## 
## 
## 
## Attaching package: 'kirkegaard'
## 
## 
## The following object is masked from 'package:psych':
## 
##     rescale
## 
## 
## The following object is masked from 'package:assertthat':
## 
##     are_equal
## 
## 
## The following object is masked from 'package:purrr':
## 
##     is_logical
## 
## 
## The following object is masked from 'package:base':
## 
##     +
load_packages(
  haven,
  mirt
)
## Loading required package: stats4
## Loading required package: lattice
theme_set(theme_bw())

options(
    digits = 3
)

Data

list = read_csv("data/list.csv") %>% df_legalize_names() %>% 
  mutate(
    Question_wording2 = Question_wording %>% str_remove_all("\\*") %>% str_trim(),
    Question_wording2 = Question_wording2 %>% str_wrap(width = 80),
  )
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Rows: 39 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): Question wording, code
## dbl (2): Percent Believe, reverse
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
d = read_dta("data/May 2021 clean.dta")

#more variables
d %<>% mutate(
  net_trump = trumpft - bidenft
)

theories = d %>% 
  select(aids1:cexaggerate)

#mean by theory
theory_means = theories %>% 
  colMeans(na.rm = T) %>%
  as.list() %>% 
  as.data.frame() %>% 
  gather() %>% 
  inner_join(
    list %>% 
      select(Question_wording, code),
    by = c("key" = "code")
  )

Analysis

#factor loadings
mirt_fit = mirt(
  theories,
  1,
  itemtype = case_when(
    map_lgl(theories, ~(max(.x, na.rm = T) == 1)) ~ "2PL",
    TRUE ~ "graded"
  )
)
## Iteration: 1, Log-Lik: -70525.323, Max-Change: 2.18035Iteration: 2, Log-Lik: -66279.605, Max-Change: 0.53311Iteration: 3, Log-Lik: -65919.473, Max-Change: 0.24240Iteration: 4, Log-Lik: -65805.837, Max-Change: 0.14430Iteration: 5, Log-Lik: -65743.974, Max-Change: 0.11436Iteration: 6, Log-Lik: -65702.337, Max-Change: 0.08542Iteration: 7, Log-Lik: -65671.353, Max-Change: 0.08110Iteration: 8, Log-Lik: -65647.363, Max-Change: 0.06852Iteration: 9, Log-Lik: -65628.689, Max-Change: 0.05523Iteration: 10, Log-Lik: -65614.147, Max-Change: 0.05572Iteration: 11, Log-Lik: -65602.455, Max-Change: 0.04406Iteration: 12, Log-Lik: -65593.317, Max-Change: 0.04682Iteration: 13, Log-Lik: -65585.739, Max-Change: 0.06630Iteration: 14, Log-Lik: -65580.204, Max-Change: 0.05017Iteration: 15, Log-Lik: -65575.586, Max-Change: 0.03465Iteration: 16, Log-Lik: -65570.858, Max-Change: 0.02823Iteration: 17, Log-Lik: -65567.136, Max-Change: 0.02723Iteration: 18, Log-Lik: -65564.220, Max-Change: 0.02308Iteration: 19, Log-Lik: -65560.320, Max-Change: 0.02141Iteration: 20, Log-Lik: -65558.941, Max-Change: 0.02071Iteration: 21, Log-Lik: -65557.691, Max-Change: 0.01838Iteration: 22, Log-Lik: -65555.954, Max-Change: 0.01465Iteration: 23, Log-Lik: -65555.100, Max-Change: 0.01162Iteration: 24, Log-Lik: -65554.441, Max-Change: 0.01088Iteration: 25, Log-Lik: -65551.918, Max-Change: 0.00991Iteration: 26, Log-Lik: -65551.710, Max-Change: 0.00514Iteration: 27, Log-Lik: -65551.539, Max-Change: 0.00485Iteration: 28, Log-Lik: -65551.253, Max-Change: 0.00702Iteration: 29, Log-Lik: -65551.151, Max-Change: 0.00430Iteration: 30, Log-Lik: -65551.062, Max-Change: 0.00373Iteration: 31, Log-Lik: -65550.810, Max-Change: 0.00444Iteration: 32, Log-Lik: -65550.739, Max-Change: 0.00376Iteration: 33, Log-Lik: -65550.685, Max-Change: 0.00335Iteration: 34, Log-Lik: -65550.444, Max-Change: 0.00455Iteration: 35, Log-Lik: -65550.398, Max-Change: 0.00212Iteration: 36, Log-Lik: -65550.375, Max-Change: 0.00335Iteration: 37, Log-Lik: -65550.358, Max-Change: 0.00516Iteration: 38, Log-Lik: -65550.292, Max-Change: 0.00211Iteration: 39, Log-Lik: -65550.270, Max-Change: 0.00166Iteration: 40, Log-Lik: -65550.247, Max-Change: 0.00177Iteration: 41, Log-Lik: -65550.236, Max-Change: 0.00119Iteration: 42, Log-Lik: -65550.224, Max-Change: 0.00134Iteration: 43, Log-Lik: -65550.203, Max-Change: 0.00249Iteration: 44, Log-Lik: -65550.181, Max-Change: 0.00121Iteration: 45, Log-Lik: -65550.173, Max-Change: 0.00114Iteration: 46, Log-Lik: -65550.157, Max-Change: 0.00131Iteration: 47, Log-Lik: -65550.148, Max-Change: 0.00089Iteration: 48, Log-Lik: -65550.141, Max-Change: 0.00088Iteration: 49, Log-Lik: -65550.115, Max-Change: 0.00092Iteration: 50, Log-Lik: -65550.108, Max-Change: 0.00127Iteration: 51, Log-Lik: -65550.102, Max-Change: 0.00077Iteration: 52, Log-Lik: -65550.094, Max-Change: 0.00074Iteration: 53, Log-Lik: -65550.089, Max-Change: 0.00097Iteration: 54, Log-Lik: -65550.085, Max-Change: 0.00075Iteration: 55, Log-Lik: -65550.077, Max-Change: 0.00056Iteration: 56, Log-Lik: -65550.074, Max-Change: 0.00051Iteration: 57, Log-Lik: -65550.073, Max-Change: 0.00056Iteration: 58, Log-Lik: -65550.072, Max-Change: 0.00043Iteration: 59, Log-Lik: -65550.071, Max-Change: 0.00056Iteration: 60, Log-Lik: -65550.070, Max-Change: 0.00058Iteration: 61, Log-Lik: -65550.069, Max-Change: 0.00070Iteration: 62, Log-Lik: -65550.068, Max-Change: 0.00075Iteration: 63, Log-Lik: -65550.067, Max-Change: 0.00093Iteration: 64, Log-Lik: -65550.067, Max-Change: 0.00055Iteration: 65, Log-Lik: -65550.066, Max-Change: 0.00070Iteration: 66, Log-Lik: -65550.065, Max-Change: 0.00075Iteration: 67, Log-Lik: -65550.064, Max-Change: 0.00061Iteration: 68, Log-Lik: -65550.063, Max-Change: 0.00065Iteration: 69, Log-Lik: -65550.063, Max-Change: 0.00081Iteration: 70, Log-Lik: -65550.062, Max-Change: 0.00054Iteration: 71, Log-Lik: -65550.061, Max-Change: 0.00068Iteration: 72, Log-Lik: -65550.060, Max-Change: 0.00074Iteration: 73, Log-Lik: -65550.060, Max-Change: 0.00058Iteration: 74, Log-Lik: -65550.059, Max-Change: 0.00062Iteration: 75, Log-Lik: -65550.058, Max-Change: 0.00077Iteration: 76, Log-Lik: -65550.058, Max-Change: 0.00052Iteration: 77, Log-Lik: -65550.057, Max-Change: 0.00066Iteration: 78, Log-Lik: -65550.056, Max-Change: 0.00071Iteration: 79, Log-Lik: -65550.056, Max-Change: 0.00056Iteration: 80, Log-Lik: -65550.055, Max-Change: 0.00059Iteration: 81, Log-Lik: -65550.054, Max-Change: 0.00074Iteration: 82, Log-Lik: -65550.054, Max-Change: 0.00050Iteration: 83, Log-Lik: -65550.053, Max-Change: 0.00063Iteration: 84, Log-Lik: -65550.052, Max-Change: 0.00068Iteration: 85, Log-Lik: -65550.052, Max-Change: 0.00053Iteration: 86, Log-Lik: -65550.051, Max-Change: 0.00057Iteration: 87, Log-Lik: -65550.051, Max-Change: 0.00071Iteration: 88, Log-Lik: -65550.050, Max-Change: 0.00048Iteration: 89, Log-Lik: -65550.050, Max-Change: 0.00060Iteration: 90, Log-Lik: -65550.049, Max-Change: 0.00065Iteration: 91, Log-Lik: -65550.048, Max-Change: 0.00051Iteration: 92, Log-Lik: -65550.048, Max-Change: 0.00055Iteration: 93, Log-Lik: -65550.047, Max-Change: 0.00068Iteration: 94, Log-Lik: -65550.047, Max-Change: 0.00046Iteration: 95, Log-Lik: -65550.046, Max-Change: 0.00058Iteration: 96, Log-Lik: -65550.046, Max-Change: 0.00063Iteration: 97, Log-Lik: -65550.045, Max-Change: 0.00049Iteration: 98, Log-Lik: -65550.045, Max-Change: 0.00053Iteration: 99, Log-Lik: -65550.044, Max-Change: 0.00065Iteration: 100, Log-Lik: -65550.044, Max-Change: 0.00044Iteration: 101, Log-Lik: -65550.043, Max-Change: 0.00056Iteration: 102, Log-Lik: -65550.043, Max-Change: 0.00060Iteration: 103, Log-Lik: -65550.042, Max-Change: 0.00047Iteration: 104, Log-Lik: -65550.042, Max-Change: 0.00051Iteration: 105, Log-Lik: -65550.041, Max-Change: 0.00063Iteration: 106, Log-Lik: -65550.041, Max-Change: 0.00043Iteration: 107, Log-Lik: -65550.041, Max-Change: 0.00054Iteration: 108, Log-Lik: -65550.040, Max-Change: 0.00058Iteration: 109, Log-Lik: -65550.040, Max-Change: 0.00046Iteration: 110, Log-Lik: -65550.039, Max-Change: 0.00049Iteration: 111, Log-Lik: -65550.039, Max-Change: 0.00060Iteration: 112, Log-Lik: -65550.038, Max-Change: 0.00041Iteration: 113, Log-Lik: -65550.038, Max-Change: 0.00052Iteration: 114, Log-Lik: -65550.038, Max-Change: 0.00056Iteration: 115, Log-Lik: -65550.037, Max-Change: 0.00044Iteration: 116, Log-Lik: -65550.037, Max-Change: 0.00047Iteration: 117, Log-Lik: -65550.036, Max-Change: 0.00058Iteration: 118, Log-Lik: -65550.036, Max-Change: 0.00039Iteration: 119, Log-Lik: -65550.036, Max-Change: 0.00050Iteration: 120, Log-Lik: -65550.035, Max-Change: 0.00054Iteration: 121, Log-Lik: -65550.035, Max-Change: 0.00042Iteration: 122, Log-Lik: -65550.034, Max-Change: 0.00045Iteration: 123, Log-Lik: -65550.034, Max-Change: 0.00056Iteration: 124, Log-Lik: -65550.034, Max-Change: 0.00038Iteration: 125, Log-Lik: -65550.033, Max-Change: 0.00048Iteration: 126, Log-Lik: -65550.033, Max-Change: 0.00052Iteration: 127, Log-Lik: -65550.033, Max-Change: 0.00041Iteration: 128, Log-Lik: -65550.032, Max-Change: 0.00043Iteration: 129, Log-Lik: -65550.032, Max-Change: 0.00054Iteration: 130, Log-Lik: -65550.032, Max-Change: 0.00037Iteration: 131, Log-Lik: -65550.031, Max-Change: 0.00046Iteration: 132, Log-Lik: -65550.031, Max-Change: 0.00050Iteration: 133, Log-Lik: -65550.031, Max-Change: 0.00039Iteration: 134, Log-Lik: -65550.030, Max-Change: 0.00042Iteration: 135, Log-Lik: -65550.030, Max-Change: 0.00052Iteration: 136, Log-Lik: -65550.030, Max-Change: 0.00035Iteration: 137, Log-Lik: -65550.029, Max-Change: 0.00044Iteration: 138, Log-Lik: -65550.029, Max-Change: 0.00048Iteration: 139, Log-Lik: -65550.029, Max-Change: 0.00038Iteration: 140, Log-Lik: -65550.029, Max-Change: 0.00040Iteration: 141, Log-Lik: -65550.028, Max-Change: 0.00050Iteration: 142, Log-Lik: -65550.028, Max-Change: 0.00034Iteration: 143, Log-Lik: -65550.028, Max-Change: 0.00043Iteration: 144, Log-Lik: -65550.027, Max-Change: 0.00046Iteration: 145, Log-Lik: -65550.027, Max-Change: 0.00036Iteration: 146, Log-Lik: -65550.027, Max-Change: 0.00039Iteration: 147, Log-Lik: -65550.027, Max-Change: 0.00048Iteration: 148, Log-Lik: -65550.026, Max-Change: 0.00033Iteration: 149, Log-Lik: -65550.026, Max-Change: 0.00041Iteration: 150, Log-Lik: -65550.026, Max-Change: 0.00044Iteration: 151, Log-Lik: -65550.026, Max-Change: 0.00035Iteration: 152, Log-Lik: -65550.025, Max-Change: 0.00037Iteration: 153, Log-Lik: -65550.025, Max-Change: 0.00046Iteration: 154, Log-Lik: -65550.025, Max-Change: 0.00031Iteration: 155, Log-Lik: -65550.025, Max-Change: 0.00039Iteration: 156, Log-Lik: -65550.024, Max-Change: 0.00043Iteration: 157, Log-Lik: -65550.024, Max-Change: 0.00034Iteration: 158, Log-Lik: -65550.024, Max-Change: 0.00036Iteration: 159, Log-Lik: -65550.024, Max-Change: 0.00045Iteration: 160, Log-Lik: -65550.023, Max-Change: 0.00030Iteration: 161, Log-Lik: -65550.023, Max-Change: 0.00038Iteration: 162, Log-Lik: -65550.023, Max-Change: 0.00041Iteration: 163, Log-Lik: -65550.023, Max-Change: 0.00032Iteration: 164, Log-Lik: -65550.022, Max-Change: 0.00035Iteration: 165, Log-Lik: -65550.022, Max-Change: 0.00043Iteration: 166, Log-Lik: -65550.022, Max-Change: 0.00029Iteration: 167, Log-Lik: -65550.022, Max-Change: 0.00037Iteration: 168, Log-Lik: -65550.022, Max-Change: 0.00040Iteration: 169, Log-Lik: -65550.021, Max-Change: 0.00031Iteration: 170, Log-Lik: -65550.021, Max-Change: 0.00033Iteration: 171, Log-Lik: -65550.021, Max-Change: 0.00041Iteration: 172, Log-Lik: -65550.021, Max-Change: 0.00028Iteration: 173, Log-Lik: -65550.021, Max-Change: 0.00035Iteration: 174, Log-Lik: -65550.020, Max-Change: 0.00038Iteration: 175, Log-Lik: -65550.020, Max-Change: 0.00030Iteration: 176, Log-Lik: -65550.020, Max-Change: 0.00032Iteration: 177, Log-Lik: -65550.020, Max-Change: 0.00040Iteration: 178, Log-Lik: -65550.020, Max-Change: 0.00027Iteration: 179, Log-Lik: -65550.019, Max-Change: 0.00034Iteration: 180, Log-Lik: -65550.019, Max-Change: 0.00037Iteration: 181, Log-Lik: -65550.019, Max-Change: 0.00029Iteration: 182, Log-Lik: -65550.019, Max-Change: 0.00031Iteration: 183, Log-Lik: -65550.019, Max-Change: 0.00038Iteration: 184, Log-Lik: -65550.019, Max-Change: 0.00026Iteration: 185, Log-Lik: -65550.018, Max-Change: 0.00033Iteration: 186, Log-Lik: -65550.018, Max-Change: 0.00035Iteration: 187, Log-Lik: -65550.018, Max-Change: 0.00028Iteration: 188, Log-Lik: -65550.018, Max-Change: 0.00030Iteration: 189, Log-Lik: -65550.018, Max-Change: 0.00037Iteration: 190, Log-Lik: -65550.018, Max-Change: 0.00025Iteration: 191, Log-Lik: -65550.017, Max-Change: 0.00032Iteration: 192, Log-Lik: -65550.017, Max-Change: 0.00034Iteration: 193, Log-Lik: -65550.017, Max-Change: 0.00027Iteration: 194, Log-Lik: -65550.017, Max-Change: 0.00029Iteration: 195, Log-Lik: -65550.017, Max-Change: 0.00036Iteration: 196, Log-Lik: -65550.017, Max-Change: 0.00024Iteration: 197, Log-Lik: -65550.017, Max-Change: 0.00030Iteration: 198, Log-Lik: -65550.016, Max-Change: 0.00033Iteration: 199, Log-Lik: -65550.016, Max-Change: 0.00026Iteration: 200, Log-Lik: -65550.016, Max-Change: 0.00028Iteration: 201, Log-Lik: -65550.016, Max-Change: 0.00034Iteration: 202, Log-Lik: -65550.016, Max-Change: 0.00023Iteration: 203, Log-Lik: -65550.016, Max-Change: 0.00029Iteration: 204, Log-Lik: -65550.016, Max-Change: 0.00032Iteration: 205, Log-Lik: -65550.016, Max-Change: 0.00025Iteration: 206, Log-Lik: -65550.015, Max-Change: 0.00027Iteration: 207, Log-Lik: -65550.015, Max-Change: 0.00033Iteration: 208, Log-Lik: -65550.015, Max-Change: 0.00022Iteration: 209, Log-Lik: -65550.015, Max-Change: 0.00028Iteration: 210, Log-Lik: -65550.015, Max-Change: 0.00030Iteration: 211, Log-Lik: -65550.015, Max-Change: 0.00024Iteration: 212, Log-Lik: -65550.015, Max-Change: 0.00026Iteration: 213, Log-Lik: -65550.015, Max-Change: 0.00032Iteration: 214, Log-Lik: -65550.014, Max-Change: 0.00022Iteration: 215, Log-Lik: -65550.014, Max-Change: 0.00027Iteration: 216, Log-Lik: -65550.014, Max-Change: 0.00029Iteration: 217, Log-Lik: -65550.014, Max-Change: 0.00023Iteration: 218, Log-Lik: -65550.014, Max-Change: 0.00025Iteration: 219, Log-Lik: -65550.014, Max-Change: 0.00031Iteration: 220, Log-Lik: -65550.014, Max-Change: 0.00021Iteration: 221, Log-Lik: -65550.014, Max-Change: 0.00026Iteration: 222, Log-Lik: -65550.014, Max-Change: 0.00028Iteration: 223, Log-Lik: -65550.013, Max-Change: 0.00022Iteration: 224, Log-Lik: -65550.013, Max-Change: 0.00024Iteration: 225, Log-Lik: -65550.013, Max-Change: 0.00030Iteration: 226, Log-Lik: -65550.013, Max-Change: 0.00020Iteration: 227, Log-Lik: -65550.013, Max-Change: 0.00025Iteration: 228, Log-Lik: -65550.013, Max-Change: 0.00027Iteration: 229, Log-Lik: -65550.013, Max-Change: 0.00021Iteration: 230, Log-Lik: -65550.013, Max-Change: 0.00023Iteration: 231, Log-Lik: -65550.013, Max-Change: 0.00028Iteration: 232, Log-Lik: -65550.013, Max-Change: 0.00019Iteration: 233, Log-Lik: -65550.012, Max-Change: 0.00024Iteration: 234, Log-Lik: -65550.012, Max-Change: 0.00026Iteration: 235, Log-Lik: -65550.012, Max-Change: 0.00021Iteration: 236, Log-Lik: -65550.012, Max-Change: 0.00022Iteration: 237, Log-Lik: -65550.012, Max-Change: 0.00027Iteration: 238, Log-Lik: -65550.012, Max-Change: 0.00019Iteration: 239, Log-Lik: -65550.012, Max-Change: 0.00023Iteration: 240, Log-Lik: -65550.012, Max-Change: 0.00025Iteration: 241, Log-Lik: -65550.012, Max-Change: 0.00020Iteration: 242, Log-Lik: -65550.012, Max-Change: 0.00021Iteration: 243, Log-Lik: -65550.012, Max-Change: 0.00026Iteration: 244, Log-Lik: -65550.012, Max-Change: 0.00018Iteration: 245, Log-Lik: -65550.011, Max-Change: 0.00022Iteration: 246, Log-Lik: -65550.011, Max-Change: 0.00024Iteration: 247, Log-Lik: -65550.011, Max-Change: 0.00019Iteration: 248, Log-Lik: -65550.011, Max-Change: 0.00020Iteration: 249, Log-Lik: -65550.011, Max-Change: 0.00025Iteration: 250, Log-Lik: -65550.011, Max-Change: 0.00017Iteration: 251, Log-Lik: -65550.011, Max-Change: 0.00022Iteration: 252, Log-Lik: -65550.011, Max-Change: 0.00023Iteration: 253, Log-Lik: -65550.011, Max-Change: 0.00018Iteration: 254, Log-Lik: -65550.011, Max-Change: 0.00020Iteration: 255, Log-Lik: -65550.011, Max-Change: 0.00024Iteration: 256, Log-Lik: -65550.011, Max-Change: 0.00017Iteration: 257, Log-Lik: -65550.011, Max-Change: 0.00021Iteration: 258, Log-Lik: -65550.010, Max-Change: 0.00023Iteration: 259, Log-Lik: -65550.010, Max-Change: 0.00018Iteration: 260, Log-Lik: -65550.010, Max-Change: 0.00019Iteration: 261, Log-Lik: -65550.010, Max-Change: 0.00024Iteration: 262, Log-Lik: -65550.010, Max-Change: 0.00016Iteration: 263, Log-Lik: -65550.010, Max-Change: 0.00020Iteration: 264, Log-Lik: -65550.010, Max-Change: 0.00022Iteration: 265, Log-Lik: -65550.010, Max-Change: 0.00017Iteration: 266, Log-Lik: -65550.010, Max-Change: 0.00018Iteration: 267, Log-Lik: -65550.010, Max-Change: 0.00023Iteration: 268, Log-Lik: -65550.010, Max-Change: 0.00015Iteration: 269, Log-Lik: -65550.010, Max-Change: 0.00019Iteration: 270, Log-Lik: -65550.010, Max-Change: 0.00021Iteration: 271, Log-Lik: -65550.010, Max-Change: 0.00016Iteration: 272, Log-Lik: -65550.010, Max-Change: 0.00018Iteration: 273, Log-Lik: -65550.010, Max-Change: 0.00022Iteration: 274, Log-Lik: -65550.010, Max-Change: 0.00015Iteration: 275, Log-Lik: -65550.009, Max-Change: 0.00019Iteration: 276, Log-Lik: -65550.009, Max-Change: 0.00020Iteration: 277, Log-Lik: -65550.009, Max-Change: 0.00016Iteration: 278, Log-Lik: -65550.009, Max-Change: 0.00017Iteration: 279, Log-Lik: -65550.009, Max-Change: 0.00021Iteration: 280, Log-Lik: -65550.009, Max-Change: 0.00014Iteration: 281, Log-Lik: -65550.009, Max-Change: 0.00018Iteration: 282, Log-Lik: -65550.009, Max-Change: 0.00019Iteration: 283, Log-Lik: -65550.009, Max-Change: 0.00015Iteration: 284, Log-Lik: -65550.009, Max-Change: 0.00016Iteration: 285, Log-Lik: -65550.009, Max-Change: 0.00020Iteration: 286, Log-Lik: -65550.009, Max-Change: 0.00014Iteration: 287, Log-Lik: -65550.009, Max-Change: 0.00017Iteration: 288, Log-Lik: -65550.009, Max-Change: 0.00019Iteration: 289, Log-Lik: -65550.009, Max-Change: 0.00015Iteration: 290, Log-Lik: -65550.009, Max-Change: 0.00016Iteration: 291, Log-Lik: -65550.009, Max-Change: 0.00020Iteration: 292, Log-Lik: -65550.009, Max-Change: 0.00013Iteration: 293, Log-Lik: -65550.009, Max-Change: 0.00017Iteration: 294, Log-Lik: -65550.009, Max-Change: 0.00018Iteration: 295, Log-Lik: -65550.009, Max-Change: 0.00014Iteration: 296, Log-Lik: -65550.008, Max-Change: 0.00015Iteration: 297, Log-Lik: -65550.008, Max-Change: 0.00019Iteration: 298, Log-Lik: -65550.008, Max-Change: 0.00013Iteration: 299, Log-Lik: -65550.008, Max-Change: 0.00016Iteration: 300, Log-Lik: -65550.008, Max-Change: 0.00017Iteration: 301, Log-Lik: -65550.008, Max-Change: 0.00014Iteration: 302, Log-Lik: -65550.008, Max-Change: 0.00015Iteration: 303, Log-Lik: -65550.008, Max-Change: 0.00018Iteration: 304, Log-Lik: -65550.008, Max-Change: 0.00012Iteration: 305, Log-Lik: -65550.008, Max-Change: 0.00015Iteration: 306, Log-Lik: -65550.008, Max-Change: 0.00017Iteration: 307, Log-Lik: -65550.008, Max-Change: 0.00013Iteration: 308, Log-Lik: -65550.008, Max-Change: 0.00014Iteration: 309, Log-Lik: -65550.008, Max-Change: 0.00017Iteration: 310, Log-Lik: -65550.008, Max-Change: 0.00012Iteration: 311, Log-Lik: -65550.008, Max-Change: 0.00015Iteration: 312, Log-Lik: -65550.008, Max-Change: 0.00016Iteration: 313, Log-Lik: -65550.008, Max-Change: 0.00013Iteration: 314, Log-Lik: -65550.008, Max-Change: 0.00014Iteration: 315, Log-Lik: -65550.008, Max-Change: 0.00017Iteration: 316, Log-Lik: -65550.008, Max-Change: 0.00011Iteration: 317, Log-Lik: -65550.008, Max-Change: 0.00014Iteration: 318, Log-Lik: -65550.008, Max-Change: 0.00016Iteration: 319, Log-Lik: -65550.008, Max-Change: 0.00012Iteration: 320, Log-Lik: -65550.008, Max-Change: 0.00013Iteration: 321, Log-Lik: -65550.008, Max-Change: 0.00016Iteration: 322, Log-Lik: -65550.008, Max-Change: 0.00011Iteration: 323, Log-Lik: -65550.008, Max-Change: 0.00014Iteration: 324, Log-Lik: -65550.007, Max-Change: 0.00015Iteration: 325, Log-Lik: -65550.007, Max-Change: 0.00012Iteration: 326, Log-Lik: -65550.007, Max-Change: 0.00013Iteration: 327, Log-Lik: -65550.007, Max-Change: 0.00016Iteration: 328, Log-Lik: -65550.007, Max-Change: 0.00011Iteration: 329, Log-Lik: -65550.007, Max-Change: 0.00013Iteration: 330, Log-Lik: -65550.007, Max-Change: 0.00014Iteration: 331, Log-Lik: -65550.007, Max-Change: 0.00011Iteration: 332, Log-Lik: -65550.007, Max-Change: 0.00012Iteration: 333, Log-Lik: -65550.007, Max-Change: 0.00015Iteration: 334, Log-Lik: -65550.007, Max-Change: 0.00010Iteration: 335, Log-Lik: -65550.007, Max-Change: 0.00013Iteration: 336, Log-Lik: -65550.007, Max-Change: 0.00014Iteration: 337, Log-Lik: -65550.007, Max-Change: 0.00011Iteration: 338, Log-Lik: -65550.007, Max-Change: 0.00012Iteration: 339, Log-Lik: -65550.007, Max-Change: 0.00014Iteration: 340, Log-Lik: -65550.007, Max-Change: 0.00010
mirt_fit
## 
## Call:
## mirt(data = theories, model = 1, itemtype = case_when(map_lgl(theories, 
##     ~(max(.x, na.rm = T) == 1)) ~ "2PL", TRUE ~ "graded"))
## 
## Full-information item factor analysis with 1 factor(s).
## Converged within 1e-04 tolerance after 340 EM iterations.
## mirt version: 1.42 
## M-step optimizer: BFGS 
## EM acceleration: Ramsay 
## Number of rectangular quadrature: 61
## Latent density type: Gaussian 
## 
## Log-likelihood = -65550
## Estimated parameters: 145 
## AIC = 131390
## BIC = 132204; SABIC = 131743
mirt_fit %>% summary()
##                  F1     h2
## aids1         0.210 0.0441
## hostage       0.555 0.3078
## jfk           0.385 0.1480
## moon          0.714 0.5095
## govassass     0.727 0.5281
## mlk           0.372 0.1385
## bobby         0.446 0.1987
## believer      0.676 0.4570
## cpurpose      0.858 0.7353
## hollywood     0.780 0.6082
## clintonnuke   0.764 0.5843
## rothschilds   0.782 0.6112
## vaccine       0.884 0.7821
## epstein       0.564 0.3181
## simpson       0.587 0.3444
## fluoride      0.839 0.7035
## globalwarming 0.621 0.3862
## ufo           0.497 0.2468
## mindcontrol   0.804 0.6464
## binladen      0.736 0.5420
## pharma        0.840 0.7057
## fdrlied       0.656 0.4310
## sandyhook     0.742 0.5507
## birther       0.682 0.4646
## deepstate     0.746 0.5558
## onepercent    0.501 0.2510
## killpolice    0.660 0.4357
## tracking      0.855 0.7310
## repsteal      0.273 0.0746
## billgates     0.856 0.7331
## fda           0.797 0.6355
## vaccine2      0.862 0.7432
## lightbulbs    0.795 0.6318
## truther       0.798 0.6363
## cellphone2    0.772 0.5962
## gmos          0.741 0.5493
## soros         0.803 0.6449
## cellphone     0.736 0.5419
## cexaggerate   0.737 0.5427
## 
## SS loadings:  19.3 
## Proportion Var:  0.495 
## 
## Factor correlations: 
## 
##    F1
## F1  1
#save scores
mirt_fit_scores = fscores(mirt_fit, full.scores = T, full.scores.SE = T)

#reliability
empirical_rxx(mirt_fit_scores)
##    F1 
## 0.957
d$general_conspiracy = mirt_fit_scores[, 1] %>% standardize()

#plot distribution
d$general_conspiracy %>% 
  GG_denhist()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

#ideology correlation
GG_scatter(d, "ideo", "general_conspiracy")
## `geom_smooth()` using formula = 'y ~ x'

#trump
GG_scatter(d, "trumpft", "general_conspiracy") +
  labs(title = "Trump support and belief in conspiracy theories", x = "Trump support (feeling thermometer)", y = "Belief in conspiracy theories, general score")
## `geom_smooth()` using formula = 'y ~ x'

GG_save("figs/trump_conspiracy.png")
## `geom_smooth()` using formula = 'y ~ x'
#net trump vs. biden
GG_scatter(d, "net_trump", "general_conspiracy") +
  labs(title = "Net Trump vs. Biden support and belief in conspiracy theories", x = "Net Trump support (feeling thermometer)", y = "Belief in conspiracy theories, general score")
## `geom_smooth()` using formula = 'y ~ x'

#ACTS and Trump
GG_scatter(d, "trumpft", "conthink")
## `geom_smooth()` using formula = 'y ~ x'

#correlations
d %>% 
  select(
    trumpft, bidenft, net_trump,
    conthink, general_conspiracy
  ) %>% 
  GG_heatmap()

# list %>% 
#   mutate(
#     Question_wording2 = Question_wording2 %>% fct_reorder(Percent_Believe2)
#   ) %>% 
#   ggplot(aes(Percent_Believe2, Question_wording2)) +
#   geom_point() +
#   labs(title = "Belief in conspiracy theories in USA", x = "Belief %", y = "Theory") +
#   theme_minimal()
# 
# #belief plot
# theories %>% 
#   map_dfc(~kirkegaard::rescale(.x, new_min = 0, new_max = 1)) %>%
#   gather() %>% 
#   ggplot(aes(value, key)) +
#   #a historam on each line
#   geom_histogram(stat = "identity", fill = "grey", alpha = 0.5) +
#   labs(title = "Belief in conspiracy theories in USA", x = "Belief", y = "Count") +
#   theme_minimal()

Meta

#versions
write_sessioninfo()
## R version 4.4.1 (2024-06-14)
## Platform: x86_64-pc-linux-gnu
## Running under: Linux Mint 21.1
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_DK.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_DK.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_DK.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: Europe/Berlin
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats4    stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
##  [1] mirt_1.42             lattice_0.22-5        haven_2.5.4          
##  [4] kirkegaard_2024-06-07 psych_2.4.6.26        assertthat_0.2.1     
##  [7] weights_1.0.4         Hmisc_5.1-3           magrittr_2.0.3       
## [10] lubridate_1.9.3       forcats_1.0.0         stringr_1.5.1        
## [13] dplyr_1.1.4           purrr_1.0.2           readr_2.1.5          
## [16] tidyr_1.3.1           tibble_3.2.1          ggplot2_3.5.1        
## [19] tidyverse_2.0.0      
## 
## loaded via a namespace (and not attached):
##   [1] mnormt_2.1.1         pbapply_1.7-2        gridExtra_2.3       
##   [4] testthat_3.2.1.1     permute_0.9-7        rlang_1.1.4         
##   [7] compiler_4.4.1       mgcv_1.9-1           gdata_3.0.0         
##  [10] systemfonts_1.1.0    vctrs_0.6.5          crayon_1.5.3        
##  [13] pkgconfig_2.0.3      shape_1.4.6.1        fastmap_1.2.0       
##  [16] backports_1.5.0      labeling_0.4.3       utf8_1.2.4          
##  [19] rmarkdown_2.28       sessioninfo_1.2.2    tzdb_0.4.0          
##  [22] nloptr_2.1.1         ragg_1.3.2           bit_4.0.5           
##  [25] xfun_0.47            glmnet_4.1-8         jomo_2.7-6          
##  [28] cachem_1.1.0         jsonlite_1.8.8       highr_0.11          
##  [31] pan_1.9              Deriv_4.1.3          broom_1.0.6         
##  [34] parallel_4.4.1       cluster_2.1.6        R6_2.5.1            
##  [37] bslib_0.8.0          stringi_1.8.4        parallelly_1.38.0   
##  [40] boot_1.3-30          rpart_4.1.23         brio_1.1.5          
##  [43] jquerylib_0.1.4      Rcpp_1.0.13          iterators_1.0.14    
##  [46] knitr_1.48           future.apply_1.11.2  snow_0.4-4          
##  [49] audio_0.1-11         base64enc_0.1-3      R.utils_2.12.3      
##  [52] Matrix_1.6-5         splines_4.4.1        nnet_7.3-19         
##  [55] timechange_0.3.0     tidyselect_1.2.1     rstudioapi_0.16.0   
##  [58] yaml_2.3.10          vegan_2.6-6.1        codetools_0.2-19    
##  [61] dcurver_0.9.2        curl_5.2.2           listenv_0.9.1       
##  [64] withr_3.0.1          evaluate_0.24.0      foreign_0.8-86      
##  [67] future_1.34.0        survival_3.7-0       pillar_1.9.0        
##  [70] mice_3.16.0          checkmate_2.3.2      foreach_1.5.2       
##  [73] generics_0.1.3       vroom_1.6.5          hms_1.1.3           
##  [76] munsell_0.5.1        scales_1.3.0         minqa_1.2.8         
##  [79] globals_0.16.3       gtools_3.9.5         glue_1.7.0          
##  [82] RPushbullet_0.3.4    tools_4.4.1          data.table_1.16.0   
##  [85] lme4_1.1-35.5        beepr_2.0            SimDesign_2.17.1    
##  [88] grid_4.4.1           colorspace_2.1-1     nlme_3.1-165        
##  [91] htmlTable_2.4.3      Formula_1.2-5        cli_3.6.3           
##  [94] textshaping_0.4.0    fansi_1.0.6          gtable_0.3.5        
##  [97] R.methodsS3_1.8.2    sass_0.4.9           digest_0.6.37       
## [100] progressr_0.14.0     GPArotation_2024.3-1 farver_2.1.2        
## [103] htmlwidgets_1.6.4    htmltools_0.5.8.1    R.oo_1.26.0         
## [106] lifecycle_1.0.4      mitml_0.4-5          bit64_4.0.5         
## [109] MASS_7.3-61
#write data to file for reuse
d %>% write_rds("data/data_for_reuse.rds")

#OSF
if (F) {
  library(osfr)
  
  #login
  osf_auth(readr::read_lines("~/.config/osf_token"))
  
  #the project we will use
  osf_proj = osf_retrieve_node("https://osf.io/XXX/")
  
  #upload all files in project
  #overwrite existing (versioning)
  osf_upload(
    osf_proj,
    path = c("data", "figures", "papers", "notebook.Rmd", "notebook.html", "sessions_info.txt"), 
    conflicts = "overwrite"
    )
}