Item response theory based analysis of Pew Research science quiz data. The 2013 and 2015, 2019.
This is the source code and detailed output for an upcoming paper.
options(digits = 3)
library(kirkegaard)
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── 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,
rms,
metafor,
metaviz
)
## Loading required package: stats4
## Loading required package: lattice
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
##
## The following objects are masked from 'package:tidyr':
##
## expand, pack, unpack
##
## Loading required package: metadat
## Loading required package: numDeriv
##
## Loading the 'metafor' package (version 4.0-0). For an
## introduction to the package please type: help(metafor)
##
##
## Attaching package: 'metafor'
##
## The following object is masked from 'package:rms':
##
## vif
theme_set(theme_bw())
#DIF summary by item
DIF_summary = function(x) {
c(
n_items = nrow(x),
n_favoring_focal_group = sum(x$SIDS > 0),
n_favoring_ref_group = sum(x$SIDS < 0),
n_noDIF = sum(x$SIDS == 0),
prop_favoring_focal_group = sum(x$SIDS > 0)/nrow(x),
prop_favoring_ref_group = sum(x$SIDS < 0)/nrow(x),
prop_noDIF = sum(x$SIDS == 0)/nrow(x)
)
}
save_plot_to_file = function (code, filename, width = 1000, height = 750)
{
on.exit(dev.off())
png(filename = filename, height = height, width = width)
p <- eval.parent(substitute(code))
if (!is.null(p))
print(p)
invisible(p)
}
d2013 = read_sav("data/March 7-10 2013 omnibus/March 7-10 2013 omnibus.public.sav")
d2013 %<>% filter(racethn != 9)
d2013$race2 = d2013$racethn %>% as_factor() %>% str_replace("~Hisp", "") %>% mapvalues(from = "AA", to = "Black") %>% fct_relevel("White")
d2013$race2 %>% table2()
d2013$bw = d2013$race2 %>% mapvalues(from = c("Hispanic", "Other"), to = rep(NA, 2)) %>% fct_relevel("White")
d2013$hw = d2013$race2 %>% mapvalues(from = c("Black", "Other"), to = rep(NA, 2)) %>% fct_relevel("White")
d2013$sex2 = d2013$sex %>% as_factor()
d2013$sex2 %>% table2()
d2013$age_range = d2013$recage %>% as_factor() %>% mapvalues(from = "DK/Ref", to = NA)
d2013$age_range %>% table2()
#score with binary data
d2013_test_responses = d2013 %>% select(pew7a:pew17) %>% map_df(as.numeric)
answers2013 = c(2, 1, 2, 1, 3, 1, 2, 2, 1, 3, 2, 1, 1, 3)
d2013_test = score_items(d2013_test_responses, key = answers2013)
#IRT
d2013_irt_fit = mirt(
d2013_test,
model = 1,
itemtype = "2PL"
)
##
Iteration: 1, Log-Lik: -7361.986, Max-Change: 0.70787
Iteration: 2, Log-Lik: -7253.129, Max-Change: 0.39409
Iteration: 3, Log-Lik: -7228.704, Max-Change: 0.25169
Iteration: 4, Log-Lik: -7220.934, Max-Change: 0.16026
Iteration: 5, Log-Lik: -7218.220, Max-Change: 0.10185
Iteration: 6, Log-Lik: -7217.146, Max-Change: 0.06990
Iteration: 7, Log-Lik: -7216.465, Max-Change: 0.02191
Iteration: 8, Log-Lik: -7216.392, Max-Change: 0.01419
Iteration: 9, Log-Lik: -7216.354, Max-Change: 0.00945
Iteration: 10, Log-Lik: -7216.313, Max-Change: 0.00236
Iteration: 11, Log-Lik: -7216.306, Max-Change: 0.00186
Iteration: 12, Log-Lik: -7216.302, Max-Change: 0.00144
Iteration: 13, Log-Lik: -7216.298, Max-Change: 0.00314
Iteration: 14, Log-Lik: -7216.296, Max-Change: 0.00076
Iteration: 15, Log-Lik: -7216.295, Max-Change: 0.00058
Iteration: 16, Log-Lik: -7216.295, Max-Change: 0.00123
Iteration: 17, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 18, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 19, Log-Lik: -7216.294, Max-Change: 0.00035
Iteration: 20, Log-Lik: -7216.294, Max-Change: 0.00026
Iteration: 21, Log-Lik: -7216.294, Max-Change: 0.00020
Iteration: 22, Log-Lik: -7216.294, Max-Change: 0.00024
Iteration: 23, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 24, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 25, Log-Lik: -7216.294, Max-Change: 0.00007
d2013_irt_fit
##
## Call:
## mirt(data = d2013_test, model = 1, itemtype = "2PL")
##
## Full-information item factor analysis with 1 factor(s).
## Converged within 1e-04 tolerance after 25 EM iterations.
## mirt version: 1.38.1
## M-step optimizer: BFGS
## EM acceleration: Ramsay
## Number of rectangular quadrature: 61
## Latent density type: Gaussian
##
## Log-likelihood = -7216
## Estimated parameters: 28
## AIC = 14489
## BIC = 14625; SABIC = 14536
## G2 (16355) = 2744, p = 1
## RMSEA = 0, CFI = NaN, TLI = NaN
d2013_irt_fit %>% summary()
## F1 h2
## pew7a 0.619 0.3834
## pew7b 0.536 0.2874
## pew7c 0.657 0.4321
## pew7d 0.550 0.3028
## pew8 0.661 0.4371
## pew9 0.843 0.7102
## pew10 0.604 0.3648
## pew11 0.645 0.4166
## pew12 0.740 0.5479
## pew13 0.617 0.3809
## pew14 0.521 0.2710
## pew15 0.581 0.3378
## pew16 0.613 0.3752
## pew17 0.245 0.0602
##
## SS loadings: 5.31
## Proportion Var: 0.379
##
## Factor correlations:
##
## F1
## F1 1
d2013_irt_fit %>% coef(simplify = T)
## $items
## a1 d g u
## pew7a 1.342 1.105 0 1
## pew7b 1.081 -0.040 0 1
## pew7c 1.485 -0.084 0 1
## pew7d 1.122 1.594 0 1
## pew8 1.500 2.263 0 1
## pew9 2.664 1.435 0 1
## pew10 1.290 -1.721 0 1
## pew11 1.438 1.918 0 1
## pew12 1.874 2.245 0 1
## pew13 1.335 1.065 0 1
## pew14 1.038 1.479 0 1
## pew15 1.216 0.600 0 1
## pew16 1.319 0.368 0 1
## pew17 0.431 -0.139 0 1
##
## $means
## F1
## 0
##
## $cov
## F1
## F1 1
#plots
d2013_irt_fit %>% plot(type = "info")
d2013_irt_fit %>% plot(type = "rxx")
d2013_irt_fit %>% plot(type = "trace")
#scores
d2013_irt_fit_scores = fscores(d2013_irt_fit, full.scores = T, full.scores.SE = T)
d2013$irt = d2013_irt_fit_scores[, 1] %>% standardize(focal_group = d2013$race2 == "White")
empirical_rxx(d2013_irt_fit_scores)
## F1
## 0.779
#gaps
#race
GG_denhist(d2013, "irt", "race2", auto_fraction_bounary = F)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
SMD_matrix(d2013$irt, d2013$race2)
## White Black Hispanic Other
## White NA 0.798 0.374 0.260
## Black 0.798 NA -0.424 -0.537
## Hispanic 0.374 -0.424 NA -0.114
## Other 0.260 -0.537 -0.114 NA
SMD_matrix(d2013$irt, d2013$race2, reliability = empirical_rxx(d2013_irt_fit_scores))
## White Black Hispanic Other
## White NA 0.925 0.426 0.296
## Black 0.925 NA -0.483 -0.615
## Hispanic 0.426 -0.483 NA -0.129
## Other 0.296 -0.615 -0.129 NA
describe2(d2013$irt, d2013$race2)
## New names:
## • `` -> `...1`
#sex
GG_denhist(d2013, "irt", "sex2")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
SMD_matrix(d2013$irt, d2013$sex2)
## Male Female
## Male NA 0.317
## Female 0.317 NA
SMD_matrix(d2013$irt, d2013$sex2, reliability = empirical_rxx(d2013_irt_fit_scores))
## Male Female
## Male NA 0.36
## Female 0.36 NA
describe2(d2013$irt, d2013$sex2)
## New names:
## • `` -> `...1`
#test bias
d2013_irt_fit_bias_bw = DIF_test(
items = d2013_test,
model = 1,
group = d2013$bw,
itemtype = "2PL"
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -7361.986, Max-Change: 0.70787
Iteration: 2, Log-Lik: -7253.129, Max-Change: 0.39409
Iteration: 3, Log-Lik: -7228.704, Max-Change: 0.25169
Iteration: 4, Log-Lik: -7220.934, Max-Change: 0.16026
Iteration: 5, Log-Lik: -7218.220, Max-Change: 0.10185
Iteration: 6, Log-Lik: -7217.146, Max-Change: 0.06990
Iteration: 7, Log-Lik: -7216.465, Max-Change: 0.02191
Iteration: 8, Log-Lik: -7216.392, Max-Change: 0.01419
Iteration: 9, Log-Lik: -7216.354, Max-Change: 0.00945
Iteration: 10, Log-Lik: -7216.313, Max-Change: 0.00236
Iteration: 11, Log-Lik: -7216.306, Max-Change: 0.00186
Iteration: 12, Log-Lik: -7216.302, Max-Change: 0.00144
Iteration: 13, Log-Lik: -7216.298, Max-Change: 0.00314
Iteration: 14, Log-Lik: -7216.296, Max-Change: 0.00076
Iteration: 15, Log-Lik: -7216.295, Max-Change: 0.00058
Iteration: 16, Log-Lik: -7216.295, Max-Change: 0.00123
Iteration: 17, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 18, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 19, Log-Lik: -7216.294, Max-Change: 0.00035
Iteration: 20, Log-Lik: -7216.294, Max-Change: 0.00026
Iteration: 21, Log-Lik: -7216.294, Max-Change: 0.00020
Iteration: 22, Log-Lik: -7216.294, Max-Change: 0.00024
Iteration: 23, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 24, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 25, Log-Lik: -7216.294, Max-Change: 0.00007
##
## Step 2: Initial MI fit
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -6272.517, Max-Change: 0.72637
Iteration: 2, Log-Lik: -6138.429, Max-Change: 0.42655
Iteration: 3, Log-Lik: -6116.411, Max-Change: 0.25089
Iteration: 4, Log-Lik: -6110.120, Max-Change: 0.15721
Iteration: 5, Log-Lik: -6107.384, Max-Change: 0.10292
Iteration: 6, Log-Lik: -6106.040, Max-Change: 0.06942
Iteration: 7, Log-Lik: -6105.008, Max-Change: 0.04896
Iteration: 8, Log-Lik: -6104.786, Max-Change: 0.02733
Iteration: 9, Log-Lik: -6104.688, Max-Change: 0.01707
Iteration: 10, Log-Lik: -6104.619, Max-Change: 0.01526
Iteration: 11, Log-Lik: -6104.595, Max-Change: 0.00839
Iteration: 12, Log-Lik: -6104.587, Max-Change: 0.00510
Iteration: 13, Log-Lik: -6104.582, Max-Change: 0.00385
Iteration: 14, Log-Lik: -6104.580, Max-Change: 0.00233
Iteration: 15, Log-Lik: -6104.579, Max-Change: 0.00152
Iteration: 16, Log-Lik: -6104.578, Max-Change: 0.00145
Iteration: 17, Log-Lik: -6104.578, Max-Change: 0.00081
Iteration: 18, Log-Lik: -6104.578, Max-Change: 0.00050
Iteration: 19, Log-Lik: -6104.578, Max-Change: 0.00038
Iteration: 20, Log-Lik: -6104.578, Max-Change: 0.00024
Iteration: 21, Log-Lik: -6104.578, Max-Change: 0.00016
Iteration: 22, Log-Lik: -6104.578, Max-Change: 0.00021
Iteration: 23, Log-Lik: -6104.578, Max-Change: 0.00010
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -7580.730, Max-Change: 0.61046
Iteration: 2, Log-Lik: -7493.685, Max-Change: 0.40006
Iteration: 3, Log-Lik: -7472.048, Max-Change: 0.25629
Iteration: 4, Log-Lik: -7465.628, Max-Change: 0.15288
Iteration: 5, Log-Lik: -7463.440, Max-Change: 0.10282
Iteration: 6, Log-Lik: -7462.613, Max-Change: 0.06824
Iteration: 7, Log-Lik: -7462.133, Max-Change: 0.02817
Iteration: 8, Log-Lik: -7462.053, Max-Change: 0.01859
Iteration: 9, Log-Lik: -7462.013, Max-Change: 0.01229
Iteration: 10, Log-Lik: -7461.975, Max-Change: 0.00334
Iteration: 11, Log-Lik: -7461.969, Max-Change: 0.00176
Iteration: 12, Log-Lik: -7461.966, Max-Change: 0.00277
Iteration: 13, Log-Lik: -7461.963, Max-Change: 0.00087
Iteration: 14, Log-Lik: -7461.962, Max-Change: 0.00067
Iteration: 15, Log-Lik: -7461.962, Max-Change: 0.00051
Iteration: 16, Log-Lik: -7461.961, Max-Change: 0.00184
Iteration: 17, Log-Lik: -7461.961, Max-Change: 0.00148
Iteration: 18, Log-Lik: -7461.961, Max-Change: 0.00128
Iteration: 19, Log-Lik: -7461.961, Max-Change: 0.00021
Iteration: 20, Log-Lik: -7461.961, Max-Change: 0.00015
Iteration: 21, Log-Lik: -7461.961, Max-Change: 0.00014
Iteration: 22, Log-Lik: -7461.961, Max-Change: 0.00005
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -7361.986, Max-Change: 0.70787
Iteration: 2, Log-Lik: -7253.129, Max-Change: 0.39409
Iteration: 3, Log-Lik: -7228.704, Max-Change: 0.25169
Iteration: 4, Log-Lik: -7220.934, Max-Change: 0.16026
Iteration: 5, Log-Lik: -7218.220, Max-Change: 0.10185
Iteration: 6, Log-Lik: -7217.146, Max-Change: 0.06990
Iteration: 7, Log-Lik: -7216.465, Max-Change: 0.02191
Iteration: 8, Log-Lik: -7216.392, Max-Change: 0.01419
Iteration: 9, Log-Lik: -7216.354, Max-Change: 0.00945
Iteration: 10, Log-Lik: -7216.313, Max-Change: 0.00236
Iteration: 11, Log-Lik: -7216.306, Max-Change: 0.00186
Iteration: 12, Log-Lik: -7216.302, Max-Change: 0.00144
Iteration: 13, Log-Lik: -7216.298, Max-Change: 0.00314
Iteration: 14, Log-Lik: -7216.296, Max-Change: 0.00076
Iteration: 15, Log-Lik: -7216.295, Max-Change: 0.00058
Iteration: 16, Log-Lik: -7216.295, Max-Change: 0.00123
Iteration: 17, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 18, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 19, Log-Lik: -7216.294, Max-Change: 0.00035
Iteration: 20, Log-Lik: -7216.294, Max-Change: 0.00026
Iteration: 21, Log-Lik: -7216.294, Max-Change: 0.00020
Iteration: 22, Log-Lik: -7216.294, Max-Change: 0.00024
Iteration: 23, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 24, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 25, Log-Lik: -7216.294, Max-Change: 0.00007
##
## Step 6: Fit with anchor items, liberal threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -6272.517, Max-Change: 0.89410
Iteration: 2, Log-Lik: -6129.060, Max-Change: 0.43203
Iteration: 3, Log-Lik: -6105.575, Max-Change: 0.25143
Iteration: 4, Log-Lik: -6099.522, Max-Change: 0.15434
Iteration: 5, Log-Lik: -6097.119, Max-Change: 0.09902
Iteration: 6, Log-Lik: -6095.954, Max-Change: 0.06568
Iteration: 7, Log-Lik: -6095.016, Max-Change: 0.05531
Iteration: 8, Log-Lik: -6094.798, Max-Change: 0.03124
Iteration: 9, Log-Lik: -6094.694, Max-Change: 0.02077
Iteration: 10, Log-Lik: -6094.624, Max-Change: 0.02416
Iteration: 11, Log-Lik: -6094.575, Max-Change: 0.01141
Iteration: 12, Log-Lik: -6094.563, Max-Change: 0.00682
Iteration: 13, Log-Lik: -6094.557, Max-Change: 0.00492
Iteration: 14, Log-Lik: -6094.554, Max-Change: 0.00329
Iteration: 15, Log-Lik: -6094.553, Max-Change: 0.00236
Iteration: 16, Log-Lik: -6094.552, Max-Change: 0.00292
Iteration: 17, Log-Lik: -6094.551, Max-Change: 0.00143
Iteration: 18, Log-Lik: -6094.551, Max-Change: 0.00087
Iteration: 19, Log-Lik: -6094.551, Max-Change: 0.00061
Iteration: 20, Log-Lik: -6094.550, Max-Change: 0.00042
Iteration: 21, Log-Lik: -6094.550, Max-Change: 0.00034
Iteration: 22, Log-Lik: -6094.550, Max-Change: 0.00045
Iteration: 23, Log-Lik: -6094.550, Max-Change: 0.00022
Iteration: 24, Log-Lik: -6094.550, Max-Change: 0.00013
Iteration: 25, Log-Lik: -6094.550, Max-Change: 0.00009
##
## Step 7: Fit with anchor items, conservative threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -6272.517, Max-Change: 0.72637
Iteration: 2, Log-Lik: -6138.429, Max-Change: 0.42655
Iteration: 3, Log-Lik: -6116.411, Max-Change: 0.25089
Iteration: 4, Log-Lik: -6110.120, Max-Change: 0.15721
Iteration: 5, Log-Lik: -6107.384, Max-Change: 0.10292
Iteration: 6, Log-Lik: -6106.040, Max-Change: 0.06942
Iteration: 7, Log-Lik: -6105.008, Max-Change: 0.04896
Iteration: 8, Log-Lik: -6104.786, Max-Change: 0.02733
Iteration: 9, Log-Lik: -6104.688, Max-Change: 0.01707
Iteration: 10, Log-Lik: -6104.619, Max-Change: 0.01526
Iteration: 11, Log-Lik: -6104.595, Max-Change: 0.00839
Iteration: 12, Log-Lik: -6104.587, Max-Change: 0.00510
Iteration: 13, Log-Lik: -6104.582, Max-Change: 0.00385
Iteration: 14, Log-Lik: -6104.580, Max-Change: 0.00233
Iteration: 15, Log-Lik: -6104.579, Max-Change: 0.00152
Iteration: 16, Log-Lik: -6104.578, Max-Change: 0.00145
Iteration: 17, Log-Lik: -6104.578, Max-Change: 0.00081
Iteration: 18, Log-Lik: -6104.578, Max-Change: 0.00050
Iteration: 19, Log-Lik: -6104.578, Max-Change: 0.00038
Iteration: 20, Log-Lik: -6104.578, Max-Change: 0.00024
Iteration: 21, Log-Lik: -6104.578, Max-Change: 0.00016
Iteration: 22, Log-Lik: -6104.578, Max-Change: 0.00021
Iteration: 23, Log-Lik: -6104.578, Max-Change: 0.00010
##
## Step 8: Get scores
d2013_irt_fit_bias_hw = DIF_test(
items = d2013_test,
model = 1,
group = d2013$hw,
itemtype = "2PL"
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -7361.986, Max-Change: 0.70787
Iteration: 2, Log-Lik: -7253.129, Max-Change: 0.39409
Iteration: 3, Log-Lik: -7228.704, Max-Change: 0.25169
Iteration: 4, Log-Lik: -7220.934, Max-Change: 0.16026
Iteration: 5, Log-Lik: -7218.220, Max-Change: 0.10185
Iteration: 6, Log-Lik: -7217.146, Max-Change: 0.06990
Iteration: 7, Log-Lik: -7216.465, Max-Change: 0.02191
Iteration: 8, Log-Lik: -7216.392, Max-Change: 0.01419
Iteration: 9, Log-Lik: -7216.354, Max-Change: 0.00945
Iteration: 10, Log-Lik: -7216.313, Max-Change: 0.00236
Iteration: 11, Log-Lik: -7216.306, Max-Change: 0.00186
Iteration: 12, Log-Lik: -7216.302, Max-Change: 0.00144
Iteration: 13, Log-Lik: -7216.298, Max-Change: 0.00314
Iteration: 14, Log-Lik: -7216.296, Max-Change: 0.00076
Iteration: 15, Log-Lik: -7216.295, Max-Change: 0.00058
Iteration: 16, Log-Lik: -7216.295, Max-Change: 0.00123
Iteration: 17, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 18, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 19, Log-Lik: -7216.294, Max-Change: 0.00035
Iteration: 20, Log-Lik: -7216.294, Max-Change: 0.00026
Iteration: 21, Log-Lik: -7216.294, Max-Change: 0.00020
Iteration: 22, Log-Lik: -7216.294, Max-Change: 0.00024
Iteration: 23, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 24, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 25, Log-Lik: -7216.294, Max-Change: 0.00007
##
## Step 2: Initial MI fit
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -6028.595, Max-Change: 0.64075
Iteration: 2, Log-Lik: -5929.281, Max-Change: 0.35496
Iteration: 3, Log-Lik: -5911.364, Max-Change: 0.20853
Iteration: 4, Log-Lik: -5906.160, Max-Change: 0.13208
Iteration: 5, Log-Lik: -5903.960, Max-Change: 0.08765
Iteration: 6, Log-Lik: -5902.903, Max-Change: 0.06240
Iteration: 7, Log-Lik: -5902.099, Max-Change: 0.06037
Iteration: 8, Log-Lik: -5901.931, Max-Change: 0.03274
Iteration: 9, Log-Lik: -5901.854, Max-Change: 0.01994
Iteration: 10, Log-Lik: -5901.793, Max-Change: 0.01674
Iteration: 11, Log-Lik: -5901.777, Max-Change: 0.00931
Iteration: 12, Log-Lik: -5901.769, Max-Change: 0.00572
Iteration: 13, Log-Lik: -5901.762, Max-Change: 0.00489
Iteration: 14, Log-Lik: -5901.760, Max-Change: 0.00272
Iteration: 15, Log-Lik: -5901.759, Max-Change: 0.00167
Iteration: 16, Log-Lik: -5901.758, Max-Change: 0.00153
Iteration: 17, Log-Lik: -5901.757, Max-Change: 0.00082
Iteration: 18, Log-Lik: -5901.757, Max-Change: 0.00050
Iteration: 19, Log-Lik: -5901.757, Max-Change: 0.00047
Iteration: 20, Log-Lik: -5901.757, Max-Change: 0.00025
Iteration: 21, Log-Lik: -5901.757, Max-Change: 0.00015
Iteration: 22, Log-Lik: -5901.757, Max-Change: 0.00014
Iteration: 23, Log-Lik: -5901.757, Max-Change: 0.00008
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -7748.353, Max-Change: 0.37022
Iteration: 2, Log-Lik: -7703.251, Max-Change: 0.21556
Iteration: 3, Log-Lik: -7690.986, Max-Change: 0.11193
Iteration: 4, Log-Lik: -7687.926, Max-Change: 0.06181
Iteration: 5, Log-Lik: -7687.001, Max-Change: 0.03672
Iteration: 6, Log-Lik: -7686.694, Max-Change: 0.02133
Iteration: 7, Log-Lik: -7686.563, Max-Change: 0.01054
Iteration: 8, Log-Lik: -7686.534, Max-Change: 0.00585
Iteration: 9, Log-Lik: -7686.521, Max-Change: 0.00373
Iteration: 10, Log-Lik: -7686.516, Max-Change: 0.00191
Iteration: 11, Log-Lik: -7686.514, Max-Change: 0.00124
Iteration: 12, Log-Lik: -7686.513, Max-Change: 0.00083
Iteration: 13, Log-Lik: -7686.512, Max-Change: 0.00043
Iteration: 14, Log-Lik: -7686.512, Max-Change: 0.00071
Iteration: 15, Log-Lik: -7686.511, Max-Change: 0.00065
Iteration: 16, Log-Lik: -7686.511, Max-Change: 0.00020
Iteration: 17, Log-Lik: -7686.511, Max-Change: 0.00011
Iteration: 18, Log-Lik: -7686.511, Max-Change: 0.00009
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -7575.800, Max-Change: 0.40543
Iteration: 2, Log-Lik: -7511.285, Max-Change: 0.20195
Iteration: 3, Log-Lik: -7496.538, Max-Change: 0.11930
Iteration: 4, Log-Lik: -7492.723, Max-Change: 0.06185
Iteration: 5, Log-Lik: -7491.575, Max-Change: 0.03748
Iteration: 6, Log-Lik: -7491.151, Max-Change: 0.02166
Iteration: 7, Log-Lik: -7490.943, Max-Change: 0.00782
Iteration: 8, Log-Lik: -7490.906, Max-Change: 0.00529
Iteration: 9, Log-Lik: -7490.887, Max-Change: 0.00351
Iteration: 10, Log-Lik: -7490.875, Max-Change: 0.00176
Iteration: 11, Log-Lik: -7490.873, Max-Change: 0.00082
Iteration: 12, Log-Lik: -7490.872, Max-Change: 0.00059
Iteration: 13, Log-Lik: -7490.870, Max-Change: 0.00039
Iteration: 14, Log-Lik: -7490.870, Max-Change: 0.00260
Iteration: 15, Log-Lik: -7490.869, Max-Change: 0.00206
Iteration: 16, Log-Lik: -7490.869, Max-Change: 0.00023
Iteration: 17, Log-Lik: -7490.869, Max-Change: 0.00025
Iteration: 18, Log-Lik: -7490.869, Max-Change: 0.00016
Iteration: 19, Log-Lik: -7490.869, Max-Change: 0.00010
Iteration: 20, Log-Lik: -7490.869, Max-Change: 0.00007
##
## Step 6: Fit with anchor items, liberal threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -6028.595, Max-Change: 0.89713
Iteration: 2, Log-Lik: -5910.849, Max-Change: 0.44777
Iteration: 3, Log-Lik: -5890.451, Max-Change: 0.27716
Iteration: 4, Log-Lik: -5885.174, Max-Change: 0.17404
Iteration: 5, Log-Lik: -5883.384, Max-Change: 0.11055
Iteration: 6, Log-Lik: -5882.658, Max-Change: 0.07093
Iteration: 7, Log-Lik: -5882.146, Max-Change: 0.05301
Iteration: 8, Log-Lik: -5882.060, Max-Change: 0.03128
Iteration: 9, Log-Lik: -5882.012, Max-Change: 0.02186
Iteration: 10, Log-Lik: -5881.966, Max-Change: 0.02836
Iteration: 11, Log-Lik: -5881.950, Max-Change: 0.01277
Iteration: 12, Log-Lik: -5881.945, Max-Change: 0.00771
Iteration: 13, Log-Lik: -5881.941, Max-Change: 0.00684
Iteration: 14, Log-Lik: -5881.939, Max-Change: 0.00397
Iteration: 15, Log-Lik: -5881.938, Max-Change: 0.00276
Iteration: 16, Log-Lik: -5881.937, Max-Change: 0.00383
Iteration: 17, Log-Lik: -5881.937, Max-Change: 0.00163
Iteration: 18, Log-Lik: -5881.937, Max-Change: 0.00096
Iteration: 19, Log-Lik: -5881.937, Max-Change: 0.00073
Iteration: 20, Log-Lik: -5881.937, Max-Change: 0.00047
Iteration: 21, Log-Lik: -5881.937, Max-Change: 0.00034
Iteration: 22, Log-Lik: -5881.937, Max-Change: 0.00042
Iteration: 23, Log-Lik: -5881.937, Max-Change: 0.00021
Iteration: 24, Log-Lik: -5881.937, Max-Change: 0.00014
Iteration: 25, Log-Lik: -5881.937, Max-Change: 0.00012
Iteration: 26, Log-Lik: -5881.937, Max-Change: 0.00008
##
## Step 7: Fit with anchor items, conservative threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -6028.595, Max-Change: 0.89688
Iteration: 2, Log-Lik: -5918.369, Max-Change: 0.44746
Iteration: 3, Log-Lik: -5898.685, Max-Change: 0.27716
Iteration: 4, Log-Lik: -5893.483, Max-Change: 0.17439
Iteration: 5, Log-Lik: -5891.570, Max-Change: 0.11128
Iteration: 6, Log-Lik: -5890.729, Max-Change: 0.07184
Iteration: 7, Log-Lik: -5890.097, Max-Change: 0.06012
Iteration: 8, Log-Lik: -5889.987, Max-Change: 0.03238
Iteration: 9, Log-Lik: -5889.935, Max-Change: 0.02058
Iteration: 10, Log-Lik: -5889.890, Max-Change: 0.02034
Iteration: 11, Log-Lik: -5889.877, Max-Change: 0.01023
Iteration: 12, Log-Lik: -5889.872, Max-Change: 0.00627
Iteration: 13, Log-Lik: -5889.867, Max-Change: 0.00561
Iteration: 14, Log-Lik: -5889.866, Max-Change: 0.00301
Iteration: 15, Log-Lik: -5889.865, Max-Change: 0.00193
Iteration: 16, Log-Lik: -5889.864, Max-Change: 0.00205
Iteration: 17, Log-Lik: -5889.864, Max-Change: 0.00101
Iteration: 18, Log-Lik: -5889.864, Max-Change: 0.00061
Iteration: 19, Log-Lik: -5889.864, Max-Change: 0.00055
Iteration: 20, Log-Lik: -5889.864, Max-Change: 0.00030
Iteration: 21, Log-Lik: -5889.864, Max-Change: 0.00020
Iteration: 22, Log-Lik: -5889.864, Max-Change: 0.00024
Iteration: 23, Log-Lik: -5889.864, Max-Change: 0.00012
Iteration: 24, Log-Lik: -5889.864, Max-Change: 0.00007
##
## Step 8: Get scores
d2013_irt_fit_bias_bw$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS 0.1147
## 2 UTDS 0.3138
## 3 UETSDS 0.1279
## 4 ETSSD 0.0487
## 5 Starks.DTFR 0.0906
## 6 UDTFR 0.3021
## 7 UETSDN 0.1232
## 8 theta.of.max.test.D -1.5552
## 9 Test.Dmax 0.1774
##
## $conservative
## Effect Size Value
## 1 STDS 0.00
## 2 UTDS 0.00
## 3 UETSDS 0.00
## 4 ETSSD 0.00
## 5 Starks.DTFR 0.00
## 6 UDTFR 0.00
## 7 UETSDN 0.00
## 8 theta.of.max.test.D -0.94
## 9 Test.Dmax 0.00
d2013_irt_fit_bias_bw$effect_size_items
## $liberal
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.533
## item.2 0.131 0.131 0.119 0.119 0.834 -0.701 0.150 0.416
## item.3 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.257
## item.4 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.666
## item.5 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.712
## item.6 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.387
## item.7 0.082 0.082 0.071 0.076 1.186 -0.393 0.101 0.149
## item.8 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.677
## item.9 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.670
## item.10 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.520
## item.11 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.670
## item.12 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.444
## item.13 -0.098 0.101 -0.100 0.107 -0.576 0.460 -0.229 0.302
## item.14 0.000 0.000 0.000 0.000 0.000 -0.932 0.000 0.390
## mean.ES.ref
## item.1 0.533
## item.2 0.285
## item.3 0.257
## item.4 0.666
## item.5 0.712
## item.6 0.387
## item.7 0.067
## item.8 0.677
## item.9 0.670
## item.10 0.520
## item.11 0.670
## item.12 0.444
## item.13 0.401
## item.14 0.390
##
## $conservative
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc mean.ES.ref
## item.1 0 0 0 0 0 -0.94 0 0.537 0.537
## item.2 0 0 0 0 0 -0.94 0 0.313 0.313
## item.3 0 0 0 0 0 -0.94 0 0.258 0.258
## item.4 0 0 0 0 0 -0.94 0 0.669 0.669
## item.5 0 0 0 0 0 -0.94 0 0.717 0.717
## item.6 0 0 0 0 0 -0.94 0 0.391 0.391
## item.7 0 0 0 0 0 -0.94 0 0.082 0.082
## item.8 0 0 0 0 0 -0.94 0 0.682 0.682
## item.9 0 0 0 0 0 -0.94 0 0.677 0.677
## item.10 0 0 0 0 0 -0.94 0 0.524 0.524
## item.11 0 0 0 0 0 -0.94 0 0.674 0.674
## item.12 0 0 0 0 0 -0.94 0 0.446 0.446
## item.13 0 0 0 0 0 -0.94 0 0.388 0.388
## item.14 0 0 0 0 0 -0.94 0 0.390 0.390
d2013_irt_fit_bias_bw$effect_size_items$conservative %>% DIF_summary()
## n_items n_favoring_focal_group n_favoring_ref_group
## 14 0 0
## n_noDIF prop_favoring_focal_group prop_favoring_ref_group
## 14 0 0
## prop_noDIF
## 1
save_plot_to_file(d2013_irt_fit_bias_bw$fits$anchor_conservative %>% plot(type = "trace"), filename = "figs/2013_dif_bw.png")
d2013_irt_fit_bias_hw$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS -0.02041
## 2 UTDS 0.60150
## 3 UETSDS 0.32897
## 4 ETSSD -0.00735
## 5 Starks.DTFR -0.00885
## 6 UDTFR 0.59950
## 7 UETSDN 0.31623
## 8 theta.of.max.test.D -1.52179
## 9 Test.Dmax 0.46456
##
## $conservative
## Effect Size Value
## 1 STDS -0.00527
## 2 UTDS 0.31335
## 3 UETSDS 0.21080
## 4 ETSSD -0.00194
## 5 Starks.DTFR 0.00213
## 6 UDTFR 0.31259
## 7 UETSDN 0.20446
## 8 theta.of.max.test.D -1.45642
## 9 Test.Dmax 0.31697
d2013_irt_fit_bias_hw$effect_size_items
## $liberal
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.646
## item.2 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.415
## item.3 0.129 0.129 0.128 0.128 0.507 -0.421 0.179 0.517
## item.4 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.737
## item.5 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.806
## item.6 0.145 0.154 0.150 0.159 0.475 -1.169 0.365 0.722
## item.7 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.143
## item.8 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.755
## item.9 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.773
## item.10 -0.152 0.170 -0.148 0.167 -0.744 0.475 -0.263 0.487
## item.11 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.744
## item.12 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.543
## item.13 -0.142 0.149 -0.138 0.146 -0.663 0.596 -0.255 0.393
## item.14 0.000 0.000 0.000 0.000 0.000 -0.791 0.000 0.438
## mean.ES.ref
## item.1 0.646
## item.2 0.415
## item.3 0.388
## item.4 0.737
## item.5 0.806
## item.6 0.577
## item.7 0.143
## item.8 0.755
## item.9 0.773
## item.10 0.639
## item.11 0.744
## item.12 0.543
## item.13 0.535
## item.14 0.438
##
## $conservative
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.646
## item.2 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.410
## item.3 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.395
## item.4 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.737
## item.5 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.808
## item.6 0.147 0.152 0.147 0.154 0.492 -1.151 0.352 0.721
## item.7 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.137
## item.8 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.757
## item.9 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.777
## item.10 -0.152 0.161 -0.145 0.159 -0.759 0.310 -0.247 0.487
## item.11 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.745
## item.12 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.540
## item.13 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.521
## item.14 0.000 0.000 0.000 0.000 0.000 -0.797 0.000 0.437
## mean.ES.ref
## item.1 0.646
## item.2 0.410
## item.3 0.395
## item.4 0.737
## item.5 0.808
## item.6 0.574
## item.7 0.137
## item.8 0.757
## item.9 0.777
## item.10 0.640
## item.11 0.745
## item.12 0.540
## item.13 0.521
## item.14 0.437
d2013_irt_fit_bias_hw$effect_size_items$conservative %>% DIF_summary()
## n_items n_favoring_focal_group n_favoring_ref_group
## 14.0000 1.0000 1.0000
## n_noDIF prop_favoring_focal_group prop_favoring_ref_group
## 12.0000 0.0714 0.0714
## prop_noDIF
## 0.8571
save_plot_to_file(d2013_irt_fit_bias_hw$fits$anchor_conservative %>% plot(type = "trace"), filename = "figs/2013_dif_hw.png")
d2013_irt_fit_bias_sex = DIF_test(
items = d2013_test,
model = 1,
group = d2013$sex2,
itemtype = "2PL"
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -7361.986, Max-Change: 0.70787
Iteration: 2, Log-Lik: -7253.129, Max-Change: 0.39409
Iteration: 3, Log-Lik: -7228.704, Max-Change: 0.25169
Iteration: 4, Log-Lik: -7220.934, Max-Change: 0.16026
Iteration: 5, Log-Lik: -7218.220, Max-Change: 0.10185
Iteration: 6, Log-Lik: -7217.146, Max-Change: 0.06990
Iteration: 7, Log-Lik: -7216.465, Max-Change: 0.02191
Iteration: 8, Log-Lik: -7216.392, Max-Change: 0.01419
Iteration: 9, Log-Lik: -7216.354, Max-Change: 0.00945
Iteration: 10, Log-Lik: -7216.313, Max-Change: 0.00236
Iteration: 11, Log-Lik: -7216.306, Max-Change: 0.00186
Iteration: 12, Log-Lik: -7216.302, Max-Change: 0.00144
Iteration: 13, Log-Lik: -7216.298, Max-Change: 0.00314
Iteration: 14, Log-Lik: -7216.296, Max-Change: 0.00076
Iteration: 15, Log-Lik: -7216.295, Max-Change: 0.00058
Iteration: 16, Log-Lik: -7216.295, Max-Change: 0.00123
Iteration: 17, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 18, Log-Lik: -7216.294, Max-Change: 0.00085
Iteration: 19, Log-Lik: -7216.294, Max-Change: 0.00035
Iteration: 20, Log-Lik: -7216.294, Max-Change: 0.00026
Iteration: 21, Log-Lik: -7216.294, Max-Change: 0.00020
Iteration: 22, Log-Lik: -7216.294, Max-Change: 0.00024
Iteration: 23, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 24, Log-Lik: -7216.294, Max-Change: 0.00017
Iteration: 25, Log-Lik: -7216.294, Max-Change: 0.00007
##
## Step 2: Initial MI fit
##
Iteration: 1, Log-Lik: -7361.986, Max-Change: 0.68509
Iteration: 2, Log-Lik: -7241.855, Max-Change: 0.38674
Iteration: 3, Log-Lik: -7221.581, Max-Change: 0.23133
Iteration: 4, Log-Lik: -7213.901, Max-Change: 0.15324
Iteration: 5, Log-Lik: -7209.060, Max-Change: 0.11048
Iteration: 6, Log-Lik: -7205.622, Max-Change: 0.08498
Iteration: 7, Log-Lik: -7202.031, Max-Change: 0.11282
Iteration: 8, Log-Lik: -7198.545, Max-Change: 0.04564
Iteration: 9, Log-Lik: -7197.709, Max-Change: 0.02680
Iteration: 10, Log-Lik: -7197.103, Max-Change: 0.02341
Iteration: 11, Log-Lik: -7196.765, Max-Change: 0.01942
Iteration: 12, Log-Lik: -7196.532, Max-Change: 0.01894
Iteration: 13, Log-Lik: -7196.374, Max-Change: 0.02684
Iteration: 14, Log-Lik: -7196.003, Max-Change: 0.01118
Iteration: 15, Log-Lik: -7195.938, Max-Change: 0.00627
Iteration: 16, Log-Lik: -7195.908, Max-Change: 0.00559
Iteration: 17, Log-Lik: -7195.887, Max-Change: 0.00573
Iteration: 18, Log-Lik: -7195.872, Max-Change: 0.00538
Iteration: 19, Log-Lik: -7195.862, Max-Change: 0.00658
Iteration: 20, Log-Lik: -7195.836, Max-Change: 0.00285
Iteration: 21, Log-Lik: -7195.831, Max-Change: 0.00161
Iteration: 22, Log-Lik: -7195.829, Max-Change: 0.00148
Iteration: 23, Log-Lik: -7195.828, Max-Change: 0.00151
Iteration: 24, Log-Lik: -7195.827, Max-Change: 0.00145
Iteration: 25, Log-Lik: -7195.826, Max-Change: 0.00173
Iteration: 26, Log-Lik: -7195.824, Max-Change: 0.00075
Iteration: 27, Log-Lik: -7195.824, Max-Change: 0.00043
Iteration: 28, Log-Lik: -7195.824, Max-Change: 0.00042
Iteration: 29, Log-Lik: -7195.824, Max-Change: 0.00041
Iteration: 30, Log-Lik: -7195.823, Max-Change: 0.00039
Iteration: 31, Log-Lik: -7195.823, Max-Change: 0.00047
Iteration: 32, Log-Lik: -7195.823, Max-Change: 0.00020
Iteration: 33, Log-Lik: -7195.823, Max-Change: 0.00012
Iteration: 34, Log-Lik: -7195.823, Max-Change: 0.00011
Iteration: 35, Log-Lik: -7195.823, Max-Change: 0.00010
Iteration: 36, Log-Lik: -7195.823, Max-Change: 0.00011
Iteration: 37, Log-Lik: -7195.823, Max-Change: 0.00013
Iteration: 38, Log-Lik: -7195.823, Max-Change: 0.00006
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -7872.748, Max-Change: 0.41373
Iteration: 2, Log-Lik: -7833.231, Max-Change: 0.31982
Iteration: 3, Log-Lik: -7817.782, Max-Change: 0.23521
Iteration: 4, Log-Lik: -7812.339, Max-Change: 0.16884
Iteration: 5, Log-Lik: -7810.383, Max-Change: 0.12608
Iteration: 6, Log-Lik: -7809.565, Max-Change: 0.09337
Iteration: 7, Log-Lik: -7808.882, Max-Change: 0.04030
Iteration: 8, Log-Lik: -7808.814, Max-Change: 0.03142
Iteration: 9, Log-Lik: -7808.775, Max-Change: 0.02487
Iteration: 10, Log-Lik: -7808.715, Max-Change: 0.00935
Iteration: 11, Log-Lik: -7808.712, Max-Change: 0.00493
Iteration: 12, Log-Lik: -7808.710, Max-Change: 0.00457
Iteration: 13, Log-Lik: -7808.708, Max-Change: 0.00501
Iteration: 14, Log-Lik: -7808.708, Max-Change: 0.00296
Iteration: 15, Log-Lik: -7808.707, Max-Change: 0.00048
Iteration: 16, Log-Lik: -7808.707, Max-Change: 0.00048
Iteration: 17, Log-Lik: -7808.707, Max-Change: 0.00045
Iteration: 18, Log-Lik: -7808.707, Max-Change: 0.00202
Iteration: 19, Log-Lik: -7808.707, Max-Change: 0.00089
Iteration: 20, Log-Lik: -7808.707, Max-Change: 0.00084
Iteration: 21, Log-Lik: -7808.707, Max-Change: 0.00079
Iteration: 22, Log-Lik: -7808.707, Max-Change: 0.00115
Iteration: 23, Log-Lik: -7808.707, Max-Change: 0.00019
Iteration: 24, Log-Lik: -7808.707, Max-Change: 0.00018
Iteration: 25, Log-Lik: -7808.707, Max-Change: 0.00017
Iteration: 26, Log-Lik: -7808.707, Max-Change: 0.00016
Iteration: 27, Log-Lik: -7808.707, Max-Change: 0.00015
Iteration: 28, Log-Lik: -7808.707, Max-Change: 0.00014
Iteration: 29, Log-Lik: -7808.707, Max-Change: 0.00014
Iteration: 30, Log-Lik: -7808.707, Max-Change: 0.00013
Iteration: 31, Log-Lik: -7808.707, Max-Change: 0.00012
Iteration: 32, Log-Lik: -7808.707, Max-Change: 0.00012
Iteration: 33, Log-Lik: -7808.707, Max-Change: 0.00011
Iteration: 34, Log-Lik: -7808.707, Max-Change: 0.00011
Iteration: 35, Log-Lik: -7808.707, Max-Change: 0.00010
Iteration: 36, Log-Lik: -7808.707, Max-Change: 0.00010
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -7600.545, Max-Change: 0.61362
Iteration: 2, Log-Lik: -7522.345, Max-Change: 0.42256
Iteration: 3, Log-Lik: -7502.906, Max-Change: 0.28264
Iteration: 4, Log-Lik: -7496.989, Max-Change: 0.18404
Iteration: 5, Log-Lik: -7494.956, Max-Change: 0.12136
Iteration: 6, Log-Lik: -7494.181, Max-Change: 0.08301
Iteration: 7, Log-Lik: -7493.668, Max-Change: 0.03001
Iteration: 8, Log-Lik: -7493.626, Max-Change: 0.02035
Iteration: 9, Log-Lik: -7493.603, Max-Change: 0.01236
Iteration: 10, Log-Lik: -7493.591, Max-Change: 0.00771
Iteration: 11, Log-Lik: -7493.586, Max-Change: 0.00538
Iteration: 12, Log-Lik: -7493.583, Max-Change: 0.00292
Iteration: 13, Log-Lik: -7493.581, Max-Change: 0.00223
Iteration: 14, Log-Lik: -7493.580, Max-Change: 0.00371
Iteration: 15, Log-Lik: -7493.579, Max-Change: 0.00073
Iteration: 16, Log-Lik: -7493.579, Max-Change: 0.00050
Iteration: 17, Log-Lik: -7493.579, Max-Change: 0.00050
Iteration: 18, Log-Lik: -7493.579, Max-Change: 0.00039
Iteration: 19, Log-Lik: -7493.579, Max-Change: 0.00027
Iteration: 20, Log-Lik: -7493.579, Max-Change: 0.00024
Iteration: 21, Log-Lik: -7493.579, Max-Change: 0.00022
Iteration: 22, Log-Lik: -7493.579, Max-Change: 0.00019
Iteration: 23, Log-Lik: -7493.579, Max-Change: 0.00017
Iteration: 24, Log-Lik: -7493.579, Max-Change: 0.00016
Iteration: 25, Log-Lik: -7493.579, Max-Change: 0.00015
Iteration: 26, Log-Lik: -7493.579, Max-Change: 0.00013
Iteration: 27, Log-Lik: -7493.579, Max-Change: 0.00012
Iteration: 28, Log-Lik: -7493.579, Max-Change: 0.00011
Iteration: 29, Log-Lik: -7493.579, Max-Change: 0.00010
Iteration: 30, Log-Lik: -7493.579, Max-Change: 0.00010
##
## Step 6: Fit with anchor items, liberal threshold
##
Iteration: 1, Log-Lik: -7361.986, Max-Change: 0.80112
Iteration: 2, Log-Lik: -7194.770, Max-Change: 0.38655
Iteration: 3, Log-Lik: -7172.411, Max-Change: 0.22024
Iteration: 4, Log-Lik: -7165.779, Max-Change: 0.13464
Iteration: 5, Log-Lik: -7162.409, Max-Change: 0.08951
Iteration: 6, Log-Lik: -7160.104, Max-Change: 0.06436
Iteration: 7, Log-Lik: -7157.146, Max-Change: 0.09851
Iteration: 8, Log-Lik: -7154.997, Max-Change: 0.04509
Iteration: 9, Log-Lik: -7154.102, Max-Change: 0.03657
Iteration: 10, Log-Lik: -7153.095, Max-Change: 0.06208
Iteration: 11, Log-Lik: -7151.956, Max-Change: 0.02594
Iteration: 12, Log-Lik: -7151.596, Max-Change: 0.02351
Iteration: 13, Log-Lik: -7151.165, Max-Change: 0.03150
Iteration: 14, Log-Lik: -7150.798, Max-Change: 0.01512
Iteration: 15, Log-Lik: -7150.640, Max-Change: 0.01760
Iteration: 16, Log-Lik: -7150.508, Max-Change: 0.02648
Iteration: 17, Log-Lik: -7150.212, Max-Change: 0.01022
Iteration: 18, Log-Lik: -7150.146, Max-Change: 0.01030
Iteration: 19, Log-Lik: -7150.077, Max-Change: 0.00887
Iteration: 20, Log-Lik: -7150.032, Max-Change: 0.00873
Iteration: 21, Log-Lik: -7150.001, Max-Change: 0.00902
Iteration: 22, Log-Lik: -7149.981, Max-Change: 0.01223
Iteration: 23, Log-Lik: -7149.907, Max-Change: 0.00455
Iteration: 24, Log-Lik: -7149.893, Max-Change: 0.00461
Iteration: 25, Log-Lik: -7149.880, Max-Change: 0.00380
Iteration: 26, Log-Lik: -7149.872, Max-Change: 0.00445
Iteration: 27, Log-Lik: -7149.865, Max-Change: 0.00448
Iteration: 28, Log-Lik: -7149.860, Max-Change: 0.00563
Iteration: 29, Log-Lik: -7149.844, Max-Change: 0.00210
Iteration: 30, Log-Lik: -7149.841, Max-Change: 0.00218
Iteration: 31, Log-Lik: -7149.838, Max-Change: 0.00193
Iteration: 32, Log-Lik: -7149.836, Max-Change: 0.00218
Iteration: 33, Log-Lik: -7149.834, Max-Change: 0.00213
Iteration: 34, Log-Lik: -7149.833, Max-Change: 0.00268
Iteration: 35, Log-Lik: -7149.829, Max-Change: 0.00100
Iteration: 36, Log-Lik: -7149.828, Max-Change: 0.00108
Iteration: 37, Log-Lik: -7149.828, Max-Change: 0.00086
Iteration: 38, Log-Lik: -7149.827, Max-Change: 0.00110
Iteration: 39, Log-Lik: -7149.827, Max-Change: 0.00112
Iteration: 40, Log-Lik: -7149.826, Max-Change: 0.00134
Iteration: 41, Log-Lik: -7149.825, Max-Change: 0.00049
Iteration: 42, Log-Lik: -7149.825, Max-Change: 0.00048
Iteration: 43, Log-Lik: -7149.825, Max-Change: 0.00044
Iteration: 44, Log-Lik: -7149.825, Max-Change: 0.00056
Iteration: 45, Log-Lik: -7149.825, Max-Change: 0.00053
Iteration: 46, Log-Lik: -7149.825, Max-Change: 0.00067
Iteration: 47, Log-Lik: -7149.824, Max-Change: 0.00025
Iteration: 48, Log-Lik: -7149.824, Max-Change: 0.00024
Iteration: 49, Log-Lik: -7149.824, Max-Change: 0.00020
Iteration: 50, Log-Lik: -7149.824, Max-Change: 0.00026
Iteration: 51, Log-Lik: -7149.824, Max-Change: 0.00026
Iteration: 52, Log-Lik: -7149.824, Max-Change: 0.00035
Iteration: 53, Log-Lik: -7149.824, Max-Change: 0.00013
Iteration: 54, Log-Lik: -7149.824, Max-Change: 0.00013
Iteration: 55, Log-Lik: -7149.824, Max-Change: 0.00012
Iteration: 56, Log-Lik: -7149.824, Max-Change: 0.00013
Iteration: 57, Log-Lik: -7149.824, Max-Change: 0.00013
Iteration: 58, Log-Lik: -7149.824, Max-Change: 0.00018
Iteration: 59, Log-Lik: -7149.824, Max-Change: 0.00007
##
## Step 7: Fit with anchor items, conservative threshold
##
Iteration: 1, Log-Lik: -7361.986, Max-Change: 0.80082
Iteration: 2, Log-Lik: -7207.003, Max-Change: 0.37858
Iteration: 3, Log-Lik: -7185.014, Max-Change: 0.21394
Iteration: 4, Log-Lik: -7178.452, Max-Change: 0.13270
Iteration: 5, Log-Lik: -7174.888, Max-Change: 0.09079
Iteration: 6, Log-Lik: -7172.421, Max-Change: 0.06714
Iteration: 7, Log-Lik: -7169.416, Max-Change: 0.09960
Iteration: 8, Log-Lik: -7167.232, Max-Change: 0.04304
Iteration: 9, Log-Lik: -7166.516, Max-Change: 0.03122
Iteration: 10, Log-Lik: -7165.779, Max-Change: 0.03710
Iteration: 11, Log-Lik: -7165.324, Max-Change: 0.01954
Iteration: 12, Log-Lik: -7165.099, Max-Change: 0.01865
Iteration: 13, Log-Lik: -7164.947, Max-Change: 0.03209
Iteration: 14, Log-Lik: -7164.556, Max-Change: 0.01209
Iteration: 15, Log-Lik: -7164.492, Max-Change: 0.00798
Iteration: 16, Log-Lik: -7164.449, Max-Change: 0.00693
Iteration: 17, Log-Lik: -7164.421, Max-Change: 0.00723
Iteration: 18, Log-Lik: -7164.401, Max-Change: 0.00676
Iteration: 19, Log-Lik: -7164.389, Max-Change: 0.00961
Iteration: 20, Log-Lik: -7164.349, Max-Change: 0.00369
Iteration: 21, Log-Lik: -7164.342, Max-Change: 0.00228
Iteration: 22, Log-Lik: -7164.338, Max-Change: 0.00238
Iteration: 23, Log-Lik: -7164.336, Max-Change: 0.00241
Iteration: 24, Log-Lik: -7164.334, Max-Change: 0.00223
Iteration: 25, Log-Lik: -7164.333, Max-Change: 0.00304
Iteration: 26, Log-Lik: -7164.328, Max-Change: 0.00118
Iteration: 27, Log-Lik: -7164.328, Max-Change: 0.00072
Iteration: 28, Log-Lik: -7164.327, Max-Change: 0.00076
Iteration: 29, Log-Lik: -7164.327, Max-Change: 0.00081
Iteration: 30, Log-Lik: -7164.327, Max-Change: 0.00072
Iteration: 31, Log-Lik: -7164.327, Max-Change: 0.00101
Iteration: 32, Log-Lik: -7164.326, Max-Change: 0.00039
Iteration: 33, Log-Lik: -7164.326, Max-Change: 0.00023
Iteration: 34, Log-Lik: -7164.326, Max-Change: 0.00026
Iteration: 35, Log-Lik: -7164.326, Max-Change: 0.00026
Iteration: 36, Log-Lik: -7164.326, Max-Change: 0.00020
Iteration: 37, Log-Lik: -7164.326, Max-Change: 0.00031
Iteration: 38, Log-Lik: -7164.326, Max-Change: 0.00013
Iteration: 39, Log-Lik: -7164.326, Max-Change: 0.00012
Iteration: 40, Log-Lik: -7164.326, Max-Change: 0.00008
##
## Step 8: Get scores
d2013_irt_fit_bias_sex$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS 0.1430
## 2 UTDS 0.6288
## 3 UETSDS 0.1526
## 4 ETSSD 0.0585
## 5 Starks.DTFR 0.1062
## 6 UDTFR 0.5774
## 7 UETSDN 0.1409
## 8 theta.of.max.test.D -2.1753
## 9 Test.Dmax -0.2075
##
## $conservative
## Effect Size Value
## 1 STDS 0.1547
## 2 UTDS 0.3666
## 3 UETSDS 0.1671
## 4 ETSSD 0.0615
## 5 Starks.DTFR 0.1510
## 6 UDTFR 0.3367
## 7 UETSDN 0.1666
## 8 theta.of.max.test.D -1.3125
## 9 Test.Dmax 0.4019
d2013_irt_fit_bias_sex$effect_size_items
## $liberal
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.666 0.000 0.663
## item.2 0.000 0.000 0.000 0.000 0.000 -0.666 0.000 0.441
## item.3 -0.102 0.102 -0.086 0.086 -0.468 -0.114 -0.131 0.373
## item.4 0.000 0.000 0.000 0.000 0.000 -0.666 0.000 0.765
## item.5 0.021 0.049 0.001 0.055 0.137 -2.175 -0.183 0.840
## item.6 0.000 0.000 0.000 0.000 0.000 -0.666 0.000 0.632
## item.7 0.000 0.000 0.000 0.000 0.000 -0.666 0.000 0.150
## item.8 0.000 0.000 0.000 0.000 0.000 -0.666 0.000 0.788
## item.9 0.143 0.143 0.128 0.128 0.681 -1.141 0.273 0.859
## item.10 0.077 0.082 0.060 0.072 0.384 -0.143 0.115 0.696
## item.11 0.111 0.111 0.098 0.098 0.774 -0.824 0.135 0.805
## item.12 -0.068 0.068 -0.057 0.059 -0.354 0.025 -0.092 0.539
## item.13 -0.040 0.074 -0.037 0.079 -0.185 -1.300 -0.143 0.506
## item.14 0.000 0.000 0.000 0.000 0.000 -0.666 0.000 0.443
## mean.ES.ref
## item.1 0.663
## item.2 0.441
## item.3 0.475
## item.4 0.765
## item.5 0.818
## item.6 0.632
## item.7 0.150
## item.8 0.788
## item.9 0.716
## item.10 0.618
## item.11 0.695
## item.12 0.606
## item.13 0.546
## item.14 0.443
##
## $conservative
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.663
## item.2 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.443
## item.3 -0.106 0.106 -0.093 0.093 -0.472 0.055 -0.146 0.373
## item.4 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.764
## item.5 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.826
## item.6 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.631
## item.7 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.154
## item.8 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.787
## item.9 0.148 0.148 0.140 0.140 0.682 -1.259 0.309 0.859
## item.10 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.657
## item.11 0.112 0.112 0.104 0.104 0.756 -1.040 0.144 0.806
## item.12 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.573
## item.13 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.521
## item.14 0.000 0.000 0.000 0.000 0.000 -0.700 0.000 0.444
## mean.ES.ref
## item.1 0.663
## item.2 0.443
## item.3 0.479
## item.4 0.764
## item.5 0.826
## item.6 0.631
## item.7 0.154
## item.8 0.787
## item.9 0.711
## item.10 0.657
## item.11 0.693
## item.12 0.573
## item.13 0.521
## item.14 0.444
d2013_irt_fit_bias_sex$effect_size_items$conservative %>% DIF_summary()
## n_items n_favoring_focal_group n_favoring_ref_group
## 14.0000 2.0000 1.0000
## n_noDIF prop_favoring_focal_group prop_favoring_ref_group
## 11.0000 0.1429 0.0714
## prop_noDIF
## 0.7857
d2013_irt_fit_bias_sex$fits$anchor_conservative %>% plot(type = "trace")
save_plot_to_file(d2013_irt_fit_bias_sex$fits$anchor_conservative %>% plot(type = "trace"), filename = "figs/2013_dif_sex.png")
#test bias adjusted scores
d2013$irt_adj = case_when(
d2013$race2 == "Black" ~ d2013$irt - d2013_irt_fit_bias_bw$effect_size_test$conservative$Value[4],
d2013$race2 == "Hispanic" ~ d2013$irt - d2013_irt_fit_bias_hw$effect_size_test$conservative$Value[4],
d2013$sex2 == "Female" ~ d2013$irt - d2013_irt_fit_bias_sex$effect_size_test$conservative$Value[4],
TRUE ~ d2013$irt
)
d2015 = haven::read_sav("data/W6_Aug14/ATP W6.sav")
d2015$KNOSCT4_W6 = d2015$KNOSCT4_1_W6
d2015 %<>% filter(F_RACETHN_TYPOLOGY != 9)
d2015$race2 = d2015$F_RACETHN_TYPOLOGY %>% as_factor() %>% str_replace(" non-Hispanic", "") %>% fct_relevel("White")
d2015$race2 %>% table2()
d2015$bw = d2015$race2 %>% mapvalues(from = c("Hispanic", "Other"), to = rep(NA, 2)) %>% fct_relevel("White")
d2015$hw = d2015$race2 %>% mapvalues(from = c("Black", "Other"), to = rep(NA, 2)) %>% fct_relevel("White")
d2015$sex2 = d2015$F_SEX_FINAL %>% as_factor() %>% mapvalues(from = "Other", to = NA) %>% as_factor()
d2015$sex2 %>% table2()
d2015$age_range = d2015$F_AGECAT_TYPOLOGY %>% as_factor()
d2015$age_range %>% table2()
#remove some missing data rows
d2015 = d2015 %>% filter(!is.na(race2), !is.na(sex2), KNOSCT4_W6 != 99)
#score with binary data
answers2015 = c(4, 1, 3, 1, 3, 2, 2, 2, 1, 1, 2, 2)
d2015_test = d2015[str_glue("KNOSCT{1:12}_W6") %>% as.character()]
d2015_test = score_items(d2015_test, key = answers2015)
#IRT
d2015_irt_fit = mirt(
d2015_test,
model = 1,
itemtype = "2PL"
)
##
Iteration: 1, Log-Lik: -18737.340, Max-Change: 0.61282
Iteration: 2, Log-Lik: -18536.958, Max-Change: 0.38350
Iteration: 3, Log-Lik: -18485.058, Max-Change: 0.25570
Iteration: 4, Log-Lik: -18468.443, Max-Change: 0.14438
Iteration: 5, Log-Lik: -18463.737, Max-Change: 0.07629
Iteration: 6, Log-Lik: -18462.225, Max-Change: 0.04793
Iteration: 7, Log-Lik: -18461.418, Max-Change: 0.02553
Iteration: 8, Log-Lik: -18461.224, Max-Change: 0.01508
Iteration: 9, Log-Lik: -18461.141, Max-Change: 0.00923
Iteration: 10, Log-Lik: -18461.078, Max-Change: 0.00247
Iteration: 11, Log-Lik: -18461.063, Max-Change: 0.00200
Iteration: 12, Log-Lik: -18461.054, Max-Change: 0.00123
Iteration: 13, Log-Lik: -18461.045, Max-Change: 0.00098
Iteration: 14, Log-Lik: -18461.044, Max-Change: 0.00072
Iteration: 15, Log-Lik: -18461.043, Max-Change: 0.00057
Iteration: 16, Log-Lik: -18461.042, Max-Change: 0.00010
Iteration: 17, Log-Lik: -18461.042, Max-Change: 0.00010
d2015_irt_fit
##
## Call:
## mirt(data = d2015_test, model = 1, itemtype = "2PL")
##
## Full-information item factor analysis with 1 factor(s).
## Converged within 1e-04 tolerance after 17 EM iterations.
## mirt version: 1.38.1
## M-step optimizer: BFGS
## EM acceleration: Ramsay
## Number of rectangular quadrature: 61
## Latent density type: Gaussian
##
## Log-likelihood = -18461
## Estimated parameters: 24
## AIC = 36970
## BIC = 37116; SABIC = 37040
d2015_irt_fit %>% summary()
## F1 h2
## KNOSCT1_W6 0.572 0.328
## KNOSCT2_W6 0.574 0.329
## KNOSCT3_W6 0.626 0.391
## KNOSCT4_W6 0.821 0.675
## KNOSCT5_W6 0.573 0.329
## KNOSCT6_W6 0.434 0.189
## KNOSCT7_W6 0.363 0.132
## KNOSCT8_W6 0.666 0.444
## KNOSCT9_W6 0.540 0.292
## KNOSCT10_W6 0.802 0.643
## KNOSCT11_W6 0.555 0.308
## KNOSCT12_W6 0.530 0.281
##
## SS loadings: 4.34
## Proportion Var: 0.362
##
## Factor correlations:
##
## F1
## F1 1
d2015_irt_fit %>% coef(simplify = T)
## $items
## a1 d g u
## KNOSCT1_W6 1.188 2.039 0 1
## KNOSCT2_W6 1.192 1.460 0 1
## KNOSCT3_W6 1.365 2.950 0 1
## KNOSCT4_W6 2.452 3.121 0 1
## KNOSCT5_W6 1.191 1.626 0 1
## KNOSCT6_W6 0.821 -0.513 0 1
## KNOSCT7_W6 0.664 -0.048 0 1
## KNOSCT8_W6 1.520 -0.296 0 1
## KNOSCT9_W6 1.093 1.080 0 1
## KNOSCT10_W6 2.285 3.519 0 1
## KNOSCT11_W6 1.135 1.952 0 1
## KNOSCT12_W6 1.065 1.583 0 1
##
## $means
## F1
## 0
##
## $cov
## F1
## F1 1
#plots
d2015_irt_fit %>% plot(type = "info")
d2015_irt_fit %>% plot(type = "rxx")
d2015_irt_fit %>% plot(type = "trace")
#scores
d2015_irt_fit_scores = fscores(d2015_irt_fit, full.scores = T, full.scores.SE = T)
d2015$irt = d2015_irt_fit_scores[, 1] %>% standardize(focal_group = d2015$race2 == "White")
empirical_rxx(d2015_irt_fit_scores)
## F1
## 0.689
#gaps
#race
GG_denhist(d2015, "irt", "race2", auto_fraction_bounary = F)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
SMD_matrix(d2015$irt, d2015$race2)
## White Black Hispanic Other
## White NA 1.116 0.563 0.207
## Black 1.116 NA -0.553 -0.909
## Hispanic 0.563 -0.553 NA -0.356
## Other 0.207 -0.909 -0.356 NA
SMD_matrix(d2015$irt, d2015$race2, reliability = empirical_rxx(d2015_irt_fit_scores))
## White Black Hispanic Other
## White NA 1.450 0.691 0.250
## Black 1.450 NA -0.678 -1.150
## Hispanic 0.691 -0.678 NA -0.432
## Other 0.250 -1.150 -0.432 NA
describe2(d2015$irt, d2015$race2)
## New names:
## • `` -> `...1`
#sex
GG_denhist(d2015, "irt", "sex2")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
SMD_matrix(d2015$irt, d2015$sex2)
## Male Female
## Male NA 0.541
## Female 0.541 NA
SMD_matrix(d2015$irt, d2015$sex2, reliability = empirical_rxx(d2015_irt_fit_scores))
## Male Female
## Male NA 0.663
## Female 0.663 NA
describe2(d2015$irt, d2015$sex2)
## New names:
## • `` -> `...1`
#test bias
d2015_irt_fit_bias_bw = DIF_test(
items = d2015_test,
model = 1,
group = d2015$bw,
itemtype = "2PL"
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -18737.340, Max-Change: 0.61282
Iteration: 2, Log-Lik: -18536.958, Max-Change: 0.38350
Iteration: 3, Log-Lik: -18485.058, Max-Change: 0.25570
Iteration: 4, Log-Lik: -18468.443, Max-Change: 0.14438
Iteration: 5, Log-Lik: -18463.737, Max-Change: 0.07629
Iteration: 6, Log-Lik: -18462.225, Max-Change: 0.04793
Iteration: 7, Log-Lik: -18461.418, Max-Change: 0.02553
Iteration: 8, Log-Lik: -18461.224, Max-Change: 0.01508
Iteration: 9, Log-Lik: -18461.141, Max-Change: 0.00923
Iteration: 10, Log-Lik: -18461.078, Max-Change: 0.00247
Iteration: 11, Log-Lik: -18461.063, Max-Change: 0.00200
Iteration: 12, Log-Lik: -18461.054, Max-Change: 0.00123
Iteration: 13, Log-Lik: -18461.045, Max-Change: 0.00098
Iteration: 14, Log-Lik: -18461.044, Max-Change: 0.00072
Iteration: 15, Log-Lik: -18461.043, Max-Change: 0.00057
Iteration: 16, Log-Lik: -18461.042, Max-Change: 0.00010
Iteration: 17, Log-Lik: -18461.042, Max-Change: 0.00010
##
## Step 2: Initial MI fit
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -15979.795, Max-Change: 0.83192
Iteration: 2, Log-Lik: -15694.005, Max-Change: 0.38219
Iteration: 3, Log-Lik: -15641.912, Max-Change: 0.24568
Iteration: 4, Log-Lik: -15627.893, Max-Change: 0.15791
Iteration: 5, Log-Lik: -15622.515, Max-Change: 0.10288
Iteration: 6, Log-Lik: -15620.136, Max-Change: 0.06778
Iteration: 7, Log-Lik: -15618.653, Max-Change: 0.03767
Iteration: 8, Log-Lik: -15618.253, Max-Change: 0.02394
Iteration: 9, Log-Lik: -15618.052, Max-Change: 0.01622
Iteration: 10, Log-Lik: -15617.923, Max-Change: 0.01410
Iteration: 11, Log-Lik: -15617.865, Max-Change: 0.00860
Iteration: 12, Log-Lik: -15617.841, Max-Change: 0.00568
Iteration: 13, Log-Lik: -15617.828, Max-Change: 0.00420
Iteration: 14, Log-Lik: -15617.822, Max-Change: 0.00284
Iteration: 15, Log-Lik: -15617.818, Max-Change: 0.00201
Iteration: 16, Log-Lik: -15617.816, Max-Change: 0.00205
Iteration: 17, Log-Lik: -15617.814, Max-Change: 0.00119
Iteration: 18, Log-Lik: -15617.814, Max-Change: 0.00077
Iteration: 19, Log-Lik: -15617.813, Max-Change: 0.00054
Iteration: 20, Log-Lik: -15617.813, Max-Change: 0.00038
Iteration: 21, Log-Lik: -15617.813, Max-Change: 0.00027
Iteration: 22, Log-Lik: -15617.813, Max-Change: 0.00032
Iteration: 23, Log-Lik: -15617.813, Max-Change: 0.00018
Iteration: 24, Log-Lik: -15617.813, Max-Change: 0.00011
Iteration: 25, Log-Lik: -15617.813, Max-Change: 0.00008
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -19546.518, Max-Change: 0.48594
Iteration: 2, Log-Lik: -19428.941, Max-Change: 0.35467
Iteration: 3, Log-Lik: -19388.189, Max-Change: 0.22723
Iteration: 4, Log-Lik: -19374.082, Max-Change: 0.16195
Iteration: 5, Log-Lik: -19368.116, Max-Change: 0.11661
Iteration: 6, Log-Lik: -19365.722, Max-Change: 0.06874
Iteration: 7, Log-Lik: -19364.638, Max-Change: 0.04204
Iteration: 8, Log-Lik: -19364.338, Max-Change: 0.02708
Iteration: 9, Log-Lik: -19364.209, Max-Change: 0.02177
Iteration: 10, Log-Lik: -19364.090, Max-Change: 0.00167
Iteration: 11, Log-Lik: -19364.087, Max-Change: 0.00087
Iteration: 12, Log-Lik: -19364.087, Max-Change: 0.00028
Iteration: 13, Log-Lik: -19364.086, Max-Change: 0.00027
Iteration: 14, Log-Lik: -19364.086, Max-Change: 0.00025
Iteration: 15, Log-Lik: -19364.086, Max-Change: 0.00023
Iteration: 16, Log-Lik: -19364.086, Max-Change: 0.00067
Iteration: 17, Log-Lik: -19364.086, Max-Change: 0.00059
Iteration: 18, Log-Lik: -19364.086, Max-Change: 0.00031
Iteration: 19, Log-Lik: -19364.086, Max-Change: 0.00016
Iteration: 20, Log-Lik: -19364.086, Max-Change: 0.00054
Iteration: 21, Log-Lik: -19364.086, Max-Change: 0.00024
Iteration: 22, Log-Lik: -19364.086, Max-Change: 0.00013
Iteration: 23, Log-Lik: -19364.086, Max-Change: 0.00044
Iteration: 24, Log-Lik: -19364.086, Max-Change: 0.00019
Iteration: 25, Log-Lik: -19364.086, Max-Change: 0.00011
Iteration: 26, Log-Lik: -19364.086, Max-Change: 0.00039
Iteration: 27, Log-Lik: -19364.086, Max-Change: 0.00016
Iteration: 28, Log-Lik: -19364.086, Max-Change: 0.00009
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -19248.429, Max-Change: 0.55062
Iteration: 2, Log-Lik: -19103.600, Max-Change: 0.36793
Iteration: 3, Log-Lik: -19061.872, Max-Change: 0.24647
Iteration: 4, Log-Lik: -19048.069, Max-Change: 0.14119
Iteration: 5, Log-Lik: -19043.751, Max-Change: 0.09810
Iteration: 6, Log-Lik: -19042.128, Max-Change: 0.05013
Iteration: 7, Log-Lik: -19041.501, Max-Change: 0.04475
Iteration: 8, Log-Lik: -19041.184, Max-Change: 0.03253
Iteration: 9, Log-Lik: -19041.041, Max-Change: 0.01287
Iteration: 10, Log-Lik: -19041.018, Max-Change: 0.02138
Iteration: 11, Log-Lik: -19040.965, Max-Change: 0.00931
Iteration: 12, Log-Lik: -19040.944, Max-Change: 0.00612
Iteration: 13, Log-Lik: -19040.928, Max-Change: 0.00135
Iteration: 14, Log-Lik: -19040.926, Max-Change: 0.00116
Iteration: 15, Log-Lik: -19040.924, Max-Change: 0.00163
Iteration: 16, Log-Lik: -19040.923, Max-Change: 0.00104
Iteration: 17, Log-Lik: -19040.923, Max-Change: 0.00021
Iteration: 18, Log-Lik: -19040.923, Max-Change: 0.00015
Iteration: 19, Log-Lik: -19040.923, Max-Change: 0.00014
Iteration: 20, Log-Lik: -19040.923, Max-Change: 0.00012
Iteration: 21, Log-Lik: -19040.923, Max-Change: 0.00053
Iteration: 22, Log-Lik: -19040.923, Max-Change: 0.00037
Iteration: 23, Log-Lik: -19040.923, Max-Change: 0.00027
Iteration: 24, Log-Lik: -19040.923, Max-Change: 0.00020
Iteration: 25, Log-Lik: -19040.923, Max-Change: 0.00009
##
## Step 6: Fit with anchor items, liberal threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -15979.795, Max-Change: 0.83180
Iteration: 2, Log-Lik: -15658.677, Max-Change: 0.38077
Iteration: 3, Log-Lik: -15600.944, Max-Change: 0.23805
Iteration: 4, Log-Lik: -15585.612, Max-Change: 0.14171
Iteration: 5, Log-Lik: -15580.312, Max-Change: 0.11485
Iteration: 6, Log-Lik: -15577.929, Max-Change: 0.09762
Iteration: 7, Log-Lik: -15576.141, Max-Change: 0.05623
Iteration: 8, Log-Lik: -15575.522, Max-Change: 0.05150
Iteration: 9, Log-Lik: -15575.172, Max-Change: 0.05047
Iteration: 10, Log-Lik: -15575.026, Max-Change: 0.08212
Iteration: 11, Log-Lik: -15574.626, Max-Change: 0.01916
Iteration: 12, Log-Lik: -15574.533, Max-Change: 0.01238
Iteration: 13, Log-Lik: -15574.486, Max-Change: 0.01721
Iteration: 14, Log-Lik: -15574.454, Max-Change: 0.01611
Iteration: 15, Log-Lik: -15574.431, Max-Change: 0.01401
Iteration: 16, Log-Lik: -15574.422, Max-Change: 0.02274
Iteration: 17, Log-Lik: -15574.388, Max-Change: 0.00509
Iteration: 18, Log-Lik: -15574.380, Max-Change: 0.00334
Iteration: 19, Log-Lik: -15574.377, Max-Change: 0.00508
Iteration: 20, Log-Lik: -15574.374, Max-Change: 0.00463
Iteration: 21, Log-Lik: -15574.372, Max-Change: 0.00415
Iteration: 22, Log-Lik: -15574.371, Max-Change: 0.00672
Iteration: 23, Log-Lik: -15574.368, Max-Change: 0.00150
Iteration: 24, Log-Lik: -15574.367, Max-Change: 0.00100
Iteration: 25, Log-Lik: -15574.367, Max-Change: 0.00134
Iteration: 26, Log-Lik: -15574.366, Max-Change: 0.00137
Iteration: 27, Log-Lik: -15574.366, Max-Change: 0.00119
Iteration: 28, Log-Lik: -15574.366, Max-Change: 0.00135
Iteration: 29, Log-Lik: -15574.366, Max-Change: 0.00046
Iteration: 30, Log-Lik: -15574.366, Max-Change: 0.00031
Iteration: 31, Log-Lik: -15574.366, Max-Change: 0.00037
Iteration: 32, Log-Lik: -15574.366, Max-Change: 0.00040
Iteration: 33, Log-Lik: -15574.366, Max-Change: 0.00033
Iteration: 34, Log-Lik: -15574.366, Max-Change: 0.00023
Iteration: 35, Log-Lik: -15574.366, Max-Change: 0.00014
Iteration: 36, Log-Lik: -15574.366, Max-Change: 0.00010
##
## Step 7: Fit with anchor items, conservative threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -15979.795, Max-Change: 0.83186
Iteration: 2, Log-Lik: -15662.003, Max-Change: 0.38408
Iteration: 3, Log-Lik: -15605.899, Max-Change: 0.23615
Iteration: 4, Log-Lik: -15591.702, Max-Change: 0.14693
Iteration: 5, Log-Lik: -15586.530, Max-Change: 0.10196
Iteration: 6, Log-Lik: -15584.260, Max-Change: 0.09538
Iteration: 7, Log-Lik: -15582.640, Max-Change: 0.04839
Iteration: 8, Log-Lik: -15582.180, Max-Change: 0.04700
Iteration: 9, Log-Lik: -15581.937, Max-Change: 0.04646
Iteration: 10, Log-Lik: -15581.833, Max-Change: 0.07022
Iteration: 11, Log-Lik: -15581.641, Max-Change: 0.01579
Iteration: 12, Log-Lik: -15581.590, Max-Change: 0.00898
Iteration: 13, Log-Lik: -15581.567, Max-Change: 0.00856
Iteration: 14, Log-Lik: -15581.554, Max-Change: 0.00925
Iteration: 15, Log-Lik: -15581.546, Max-Change: 0.00845
Iteration: 16, Log-Lik: -15581.542, Max-Change: 0.01304
Iteration: 17, Log-Lik: -15581.534, Max-Change: 0.00313
Iteration: 18, Log-Lik: -15581.532, Max-Change: 0.00176
Iteration: 19, Log-Lik: -15581.531, Max-Change: 0.00168
Iteration: 20, Log-Lik: -15581.530, Max-Change: 0.00189
Iteration: 21, Log-Lik: -15581.530, Max-Change: 0.00172
Iteration: 22, Log-Lik: -15581.530, Max-Change: 0.00212
Iteration: 23, Log-Lik: -15581.529, Max-Change: 0.00058
Iteration: 24, Log-Lik: -15581.529, Max-Change: 0.00038
Iteration: 25, Log-Lik: -15581.529, Max-Change: 0.00027
Iteration: 26, Log-Lik: -15581.529, Max-Change: 0.00037
Iteration: 27, Log-Lik: -15581.529, Max-Change: 0.00031
Iteration: 28, Log-Lik: -15581.529, Max-Change: 0.00019
Iteration: 29, Log-Lik: -15581.529, Max-Change: 0.00012
Iteration: 30, Log-Lik: -15581.529, Max-Change: 0.00008
##
## Step 8: Get scores
d2015_irt_fit_bias_hw = DIF_test(
items = d2015_test,
model = 1,
group = d2015$hw,
itemtype = "2PL"
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -18737.340, Max-Change: 0.61282
Iteration: 2, Log-Lik: -18536.958, Max-Change: 0.38350
Iteration: 3, Log-Lik: -18485.058, Max-Change: 0.25570
Iteration: 4, Log-Lik: -18468.443, Max-Change: 0.14438
Iteration: 5, Log-Lik: -18463.737, Max-Change: 0.07629
Iteration: 6, Log-Lik: -18462.225, Max-Change: 0.04793
Iteration: 7, Log-Lik: -18461.418, Max-Change: 0.02553
Iteration: 8, Log-Lik: -18461.224, Max-Change: 0.01508
Iteration: 9, Log-Lik: -18461.141, Max-Change: 0.00923
Iteration: 10, Log-Lik: -18461.078, Max-Change: 0.00247
Iteration: 11, Log-Lik: -18461.063, Max-Change: 0.00200
Iteration: 12, Log-Lik: -18461.054, Max-Change: 0.00123
Iteration: 13, Log-Lik: -18461.045, Max-Change: 0.00098
Iteration: 14, Log-Lik: -18461.044, Max-Change: 0.00072
Iteration: 15, Log-Lik: -18461.043, Max-Change: 0.00057
Iteration: 16, Log-Lik: -18461.042, Max-Change: 0.00010
Iteration: 17, Log-Lik: -18461.042, Max-Change: 0.00010
##
## Step 2: Initial MI fit
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -15537.651, Max-Change: 0.60305
Iteration: 2, Log-Lik: -15351.148, Max-Change: 0.34746
Iteration: 3, Log-Lik: -15312.940, Max-Change: 0.19806
Iteration: 4, Log-Lik: -15302.643, Max-Change: 0.11881
Iteration: 5, Log-Lik: -15298.930, Max-Change: 0.07401
Iteration: 6, Log-Lik: -15297.367, Max-Change: 0.04939
Iteration: 7, Log-Lik: -15296.386, Max-Change: 0.04407
Iteration: 8, Log-Lik: -15296.148, Max-Change: 0.02763
Iteration: 9, Log-Lik: -15296.026, Max-Change: 0.01856
Iteration: 10, Log-Lik: -15295.931, Max-Change: 0.01662
Iteration: 11, Log-Lik: -15295.902, Max-Change: 0.00959
Iteration: 12, Log-Lik: -15295.890, Max-Change: 0.00613
Iteration: 13, Log-Lik: -15295.881, Max-Change: 0.00493
Iteration: 14, Log-Lik: -15295.878, Max-Change: 0.00297
Iteration: 15, Log-Lik: -15295.876, Max-Change: 0.00196
Iteration: 16, Log-Lik: -15295.875, Max-Change: 0.00172
Iteration: 17, Log-Lik: -15295.874, Max-Change: 0.00100
Iteration: 18, Log-Lik: -15295.874, Max-Change: 0.00065
Iteration: 19, Log-Lik: -15295.874, Max-Change: 0.00055
Iteration: 20, Log-Lik: -15295.874, Max-Change: 0.00032
Iteration: 21, Log-Lik: -15295.874, Max-Change: 0.00021
Iteration: 22, Log-Lik: -15295.874, Max-Change: 0.00019
Iteration: 23, Log-Lik: -15295.874, Max-Change: 0.00012
Iteration: 24, Log-Lik: -15295.874, Max-Change: 0.00007
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -19062.703, Max-Change: 0.61701
Iteration: 2, Log-Lik: -18880.106, Max-Change: 0.37378
Iteration: 3, Log-Lik: -18830.653, Max-Change: 0.22036
Iteration: 4, Log-Lik: -18815.058, Max-Change: 0.15398
Iteration: 5, Log-Lik: -18809.673, Max-Change: 0.09380
Iteration: 6, Log-Lik: -18807.710, Max-Change: 0.06511
Iteration: 7, Log-Lik: -18806.816, Max-Change: 0.04287
Iteration: 8, Log-Lik: -18806.497, Max-Change: 0.02801
Iteration: 9, Log-Lik: -18806.354, Max-Change: 0.01698
Iteration: 10, Log-Lik: -18806.263, Max-Change: 0.00943
Iteration: 11, Log-Lik: -18806.238, Max-Change: 0.00636
Iteration: 12, Log-Lik: -18806.225, Max-Change: 0.00263
Iteration: 13, Log-Lik: -18806.220, Max-Change: 0.00209
Iteration: 14, Log-Lik: -18806.216, Max-Change: 0.00165
Iteration: 15, Log-Lik: -18806.213, Max-Change: 0.00242
Iteration: 16, Log-Lik: -18806.211, Max-Change: 0.00138
Iteration: 17, Log-Lik: -18806.210, Max-Change: 0.00032
Iteration: 18, Log-Lik: -18806.210, Max-Change: 0.00025
Iteration: 19, Log-Lik: -18806.210, Max-Change: 0.00022
Iteration: 20, Log-Lik: -18806.209, Max-Change: 0.00019
Iteration: 21, Log-Lik: -18806.209, Max-Change: 0.00017
Iteration: 22, Log-Lik: -18806.209, Max-Change: 0.00048
Iteration: 23, Log-Lik: -18806.209, Max-Change: 0.00042
Iteration: 24, Log-Lik: -18806.209, Max-Change: 0.00036
Iteration: 25, Log-Lik: -18806.209, Max-Change: 0.00012
Iteration: 26, Log-Lik: -18806.209, Max-Change: 0.00005
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -18737.340, Max-Change: 0.61282
Iteration: 2, Log-Lik: -18536.958, Max-Change: 0.38350
Iteration: 3, Log-Lik: -18485.058, Max-Change: 0.25570
Iteration: 4, Log-Lik: -18468.443, Max-Change: 0.14438
Iteration: 5, Log-Lik: -18463.737, Max-Change: 0.07629
Iteration: 6, Log-Lik: -18462.225, Max-Change: 0.04793
Iteration: 7, Log-Lik: -18461.418, Max-Change: 0.02553
Iteration: 8, Log-Lik: -18461.224, Max-Change: 0.01508
Iteration: 9, Log-Lik: -18461.141, Max-Change: 0.00923
Iteration: 10, Log-Lik: -18461.078, Max-Change: 0.00247
Iteration: 11, Log-Lik: -18461.063, Max-Change: 0.00200
Iteration: 12, Log-Lik: -18461.054, Max-Change: 0.00123
Iteration: 13, Log-Lik: -18461.045, Max-Change: 0.00098
Iteration: 14, Log-Lik: -18461.044, Max-Change: 0.00072
Iteration: 15, Log-Lik: -18461.043, Max-Change: 0.00057
Iteration: 16, Log-Lik: -18461.042, Max-Change: 0.00010
Iteration: 17, Log-Lik: -18461.042, Max-Change: 0.00010
##
## Step 6: Fit with anchor items, liberal threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -15537.651, Max-Change: 0.60303
Iteration: 2, Log-Lik: -15344.562, Max-Change: 0.36134
Iteration: 3, Log-Lik: -15304.563, Max-Change: 0.19643
Iteration: 4, Log-Lik: -15294.344, Max-Change: 0.11672
Iteration: 5, Log-Lik: -15290.723, Max-Change: 0.07148
Iteration: 6, Log-Lik: -15289.152, Max-Change: 0.05470
Iteration: 7, Log-Lik: -15288.089, Max-Change: 0.05270
Iteration: 8, Log-Lik: -15287.793, Max-Change: 0.03574
Iteration: 9, Log-Lik: -15287.625, Max-Change: 0.02897
Iteration: 10, Log-Lik: -15287.487, Max-Change: 0.02694
Iteration: 11, Log-Lik: -15287.423, Max-Change: 0.01448
Iteration: 12, Log-Lik: -15287.401, Max-Change: 0.00918
Iteration: 13, Log-Lik: -15287.389, Max-Change: 0.00674
Iteration: 14, Log-Lik: -15287.383, Max-Change: 0.00484
Iteration: 15, Log-Lik: -15287.380, Max-Change: 0.00407
Iteration: 16, Log-Lik: -15287.377, Max-Change: 0.00394
Iteration: 17, Log-Lik: -15287.375, Max-Change: 0.00206
Iteration: 18, Log-Lik: -15287.375, Max-Change: 0.00128
Iteration: 19, Log-Lik: -15287.375, Max-Change: 0.00089
Iteration: 20, Log-Lik: -15287.374, Max-Change: 0.00073
Iteration: 21, Log-Lik: -15287.374, Max-Change: 0.00047
Iteration: 22, Log-Lik: -15287.374, Max-Change: 0.00039
Iteration: 23, Log-Lik: -15287.374, Max-Change: 0.00026
Iteration: 24, Log-Lik: -15287.374, Max-Change: 0.00021
Iteration: 25, Log-Lik: -15287.374, Max-Change: 0.00022
Iteration: 26, Log-Lik: -15287.374, Max-Change: 0.00012
Iteration: 27, Log-Lik: -15287.374, Max-Change: 0.00008
##
## Step 7: Fit with anchor items, conservative threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -15537.651, Max-Change: 0.60305
Iteration: 2, Log-Lik: -15351.148, Max-Change: 0.34746
Iteration: 3, Log-Lik: -15312.940, Max-Change: 0.19806
Iteration: 4, Log-Lik: -15302.643, Max-Change: 0.11881
Iteration: 5, Log-Lik: -15298.930, Max-Change: 0.07401
Iteration: 6, Log-Lik: -15297.367, Max-Change: 0.04939
Iteration: 7, Log-Lik: -15296.386, Max-Change: 0.04407
Iteration: 8, Log-Lik: -15296.148, Max-Change: 0.02763
Iteration: 9, Log-Lik: -15296.026, Max-Change: 0.01856
Iteration: 10, Log-Lik: -15295.931, Max-Change: 0.01662
Iteration: 11, Log-Lik: -15295.902, Max-Change: 0.00959
Iteration: 12, Log-Lik: -15295.890, Max-Change: 0.00613
Iteration: 13, Log-Lik: -15295.881, Max-Change: 0.00493
Iteration: 14, Log-Lik: -15295.878, Max-Change: 0.00297
Iteration: 15, Log-Lik: -15295.876, Max-Change: 0.00196
Iteration: 16, Log-Lik: -15295.875, Max-Change: 0.00172
Iteration: 17, Log-Lik: -15295.874, Max-Change: 0.00100
Iteration: 18, Log-Lik: -15295.874, Max-Change: 0.00065
Iteration: 19, Log-Lik: -15295.874, Max-Change: 0.00055
Iteration: 20, Log-Lik: -15295.874, Max-Change: 0.00032
Iteration: 21, Log-Lik: -15295.874, Max-Change: 0.00021
Iteration: 22, Log-Lik: -15295.874, Max-Change: 0.00019
Iteration: 23, Log-Lik: -15295.874, Max-Change: 0.00012
Iteration: 24, Log-Lik: -15295.874, Max-Change: 0.00007
##
## Step 8: Get scores
d2015_irt_fit_bias_bw$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS 0.251
## 2 UTDS 0.546
## 3 UETSDS 0.251
## 4 ETSSD 0.143
## 5 Starks.DTFR 0.191
## 6 UDTFR 0.579
## 7 UETSDN 0.232
## 8 theta.of.max.test.D -1.021
## 9 Test.Dmax 0.337
##
## $conservative
## Effect Size Value
## 1 STDS 0.1678
## 2 UTDS 0.3706
## 3 UETSDS 0.1714
## 4 ETSSD 0.0948
## 5 Starks.DTFR 0.1103
## 6 UDTFR 0.3943
## 7 UETSDN 0.1750
## 8 theta.of.max.test.D -1.1665
## 9 Test.Dmax 0.2353
d2015_irt_fit_bias_bw$effect_size_items
## $liberal
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.063 0.000 0.668
## item.2 -0.025 0.077 -0.026 0.085 -0.135 -2.447 -0.157 0.538
## item.3 0.000 0.000 0.000 0.000 0.000 -0.063 0.000 0.788
## item.4 0.000 0.000 0.000 0.000 0.000 -0.063 0.000 0.583
## item.5 0.000 0.000 0.000 0.000 0.000 -0.063 0.000 0.593
## item.6 0.182 0.182 0.161 0.176 2.983 -2.622 0.245 0.345
## item.7 0.000 0.000 0.000 0.000 0.000 -0.063 0.000 0.320
## item.8 0.083 0.092 0.049 0.105 0.952 -1.681 0.122 0.213
## item.9 0.000 0.000 0.000 0.000 0.000 -0.063 0.000 0.476
## item.10 0.000 0.000 0.000 0.000 0.000 -0.063 0.000 0.694
## item.11 -0.082 0.101 -0.086 0.112 -0.463 -2.622 -0.264 0.621
## item.12 0.093 0.095 0.093 0.100 0.722 -2.622 0.211 0.670
## mean.ES.ref
## item.1 0.668
## item.2 0.563
## item.3 0.788
## item.4 0.583
## item.5 0.593
## item.6 0.163
## item.7 0.320
## item.8 0.130
## item.9 0.476
## item.10 0.694
## item.11 0.702
## item.12 0.576
##
## $conservative
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.004 0.000 0.672
## item.2 0.000 0.000 0.000 0.000 0.000 -0.004 0.000 0.553
## item.3 0.000 0.000 0.000 0.000 0.000 -0.004 0.000 0.791
## item.4 0.000 0.000 0.000 0.000 0.000 -0.004 0.000 0.590
## item.5 0.000 0.000 0.000 0.000 0.000 -0.004 0.000 0.597
## item.6 0.178 0.178 0.157 0.176 2.831 -2.594 0.252 0.345
## item.7 0.000 0.000 0.000 0.000 0.000 -0.004 0.000 0.323
## item.8 0.076 0.092 0.043 0.109 0.848 -0.004 -0.138 0.213
## item.9 0.000 0.000 0.000 0.000 0.000 -0.004 0.000 0.481
## item.10 0.000 0.000 0.000 0.000 0.000 -0.004 0.000 0.698
## item.11 -0.087 0.101 -0.090 0.110 -0.495 -2.594 -0.260 0.621
## item.12 0.000 0.000 0.000 0.000 0.000 -0.004 0.000 0.614
## mean.ES.ref
## item.1 0.672
## item.2 0.553
## item.3 0.791
## item.4 0.590
## item.5 0.597
## item.6 0.167
## item.7 0.323
## item.8 0.137
## item.9 0.481
## item.10 0.698
## item.11 0.707
## item.12 0.614
d2015_irt_fit_bias_bw$effect_size_items$conservative %>% DIF_summary()
## n_items n_favoring_focal_group n_favoring_ref_group
## 12.0000 2.0000 1.0000
## n_noDIF prop_favoring_focal_group prop_favoring_ref_group
## 9.0000 0.1667 0.0833
## prop_noDIF
## 0.7500
d2015_irt_fit_bias_bw$fits$anchor_conservative %>% plot(type = "trace")
save_plot_to_file(d2015_irt_fit_bias_bw$fits$anchor_conservative %>% plot(type = "trace"), filename = "figs/2015_dif_bw.png")
d2015_irt_fit_bias_hw$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS 0.00378
## 2 UTDS 0.15572
## 3 UETSDS 0.06192
## 4 ETSSD 0.00187
## 5 Starks.DTFR -0.00840
## 6 UDTFR 0.16558
## 7 UETSDN 0.06718
## 8 theta.of.max.test.D -2.24090
## 9 Test.Dmax -0.12230
##
## $conservative
## Effect Size Value
## 1 STDS 0.00
## 2 UTDS 0.00
## 3 UETSDS 0.00
## 4 ETSSD 0.00
## 5 Starks.DTFR 0.00
## 6 UDTFR 0.00
## 7 UETSDN 0.00
## 8 theta.of.max.test.D -1.08
## 9 Test.Dmax 0.00
d2015_irt_fit_bias_hw$effect_size_items
## $liberal
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.773
## item.2 0.004 0.089 -0.004 0.092 0.017 -2.241 -0.213 0.693
## item.3 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.868
## item.4 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.781
## item.5 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.721
## item.6 0.000 0.066 -0.005 0.074 0.000 0.825 -0.172 0.277
## item.7 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.423
## item.8 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.303
## item.9 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.621
## item.10 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.832
## item.11 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.789
## item.12 0.000 0.000 0.000 0.000 0.000 -0.989 0.000 0.713
## mean.ES.ref
## item.1 0.773
## item.2 0.689
## item.3 0.868
## item.4 0.781
## item.5 0.721
## item.6 0.277
## item.7 0.423
## item.8 0.303
## item.9 0.621
## item.10 0.832
## item.11 0.789
## item.12 0.713
##
## $conservative
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc mean.ES.ref
## item.1 0 0 0 0 0 -1.08 0 0.773 0.773
## item.2 0 0 0 0 0 -1.08 0 0.683 0.683
## item.3 0 0 0 0 0 -1.08 0 0.869 0.869
## item.4 0 0 0 0 0 -1.08 0 0.782 0.782
## item.5 0 0 0 0 0 -1.08 0 0.722 0.722
## item.6 0 0 0 0 0 -1.08 0 0.280 0.280
## item.7 0 0 0 0 0 -1.08 0 0.423 0.423
## item.8 0 0 0 0 0 -1.08 0 0.300 0.300
## item.9 0 0 0 0 0 -1.08 0 0.620 0.620
## item.10 0 0 0 0 0 -1.08 0 0.833 0.833
## item.11 0 0 0 0 0 -1.08 0 0.789 0.789
## item.12 0 0 0 0 0 -1.08 0 0.712 0.712
d2015_irt_fit_bias_hw$effect_size_items$conservative %>% DIF_summary()
## n_items n_favoring_focal_group n_favoring_ref_group
## 12 0 0
## n_noDIF prop_favoring_focal_group prop_favoring_ref_group
## 12 0 0
## prop_noDIF
## 1
d2015_irt_fit_bias_hw$fits$anchor_conservative %>% plot(type = "trace")
d2015_irt_fit_bias_hw$fits$anchor_liberal %>% plot(type = "trace")
save_plot_to_file(d2015_irt_fit_bias_hw$fits$anchor_conservative %>% plot(type = "trace"), filename = "figs/2015_dif_hw.png")
save_plot_to_file(d2015_irt_fit_bias_hw$fits$anchor_liberal %>% plot(type = "trace"), filename = "figs/2015_dif_hw_lowstandards.png")
d2015_irt_fit_bias_sex = DIF_test(
items = d2015_test,
model = 1,
group = d2015$sex2,
itemtype = "2PL"
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -18737.340, Max-Change: 0.61282
Iteration: 2, Log-Lik: -18536.958, Max-Change: 0.38350
Iteration: 3, Log-Lik: -18485.058, Max-Change: 0.25570
Iteration: 4, Log-Lik: -18468.443, Max-Change: 0.14438
Iteration: 5, Log-Lik: -18463.737, Max-Change: 0.07629
Iteration: 6, Log-Lik: -18462.225, Max-Change: 0.04793
Iteration: 7, Log-Lik: -18461.418, Max-Change: 0.02553
Iteration: 8, Log-Lik: -18461.224, Max-Change: 0.01508
Iteration: 9, Log-Lik: -18461.141, Max-Change: 0.00923
Iteration: 10, Log-Lik: -18461.078, Max-Change: 0.00247
Iteration: 11, Log-Lik: -18461.063, Max-Change: 0.00200
Iteration: 12, Log-Lik: -18461.054, Max-Change: 0.00123
Iteration: 13, Log-Lik: -18461.045, Max-Change: 0.00098
Iteration: 14, Log-Lik: -18461.044, Max-Change: 0.00072
Iteration: 15, Log-Lik: -18461.043, Max-Change: 0.00057
Iteration: 16, Log-Lik: -18461.042, Max-Change: 0.00010
Iteration: 17, Log-Lik: -18461.042, Max-Change: 0.00010
##
## Step 2: Initial MI fit
##
Iteration: 1, Log-Lik: -18737.340, Max-Change: 0.61607
Iteration: 2, Log-Lik: -18469.730, Max-Change: 0.40125
Iteration: 3, Log-Lik: -18412.973, Max-Change: 0.25217
Iteration: 4, Log-Lik: -18390.043, Max-Change: 0.16397
Iteration: 5, Log-Lik: -18376.537, Max-Change: 0.11849
Iteration: 6, Log-Lik: -18367.218, Max-Change: 0.09530
Iteration: 7, Log-Lik: -18360.405, Max-Change: 0.07919
Iteration: 8, Log-Lik: -18355.350, Max-Change: 0.06233
Iteration: 9, Log-Lik: -18351.611, Max-Change: 0.05303
Iteration: 10, Log-Lik: -18348.836, Max-Change: 0.05184
Iteration: 11, Log-Lik: -18342.983, Max-Change: 0.02447
Iteration: 12, Log-Lik: -18341.952, Max-Change: 0.01473
Iteration: 13, Log-Lik: -18341.433, Max-Change: 0.01650
Iteration: 14, Log-Lik: -18341.049, Max-Change: 0.01665
Iteration: 15, Log-Lik: -18340.759, Max-Change: 0.01553
Iteration: 16, Log-Lik: -18340.555, Max-Change: 0.01467
Iteration: 17, Log-Lik: -18340.059, Max-Change: 0.00612
Iteration: 18, Log-Lik: -18339.973, Max-Change: 0.00373
Iteration: 19, Log-Lik: -18339.930, Max-Change: 0.00482
Iteration: 20, Log-Lik: -18339.896, Max-Change: 0.00501
Iteration: 21, Log-Lik: -18339.871, Max-Change: 0.00471
Iteration: 22, Log-Lik: -18339.848, Max-Change: 0.00478
Iteration: 23, Log-Lik: -18339.803, Max-Change: 0.00152
Iteration: 24, Log-Lik: -18339.795, Max-Change: 0.00113
Iteration: 25, Log-Lik: -18339.791, Max-Change: 0.00150
Iteration: 26, Log-Lik: -18339.788, Max-Change: 0.00155
Iteration: 27, Log-Lik: -18339.785, Max-Change: 0.00143
Iteration: 28, Log-Lik: -18339.782, Max-Change: 0.00172
Iteration: 29, Log-Lik: -18339.777, Max-Change: 0.00045
Iteration: 30, Log-Lik: -18339.776, Max-Change: 0.00043
Iteration: 31, Log-Lik: -18339.776, Max-Change: 0.00046
Iteration: 32, Log-Lik: -18339.775, Max-Change: 0.00050
Iteration: 33, Log-Lik: -18339.775, Max-Change: 0.00044
Iteration: 34, Log-Lik: -18339.774, Max-Change: 0.00067
Iteration: 35, Log-Lik: -18339.774, Max-Change: 0.00016
Iteration: 36, Log-Lik: -18339.773, Max-Change: 0.00015
Iteration: 37, Log-Lik: -18339.773, Max-Change: 0.00018
Iteration: 38, Log-Lik: -18339.773, Max-Change: 0.00015
Iteration: 39, Log-Lik: -18339.773, Max-Change: 0.00014
Iteration: 40, Log-Lik: -18339.773, Max-Change: 0.00026
Iteration: 41, Log-Lik: -18339.773, Max-Change: 0.00006
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -19591.795, Max-Change: 0.41798
Iteration: 2, Log-Lik: -19502.476, Max-Change: 0.30012
Iteration: 3, Log-Lik: -19471.671, Max-Change: 0.18932
Iteration: 4, Log-Lik: -19461.103, Max-Change: 0.13942
Iteration: 5, Log-Lik: -19456.685, Max-Change: 0.08459
Iteration: 6, Log-Lik: -19455.150, Max-Change: 0.07595
Iteration: 7, Log-Lik: -19454.183, Max-Change: 0.01984
Iteration: 8, Log-Lik: -19453.845, Max-Change: 0.01133
Iteration: 9, Log-Lik: -19453.799, Max-Change: 0.00703
Iteration: 10, Log-Lik: -19453.784, Max-Change: 0.00265
Iteration: 11, Log-Lik: -19453.781, Max-Change: 0.00142
Iteration: 12, Log-Lik: -19453.779, Max-Change: 0.00096
Iteration: 13, Log-Lik: -19453.778, Max-Change: 0.00026
Iteration: 14, Log-Lik: -19453.778, Max-Change: 0.00021
Iteration: 15, Log-Lik: -19453.778, Max-Change: 0.00095
Iteration: 16, Log-Lik: -19453.778, Max-Change: 0.00014
Iteration: 17, Log-Lik: -19453.778, Max-Change: 0.00064
Iteration: 18, Log-Lik: -19453.778, Max-Change: 0.00018
Iteration: 19, Log-Lik: -19453.778, Max-Change: 0.00011
Iteration: 20, Log-Lik: -19453.778, Max-Change: 0.00051
Iteration: 21, Log-Lik: -19453.778, Max-Change: 0.00018
Iteration: 22, Log-Lik: -19453.778, Max-Change: 0.00010
Iteration: 23, Log-Lik: -19453.778, Max-Change: 0.00036
Iteration: 24, Log-Lik: -19453.778, Max-Change: 0.00016
Iteration: 25, Log-Lik: -19453.778, Max-Change: 0.00009
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -19440.795, Max-Change: 0.47748
Iteration: 2, Log-Lik: -19335.916, Max-Change: 0.31954
Iteration: 3, Log-Lik: -19303.273, Max-Change: 0.20574
Iteration: 4, Log-Lik: -19292.555, Max-Change: 0.14208
Iteration: 5, Log-Lik: -19288.303, Max-Change: 0.09856
Iteration: 6, Log-Lik: -19286.580, Max-Change: 0.06703
Iteration: 7, Log-Lik: -19285.590, Max-Change: 0.02949
Iteration: 8, Log-Lik: -19285.473, Max-Change: 0.01950
Iteration: 9, Log-Lik: -19285.425, Max-Change: 0.01314
Iteration: 10, Log-Lik: -19285.390, Max-Change: 0.00456
Iteration: 11, Log-Lik: -19285.385, Max-Change: 0.00443
Iteration: 12, Log-Lik: -19285.381, Max-Change: 0.00291
Iteration: 13, Log-Lik: -19285.380, Max-Change: 0.00241
Iteration: 14, Log-Lik: -19285.379, Max-Change: 0.00035
Iteration: 15, Log-Lik: -19285.379, Max-Change: 0.00035
Iteration: 16, Log-Lik: -19285.379, Max-Change: 0.00031
Iteration: 17, Log-Lik: -19285.379, Max-Change: 0.00139
Iteration: 18, Log-Lik: -19285.379, Max-Change: 0.00097
Iteration: 19, Log-Lik: -19285.378, Max-Change: 0.00080
Iteration: 20, Log-Lik: -19285.378, Max-Change: 0.00026
Iteration: 21, Log-Lik: -19285.378, Max-Change: 0.00062
Iteration: 22, Log-Lik: -19285.378, Max-Change: 0.00031
Iteration: 23, Log-Lik: -19285.378, Max-Change: 0.00011
Iteration: 24, Log-Lik: -19285.378, Max-Change: 0.00052
Iteration: 25, Log-Lik: -19285.378, Max-Change: 0.00011
Iteration: 26, Log-Lik: -19285.378, Max-Change: 0.00042
Iteration: 27, Log-Lik: -19285.378, Max-Change: 0.00017
Iteration: 28, Log-Lik: -19285.378, Max-Change: 0.00009
##
## Step 6: Fit with anchor items, liberal threshold
##
Iteration: 1, Log-Lik: -18737.340, Max-Change: 1.45294
Iteration: 2, Log-Lik: -18385.212, Max-Change: 0.52970
Iteration: 3, Log-Lik: -18328.634, Max-Change: 0.30971
Iteration: 4, Log-Lik: -18310.236, Max-Change: 0.16407
Iteration: 5, Log-Lik: -18301.455, Max-Change: 0.23578
Iteration: 6, Log-Lik: -18295.307, Max-Change: 0.15262
Iteration: 7, Log-Lik: -18290.876, Max-Change: 0.12944
Iteration: 8, Log-Lik: -18287.465, Max-Change: 0.11495
Iteration: 9, Log-Lik: -18284.782, Max-Change: 0.08956
Iteration: 10, Log-Lik: -18281.456, Max-Change: 0.04372
Iteration: 11, Log-Lik: -18278.267, Max-Change: 0.02467
Iteration: 12, Log-Lik: -18277.257, Max-Change: 0.02326
Iteration: 13, Log-Lik: -18276.200, Max-Change: 0.01841
Iteration: 14, Log-Lik: -18275.534, Max-Change: 0.01795
Iteration: 15, Log-Lik: -18275.108, Max-Change: 0.01945
Iteration: 16, Log-Lik: -18274.824, Max-Change: 0.01990
Iteration: 17, Log-Lik: -18273.981, Max-Change: 0.01090
Iteration: 18, Log-Lik: -18273.805, Max-Change: 0.00807
Iteration: 19, Log-Lik: -18273.667, Max-Change: 0.00785
Iteration: 20, Log-Lik: -18273.572, Max-Change: 0.00874
Iteration: 21, Log-Lik: -18273.496, Max-Change: 0.00859
Iteration: 22, Log-Lik: -18273.456, Max-Change: 0.00965
Iteration: 23, Log-Lik: -18273.297, Max-Change: 0.00500
Iteration: 24, Log-Lik: -18273.261, Max-Change: 0.00350
Iteration: 25, Log-Lik: -18273.235, Max-Change: 0.00363
Iteration: 26, Log-Lik: -18273.216, Max-Change: 0.00391
Iteration: 27, Log-Lik: -18273.200, Max-Change: 0.00383
Iteration: 28, Log-Lik: -18273.193, Max-Change: 0.00490
Iteration: 29, Log-Lik: -18273.159, Max-Change: 0.00245
Iteration: 30, Log-Lik: -18273.150, Max-Change: 0.00173
Iteration: 31, Log-Lik: -18273.144, Max-Change: 0.00163
Iteration: 32, Log-Lik: -18273.140, Max-Change: 0.00176
Iteration: 33, Log-Lik: -18273.136, Max-Change: 0.00177
Iteration: 34, Log-Lik: -18273.134, Max-Change: 0.00262
Iteration: 35, Log-Lik: -18273.126, Max-Change: 0.00126
Iteration: 36, Log-Lik: -18273.123, Max-Change: 0.00090
Iteration: 37, Log-Lik: -18273.122, Max-Change: 0.00081
Iteration: 38, Log-Lik: -18273.121, Max-Change: 0.00085
Iteration: 39, Log-Lik: -18273.120, Max-Change: 0.00084
Iteration: 40, Log-Lik: -18273.119, Max-Change: 0.00144
Iteration: 41, Log-Lik: -18273.117, Max-Change: 0.00067
Iteration: 42, Log-Lik: -18273.116, Max-Change: 0.00049
Iteration: 43, Log-Lik: -18273.115, Max-Change: 0.00045
Iteration: 44, Log-Lik: -18273.115, Max-Change: 0.00046
Iteration: 45, Log-Lik: -18273.115, Max-Change: 0.00046
Iteration: 46, Log-Lik: -18273.114, Max-Change: 0.00081
Iteration: 47, Log-Lik: -18273.114, Max-Change: 0.00037
Iteration: 48, Log-Lik: -18273.113, Max-Change: 0.00027
Iteration: 49, Log-Lik: -18273.113, Max-Change: 0.00025
Iteration: 50, Log-Lik: -18273.113, Max-Change: 0.00028
Iteration: 51, Log-Lik: -18273.113, Max-Change: 0.00027
Iteration: 52, Log-Lik: -18273.113, Max-Change: 0.00047
Iteration: 53, Log-Lik: -18273.113, Max-Change: 0.00021
Iteration: 54, Log-Lik: -18273.113, Max-Change: 0.00015
Iteration: 55, Log-Lik: -18273.113, Max-Change: 0.00015
Iteration: 56, Log-Lik: -18273.113, Max-Change: 0.00015
Iteration: 57, Log-Lik: -18273.113, Max-Change: 0.00013
Iteration: 58, Log-Lik: -18273.112, Max-Change: 0.00027
Iteration: 59, Log-Lik: -18273.112, Max-Change: 0.00012
Iteration: 60, Log-Lik: -18273.112, Max-Change: 0.00009
##
## Step 7: Fit with anchor items, conservative threshold
##
Iteration: 1, Log-Lik: -18737.340, Max-Change: 1.54306
Iteration: 2, Log-Lik: -18393.349, Max-Change: 0.45315
Iteration: 3, Log-Lik: -18338.431, Max-Change: 0.25174
Iteration: 4, Log-Lik: -18319.694, Max-Change: 0.17457
Iteration: 5, Log-Lik: -18309.766, Max-Change: 0.18603
Iteration: 6, Log-Lik: -18302.647, Max-Change: 0.16418
Iteration: 7, Log-Lik: -18297.398, Max-Change: 0.11755
Iteration: 8, Log-Lik: -18293.354, Max-Change: 0.12666
Iteration: 9, Log-Lik: -18290.130, Max-Change: 0.06429
Iteration: 10, Log-Lik: -18286.621, Max-Change: 0.06652
Iteration: 11, Log-Lik: -18284.580, Max-Change: 0.04076
Iteration: 12, Log-Lik: -18283.109, Max-Change: 0.05352
Iteration: 13, Log-Lik: -18281.895, Max-Change: 0.03524
Iteration: 14, Log-Lik: -18279.130, Max-Change: 0.01911
Iteration: 15, Log-Lik: -18278.552, Max-Change: 0.01347
Iteration: 16, Log-Lik: -18278.138, Max-Change: 0.01458
Iteration: 17, Log-Lik: -18277.850, Max-Change: 0.01569
Iteration: 18, Log-Lik: -18277.621, Max-Change: 0.01518
Iteration: 19, Log-Lik: -18277.492, Max-Change: 0.01482
Iteration: 20, Log-Lik: -18277.031, Max-Change: 0.00779
Iteration: 21, Log-Lik: -18276.931, Max-Change: 0.00560
Iteration: 22, Log-Lik: -18276.862, Max-Change: 0.00629
Iteration: 23, Log-Lik: -18276.812, Max-Change: 0.00671
Iteration: 24, Log-Lik: -18276.772, Max-Change: 0.00645
Iteration: 25, Log-Lik: -18276.752, Max-Change: 0.00676
Iteration: 26, Log-Lik: -18276.669, Max-Change: 0.00345
Iteration: 27, Log-Lik: -18276.649, Max-Change: 0.00240
Iteration: 28, Log-Lik: -18276.636, Max-Change: 0.00273
Iteration: 29, Log-Lik: -18276.626, Max-Change: 0.00287
Iteration: 30, Log-Lik: -18276.618, Max-Change: 0.00277
Iteration: 31, Log-Lik: -18276.614, Max-Change: 0.00328
Iteration: 32, Log-Lik: -18276.597, Max-Change: 0.00162
Iteration: 33, Log-Lik: -18276.593, Max-Change: 0.00114
Iteration: 34, Log-Lik: -18276.590, Max-Change: 0.00118
Iteration: 35, Log-Lik: -18276.588, Max-Change: 0.00122
Iteration: 36, Log-Lik: -18276.586, Max-Change: 0.00123
Iteration: 37, Log-Lik: -18276.585, Max-Change: 0.00167
Iteration: 38, Log-Lik: -18276.581, Max-Change: 0.00080
Iteration: 39, Log-Lik: -18276.580, Max-Change: 0.00057
Iteration: 40, Log-Lik: -18276.579, Max-Change: 0.00055
Iteration: 41, Log-Lik: -18276.579, Max-Change: 0.00061
Iteration: 42, Log-Lik: -18276.578, Max-Change: 0.00060
Iteration: 43, Log-Lik: -18276.578, Max-Change: 0.00087
Iteration: 44, Log-Lik: -18276.577, Max-Change: 0.00041
Iteration: 45, Log-Lik: -18276.577, Max-Change: 0.00029
Iteration: 46, Log-Lik: -18276.576, Max-Change: 0.00029
Iteration: 47, Log-Lik: -18276.576, Max-Change: 0.00031
Iteration: 48, Log-Lik: -18276.576, Max-Change: 0.00031
Iteration: 49, Log-Lik: -18276.576, Max-Change: 0.00047
Iteration: 50, Log-Lik: -18276.576, Max-Change: 0.00021
Iteration: 51, Log-Lik: -18276.576, Max-Change: 0.00016
Iteration: 52, Log-Lik: -18276.576, Max-Change: 0.00015
Iteration: 53, Log-Lik: -18276.575, Max-Change: 0.00015
Iteration: 54, Log-Lik: -18276.575, Max-Change: 0.00016
Iteration: 55, Log-Lik: -18276.575, Max-Change: 0.00026
Iteration: 56, Log-Lik: -18276.575, Max-Change: 0.00012
Iteration: 57, Log-Lik: -18276.575, Max-Change: 0.00008
##
## Step 8: Get scores
d2015_irt_fit_bias_sex$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS -0.0811
## 2 UTDS 0.3873
## 3 UETSDS 0.0924
## 4 ETSSD -0.0446
## 5 Starks.DTFR -0.0809
## 6 UDTFR 0.3928
## 7 UETSDN 0.1016
## 8 theta.of.max.test.D 0.6517
## 9 Test.Dmax -0.1989
##
## $conservative
## Effect Size Value
## 1 STDS -0.0718
## 2 UTDS 0.3486
## 3 UETSDS 0.0718
## 4 ETSSD -0.0402
## 5 Starks.DTFR -0.0842
## 6 UDTFR 0.3492
## 7 UETSDN 0.0842
## 8 theta.of.max.test.D 0.5906
## 9 Test.Dmax -0.1312
d2015_irt_fit_bias_sex$effect_size_items
## $liberal
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.579 0.000 0.812
## item.2 0.000 0.000 0.000 0.000 0.000 -0.579 0.000 0.723
## item.3 0.000 0.000 0.000 0.000 0.000 -0.579 0.000 0.896
## item.4 0.000 0.000 0.000 0.000 0.000 -0.579 0.000 0.824
## item.5 -0.005 0.039 0.003 0.043 -0.030 -2.508 0.125 0.743
## item.6 0.003 0.050 -0.003 0.061 0.024 0.652 -0.116 0.326
## item.7 -0.116 0.116 -0.112 0.112 -1.121 -0.708 -0.122 0.393
## item.8 0.000 0.000 0.000 0.000 0.000 -0.579 0.000 0.363
## item.9 0.000 0.000 0.000 0.000 0.000 -0.579 0.000 0.662
## item.10 -0.066 0.067 -0.061 0.064 -0.376 -1.437 -0.159 0.847
## item.11 0.023 0.034 0.015 0.035 0.168 -2.829 -0.103 0.818
## item.12 0.081 0.081 0.078 0.078 0.519 -1.499 0.114 0.788
## mean.ES.ref
## item.1 0.812
## item.2 0.723
## item.3 0.896
## item.4 0.824
## item.5 0.748
## item.6 0.323
## item.7 0.510
## item.8 0.363
## item.9 0.662
## item.10 0.914
## item.11 0.795
## item.12 0.707
##
## $conservative
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.580 0.000 0.811
## item.2 0.000 0.000 0.000 0.000 0.000 -0.580 0.000 0.722
## item.3 0.000 0.000 0.000 0.000 0.000 -0.580 0.000 0.896
## item.4 0.000 0.000 0.000 0.000 0.000 -0.580 0.000 0.825
## item.5 0.000 0.000 0.000 0.000 0.000 -0.580 0.000 0.750
## item.6 0.007 0.045 0.001 0.057 0.061 0.591 -0.101 0.326
## item.7 -0.114 0.114 -0.110 0.110 -1.118 -0.930 -0.121 0.393
## item.8 0.000 0.000 0.000 0.000 0.000 -0.580 0.000 0.360
## item.9 0.000 0.000 0.000 0.000 0.000 -0.580 0.000 0.661
## item.10 -0.070 0.070 -0.065 0.067 -0.405 -1.476 -0.169 0.847
## item.11 0.023 0.037 0.013 0.039 0.173 -2.755 -0.120 0.818
## item.12 0.082 0.082 0.077 0.077 0.535 -1.347 0.108 0.788
## mean.ES.ref
## item.1 0.811
## item.2 0.722
## item.3 0.896
## item.4 0.825
## item.5 0.750
## item.6 0.318
## item.7 0.507
## item.8 0.360
## item.9 0.661
## item.10 0.917
## item.11 0.795
## item.12 0.706
d2015_irt_fit_bias_sex$effect_size_items$conservative %>% DIF_summary()
## n_items n_favoring_focal_group n_favoring_ref_group
## 12.000 3.000 2.000
## n_noDIF prop_favoring_focal_group prop_favoring_ref_group
## 7.000 0.250 0.167
## prop_noDIF
## 0.583
d2015_irt_fit_bias_sex$fits$anchor_conservative %>% plot(type = "trace")
save_plot_to_file(d2015_irt_fit_bias_sex$fits$anchor_conservative %>% plot(type = "trace"), filename = "figs/2015_dif_sex.png")
#test bias adjusted scores
d2015$irt_adj = case_when(
d2015$race2 == "Black" ~ d2015$irt - d2015_irt_fit_bias_bw$effect_size_test$conservative$Value[4],
d2015$race2 == "Hispanic" ~ d2015$irt - d2015_irt_fit_bias_hw$effect_size_test$conservative$Value[4],
d2015$sex2 == "Female" ~ d2015$irt - d2015_irt_fit_bias_sex$effect_size_test$conservative$Value[4],
TRUE ~ d2015$irt
)
The data are not public yet, but Pew published their own IRT results in their complete report.
d2019 = haven::read_sav("data/W42_Jan19/ATP W42.sav")
d2019_table = d2019 %>% df_var_table()
d2019 %<>% filter(F_RACETHN != 9)
d2019$race = d2019$F_RACECMB %>% as_factor()
d2019$race2 = d2019$F_RACETHN %>% as_factor() %>% str_replace(" non-Hispanic", "") %>% fct_relevel("White")
d2019$race2 %>% table2()
d2019$bw = d2019$race2 %>% mapvalues(from = c("Hispanic", "Other"), to = rep(NA, 2))
d2019$hw = d2019$race2 %>% mapvalues(from = c("Black", "Other"), to = rep(NA, 2))
d2019$sex = d2019$F_SEX %>% as_factor()
d2019$sex2 = d2019$F_SEX %>% as_factor() %>% mapvalues(from = c("Refused"), to = c(NA))
d2019$sex2 %>% table2()
d2019$age_range = d2019$F_AGECAT %>% as_factor() %>% mapvalues(from = "DK/REF", to = NA)
d2019$age_range %>% table2()
d2019_test = d2019 %>% select(contains("CORRECT"))
#IRT
d2019_irt_fit = mirt(
d2019_test,
model = 1,
itemtype = "2PL"
)
##
Iteration: 1, Log-Lik: -26154.929, Max-Change: 0.72462
Iteration: 2, Log-Lik: -25145.047, Max-Change: 0.42286
Iteration: 3, Log-Lik: -24878.516, Max-Change: 0.26797
Iteration: 4, Log-Lik: -24791.941, Max-Change: 0.16199
Iteration: 5, Log-Lik: -24758.048, Max-Change: 0.11870
Iteration: 6, Log-Lik: -24744.327, Max-Change: 0.08392
Iteration: 7, Log-Lik: -24737.817, Max-Change: 0.04658
Iteration: 8, Log-Lik: -24735.028, Max-Change: 0.03049
Iteration: 9, Log-Lik: -24733.570, Max-Change: 0.02259
Iteration: 10, Log-Lik: -24732.221, Max-Change: 0.00753
Iteration: 11, Log-Lik: -24731.955, Max-Change: 0.00548
Iteration: 12, Log-Lik: -24731.779, Max-Change: 0.00440
Iteration: 13, Log-Lik: -24731.388, Max-Change: 0.00300
Iteration: 14, Log-Lik: -24731.363, Max-Change: 0.00276
Iteration: 15, Log-Lik: -24731.345, Max-Change: 0.00206
Iteration: 16, Log-Lik: -24731.316, Max-Change: 0.00193
Iteration: 17, Log-Lik: -24731.309, Max-Change: 0.00111
Iteration: 18, Log-Lik: -24731.306, Max-Change: 0.00101
Iteration: 19, Log-Lik: -24731.297, Max-Change: 0.00036
Iteration: 20, Log-Lik: -24731.296, Max-Change: 0.00034
Iteration: 21, Log-Lik: -24731.296, Max-Change: 0.00031
Iteration: 22, Log-Lik: -24731.295, Max-Change: 0.00067
Iteration: 23, Log-Lik: -24731.295, Max-Change: 0.00050
Iteration: 24, Log-Lik: -24731.295, Max-Change: 0.00026
Iteration: 25, Log-Lik: -24731.295, Max-Change: 0.00014
Iteration: 26, Log-Lik: -24731.295, Max-Change: 0.00036
Iteration: 27, Log-Lik: -24731.295, Max-Change: 0.00013
Iteration: 28, Log-Lik: -24731.295, Max-Change: 0.00008
d2019_irt_fit
##
## Call:
## mirt(data = d2019_test, model = 1, itemtype = "2PL")
##
## Full-information item factor analysis with 1 factor(s).
## Converged within 1e-04 tolerance after 28 EM iterations.
## mirt version: 1.38.1
## M-step optimizer: BFGS
## EM acceleration: Ramsay
## Number of rectangular quadrature: 61
## Latent density type: Gaussian
##
## Log-likelihood = -24731
## Estimated parameters: 22
## AIC = 49507
## BIC = 49647; SABIC = 49577
## G2 (2025) = 1976, p = 0.778
## RMSEA = 0, CFI = NaN, TLI = NaN
d2019_irt_fit %>% summary()
## F1 h2
## KNOW1_CORRECT_W42 0.758 0.574
## KNOW2_CORRECT_W42 0.712 0.507
## KNOW3_CORRECT_W42 0.843 0.711
## KNOW4_CORRECT_W42 0.684 0.468
## KNOW5_CORRECT_W42 0.673 0.453
## KNOW6_CORRECT_W42 0.684 0.467
## KNOW7_CORRECT_W42 0.825 0.681
## KNOW9_CORRECT_W42 0.722 0.521
## KNOW10_CORRECT_W42 0.807 0.651
## KNOW11_CORRECT_W42 0.850 0.722
## KNOW12_CORRECT_W42 0.710 0.504
##
## SS loadings: 6.26
## Proportion Var: 0.569
##
## Factor correlations:
##
## F1
## F1 1
d2019_irt_fit %>% coef(simplify = T)
## $items
## a1 d g u
## KNOW1_CORRECT_W42 1.98 1.358 0 1
## KNOW2_CORRECT_W42 1.73 0.823 0 1
## KNOW3_CORRECT_W42 2.67 0.593 0 1
## KNOW4_CORRECT_W42 1.60 0.856 0 1
## KNOW5_CORRECT_W42 1.55 0.662 0 1
## KNOW6_CORRECT_W42 1.59 0.151 0 1
## KNOW7_CORRECT_W42 2.49 2.526 0 1
## KNOW9_CORRECT_W42 1.78 0.658 0 1
## KNOW10_CORRECT_W42 2.33 -0.754 0 1
## KNOW11_CORRECT_W42 2.74 2.985 0 1
## KNOW12_CORRECT_W42 1.72 0.507 0 1
##
## $means
## F1
## 0
##
## $cov
## F1
## F1 1
#plots
d2019_irt_fit %>% plot(type = "info")
d2019_irt_fit %>% plot(type = "rxx")
d2019_irt_fit %>% plot(type = "trace")
#scores
d2019_irt_fit_scores = fscores(d2019_irt_fit, full.scores = T, full.scores.SE = T)
d2019$irt = d2019_irt_fit_scores[, 1] %>% standardize(focal_group = d2019$race2 == "White")
empirical_rxx(d2019_irt_fit_scores)
## F1
## 0.819
#gaps
#race
GG_denhist(d2019, "irt", "race2")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
SMD_matrix(d2019$irt, d2019$race2)
## White Black Hispanic Other
## White NA 1.21 0.553 0.0901
## Black 1.2133 NA -0.660 -1.1232
## Hispanic 0.5535 -0.66 NA -0.4634
## Other 0.0901 -1.12 -0.463 NA
SMD_matrix(d2019$irt, d2019$race2, reliability = empirical_rxx(d2019_irt_fit_scores))
## White Black Hispanic Other
## White NA 1.399 0.617 0.0995
## Black 1.3988 NA -0.738 -1.2869
## Hispanic 0.6169 -0.738 NA -0.5152
## Other 0.0995 -1.287 -0.515 NA
describe2(d2019$irt, d2019$race2)
## New names:
## • `` -> `...1`
#sex
GG_denhist(d2019, "irt", "sex2")
## Warning in GG_denhist(d2019, "irt", "sex2"): Grouping variable contained
## missing values. These were removed. If you want an NA group, convert to
## explicit value.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
SMD_matrix(d2019$irt, d2019$sex2)
## Male Female
## Male NA 0.55
## Female 0.55 NA
SMD_matrix(d2019$irt, d2019$sex2, reliability = empirical_rxx(d2019_irt_fit_scores))
## Male Female
## Male NA 0.613
## Female 0.613 NA
describe2(d2019$irt, d2019$sex2)
## New names:
## • `` -> `...1`
#test bias
d2019_irt_fit_bias_bw = DIF_test(
items = d2019_test,
model = 1,
group = d2019$bw,
itemtype = "2PL"
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -26154.929, Max-Change: 0.72462
Iteration: 2, Log-Lik: -25145.047, Max-Change: 0.42286
Iteration: 3, Log-Lik: -24878.516, Max-Change: 0.26797
Iteration: 4, Log-Lik: -24791.941, Max-Change: 0.16199
Iteration: 5, Log-Lik: -24758.048, Max-Change: 0.11870
Iteration: 6, Log-Lik: -24744.327, Max-Change: 0.08392
Iteration: 7, Log-Lik: -24737.817, Max-Change: 0.04658
Iteration: 8, Log-Lik: -24735.028, Max-Change: 0.03049
Iteration: 9, Log-Lik: -24733.570, Max-Change: 0.02259
Iteration: 10, Log-Lik: -24732.221, Max-Change: 0.00753
Iteration: 11, Log-Lik: -24731.955, Max-Change: 0.00548
Iteration: 12, Log-Lik: -24731.779, Max-Change: 0.00440
Iteration: 13, Log-Lik: -24731.388, Max-Change: 0.00300
Iteration: 14, Log-Lik: -24731.363, Max-Change: 0.00276
Iteration: 15, Log-Lik: -24731.345, Max-Change: 0.00206
Iteration: 16, Log-Lik: -24731.316, Max-Change: 0.00193
Iteration: 17, Log-Lik: -24731.309, Max-Change: 0.00111
Iteration: 18, Log-Lik: -24731.306, Max-Change: 0.00101
Iteration: 19, Log-Lik: -24731.297, Max-Change: 0.00036
Iteration: 20, Log-Lik: -24731.296, Max-Change: 0.00034
Iteration: 21, Log-Lik: -24731.296, Max-Change: 0.00031
Iteration: 22, Log-Lik: -24731.295, Max-Change: 0.00067
Iteration: 23, Log-Lik: -24731.295, Max-Change: 0.00050
Iteration: 24, Log-Lik: -24731.295, Max-Change: 0.00026
Iteration: 25, Log-Lik: -24731.295, Max-Change: 0.00014
Iteration: 26, Log-Lik: -24731.295, Max-Change: 0.00036
Iteration: 27, Log-Lik: -24731.295, Max-Change: 0.00013
Iteration: 28, Log-Lik: -24731.295, Max-Change: 0.00008
##
## Step 2: Initial MI fit
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -19863.781, Max-Change: 1.10435
Iteration: 2, Log-Lik: -18709.076, Max-Change: 0.36253
Iteration: 3, Log-Lik: -18573.550, Max-Change: 0.18933
Iteration: 4, Log-Lik: -18534.299, Max-Change: 0.11191
Iteration: 5, Log-Lik: -18516.108, Max-Change: 0.08639
Iteration: 6, Log-Lik: -18506.500, Max-Change: 0.06810
Iteration: 7, Log-Lik: -18501.126, Max-Change: 0.05195
Iteration: 8, Log-Lik: -18498.034, Max-Change: 0.03922
Iteration: 9, Log-Lik: -18496.224, Max-Change: 0.03068
Iteration: 10, Log-Lik: -18494.255, Max-Change: 0.03740
Iteration: 11, Log-Lik: -18493.843, Max-Change: 0.01914
Iteration: 12, Log-Lik: -18493.704, Max-Change: 0.01097
Iteration: 13, Log-Lik: -18493.610, Max-Change: 0.00838
Iteration: 14, Log-Lik: -18493.581, Max-Change: 0.00480
Iteration: 15, Log-Lik: -18493.568, Max-Change: 0.00304
Iteration: 16, Log-Lik: -18493.555, Max-Change: 0.00338
Iteration: 17, Log-Lik: -18493.551, Max-Change: 0.00165
Iteration: 18, Log-Lik: -18493.550, Max-Change: 0.00089
Iteration: 19, Log-Lik: -18493.550, Max-Change: 0.00054
Iteration: 20, Log-Lik: -18493.549, Max-Change: 0.00034
Iteration: 21, Log-Lik: -18493.549, Max-Change: 0.00025
Iteration: 22, Log-Lik: -18493.549, Max-Change: 0.00026
Iteration: 23, Log-Lik: -18493.549, Max-Change: 0.00013
Iteration: 24, Log-Lik: -18493.549, Max-Change: 0.00007
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -29918.023, Max-Change: 0.57349
Iteration: 2, Log-Lik: -29628.104, Max-Change: 0.45173
Iteration: 3, Log-Lik: -29515.604, Max-Change: 0.32749
Iteration: 4, Log-Lik: -29477.747, Max-Change: 0.25110
Iteration: 5, Log-Lik: -29463.568, Max-Change: 0.14373
Iteration: 6, Log-Lik: -29459.259, Max-Change: 0.09846
Iteration: 7, Log-Lik: -29456.652, Max-Change: 0.04097
Iteration: 8, Log-Lik: -29456.428, Max-Change: 0.02542
Iteration: 9, Log-Lik: -29456.329, Max-Change: 0.02074
Iteration: 10, Log-Lik: -29456.217, Max-Change: 0.00317
Iteration: 11, Log-Lik: -29456.214, Max-Change: 0.00229
Iteration: 12, Log-Lik: -29456.212, Max-Change: 0.00144
Iteration: 13, Log-Lik: -29456.210, Max-Change: 0.00042
Iteration: 14, Log-Lik: -29456.210, Max-Change: 0.00037
Iteration: 15, Log-Lik: -29456.210, Max-Change: 0.00031
Iteration: 16, Log-Lik: -29456.209, Max-Change: 0.00014
Iteration: 17, Log-Lik: -29456.209, Max-Change: 0.00059
Iteration: 18, Log-Lik: -29456.209, Max-Change: 0.00036
Iteration: 19, Log-Lik: -29456.209, Max-Change: 0.00010
Iteration: 20, Log-Lik: -29456.209, Max-Change: 0.00010
Iteration: 21, Log-Lik: -29456.209, Max-Change: 0.00010
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -29072.573, Max-Change: 0.76118
Iteration: 2, Log-Lik: -28502.424, Max-Change: 0.52079
Iteration: 3, Log-Lik: -28346.576, Max-Change: 0.39989
Iteration: 4, Log-Lik: -28293.285, Max-Change: 0.24988
Iteration: 5, Log-Lik: -28275.395, Max-Change: 0.19611
Iteration: 6, Log-Lik: -28268.330, Max-Change: 0.11762
Iteration: 7, Log-Lik: -28265.676, Max-Change: 0.07914
Iteration: 8, Log-Lik: -28264.496, Max-Change: 0.04537
Iteration: 9, Log-Lik: -28263.936, Max-Change: 0.02893
Iteration: 10, Log-Lik: -28263.481, Max-Change: 0.01104
Iteration: 11, Log-Lik: -28263.366, Max-Change: 0.00664
Iteration: 12, Log-Lik: -28263.302, Max-Change: 0.00908
Iteration: 13, Log-Lik: -28263.210, Max-Change: 0.00276
Iteration: 14, Log-Lik: -28263.198, Max-Change: 0.00154
Iteration: 15, Log-Lik: -28263.192, Max-Change: 0.00116
Iteration: 16, Log-Lik: -28263.183, Max-Change: 0.00029
Iteration: 17, Log-Lik: -28263.183, Max-Change: 0.00026
Iteration: 18, Log-Lik: -28263.183, Max-Change: 0.00022
Iteration: 19, Log-Lik: -28263.183, Max-Change: 0.00013
Iteration: 20, Log-Lik: -28263.183, Max-Change: 0.00012
Iteration: 21, Log-Lik: -28263.183, Max-Change: 0.00010
Iteration: 22, Log-Lik: -28263.183, Max-Change: 0.00009
##
## Step 6: Fit with anchor items, liberal threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -19863.781, Max-Change: 1.10435
Iteration: 2, Log-Lik: -18688.491, Max-Change: 0.45648
Iteration: 3, Log-Lik: -18531.692, Max-Change: 0.27602
Iteration: 4, Log-Lik: -18486.835, Max-Change: 0.16407
Iteration: 5, Log-Lik: -18470.456, Max-Change: 0.11150
Iteration: 6, Log-Lik: -18462.998, Max-Change: 0.09112
Iteration: 7, Log-Lik: -18458.940, Max-Change: 0.07593
Iteration: 8, Log-Lik: -18456.419, Max-Change: 0.07395
Iteration: 9, Log-Lik: -18454.681, Max-Change: 0.06443
Iteration: 10, Log-Lik: -18452.401, Max-Change: 0.09840
Iteration: 11, Log-Lik: -18450.709, Max-Change: 0.03664
Iteration: 12, Log-Lik: -18450.348, Max-Change: 0.03505
Iteration: 13, Log-Lik: -18450.055, Max-Change: 0.02339
Iteration: 14, Log-Lik: -18449.898, Max-Change: 0.02701
Iteration: 15, Log-Lik: -18449.790, Max-Change: 0.02515
Iteration: 16, Log-Lik: -18449.733, Max-Change: 0.02921
Iteration: 17, Log-Lik: -18449.520, Max-Change: 0.01055
Iteration: 18, Log-Lik: -18449.486, Max-Change: 0.00855
Iteration: 19, Log-Lik: -18449.461, Max-Change: 0.00714
Iteration: 20, Log-Lik: -18449.445, Max-Change: 0.00843
Iteration: 21, Log-Lik: -18449.432, Max-Change: 0.00794
Iteration: 22, Log-Lik: -18449.426, Max-Change: 0.00972
Iteration: 23, Log-Lik: -18449.398, Max-Change: 0.00379
Iteration: 24, Log-Lik: -18449.393, Max-Change: 0.00290
Iteration: 25, Log-Lik: -18449.390, Max-Change: 0.00271
Iteration: 26, Log-Lik: -18449.387, Max-Change: 0.00296
Iteration: 27, Log-Lik: -18449.386, Max-Change: 0.00287
Iteration: 28, Log-Lik: -18449.385, Max-Change: 0.00359
Iteration: 29, Log-Lik: -18449.380, Max-Change: 0.00145
Iteration: 30, Log-Lik: -18449.380, Max-Change: 0.00098
Iteration: 31, Log-Lik: -18449.379, Max-Change: 0.00107
Iteration: 32, Log-Lik: -18449.379, Max-Change: 0.00116
Iteration: 33, Log-Lik: -18449.378, Max-Change: 0.00114
Iteration: 34, Log-Lik: -18449.378, Max-Change: 0.00140
Iteration: 35, Log-Lik: -18449.378, Max-Change: 0.00059
Iteration: 36, Log-Lik: -18449.377, Max-Change: 0.00037
Iteration: 37, Log-Lik: -18449.377, Max-Change: 0.00043
Iteration: 38, Log-Lik: -18449.377, Max-Change: 0.00047
Iteration: 39, Log-Lik: -18449.377, Max-Change: 0.00041
Iteration: 40, Log-Lik: -18449.377, Max-Change: 0.00055
Iteration: 41, Log-Lik: -18449.377, Max-Change: 0.00024
Iteration: 42, Log-Lik: -18449.377, Max-Change: 0.00017
Iteration: 43, Log-Lik: -18449.377, Max-Change: 0.00018
Iteration: 44, Log-Lik: -18449.377, Max-Change: 0.00016
Iteration: 45, Log-Lik: -18449.377, Max-Change: 0.00018
Iteration: 46, Log-Lik: -18449.377, Max-Change: 0.00022
Iteration: 47, Log-Lik: -18449.377, Max-Change: 0.00010
Iteration: 48, Log-Lik: -18449.377, Max-Change: 0.00007
##
## Step 7: Fit with anchor items, conservative threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -19863.781, Max-Change: 1.10432
Iteration: 2, Log-Lik: -18702.044, Max-Change: 0.46340
Iteration: 3, Log-Lik: -18545.207, Max-Change: 0.27321
Iteration: 4, Log-Lik: -18501.459, Max-Change: 0.17798
Iteration: 5, Log-Lik: -18483.278, Max-Change: 0.14059
Iteration: 6, Log-Lik: -18473.684, Max-Change: 0.11947
Iteration: 7, Log-Lik: -18467.868, Max-Change: 0.10206
Iteration: 8, Log-Lik: -18464.123, Max-Change: 0.09643
Iteration: 9, Log-Lik: -18461.526, Max-Change: 0.08368
Iteration: 10, Log-Lik: -18458.353, Max-Change: 0.08504
Iteration: 11, Log-Lik: -18456.279, Max-Change: 0.03436
Iteration: 12, Log-Lik: -18455.797, Max-Change: 0.05177
Iteration: 13, Log-Lik: -18455.434, Max-Change: 0.02942
Iteration: 14, Log-Lik: -18455.247, Max-Change: 0.03581
Iteration: 15, Log-Lik: -18455.124, Max-Change: 0.03216
Iteration: 16, Log-Lik: -18455.069, Max-Change: 0.03594
Iteration: 17, Log-Lik: -18454.861, Max-Change: 0.00779
Iteration: 18, Log-Lik: -18454.831, Max-Change: 0.00630
Iteration: 19, Log-Lik: -18454.817, Max-Change: 0.00797
Iteration: 20, Log-Lik: -18454.807, Max-Change: 0.00778
Iteration: 21, Log-Lik: -18454.799, Max-Change: 0.00721
Iteration: 22, Log-Lik: -18454.796, Max-Change: 0.00785
Iteration: 23, Log-Lik: -18454.781, Max-Change: 0.00206
Iteration: 24, Log-Lik: -18454.779, Max-Change: 0.00164
Iteration: 25, Log-Lik: -18454.778, Max-Change: 0.00205
Iteration: 26, Log-Lik: -18454.777, Max-Change: 0.00206
Iteration: 27, Log-Lik: -18454.776, Max-Change: 0.00197
Iteration: 28, Log-Lik: -18454.776, Max-Change: 0.00196
Iteration: 29, Log-Lik: -18454.775, Max-Change: 0.00059
Iteration: 30, Log-Lik: -18454.775, Max-Change: 0.00035
Iteration: 31, Log-Lik: -18454.775, Max-Change: 0.00042
Iteration: 32, Log-Lik: -18454.774, Max-Change: 0.00055
Iteration: 33, Log-Lik: -18454.774, Max-Change: 0.00056
Iteration: 34, Log-Lik: -18454.774, Max-Change: 0.00041
Iteration: 35, Log-Lik: -18454.774, Max-Change: 0.00019
Iteration: 36, Log-Lik: -18454.774, Max-Change: 0.00011
Iteration: 37, Log-Lik: -18454.774, Max-Change: 0.00009
##
## Step 8: Get scores
d2019_irt_fit_bias_hw = DIF_test(
items = d2019_test,
model = 1,
group = d2019$hw,
itemtype = "2PL"
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -26154.929, Max-Change: 0.72462
Iteration: 2, Log-Lik: -25145.047, Max-Change: 0.42286
Iteration: 3, Log-Lik: -24878.516, Max-Change: 0.26797
Iteration: 4, Log-Lik: -24791.941, Max-Change: 0.16199
Iteration: 5, Log-Lik: -24758.048, Max-Change: 0.11870
Iteration: 6, Log-Lik: -24744.327, Max-Change: 0.08392
Iteration: 7, Log-Lik: -24737.817, Max-Change: 0.04658
Iteration: 8, Log-Lik: -24735.028, Max-Change: 0.03049
Iteration: 9, Log-Lik: -24733.570, Max-Change: 0.02259
Iteration: 10, Log-Lik: -24732.221, Max-Change: 0.00753
Iteration: 11, Log-Lik: -24731.955, Max-Change: 0.00548
Iteration: 12, Log-Lik: -24731.779, Max-Change: 0.00440
Iteration: 13, Log-Lik: -24731.388, Max-Change: 0.00300
Iteration: 14, Log-Lik: -24731.363, Max-Change: 0.00276
Iteration: 15, Log-Lik: -24731.345, Max-Change: 0.00206
Iteration: 16, Log-Lik: -24731.316, Max-Change: 0.00193
Iteration: 17, Log-Lik: -24731.309, Max-Change: 0.00111
Iteration: 18, Log-Lik: -24731.306, Max-Change: 0.00101
Iteration: 19, Log-Lik: -24731.297, Max-Change: 0.00036
Iteration: 20, Log-Lik: -24731.296, Max-Change: 0.00034
Iteration: 21, Log-Lik: -24731.296, Max-Change: 0.00031
Iteration: 22, Log-Lik: -24731.295, Max-Change: 0.00067
Iteration: 23, Log-Lik: -24731.295, Max-Change: 0.00050
Iteration: 24, Log-Lik: -24731.295, Max-Change: 0.00026
Iteration: 25, Log-Lik: -24731.295, Max-Change: 0.00014
Iteration: 26, Log-Lik: -24731.295, Max-Change: 0.00036
Iteration: 27, Log-Lik: -24731.295, Max-Change: 0.00013
Iteration: 28, Log-Lik: -24731.295, Max-Change: 0.00008
##
## Step 2: Initial MI fit
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -20874.945, Max-Change: 0.80583
Iteration: 2, Log-Lik: -19978.677, Max-Change: 0.33692
Iteration: 3, Log-Lik: -19862.294, Max-Change: 0.17978
Iteration: 4, Log-Lik: -19830.132, Max-Change: 0.14436
Iteration: 5, Log-Lik: -19815.316, Max-Change: 0.13514
Iteration: 6, Log-Lik: -19807.213, Max-Change: 0.10805
Iteration: 7, Log-Lik: -19802.526, Max-Change: 0.08257
Iteration: 8, Log-Lik: -19799.754, Max-Change: 0.06243
Iteration: 9, Log-Lik: -19798.097, Max-Change: 0.04720
Iteration: 10, Log-Lik: -19796.433, Max-Change: 0.06490
Iteration: 11, Log-Lik: -19795.898, Max-Change: 0.03116
Iteration: 12, Log-Lik: -19795.735, Max-Change: 0.01758
Iteration: 13, Log-Lik: -19795.640, Max-Change: 0.01302
Iteration: 14, Log-Lik: -19795.600, Max-Change: 0.00813
Iteration: 15, Log-Lik: -19795.576, Max-Change: 0.00563
Iteration: 16, Log-Lik: -19795.551, Max-Change: 0.00771
Iteration: 17, Log-Lik: -19795.541, Max-Change: 0.00374
Iteration: 18, Log-Lik: -19795.538, Max-Change: 0.00215
Iteration: 19, Log-Lik: -19795.536, Max-Change: 0.00163
Iteration: 20, Log-Lik: -19795.535, Max-Change: 0.00104
Iteration: 21, Log-Lik: -19795.534, Max-Change: 0.00075
Iteration: 22, Log-Lik: -19795.533, Max-Change: 0.00125
Iteration: 23, Log-Lik: -19795.533, Max-Change: 0.00056
Iteration: 24, Log-Lik: -19795.533, Max-Change: 0.00031
Iteration: 25, Log-Lik: -19795.532, Max-Change: 0.00023
Iteration: 26, Log-Lik: -19795.532, Max-Change: 0.00015
Iteration: 27, Log-Lik: -19795.532, Max-Change: 0.00011
Iteration: 28, Log-Lik: -19795.532, Max-Change: 0.00020
Iteration: 29, Log-Lik: -19795.532, Max-Change: 0.00009
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -29911.471, Max-Change: 0.39006
Iteration: 2, Log-Lik: -29685.840, Max-Change: 0.28887
Iteration: 3, Log-Lik: -29602.975, Max-Change: 0.19148
Iteration: 4, Log-Lik: -29575.995, Max-Change: 0.12162
Iteration: 5, Log-Lik: -29567.284, Max-Change: 0.07802
Iteration: 6, Log-Lik: -29564.346, Max-Change: 0.04837
Iteration: 7, Log-Lik: -29563.104, Max-Change: 0.02412
Iteration: 8, Log-Lik: -29562.895, Max-Change: 0.01533
Iteration: 9, Log-Lik: -29562.812, Max-Change: 0.01079
Iteration: 10, Log-Lik: -29562.757, Max-Change: 0.00466
Iteration: 11, Log-Lik: -29562.748, Max-Change: 0.00253
Iteration: 12, Log-Lik: -29562.745, Max-Change: 0.00187
Iteration: 13, Log-Lik: -29562.742, Max-Change: 0.00098
Iteration: 14, Log-Lik: -29562.742, Max-Change: 0.00074
Iteration: 15, Log-Lik: -29562.742, Max-Change: 0.00056
Iteration: 16, Log-Lik: -29562.742, Max-Change: 0.00025
Iteration: 17, Log-Lik: -29562.742, Max-Change: 0.00022
Iteration: 18, Log-Lik: -29562.742, Max-Change: 0.00020
Iteration: 19, Log-Lik: -29562.742, Max-Change: 0.00015
Iteration: 20, Log-Lik: -29562.742, Max-Change: 0.00014
Iteration: 21, Log-Lik: -29562.742, Max-Change: 0.00012
Iteration: 22, Log-Lik: -29562.742, Max-Change: 0.00011
Iteration: 23, Log-Lik: -29562.742, Max-Change: 0.00010
Iteration: 24, Log-Lik: -29562.742, Max-Change: 0.00009
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -28995.389, Max-Change: 0.48774
Iteration: 2, Log-Lik: -28521.146, Max-Change: 0.34334
Iteration: 3, Log-Lik: -28391.243, Max-Change: 0.20797
Iteration: 4, Log-Lik: -28354.618, Max-Change: 0.14866
Iteration: 5, Log-Lik: -28341.627, Max-Change: 0.09387
Iteration: 6, Log-Lik: -28337.270, Max-Change: 0.05978
Iteration: 7, Log-Lik: -28335.298, Max-Change: 0.02713
Iteration: 8, Log-Lik: -28335.029, Max-Change: 0.01642
Iteration: 9, Log-Lik: -28334.927, Max-Change: 0.01096
Iteration: 10, Log-Lik: -28334.858, Max-Change: 0.00346
Iteration: 11, Log-Lik: -28334.851, Max-Change: 0.00194
Iteration: 12, Log-Lik: -28334.847, Max-Change: 0.00110
Iteration: 13, Log-Lik: -28334.844, Max-Change: 0.00059
Iteration: 14, Log-Lik: -28334.843, Max-Change: 0.00035
Iteration: 15, Log-Lik: -28334.843, Max-Change: 0.00029
Iteration: 16, Log-Lik: -28334.843, Max-Change: 0.00027
Iteration: 17, Log-Lik: -28334.843, Max-Change: 0.00024
Iteration: 18, Log-Lik: -28334.843, Max-Change: 0.00022
Iteration: 19, Log-Lik: -28334.843, Max-Change: 0.00020
Iteration: 20, Log-Lik: -28334.842, Max-Change: 0.00018
Iteration: 21, Log-Lik: -28334.842, Max-Change: 0.00016
Iteration: 22, Log-Lik: -28334.842, Max-Change: 0.00014
Iteration: 23, Log-Lik: -28334.842, Max-Change: 0.00013
Iteration: 24, Log-Lik: -28334.842, Max-Change: 0.00011
Iteration: 25, Log-Lik: -28334.842, Max-Change: 0.00010
##
## Step 6: Fit with anchor items, liberal threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -20874.945, Max-Change: 0.92314
Iteration: 2, Log-Lik: -19943.875, Max-Change: 0.44038
Iteration: 3, Log-Lik: -19809.769, Max-Change: 0.26687
Iteration: 4, Log-Lik: -19771.695, Max-Change: 0.16148
Iteration: 5, Log-Lik: -19758.446, Max-Change: 0.09827
Iteration: 6, Log-Lik: -19753.086, Max-Change: 0.06032
Iteration: 7, Log-Lik: -19750.541, Max-Change: 0.05477
Iteration: 8, Log-Lik: -19749.114, Max-Change: 0.05062
Iteration: 9, Log-Lik: -19748.192, Max-Change: 0.04582
Iteration: 10, Log-Lik: -19747.226, Max-Change: 0.10399
Iteration: 11, Log-Lik: -19746.280, Max-Change: 0.04296
Iteration: 12, Log-Lik: -19746.028, Max-Change: 0.02800
Iteration: 13, Log-Lik: -19745.799, Max-Change: 0.03252
Iteration: 14, Log-Lik: -19745.668, Max-Change: 0.01965
Iteration: 15, Log-Lik: -19745.583, Max-Change: 0.01562
Iteration: 16, Log-Lik: -19745.533, Max-Change: 0.03946
Iteration: 17, Log-Lik: -19745.356, Max-Change: 0.01424
Iteration: 18, Log-Lik: -19745.328, Max-Change: 0.00866
Iteration: 19, Log-Lik: -19745.307, Max-Change: 0.00802
Iteration: 20, Log-Lik: -19745.293, Max-Change: 0.00602
Iteration: 21, Log-Lik: -19745.282, Max-Change: 0.00515
Iteration: 22, Log-Lik: -19745.275, Max-Change: 0.01378
Iteration: 23, Log-Lik: -19745.252, Max-Change: 0.00500
Iteration: 24, Log-Lik: -19745.248, Max-Change: 0.00306
Iteration: 25, Log-Lik: -19745.245, Max-Change: 0.00285
Iteration: 26, Log-Lik: -19745.243, Max-Change: 0.00214
Iteration: 27, Log-Lik: -19745.242, Max-Change: 0.00185
Iteration: 28, Log-Lik: -19745.241, Max-Change: 0.00500
Iteration: 29, Log-Lik: -19745.238, Max-Change: 0.00182
Iteration: 30, Log-Lik: -19745.237, Max-Change: 0.00112
Iteration: 31, Log-Lik: -19745.237, Max-Change: 0.00105
Iteration: 32, Log-Lik: -19745.236, Max-Change: 0.00079
Iteration: 33, Log-Lik: -19745.236, Max-Change: 0.00068
Iteration: 34, Log-Lik: -19745.236, Max-Change: 0.00185
Iteration: 35, Log-Lik: -19745.236, Max-Change: 0.00068
Iteration: 36, Log-Lik: -19745.236, Max-Change: 0.00042
Iteration: 37, Log-Lik: -19745.236, Max-Change: 0.00039
Iteration: 38, Log-Lik: -19745.236, Max-Change: 0.00029
Iteration: 39, Log-Lik: -19745.235, Max-Change: 0.00025
Iteration: 40, Log-Lik: -19745.235, Max-Change: 0.00068
Iteration: 41, Log-Lik: -19745.235, Max-Change: 0.00025
Iteration: 42, Log-Lik: -19745.235, Max-Change: 0.00016
Iteration: 43, Log-Lik: -19745.235, Max-Change: 0.00015
Iteration: 44, Log-Lik: -19745.235, Max-Change: 0.00011
Iteration: 45, Log-Lik: -19745.235, Max-Change: 0.00009
##
## Step 7: Fit with anchor items, conservative threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -20874.945, Max-Change: 0.92285
Iteration: 2, Log-Lik: -19950.476, Max-Change: 0.44086
Iteration: 3, Log-Lik: -19817.312, Max-Change: 0.26701
Iteration: 4, Log-Lik: -19780.393, Max-Change: 0.16122
Iteration: 5, Log-Lik: -19767.298, Max-Change: 0.09786
Iteration: 6, Log-Lik: -19761.646, Max-Change: 0.07088
Iteration: 7, Log-Lik: -19758.759, Max-Change: 0.06332
Iteration: 8, Log-Lik: -19757.075, Max-Change: 0.05478
Iteration: 9, Log-Lik: -19756.004, Max-Change: 0.04671
Iteration: 10, Log-Lik: -19754.866, Max-Change: 0.08978
Iteration: 11, Log-Lik: -19754.131, Max-Change: 0.03788
Iteration: 12, Log-Lik: -19753.945, Max-Change: 0.02302
Iteration: 13, Log-Lik: -19753.812, Max-Change: 0.02172
Iteration: 14, Log-Lik: -19753.745, Max-Change: 0.01350
Iteration: 15, Log-Lik: -19753.702, Max-Change: 0.01027
Iteration: 16, Log-Lik: -19753.672, Max-Change: 0.02193
Iteration: 17, Log-Lik: -19753.614, Max-Change: 0.00814
Iteration: 18, Log-Lik: -19753.605, Max-Change: 0.00463
Iteration: 19, Log-Lik: -19753.600, Max-Change: 0.00353
Iteration: 20, Log-Lik: -19753.597, Max-Change: 0.00268
Iteration: 21, Log-Lik: -19753.594, Max-Change: 0.00220
Iteration: 22, Log-Lik: -19753.593, Max-Change: 0.00546
Iteration: 23, Log-Lik: -19753.588, Max-Change: 0.00194
Iteration: 24, Log-Lik: -19753.588, Max-Change: 0.00108
Iteration: 25, Log-Lik: -19753.588, Max-Change: 0.00078
Iteration: 26, Log-Lik: -19753.587, Max-Change: 0.00061
Iteration: 27, Log-Lik: -19753.587, Max-Change: 0.00051
Iteration: 28, Log-Lik: -19753.587, Max-Change: 0.00128
Iteration: 29, Log-Lik: -19753.587, Max-Change: 0.00046
Iteration: 30, Log-Lik: -19753.587, Max-Change: 0.00026
Iteration: 31, Log-Lik: -19753.587, Max-Change: 0.00020
Iteration: 32, Log-Lik: -19753.587, Max-Change: 0.00015
Iteration: 33, Log-Lik: -19753.587, Max-Change: 0.00013
Iteration: 34, Log-Lik: -19753.587, Max-Change: 0.00032
Iteration: 35, Log-Lik: -19753.587, Max-Change: 0.00011
Iteration: 36, Log-Lik: -19753.587, Max-Change: 0.00007
##
## Step 8: Get scores
d2019_irt_fit_bias_bw$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS 0.1470
## 2 UTDS 0.4400
## 3 UETSDS 0.1470
## 4 ETSSD 0.0594
## 5 Starks.DTFR 0.1394
## 6 UDTFR 0.4368
## 7 UETSDN 0.1403
## 8 theta.of.max.test.D -0.2163
## 9 Test.Dmax 0.1939
##
## $conservative
## Effect Size Value
## 1 STDS 0.1528
## 2 UTDS 0.3621
## 3 UETSDS 0.1832
## 4 ETSSD 0.0647
## 5 Starks.DTFR 0.1738
## 6 UDTFR 0.3602
## 7 UETSDN 0.2054
## 8 theta.of.max.test.D -0.1431
## 9 Test.Dmax 0.6195
d2019_irt_fit_bias_bw$effect_size_items
## $liberal
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.771 0.000 0.381
## item.2 0.000 0.000 0.000 0.000 0.000 -0.771 0.000 0.339
## item.3 0.071 0.072 0.068 0.068 0.287 -0.785 0.144 0.248
## item.4 -0.062 0.064 -0.055 0.058 -0.282 -1.601 -0.088 0.329
## item.5 -0.006 0.044 -0.011 0.047 -0.029 0.254 -0.115 0.327
## item.6 0.096 0.096 0.093 0.093 0.473 -0.555 0.156 0.289
## item.7 0.030 0.068 0.023 0.065 0.107 -2.104 0.117 0.524
## item.8 0.000 0.000 0.000 0.000 0.000 -0.771 0.000 0.299
## item.9 0.056 0.056 0.064 0.064 0.295 0.073 0.281 0.146
## item.10 0.000 0.000 0.000 0.000 0.000 -0.771 0.000 0.548
## item.11 -0.039 0.040 -0.042 0.043 -0.199 -0.005 -0.112 0.237
## mean.ES.ref
## item.1 0.381
## item.2 0.339
## item.3 0.177
## item.4 0.391
## item.5 0.332
## item.6 0.193
## item.7 0.493
## item.8 0.299
## item.9 0.089
## item.10 0.548
## item.11 0.276
##
## $conservative
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 -0.798 0.000 0.380
## item.2 0.000 0.000 0.000 0.000 0.000 -0.798 0.000 0.337
## item.3 0.084 0.084 0.078 0.078 0.353 -0.646 0.179 0.248
## item.4 -0.064 0.072 -0.051 0.064 -0.306 -1.739 -0.102 0.329
## item.5 0.000 0.000 0.000 0.000 0.000 -0.798 0.000 0.334
## item.6 0.103 0.103 0.099 0.099 0.534 -0.422 0.188 0.289
## item.7 0.000 0.000 0.000 0.000 0.000 -0.798 0.000 0.518
## item.8 0.000 0.000 0.000 0.000 0.000 -0.798 0.000 0.296
## item.9 0.067 0.068 0.083 0.083 0.366 0.046 0.364 0.145
## item.10 0.000 0.000 0.000 0.000 0.000 -0.798 0.000 0.553
## item.11 -0.036 0.036 -0.035 0.035 -0.193 -0.323 -0.068 0.237
## mean.ES.ref
## item.1 0.380
## item.2 0.337
## item.3 0.164
## item.4 0.393
## item.5 0.334
## item.6 0.187
## item.7 0.518
## item.8 0.296
## item.9 0.079
## item.10 0.553
## item.11 0.273
d2019_irt_fit_bias_bw$effect_size_items$conservative %>% DIF_summary()
## n_items n_favoring_focal_group n_favoring_ref_group
## 11.000 3.000 2.000
## n_noDIF prop_favoring_focal_group prop_favoring_ref_group
## 6.000 0.273 0.182
## prop_noDIF
## 0.545
d2019_irt_fit_bias_bw$fits$anchor_conservative %>% plot(type = "trace")
save_plot_to_file(d2019_irt_fit_bias_bw$fits$anchor_conservative %>% plot(type = "trace"), filename = "figs/2019_dif_bw.png")
d2019_irt_fit_bias_hw$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS 0.001455
## 2 UTDS 0.376944
## 3 UETSDS 0.073181
## 4 ETSSD 0.000449
## 5 Starks.DTFR 0.005348
## 6 UDTFR 0.404098
## 7 UETSDN 0.066285
## 8 theta.of.max.test.D 0.733243
## 9 Test.Dmax -0.133201
##
## $conservative
## Effect Size Value
## 1 STDS 0.01804
## 2 UTDS 0.28878
## 3 UETSDS 0.10762
## 4 ETSSD 0.00554
## 5 Starks.DTFR 0.01258
## 6 UDTFR 0.31637
## 7 UETSDN 0.09940
## 8 theta.of.max.test.D -2.02034
## 9 Test.Dmax 0.20135
d2019_irt_fit_bias_hw$effect_size_items
## $liberal
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 0.733 0.000 0.607
## item.2 0.000 0.000 0.000 0.000 0.000 0.733 0.000 0.545
## item.3 0.047 0.063 0.054 0.067 0.133 -0.937 0.135 0.490
## item.4 -0.039 0.048 -0.039 0.047 -0.136 -1.562 -0.095 0.543
## item.5 -0.057 0.057 -0.062 0.062 -0.205 -0.118 -0.095 0.485
## item.6 0.086 0.086 0.094 0.094 0.294 -0.875 0.143 0.495
## item.7 -0.025 0.044 -0.034 0.048 -0.085 -0.702 -0.082 0.688
## item.8 0.000 0.000 0.000 0.000 0.000 0.733 0.000 0.515
## item.9 0.024 0.042 0.032 0.044 0.078 -0.565 0.074 0.323
## item.10 -0.035 0.037 -0.040 0.041 -0.118 -1.065 -0.081 0.711
## item.11 0.000 0.000 0.000 0.000 0.000 0.733 0.000 0.502
## mean.ES.ref
## item.1 0.607
## item.2 0.545
## item.3 0.442
## item.4 0.581
## item.5 0.541
## item.6 0.409
## item.7 0.713
## item.8 0.515
## item.9 0.299
## item.10 0.746
## item.11 0.502
##
## $conservative
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 0.000 0.000 0.000 0.000 0.000 0.769 0.000 0.606
## item.2 0.000 0.000 0.000 0.000 0.000 0.769 0.000 0.545
## item.3 0.046 0.063 0.053 0.068 0.128 -0.958 0.136 0.489
## item.4 0.000 0.000 0.000 0.000 0.000 0.769 0.000 0.568
## item.5 -0.056 0.058 -0.062 0.063 -0.204 -0.057 -0.099 0.484
## item.6 0.084 0.085 0.093 0.094 0.289 -0.902 0.143 0.494
## item.7 -0.023 0.046 -0.033 0.050 -0.077 -0.680 -0.083 0.687
## item.8 0.000 0.000 0.000 0.000 0.000 0.769 0.000 0.515
## item.9 0.000 0.000 0.000 0.000 0.000 0.769 0.000 0.307
## item.10 -0.032 0.037 -0.039 0.042 -0.109 -0.999 -0.080 0.711
## item.11 0.000 0.000 0.000 0.000 0.000 0.769 0.000 0.502
## mean.ES.ref
## item.1 0.606
## item.2 0.545
## item.3 0.443
## item.4 0.568
## item.5 0.541
## item.6 0.410
## item.7 0.710
## item.8 0.515
## item.9 0.307
## item.10 0.743
## item.11 0.502
d2019_irt_fit_bias_hw$effect_size_items$conservative %>% DIF_summary()
## n_items n_favoring_focal_group n_favoring_ref_group
## 11.000 2.000 3.000
## n_noDIF prop_favoring_focal_group prop_favoring_ref_group
## 6.000 0.182 0.273
## prop_noDIF
## 0.545
save_plot_to_file(d2019_irt_fit_bias_hw$fits$anchor_conservative %>% plot(type = "trace"), filename = "figs/2019_dif_hw.png")
d2019_irt_fit_bias_sex = DIF_test(
items = d2019_test,
model = 1,
group = d2019$sex2,
itemtype = "2PL"
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -26154.929, Max-Change: 0.72462
Iteration: 2, Log-Lik: -25145.047, Max-Change: 0.42286
Iteration: 3, Log-Lik: -24878.516, Max-Change: 0.26797
Iteration: 4, Log-Lik: -24791.941, Max-Change: 0.16199
Iteration: 5, Log-Lik: -24758.048, Max-Change: 0.11870
Iteration: 6, Log-Lik: -24744.327, Max-Change: 0.08392
Iteration: 7, Log-Lik: -24737.817, Max-Change: 0.04658
Iteration: 8, Log-Lik: -24735.028, Max-Change: 0.03049
Iteration: 9, Log-Lik: -24733.570, Max-Change: 0.02259
Iteration: 10, Log-Lik: -24732.221, Max-Change: 0.00753
Iteration: 11, Log-Lik: -24731.955, Max-Change: 0.00548
Iteration: 12, Log-Lik: -24731.779, Max-Change: 0.00440
Iteration: 13, Log-Lik: -24731.388, Max-Change: 0.00300
Iteration: 14, Log-Lik: -24731.363, Max-Change: 0.00276
Iteration: 15, Log-Lik: -24731.345, Max-Change: 0.00206
Iteration: 16, Log-Lik: -24731.316, Max-Change: 0.00193
Iteration: 17, Log-Lik: -24731.309, Max-Change: 0.00111
Iteration: 18, Log-Lik: -24731.306, Max-Change: 0.00101
Iteration: 19, Log-Lik: -24731.297, Max-Change: 0.00036
Iteration: 20, Log-Lik: -24731.296, Max-Change: 0.00034
Iteration: 21, Log-Lik: -24731.296, Max-Change: 0.00031
Iteration: 22, Log-Lik: -24731.295, Max-Change: 0.00067
Iteration: 23, Log-Lik: -24731.295, Max-Change: 0.00050
Iteration: 24, Log-Lik: -24731.295, Max-Change: 0.00026
Iteration: 25, Log-Lik: -24731.295, Max-Change: 0.00014
Iteration: 26, Log-Lik: -24731.295, Max-Change: 0.00036
Iteration: 27, Log-Lik: -24731.295, Max-Change: 0.00013
Iteration: 28, Log-Lik: -24731.295, Max-Change: 0.00008
##
## Step 2: Initial MI fit
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -26147.005, Max-Change: 0.71306
Iteration: 2, Log-Lik: -24877.552, Max-Change: 0.32033
Iteration: 3, Log-Lik: -24747.979, Max-Change: 0.16592
Iteration: 4, Log-Lik: -24699.998, Max-Change: 0.12129
Iteration: 5, Log-Lik: -24667.739, Max-Change: 0.11072
Iteration: 6, Log-Lik: -24643.662, Max-Change: 0.09345
Iteration: 7, Log-Lik: -24625.297, Max-Change: 0.07774
Iteration: 8, Log-Lik: -24611.163, Max-Change: 0.06432
Iteration: 9, Log-Lik: -24600.296, Max-Change: 0.05726
Iteration: 10, Log-Lik: -24591.755, Max-Change: 0.05086
Iteration: 11, Log-Lik: -24585.072, Max-Change: 0.04324
Iteration: 12, Log-Lik: -24579.847, Max-Change: 0.04173
Iteration: 13, Log-Lik: -24575.714, Max-Change: 0.03766
Iteration: 14, Log-Lik: -24572.437, Max-Change: 0.03337
Iteration: 15, Log-Lik: -24569.844, Max-Change: 0.03013
Iteration: 16, Log-Lik: -24566.146, Max-Change: 0.05278
Iteration: 17, Log-Lik: -24562.133, Max-Change: 0.02152
Iteration: 18, Log-Lik: -24561.357, Max-Change: 0.01160
Iteration: 19, Log-Lik: -24560.797, Max-Change: 0.01097
Iteration: 20, Log-Lik: -24560.475, Max-Change: 0.01067
Iteration: 21, Log-Lik: -24560.223, Max-Change: 0.01010
Iteration: 22, Log-Lik: -24559.790, Max-Change: 0.01306
Iteration: 23, Log-Lik: -24559.407, Max-Change: 0.00563
Iteration: 24, Log-Lik: -24559.326, Max-Change: 0.00364
Iteration: 25, Log-Lik: -24559.254, Max-Change: 0.00378
Iteration: 26, Log-Lik: -24559.215, Max-Change: 0.00365
Iteration: 27, Log-Lik: -24559.185, Max-Change: 0.00349
Iteration: 28, Log-Lik: -24559.114, Max-Change: 0.00395
Iteration: 29, Log-Lik: -24559.069, Max-Change: 0.00140
Iteration: 30, Log-Lik: -24559.058, Max-Change: 0.00146
Iteration: 31, Log-Lik: -24559.043, Max-Change: 0.00135
Iteration: 32, Log-Lik: -24559.037, Max-Change: 0.00130
Iteration: 33, Log-Lik: -24559.032, Max-Change: 0.00122
Iteration: 34, Log-Lik: -24559.016, Max-Change: 0.00194
Iteration: 35, Log-Lik: -24559.008, Max-Change: 0.00056
Iteration: 36, Log-Lik: -24559.006, Max-Change: 0.00063
Iteration: 37, Log-Lik: -24559.000, Max-Change: 0.00099
Iteration: 38, Log-Lik: -24558.998, Max-Change: 0.00044
Iteration: 39, Log-Lik: -24558.997, Max-Change: 0.00044
Iteration: 40, Log-Lik: -24558.993, Max-Change: 0.00093
Iteration: 41, Log-Lik: -24558.991, Max-Change: 0.00026
Iteration: 42, Log-Lik: -24558.991, Max-Change: 0.00027
Iteration: 43, Log-Lik: -24558.989, Max-Change: 0.00064
Iteration: 44, Log-Lik: -24558.988, Max-Change: 0.00018
Iteration: 45, Log-Lik: -24558.988, Max-Change: 0.00018
Iteration: 46, Log-Lik: -24558.987, Max-Change: 0.00045
Iteration: 47, Log-Lik: -24558.987, Max-Change: 0.00012
Iteration: 48, Log-Lik: -24558.986, Max-Change: 0.00012
Iteration: 49, Log-Lik: -24558.986, Max-Change: 0.00028
Iteration: 50, Log-Lik: -24558.986, Max-Change: 0.00009
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -30674.478, Max-Change: 0.04683
Iteration: 2, Log-Lik: -30669.408, Max-Change: 0.00364
Iteration: 3, Log-Lik: -30669.402, Max-Change: 0.00087
Iteration: 4, Log-Lik: -30669.402, Max-Change: 0.00048
Iteration: 5, Log-Lik: -30669.402, Max-Change: 0.00036
Iteration: 6, Log-Lik: -30669.402, Max-Change: 0.00027
Iteration: 7, Log-Lik: -30669.402, Max-Change: 0.00007
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -30275.557, Max-Change: 0.25488
Iteration: 2, Log-Lik: -30166.595, Max-Change: 0.21567
Iteration: 3, Log-Lik: -30111.876, Max-Change: 0.16238
Iteration: 4, Log-Lik: -30088.091, Max-Change: 0.11545
Iteration: 5, Log-Lik: -30078.590, Max-Change: 0.08031
Iteration: 6, Log-Lik: -30074.882, Max-Change: 0.05540
Iteration: 7, Log-Lik: -30072.803, Max-Change: 0.02670
Iteration: 8, Log-Lik: -30072.579, Max-Change: 0.01959
Iteration: 9, Log-Lik: -30072.471, Max-Change: 0.01480
Iteration: 10, Log-Lik: -30072.354, Max-Change: 0.00562
Iteration: 11, Log-Lik: -30072.342, Max-Change: 0.00497
Iteration: 12, Log-Lik: -30072.333, Max-Change: 0.00358
Iteration: 13, Log-Lik: -30072.324, Max-Change: 0.00312
Iteration: 14, Log-Lik: -30072.319, Max-Change: 0.00199
Iteration: 15, Log-Lik: -30072.317, Max-Change: 0.00152
Iteration: 16, Log-Lik: -30072.316, Max-Change: 0.00072
Iteration: 17, Log-Lik: -30072.315, Max-Change: 0.00065
Iteration: 18, Log-Lik: -30072.315, Max-Change: 0.00060
Iteration: 19, Log-Lik: -30072.314, Max-Change: 0.00055
Iteration: 20, Log-Lik: -30072.314, Max-Change: 0.00051
Iteration: 21, Log-Lik: -30072.314, Max-Change: 0.00047
Iteration: 22, Log-Lik: -30072.314, Max-Change: 0.00042
Iteration: 23, Log-Lik: -30072.314, Max-Change: 0.00039
Iteration: 24, Log-Lik: -30072.313, Max-Change: 0.00036
Iteration: 25, Log-Lik: -30072.313, Max-Change: 0.00033
Iteration: 26, Log-Lik: -30072.313, Max-Change: 0.00031
Iteration: 27, Log-Lik: -30072.313, Max-Change: 0.00028
Iteration: 28, Log-Lik: -30072.313, Max-Change: 0.00026
Iteration: 29, Log-Lik: -30072.313, Max-Change: 0.00024
Iteration: 30, Log-Lik: -30072.313, Max-Change: 0.00022
Iteration: 31, Log-Lik: -30072.313, Max-Change: 0.00020
Iteration: 32, Log-Lik: -30072.313, Max-Change: 0.00019
Iteration: 33, Log-Lik: -30072.313, Max-Change: 0.00017
Iteration: 34, Log-Lik: -30072.313, Max-Change: 0.00015
Iteration: 35, Log-Lik: -30072.313, Max-Change: 0.00014
Iteration: 36, Log-Lik: -30072.313, Max-Change: 0.00013
Iteration: 37, Log-Lik: -30072.313, Max-Change: 0.00012
Iteration: 38, Log-Lik: -30072.313, Max-Change: 0.00011
Iteration: 39, Log-Lik: -30072.313, Max-Change: 0.00010
Iteration: 40, Log-Lik: -30072.313, Max-Change: 0.00009
##
## Step 6: Fit with anchor items, liberal threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -26147.005, Max-Change: 0.90474
Iteration: 2, Log-Lik: -24648.158, Max-Change: 0.53356
Iteration: 3, Log-Lik: -24498.432, Max-Change: 0.31403
Iteration: 4, Log-Lik: -24458.909, Max-Change: 0.20697
Iteration: 5, Log-Lik: -24441.808, Max-Change: 0.13711
Iteration: 6, Log-Lik: -24431.597, Max-Change: 0.08980
Iteration: 7, Log-Lik: -24424.172, Max-Change: 0.05971
Iteration: 8, Log-Lik: -24418.182, Max-Change: 0.04829
Iteration: 9, Log-Lik: -24413.068, Max-Change: 0.04625
Iteration: 10, Log-Lik: -24408.616, Max-Change: 0.04354
Iteration: 11, Log-Lik: -24404.689, Max-Change: 0.04025
Iteration: 12, Log-Lik: -24401.215, Max-Change: 0.03962
Iteration: 13, Log-Lik: -24393.947, Max-Change: 0.08426
Iteration: 14, Log-Lik: -24386.903, Max-Change: 0.03395
Iteration: 15, Log-Lik: -24385.221, Max-Change: 0.02486
Iteration: 16, Log-Lik: -24382.157, Max-Change: 0.03662
Iteration: 17, Log-Lik: -24380.457, Max-Change: 0.02120
Iteration: 18, Log-Lik: -24379.563, Max-Change: 0.02199
Iteration: 19, Log-Lik: -24377.728, Max-Change: 0.03897
Iteration: 20, Log-Lik: -24375.908, Max-Change: 0.01595
Iteration: 21, Log-Lik: -24375.461, Max-Change: 0.01387
Iteration: 22, Log-Lik: -24374.666, Max-Change: 0.01725
Iteration: 23, Log-Lik: -24374.230, Max-Change: 0.01136
Iteration: 24, Log-Lik: -24373.979, Max-Change: 0.01196
Iteration: 25, Log-Lik: -24373.477, Max-Change: 0.02022
Iteration: 26, Log-Lik: -24372.944, Max-Change: 0.00827
Iteration: 27, Log-Lik: -24372.813, Max-Change: 0.00760
Iteration: 28, Log-Lik: -24372.579, Max-Change: 0.00956
Iteration: 29, Log-Lik: -24372.443, Max-Change: 0.00619
Iteration: 30, Log-Lik: -24372.370, Max-Change: 0.00658
Iteration: 31, Log-Lik: -24372.228, Max-Change: 0.01082
Iteration: 32, Log-Lik: -24372.071, Max-Change: 0.00444
Iteration: 33, Log-Lik: -24372.032, Max-Change: 0.00415
Iteration: 34, Log-Lik: -24371.964, Max-Change: 0.00527
Iteration: 35, Log-Lik: -24371.923, Max-Change: 0.00342
Iteration: 36, Log-Lik: -24371.901, Max-Change: 0.00368
Iteration: 37, Log-Lik: -24371.860, Max-Change: 0.00601
Iteration: 38, Log-Lik: -24371.812, Max-Change: 0.00247
Iteration: 39, Log-Lik: -24371.801, Max-Change: 0.00230
Iteration: 40, Log-Lik: -24371.780, Max-Change: 0.00289
Iteration: 41, Log-Lik: -24371.768, Max-Change: 0.00191
Iteration: 42, Log-Lik: -24371.762, Max-Change: 0.00204
Iteration: 43, Log-Lik: -24371.750, Max-Change: 0.00347
Iteration: 44, Log-Lik: -24371.735, Max-Change: 0.00143
Iteration: 45, Log-Lik: -24371.731, Max-Change: 0.00129
Iteration: 46, Log-Lik: -24371.725, Max-Change: 0.00169
Iteration: 47, Log-Lik: -24371.721, Max-Change: 0.00106
Iteration: 48, Log-Lik: -24371.719, Max-Change: 0.00115
Iteration: 49, Log-Lik: -24371.715, Max-Change: 0.00211
Iteration: 50, Log-Lik: -24371.710, Max-Change: 0.00086
Iteration: 51, Log-Lik: -24371.709, Max-Change: 0.00071
Iteration: 52, Log-Lik: -24371.707, Max-Change: 0.00102
Iteration: 53, Log-Lik: -24371.706, Max-Change: 0.00063
Iteration: 54, Log-Lik: -24371.705, Max-Change: 0.00066
Iteration: 55, Log-Lik: -24371.704, Max-Change: 0.00133
Iteration: 56, Log-Lik: -24371.702, Max-Change: 0.00055
Iteration: 57, Log-Lik: -24371.702, Max-Change: 0.00040
Iteration: 58, Log-Lik: -24371.701, Max-Change: 0.00061
Iteration: 59, Log-Lik: -24371.701, Max-Change: 0.00037
Iteration: 60, Log-Lik: -24371.700, Max-Change: 0.00039
Iteration: 61, Log-Lik: -24371.700, Max-Change: 0.00090
Iteration: 62, Log-Lik: -24371.699, Max-Change: 0.00037
Iteration: 63, Log-Lik: -24371.699, Max-Change: 0.00026
Iteration: 64, Log-Lik: -24371.699, Max-Change: 0.00041
Iteration: 65, Log-Lik: -24371.699, Max-Change: 0.00025
Iteration: 66, Log-Lik: -24371.699, Max-Change: 0.00024
Iteration: 67, Log-Lik: -24371.699, Max-Change: 0.00065
Iteration: 68, Log-Lik: -24371.698, Max-Change: 0.00027
Iteration: 69, Log-Lik: -24371.698, Max-Change: 0.00019
Iteration: 70, Log-Lik: -24371.698, Max-Change: 0.00030
Iteration: 71, Log-Lik: -24371.698, Max-Change: 0.00018
Iteration: 72, Log-Lik: -24371.698, Max-Change: 0.00017
Iteration: 73, Log-Lik: -24371.698, Max-Change: 0.00050
Iteration: 74, Log-Lik: -24371.698, Max-Change: 0.00021
Iteration: 75, Log-Lik: -24371.697, Max-Change: 0.00015
Iteration: 76, Log-Lik: -24371.697, Max-Change: 0.00023
Iteration: 77, Log-Lik: -24371.697, Max-Change: 0.00014
Iteration: 78, Log-Lik: -24371.697, Max-Change: 0.00014
Iteration: 79, Log-Lik: -24371.697, Max-Change: 0.00040
Iteration: 80, Log-Lik: -24371.697, Max-Change: 0.00016
Iteration: 81, Log-Lik: -24371.697, Max-Change: 0.00012
Iteration: 82, Log-Lik: -24371.697, Max-Change: 0.00020
Iteration: 83, Log-Lik: -24371.697, Max-Change: 0.00012
Iteration: 84, Log-Lik: -24371.697, Max-Change: 0.00012
Iteration: 85, Log-Lik: -24371.697, Max-Change: 0.00034
Iteration: 86, Log-Lik: -24371.697, Max-Change: 0.00014
Iteration: 87, Log-Lik: -24371.697, Max-Change: 0.00010
Iteration: 88, Log-Lik: -24371.697, Max-Change: 0.00018
Iteration: 89, Log-Lik: -24371.697, Max-Change: 0.00010
Iteration: 90, Log-Lik: -24371.697, Max-Change: 0.00010
##
## Step 7: Fit with anchor items, conservative threshold
## NA values in group removed, along with associated rows in data
##
Iteration: 1, Log-Lik: -26147.005, Max-Change: 0.90495
Iteration: 2, Log-Lik: -24657.388, Max-Change: 0.53926
Iteration: 3, Log-Lik: -24508.529, Max-Change: 0.32380
Iteration: 4, Log-Lik: -24467.215, Max-Change: 0.21327
Iteration: 5, Log-Lik: -24447.027, Max-Change: 0.12122
Iteration: 6, Log-Lik: -24434.222, Max-Change: 0.08576
Iteration: 7, Log-Lik: -24424.612, Max-Change: 0.06294
Iteration: 8, Log-Lik: -24416.914, Max-Change: 0.05266
Iteration: 9, Log-Lik: -24410.600, Max-Change: 0.05053
Iteration: 10, Log-Lik: -24405.311, Max-Change: 0.04843
Iteration: 11, Log-Lik: -24400.836, Max-Change: 0.04262
Iteration: 12, Log-Lik: -24397.051, Max-Change: 0.04254
Iteration: 13, Log-Lik: -24389.470, Max-Change: 0.08417
Iteration: 14, Log-Lik: -24382.772, Max-Change: 0.03302
Iteration: 15, Log-Lik: -24381.329, Max-Change: 0.02182
Iteration: 16, Log-Lik: -24379.134, Max-Change: 0.02798
Iteration: 17, Log-Lik: -24378.063, Max-Change: 0.01892
Iteration: 18, Log-Lik: -24377.398, Max-Change: 0.01953
Iteration: 19, Log-Lik: -24376.095, Max-Change: 0.03266
Iteration: 20, Log-Lik: -24374.883, Max-Change: 0.01304
Iteration: 21, Log-Lik: -24374.613, Max-Change: 0.01005
Iteration: 22, Log-Lik: -24374.206, Max-Change: 0.01159
Iteration: 23, Log-Lik: -24374.002, Max-Change: 0.00841
Iteration: 24, Log-Lik: -24373.873, Max-Change: 0.00856
Iteration: 25, Log-Lik: -24373.628, Max-Change: 0.01408
Iteration: 26, Log-Lik: -24373.384, Max-Change: 0.00564
Iteration: 27, Log-Lik: -24373.331, Max-Change: 0.00456
Iteration: 28, Log-Lik: -24373.248, Max-Change: 0.00529
Iteration: 29, Log-Lik: -24373.205, Max-Change: 0.00375
Iteration: 30, Log-Lik: -24373.180, Max-Change: 0.00381
Iteration: 31, Log-Lik: -24373.132, Max-Change: 0.00626
Iteration: 32, Log-Lik: -24373.083, Max-Change: 0.00252
Iteration: 33, Log-Lik: -24373.072, Max-Change: 0.00206
Iteration: 34, Log-Lik: -24373.056, Max-Change: 0.00241
Iteration: 35, Log-Lik: -24373.047, Max-Change: 0.00168
Iteration: 36, Log-Lik: -24373.042, Max-Change: 0.00171
Iteration: 37, Log-Lik: -24373.032, Max-Change: 0.00286
Iteration: 38, Log-Lik: -24373.022, Max-Change: 0.00116
Iteration: 39, Log-Lik: -24373.020, Max-Change: 0.00093
Iteration: 40, Log-Lik: -24373.017, Max-Change: 0.00110
Iteration: 41, Log-Lik: -24373.015, Max-Change: 0.00074
Iteration: 42, Log-Lik: -24373.014, Max-Change: 0.00078
Iteration: 43, Log-Lik: -24373.012, Max-Change: 0.00135
Iteration: 44, Log-Lik: -24373.010, Max-Change: 0.00055
Iteration: 45, Log-Lik: -24373.009, Max-Change: 0.00042
Iteration: 46, Log-Lik: -24373.009, Max-Change: 0.00051
Iteration: 47, Log-Lik: -24373.008, Max-Change: 0.00035
Iteration: 48, Log-Lik: -24373.008, Max-Change: 0.00038
Iteration: 49, Log-Lik: -24373.008, Max-Change: 0.00068
Iteration: 50, Log-Lik: -24373.007, Max-Change: 0.00027
Iteration: 51, Log-Lik: -24373.007, Max-Change: 0.00019
Iteration: 52, Log-Lik: -24373.007, Max-Change: 0.00025
Iteration: 53, Log-Lik: -24373.007, Max-Change: 0.00015
Iteration: 54, Log-Lik: -24373.007, Max-Change: 0.00019
Iteration: 55, Log-Lik: -24373.007, Max-Change: 0.00034
Iteration: 56, Log-Lik: -24373.007, Max-Change: 0.00014
Iteration: 57, Log-Lik: -24373.007, Max-Change: 0.00009
##
## Step 8: Get scores
d2019_irt_fit_bias_sex$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS 0.3076
## 2 UTDS 0.7086
## 3 UETSDS 0.3197
## 4 ETSSD 0.0991
## 5 Starks.DTFR 0.3033
## 6 UDTFR 0.7035
## 7 UETSDN 0.3142
## 8 theta.of.max.test.D -1.5234
## 9 Test.Dmax 0.7998
##
## $conservative
## Effect Size Value
## 1 STDS 0.2196
## 2 UTDS 0.6767
## 3 UETSDS 0.2988
## 4 ETSSD 0.0704
## 5 Starks.DTFR 0.2163
## 6 UDTFR 0.6773
## 7 UETSDN 0.2929
## 8 theta.of.max.test.D -1.5698
## 9 Test.Dmax 0.7608
d2019_irt_fit_bias_sex$effect_size_items
## $liberal
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 -0.074 0.075 -0.074 0.075 -0.257 -0.722 -0.126 0.597
## item.2 0.156 0.156 0.156 0.156 0.533 -0.850 0.242 0.617
## item.3 -0.019 0.022 -0.019 0.022 -0.056 -0.269 -0.050 0.471
## item.4 0.009 0.011 0.009 0.011 0.033 -0.151 0.019 0.578
## item.5 0.018 0.019 0.018 0.019 0.070 -0.223 0.031 0.551
## item.6 0.084 0.084 0.084 0.084 0.310 -0.580 0.122 0.482
## item.7 0.097 0.097 0.096 0.096 0.325 -1.521 0.240 0.766
## item.8 -0.033 0.041 -0.033 0.040 -0.116 -0.139 -0.073 0.511
## item.9 0.000 0.000 0.000 0.000 0.000 0.080 0.000 0.306
## item.10 0.136 0.136 0.133 0.133 0.441 -1.540 0.378 0.804
## item.11 -0.067 0.068 -0.067 0.067 -0.243 -0.290 -0.110 0.475
## mean.ES.ref
## item.1 0.670
## item.2 0.461
## item.3 0.490
## item.4 0.569
## item.5 0.532
## item.6 0.397
## item.7 0.669
## item.8 0.544
## item.9 0.306
## item.10 0.668
## item.11 0.542
##
## $conservative
## SIDS UIDS SIDN UIDN ESSD theta.of.max.D max.D mean.ES.foc
## item.1 -0.080 0.081 -0.080 0.082 -0.278 -0.709 -0.136 0.596
## item.2 0.147 0.147 0.149 0.149 0.501 -0.856 0.231 0.617
## item.3 -0.029 0.030 -0.029 0.031 -0.083 -0.287 -0.068 0.470
## item.4 0.000 0.000 0.000 0.000 0.000 0.128 0.000 0.576
## item.5 0.000 0.000 0.000 0.000 0.000 0.128 0.000 0.545
## item.6 0.076 0.076 0.076 0.076 0.277 -0.625 0.110 0.482
## item.7 0.091 0.091 0.090 0.090 0.303 -1.536 0.233 0.766
## item.8 -0.040 0.047 -0.041 0.047 -0.142 -0.139 -0.085 0.511
## item.9 0.000 0.000 0.000 0.000 0.000 0.128 0.000 0.311
## item.10 0.129 0.129 0.127 0.127 0.420 -1.539 0.370 0.804
## item.11 -0.075 0.075 -0.075 0.075 -0.268 -0.268 -0.122 0.475
## mean.ES.ref
## item.1 0.676
## item.2 0.470
## item.3 0.499
## item.4 0.576
## item.5 0.545
## item.6 0.406
## item.7 0.676
## item.8 0.551
## item.9 0.311
## item.10 0.675
## item.11 0.549
d2019_irt_fit_bias_sex$effect_size_items$conservative %>% DIF_summary()
## n_items n_favoring_focal_group n_favoring_ref_group
## 11.000 4.000 4.000
## n_noDIF prop_favoring_focal_group prop_favoring_ref_group
## 3.000 0.364 0.364
## prop_noDIF
## 0.273
d2019_irt_fit_bias_sex$fits$anchor_conservative %>% plot(type = "trace")
save_plot_to_file(d2019_irt_fit_bias_sex$fits$anchor_conservative %>% plot(type = "trace"), filename = "figs/2019_dif_sex.png")
#test bias adjusted scores
d2019$irt_adj = case_when(
d2019$race2 == "Black" ~ d2019$irt - d2019_irt_fit_bias_bw$effect_size_test$conservative$Value[4],
d2019$race2 == "Hispanic" ~ d2019$irt - d2019_irt_fit_bias_hw$effect_size_test$conservative$Value[4],
d2019$sex2 == "Female" ~ d2019$irt - d2019_irt_fit_bias_sex$effect_size_test$conservative$Value[4],
TRUE ~ d2019$irt
)
Annoying, have to compute each gap, and its bias, and its reliability, and the gap’s SE.
#raw gaps
raw_bw_gaps = c(
"2013" = SMD_matrix(d2013$irt, d2013$bw)[1, 2],
"2015" = SMD_matrix(d2015$irt, d2015$bw)[1, 2],
"2013" = SMD_matrix(d2019$irt, d2019$bw)[1, 2]
)
raw_hw_gaps = c(
"2013" = SMD_matrix(d2013$irt, d2013$hw)[1, 2],
"2015" = SMD_matrix(d2015$irt, d2015$hw)[1, 2],
"2013" = SMD_matrix(d2019$irt, d2019$hw)[1, 2]
)
raw_sex_gaps = c(
"2013" = SMD_matrix(d2013$irt, d2013$sex2)[1, 2],
"2015" = SMD_matrix(d2015$irt, d2015$sex2)[1, 2],
"2013" = SMD_matrix(d2019$irt, d2019$sex2)[1, 2]
)
reliabilities = c(
empirical_rxx(d2013_irt_fit_scores),
empirical_rxx(d2015_irt_fit_scores),
empirical_rxx(d2019_irt_fit_scores)
)
bias_bw = c(
d2013_irt_fit_bias_bw$effect_size_test$conservative$Value[4],
d2015_irt_fit_bias_bw$effect_size_test$conservative$Value[4],
d2019_irt_fit_bias_bw$effect_size_test$conservative$Value[4]
)
bias_hw = c(
d2013_irt_fit_bias_hw$effect_size_test$conservative$Value[4],
d2015_irt_fit_bias_hw$effect_size_test$conservative$Value[4],
d2019_irt_fit_bias_hw$effect_size_test$conservative$Value[4]
)
bias_sex = c(
d2013_irt_fit_bias_sex$effect_size_test$conservative$Value[4],
d2015_irt_fit_bias_sex$effect_size_test$conservative$Value[4],
d2019_irt_fit_bias_sex$effect_size_test$conservative$Value[4]
)
#test bias adjusted
(adj_bw_gaps = raw_bw_gaps - bias_bw)
## 2013 2015 2013
## 0.801 1.037 1.188
(adj_hw_gaps = raw_hw_gaps - bias_hw)
## 2013 2015 2013
## 0.375 0.565 0.544
(adj_sex_gaps = raw_sex_gaps - bias_sex)
## 2013 2015 2013
## 0.255 0.581 0.479
#reliability after test bias adjusted
(adj2_bw_gaps = map2_dbl(adj_bw_gaps, reliabilities, adj_d_reliability))
## 2013 2015 2013
## 0.929 1.332 1.367
(adj2_hw_gaps = map2_dbl(adj_hw_gaps, reliabilities, adj_d_reliability))
## 2013 2015 2013
## 0.427 0.694 0.606
(adj2_sex_gaps = map2_dbl(adj_sex_gaps, reliabilities, adj_d_reliability))
## 2013 2015 2013
## 0.290 0.714 0.533
#standard errors
(se_bw_gaps = c(
SMD_matrix(d2013$irt, d2013$bw, extended_output = T)$se[1, 2],
SMD_matrix(d2015$irt, d2015$bw, extended_output = T)$se[1, 2],
SMD_matrix(d2015$irt, d2015$bw, extended_output = T)$se[1, 2]
))
## [1] 0.1092 0.0674 0.0674
(se_hw_gaps = c(
SMD_matrix(d2013$irt, d2013$hw, extended_output = T)$se[1, 2],
SMD_matrix(d2015$irt, d2015$hw, extended_output = T)$se[1, 2],
SMD_matrix(d2015$irt, d2015$hw, extended_output = T)$se[1, 2]
))
## [1] 0.1208 0.0675 0.0675
(se_sex_gaps = c(
SMD_matrix(d2013$irt, d2013$sex2, extended_output = T)$se[1, 2],
SMD_matrix(d2015$irt, d2015$sex2, extended_output = T)$se[1, 2],
SMD_matrix(d2015$irt, d2015$sex2, extended_output = T)$se[1, 2]
))
## [1] 0.0645 0.0359 0.0359
#metas
(meta_bw = rma(
yi = adj2_bw_gaps,
sei = se_bw_gaps
))
##
## Random-Effects Model (k = 3; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0471 (SE = 0.0540)
## tau (square root of estimated tau^2 value): 0.2171
## I^2 (total heterogeneity / total variability): 88.47%
## H^2 (total variability / sampling variability): 8.67
##
## Test for Heterogeneity:
## Q(df = 2) = 12.5826, p-val = 0.0019
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 1.2219 0.1341 9.1128 <.0001 0.9591 1.4847 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(meta_hw = rma(
yi = adj2_hw_gaps,
sei = se_hw_gaps
))
##
## Random-Effects Model (k = 3; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0051 (SE = 0.0118)
## tau (square root of estimated tau^2 value): 0.0715
## I^2 (total heterogeneity / total variability): 44.14%
## H^2 (total variability / sampling variability): 1.79
##
## Test for Heterogeneity:
## Q(df = 2) = 3.7835, p-val = 0.1508
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.6060 0.0623 9.7261 <.0001 0.4839 0.7281 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(meta_sex = rma(
yi = adj2_sex_gaps,
sei = se_sex_gaps
))
##
## Random-Effects Model (k = 3; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0419 (SE = 0.0441)
## tau (square root of estimated tau^2 value): 0.2046
## I^2 (total heterogeneity / total variability): 95.80%
## H^2 (total variability / sampling variability): 23.79
##
## Test for Heterogeneity:
## Q(df = 2) = 35.8779, p-val < .0001
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.5170 0.1212 4.2660 <.0001 0.2795 0.7545 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#plots
forest(meta_bw)
forest(meta_hw)
forest(meta_sex)
#save to disk
walk2(c("Black-White", "Hispanic-White", "Male-Female"), list(meta_bw, meta_hw, meta_sex), function(name, model) {
#https://cran.r-project.org/web/packages/metaviz/vignettes/metaviz.html#forest-plot-variants-rainforest-plot-and-thick-forest-plots
viz_forest(model, xlab = "Cohen's d", study_labels = c("2013", "2015", "2019"), annotate_CI = T) +
ggtitle(name) +
theme_update(title = element_text())
GG_save(str_glue("figs/{name}.png"))
})
#items in tests
d2013_test %>% ncol()
## [1] 14
d2015_test %>% ncol()
## [1] 12
d2019_test %>% ncol()
## [1] 11
d_all = bind_rows(
d2013 %>% select(irt, irt_adj, sex2, race2, age_range) %>% mutate(wave = "2013"),
d2015 %>% select(irt, irt_adj, sex2, race2, age_range) %>% mutate(wave = "2015"),
d2019 %>% select(irt, irt_adj, sex2, race2, age_range) %>% mutate(wave = "2019")
)
#raw
list(
ols(irt ~ sex2 + race2, data = d_all),
ols(irt ~ sex2 + race2 + age_range, data = d_all)
) %>% summarize_models()
#test bias adjusted
list(
ols(irt_adj ~ sex2 + race2, data = d_all),
ols(irt_adj ~ sex2 + race2 + age_range, data = d_all)
) %>% summarize_models()
#mean reliability
mean_reliability = wtd.mean(reliabilities, c(nrow(d2013), nrow(d2015), nrow(d2019)))
ols(irt_adj ~ sex2 + race2 + age_range, data = d_all) %>% coef() %>% divide_by(sqrt(mean_reliability))
## Intercept sex2=Female race2=Black race2=Hispanic race2=Other
## 0.39537 -0.60831 -1.36836 -0.65118 -0.22946
## age_range=25-34 age_range=35-44 age_range=45-54 age_range=55-64 age_range=65+
## 0.22282 0.19910 0.00164 0.12320 -0.23875
## age_range=18-29 age_range=30-49 age_range=50-64
## -0.04508 0.00790 -0.10136
#versions
write_sessioninfo()
## R version 4.3.0 (2023-04-21)
## Platform: x86_64-pc-linux-gnu (64-bit)
## 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] metaviz_0.3.1 metafor_4.0-0 numDeriv_2016.8-1.1
## [4] metadat_1.2-0 Matrix_1.5-1 rms_6.6-0
## [7] mirt_1.38.1 lattice_0.20-45 haven_2.5.2
## [10] kirkegaard_2023-05-01 psych_2.3.3 assertthat_0.2.1
## [13] weights_1.0.4 Hmisc_5.0-1 magrittr_2.0.3
## [16] lubridate_1.9.2 forcats_1.0.0 stringr_1.5.0
## [19] dplyr_1.1.2 purrr_1.0.1 readr_2.1.4
## [22] tidyr_1.3.0 tibble_3.2.1 ggplot2_3.4.2
## [25] tidyverse_2.0.0
##
## loaded via a namespace (and not attached):
## [1] mathjaxr_1.6-0 RColorBrewer_1.1-3 rstudioapi_0.14
## [4] jsonlite_1.8.4 TH.data_1.1-2 farver_2.1.1
## [7] nloptr_2.0.3 rmarkdown_2.21 ragg_1.2.5
## [10] vctrs_0.6.2 minqa_1.2.5 base64enc_0.1-3
## [13] rstatix_0.7.2 webshot_0.5.4 htmltools_0.5.5
## [16] polspline_1.1.22 broom_1.0.4 Formula_1.2-5
## [19] dcurver_0.9.2 sass_0.4.5 bslib_0.4.2
## [22] htmlwidgets_1.6.2 plyr_1.8.8 sandwich_3.0-2
## [25] zoo_1.8-12 cachem_1.0.7 lifecycle_1.0.3
## [28] pkgconfig_2.0.3 R6_2.5.1 fastmap_1.1.1
## [31] digest_0.6.31 colorspace_2.1-0 textshaping_0.3.6
## [34] ggpubr_0.6.0 vegan_2.6-4 labeling_0.4.2
## [37] fansi_1.0.4 timechange_0.2.0 gdata_2.18.0.1
## [40] httr_1.4.5 abind_1.4-5 mgcv_1.8-42
## [43] compiler_4.3.0 withr_2.5.0 htmlTable_2.4.1
## [46] backports_1.4.1 carData_3.0-5 highr_0.10
## [49] ggsignif_0.6.4 MASS_7.3-58.3 quantreg_5.95
## [52] GPArotation_2023.3-1 gtools_3.9.4 permute_0.9-7
## [55] tools_4.3.0 foreign_0.8-82 nnet_7.3-18
## [58] glue_1.6.2 nlme_3.1-162 grid_4.3.0
## [61] checkmate_2.2.0 cluster_2.1.4 generics_0.1.3
## [64] gtable_0.3.3 tzdb_0.3.0 data.table_1.14.8
## [67] hms_1.1.3 xml2_1.3.4 car_3.1-2
## [70] Deriv_4.1.3 utf8_1.2.3 pillar_1.9.0
## [73] splines_4.3.0 survival_3.5-3 SparseM_1.81
## [76] tidyselect_1.2.0 pbapply_1.7-0 knitr_1.42
## [79] gridExtra_2.3 svglite_2.1.1 xfun_0.39
## [82] stringi_1.7.12 yaml_2.3.7 boot_1.3-28
## [85] kableExtra_1.3.4 evaluate_0.20 codetools_0.2-19
## [88] cli_3.6.1 rpart_4.1.19 systemfonts_1.0.4
## [91] munsell_0.5.0 jquerylib_0.1.4 Rcpp_1.0.10
## [94] parallel_4.3.0 MatrixModels_0.5-1 lme4_1.1-33
## [97] viridisLite_0.4.1 mvtnorm_1.1-3 scales_1.2.1
## [100] rlang_1.1.0 cowplot_1.1.1 rvest_1.0.3
## [103] multcomp_1.4-23 mnormt_2.1.1 mice_3.15.0
#write data to file for reuse
d_all %>% write_rds("data/data_for_reuse/d_all.rds")
d2013 %>% write_rds("data/data_for_reuse/d2013.rds")
d2015 %>% write_rds("data/data_for_reuse/d2015.rds")
d2019 %>% write_rds("data/data_for_reuse/d2019.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/rb6tq/")
#upload all files in project
#overwrite existing (versioning)
osf_upload(
osf_proj,
path = c("data", "figs", "notebook.Rmd", "notebook.html", "sessions_info.txt"),
conflicts = "overwrite"
)
}