Simulate DIF items
n = 10000
n_items = 54
#slopes
set.seed(1)
a1 = runif(n_items, min = .5, max = 2)
a2 = a1
a2[25]
## [1] 0.901
a2[25] = 0 #item doesnt work for this group
#intercepts
i1 = rnorm(n_items, mean = -0.5, sd = 2)
i2 = i1
i2[10]
## [1] -1.29
i2[10] = 1 #item much harder for this group
#simulate data twice
d1 = simdata(
a1,
i1,
N = n,
itemtype = "2PL",
mu = 0
)
d2 = simdata(
a2,
i2,
N = n,
itemtype = "2PL",
mu = 1
)
#combine
d = bind_rows(
d1 %>% set_names("item_" + 1:50),
d2 %>% set_names("item_" + 1:50)
)
#fit mirt
mirt_fit = mirt(
d,
model = 1,
itemtype = "2PL"
)
##
Iteration: 1, Log-Lik: -494740.685, Max-Change: 1.30845
Iteration: 2, Log-Lik: -484418.365, Max-Change: 0.38969
Iteration: 3, Log-Lik: -483266.028, Max-Change: 0.18194
Iteration: 4, Log-Lik: -482848.923, Max-Change: 0.10302
Iteration: 5, Log-Lik: -482622.124, Max-Change: 0.07127
Iteration: 6, Log-Lik: -482489.343, Max-Change: 0.05099
Iteration: 7, Log-Lik: -482397.786, Max-Change: 0.04259
Iteration: 8, Log-Lik: -482334.772, Max-Change: 0.03186
Iteration: 9, Log-Lik: -482290.130, Max-Change: 0.02535
Iteration: 10, Log-Lik: -482260.315, Max-Change: 0.02149
Iteration: 11, Log-Lik: -482239.467, Max-Change: 0.01822
Iteration: 12, Log-Lik: -482224.719, Max-Change: 0.01526
Iteration: 13, Log-Lik: -482214.177, Max-Change: 0.01320
Iteration: 14, Log-Lik: -482206.600, Max-Change: 0.01124
Iteration: 15, Log-Lik: -482201.154, Max-Change: 0.00951
Iteration: 16, Log-Lik: -482197.231, Max-Change: 0.00808
Iteration: 17, Log-Lik: -482194.379, Max-Change: 0.00697
Iteration: 18, Log-Lik: -482192.277, Max-Change: 0.00598
Iteration: 19, Log-Lik: -482186.709, Max-Change: 0.00131
Iteration: 20, Log-Lik: -482186.586, Max-Change: 0.00106
Iteration: 21, Log-Lik: -482186.495, Max-Change: 0.00090
Iteration: 22, Log-Lik: -482186.139, Max-Change: 0.00093
Iteration: 23, Log-Lik: -482186.106, Max-Change: 0.00061
Iteration: 24, Log-Lik: -482186.082, Max-Change: 0.00054
Iteration: 25, Log-Lik: -482185.977, Max-Change: 0.00034
Iteration: 26, Log-Lik: -482185.968, Max-Change: 0.00033
Iteration: 27, Log-Lik: -482185.961, Max-Change: 0.00030
Iteration: 28, Log-Lik: -482185.933, Max-Change: 0.00034
Iteration: 29, Log-Lik: -482185.929, Max-Change: 0.00020
Iteration: 30, Log-Lik: -482185.926, Max-Change: 0.00019
Iteration: 31, Log-Lik: -482185.915, Max-Change: 0.00021
Iteration: 32, Log-Lik: -482185.913, Max-Change: 0.00016
Iteration: 33, Log-Lik: -482185.912, Max-Change: 0.00015
Iteration: 34, Log-Lik: -482185.907, Max-Change: 0.00024
Iteration: 35, Log-Lik: -482185.905, Max-Change: 0.00014
Iteration: 36, Log-Lik: -482185.904, Max-Change: 0.00013
Iteration: 37, Log-Lik: -482185.901, Max-Change: 0.00014
Iteration: 38, Log-Lik: -482185.901, Max-Change: 0.00012
Iteration: 39, Log-Lik: -482185.900, Max-Change: 0.00011
Iteration: 40, Log-Lik: -482185.898, Max-Change: 0.00015
Iteration: 41, Log-Lik: -482185.898, Max-Change: 0.00010
Iteration: 42, Log-Lik: -482185.897, Max-Change: 0.00010
#scores
mirt_fit_scores = fscores(mirt_fit, full.scores = T, full.scores.SE = T)
d_mirt_scores = mirt_fit_scores %>% as_tibble() %>% mutate(group = rep(c("A", "B"), each = n)) %>% bind_cols(
total_score = rowSums(d)
) %>% rename(IRT = F1)
#distributions
GG_denhist(d_mirt_scores, "total_score", "group", histogram_pars = list(binwidth = 1))

GG_save("total_scores_dist.png")
GG_denhist(d_mirt_scores, "IRT", "group")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

GG_save("IRT_dist.png")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#gap sizes
describe2(d_mirt_scores %>% select(IRT, total_score), d_mirt_scores$group)
cohen.d(
d_mirt_scores %>% select(IRT, total_score),
d_mirt_scores$group
)
## Call: cohen.d(x = d_mirt_scores %>% select(IRT, total_score), group = d_mirt_scores$group)
## Cohen d statistic of difference between two means
## lower effect upper
## IRT 0.97 1.00 1.03
## total_score 0.98 1.01 1.04
##
## Multivariate (Mahalanobis) distance between groups
## [1] 1
## r equivalent of difference between two means
## IRT total_score
## 0.45 0.45
#reliability
empirical_rxx(mirt_fit_scores)
## F1
## 0.936
#find the DIF
DIF_fit = DIF_test(
d,
model = 1,
group = d_mirt_scores$group
)
## There are 8 steps
## Step 1: Initial joint fit
##
Iteration: 1, Log-Lik: -494740.685, Max-Change: 1.30845
Iteration: 2, Log-Lik: -484418.365, Max-Change: 0.38969
Iteration: 3, Log-Lik: -483266.028, Max-Change: 0.18194
Iteration: 4, Log-Lik: -482848.923, Max-Change: 0.10302
Iteration: 5, Log-Lik: -482622.124, Max-Change: 0.07127
Iteration: 6, Log-Lik: -482489.343, Max-Change: 0.05099
Iteration: 7, Log-Lik: -482397.786, Max-Change: 0.04259
Iteration: 8, Log-Lik: -482334.772, Max-Change: 0.03186
Iteration: 9, Log-Lik: -482290.130, Max-Change: 0.02535
Iteration: 10, Log-Lik: -482260.315, Max-Change: 0.02149
Iteration: 11, Log-Lik: -482239.467, Max-Change: 0.01822
Iteration: 12, Log-Lik: -482224.719, Max-Change: 0.01526
Iteration: 13, Log-Lik: -482214.177, Max-Change: 0.01320
Iteration: 14, Log-Lik: -482206.600, Max-Change: 0.01124
Iteration: 15, Log-Lik: -482201.154, Max-Change: 0.00951
Iteration: 16, Log-Lik: -482197.231, Max-Change: 0.00808
Iteration: 17, Log-Lik: -482194.379, Max-Change: 0.00697
Iteration: 18, Log-Lik: -482192.277, Max-Change: 0.00598
Iteration: 19, Log-Lik: -482186.709, Max-Change: 0.00131
Iteration: 20, Log-Lik: -482186.586, Max-Change: 0.00106
Iteration: 21, Log-Lik: -482186.495, Max-Change: 0.00090
Iteration: 22, Log-Lik: -482186.139, Max-Change: 0.00093
Iteration: 23, Log-Lik: -482186.106, Max-Change: 0.00061
Iteration: 24, Log-Lik: -482186.082, Max-Change: 0.00054
Iteration: 25, Log-Lik: -482185.977, Max-Change: 0.00034
Iteration: 26, Log-Lik: -482185.968, Max-Change: 0.00033
Iteration: 27, Log-Lik: -482185.961, Max-Change: 0.00030
Iteration: 28, Log-Lik: -482185.933, Max-Change: 0.00034
Iteration: 29, Log-Lik: -482185.929, Max-Change: 0.00020
Iteration: 30, Log-Lik: -482185.926, Max-Change: 0.00019
Iteration: 31, Log-Lik: -482185.915, Max-Change: 0.00021
Iteration: 32, Log-Lik: -482185.913, Max-Change: 0.00016
Iteration: 33, Log-Lik: -482185.912, Max-Change: 0.00015
Iteration: 34, Log-Lik: -482185.907, Max-Change: 0.00024
Iteration: 35, Log-Lik: -482185.905, Max-Change: 0.00014
Iteration: 36, Log-Lik: -482185.904, Max-Change: 0.00013
Iteration: 37, Log-Lik: -482185.901, Max-Change: 0.00014
Iteration: 38, Log-Lik: -482185.901, Max-Change: 0.00012
Iteration: 39, Log-Lik: -482185.900, Max-Change: 0.00011
Iteration: 40, Log-Lik: -482185.898, Max-Change: 0.00015
Iteration: 41, Log-Lik: -482185.898, Max-Change: 0.00010
Iteration: 42, Log-Lik: -482185.897, Max-Change: 0.00010
##
## Step 2: Initial MI fit
##
Iteration: 1, Log-Lik: -494740.685, Max-Change: 1.08641
Iteration: 2, Log-Lik: -482581.251, Max-Change: 0.15328
Iteration: 3, Log-Lik: -481906.983, Max-Change: 0.07289
Iteration: 4, Log-Lik: -481596.757, Max-Change: 0.05158
Iteration: 5, Log-Lik: -481367.514, Max-Change: 0.05390
Iteration: 6, Log-Lik: -481181.857, Max-Change: 0.04967
Iteration: 7, Log-Lik: -481027.786, Max-Change: 0.04406
Iteration: 8, Log-Lik: -480898.543, Max-Change: 0.03871
Iteration: 9, Log-Lik: -480789.305, Max-Change: 0.03390
Iteration: 10, Log-Lik: -480696.403, Max-Change: 0.03008
Iteration: 11, Log-Lik: -480616.938, Max-Change: 0.02857
Iteration: 12, Log-Lik: -480548.589, Max-Change: 0.02709
Iteration: 13, Log-Lik: -480489.536, Max-Change: 0.02539
Iteration: 14, Log-Lik: -480438.220, Max-Change: 0.02394
Iteration: 15, Log-Lik: -480393.443, Max-Change: 0.02277
Iteration: 16, Log-Lik: -480354.189, Max-Change: 0.02168
Iteration: 17, Log-Lik: -480319.649, Max-Change: 0.02068
Iteration: 18, Log-Lik: -480289.125, Max-Change: 0.01978
Iteration: 19, Log-Lik: -480262.038, Max-Change: 0.01878
Iteration: 20, Log-Lik: -480237.941, Max-Change: 0.01800
Iteration: 21, Log-Lik: -480216.396, Max-Change: 0.01713
Iteration: 22, Log-Lik: -480197.083, Max-Change: 0.01635
Iteration: 23, Log-Lik: -480179.712, Max-Change: 0.01564
Iteration: 24, Log-Lik: -480164.052, Max-Change: 0.01505
Iteration: 25, Log-Lik: -480149.870, Max-Change: 0.01434
Iteration: 26, Log-Lik: -480136.999, Max-Change: 0.01369
Iteration: 27, Log-Lik: -480125.292, Max-Change: 0.01314
Iteration: 28, Log-Lik: -480114.611, Max-Change: 0.01259
Iteration: 29, Log-Lik: -480104.843, Max-Change: 0.01205
Iteration: 30, Log-Lik: -480095.891, Max-Change: 0.01158
Iteration: 31, Log-Lik: -480087.668, Max-Change: 0.01109
Iteration: 32, Log-Lik: -480080.099, Max-Change: 0.01061
Iteration: 33, Log-Lik: -480073.116, Max-Change: 0.01021
Iteration: 34, Log-Lik: -480066.663, Max-Change: 0.00981
Iteration: 35, Log-Lik: -480060.689, Max-Change: 0.00943
Iteration: 36, Log-Lik: -480055.148, Max-Change: 0.00907
Iteration: 37, Log-Lik: -480050.001, Max-Change: 0.00871
Iteration: 38, Log-Lik: -480045.211, Max-Change: 0.00838
Iteration: 39, Log-Lik: -480040.752, Max-Change: 0.00805
Iteration: 40, Log-Lik: -480020.524, Max-Change: 0.02043
Iteration: 41, Log-Lik: -480015.977, Max-Change: 0.00587
Iteration: 42, Log-Lik: -480013.438, Max-Change: 0.00575
Iteration: 43, Log-Lik: -480001.955, Max-Change: 0.01677
Iteration: 44, Log-Lik: -479999.089, Max-Change: 0.00431
Iteration: 45, Log-Lik: -479997.552, Max-Change: 0.00423
Iteration: 46, Log-Lik: -479990.684, Max-Change: 0.01367
Iteration: 47, Log-Lik: -479988.823, Max-Change: 0.00324
Iteration: 48, Log-Lik: -479987.868, Max-Change: 0.00318
Iteration: 49, Log-Lik: -479983.652, Max-Change: 0.01109
Iteration: 50, Log-Lik: -479982.441, Max-Change: 0.00246
Iteration: 51, Log-Lik: -479981.842, Max-Change: 0.00241
Iteration: 52, Log-Lik: -479979.228, Max-Change: 0.00892
Iteration: 53, Log-Lik: -479978.446, Max-Change: 0.00189
Iteration: 54, Log-Lik: -479978.069, Max-Change: 0.00186
Iteration: 55, Log-Lik: -479976.440, Max-Change: 0.00715
Iteration: 56, Log-Lik: -479975.940, Max-Change: 0.00147
Iteration: 57, Log-Lik: -479975.702, Max-Change: 0.00144
Iteration: 58, Log-Lik: -479974.686, Max-Change: 0.00570
Iteration: 59, Log-Lik: -479974.367, Max-Change: 0.00115
Iteration: 60, Log-Lik: -479974.219, Max-Change: 0.00112
Iteration: 61, Log-Lik: -479973.584, Max-Change: 0.00454
Iteration: 62, Log-Lik: -479973.383, Max-Change: 0.00090
Iteration: 63, Log-Lik: -479973.289, Max-Change: 0.00087
Iteration: 64, Log-Lik: -479972.894, Max-Change: 0.00360
Iteration: 65, Log-Lik: -479972.767, Max-Change: 0.00071
Iteration: 66, Log-Lik: -479972.709, Max-Change: 0.00069
Iteration: 67, Log-Lik: -479972.462, Max-Change: 0.00286
Iteration: 68, Log-Lik: -479972.382, Max-Change: 0.00056
Iteration: 69, Log-Lik: -479972.346, Max-Change: 0.00054
Iteration: 70, Log-Lik: -479972.192, Max-Change: 0.00226
Iteration: 71, Log-Lik: -479972.143, Max-Change: 0.00044
Iteration: 72, Log-Lik: -479972.120, Max-Change: 0.00042
Iteration: 73, Log-Lik: -479972.024, Max-Change: 0.00179
Iteration: 74, Log-Lik: -479971.993, Max-Change: 0.00034
Iteration: 75, Log-Lik: -479971.979, Max-Change: 0.00033
Iteration: 76, Log-Lik: -479971.920, Max-Change: 0.00141
Iteration: 77, Log-Lik: -479971.900, Max-Change: 0.00027
Iteration: 78, Log-Lik: -479971.891, Max-Change: 0.00026
Iteration: 79, Log-Lik: -479971.854, Max-Change: 0.00111
Iteration: 80, Log-Lik: -479971.842, Max-Change: 0.00021
Iteration: 81, Log-Lik: -479971.837, Max-Change: 0.00021
Iteration: 82, Log-Lik: -479971.814, Max-Change: 0.00088
Iteration: 83, Log-Lik: -479971.806, Max-Change: 0.00017
Iteration: 84, Log-Lik: -479971.803, Max-Change: 0.00016
Iteration: 85, Log-Lik: -479971.789, Max-Change: 0.00069
Iteration: 86, Log-Lik: -479971.784, Max-Change: 0.00013
Iteration: 87, Log-Lik: -479971.782, Max-Change: 0.00013
Iteration: 88, Log-Lik: -479971.773, Max-Change: 0.00055
Iteration: 89, Log-Lik: -479971.770, Max-Change: 0.00010
Iteration: 90, Log-Lik: -479971.769, Max-Change: 0.00010
Iteration: 91, Log-Lik: -479971.763, Max-Change: 0.00043
Iteration: 92, Log-Lik: -479971.761, Max-Change: 0.00008
##
## Step 3: Leave one out MI testing
##
## Step 4: Fit without DIF items, liberal threshold
##
Iteration: 1, Log-Lik: -528499.281, Max-Change: 0.87819
Iteration: 2, Log-Lik: -520841.598, Max-Change: 0.28575
Iteration: 3, Log-Lik: -519927.119, Max-Change: 0.16636
Iteration: 4, Log-Lik: -519579.469, Max-Change: 0.10728
Iteration: 5, Log-Lik: -519397.465, Max-Change: 0.08166
Iteration: 6, Log-Lik: -519288.300, Max-Change: 0.05549
Iteration: 7, Log-Lik: -519220.480, Max-Change: 0.04367
Iteration: 8, Log-Lik: -519178.050, Max-Change: 0.03091
Iteration: 9, Log-Lik: -519151.794, Max-Change: 0.02322
Iteration: 10, Log-Lik: -519135.180, Max-Change: 0.01859
Iteration: 11, Log-Lik: -519124.429, Max-Change: 0.01533
Iteration: 12, Log-Lik: -519117.414, Max-Change: 0.01245
Iteration: 13, Log-Lik: -519112.829, Max-Change: 0.00995
Iteration: 14, Log-Lik: -519109.815, Max-Change: 0.00815
Iteration: 15, Log-Lik: -519107.816, Max-Change: 0.00676
Iteration: 16, Log-Lik: -519103.893, Max-Change: 0.00131
Iteration: 17, Log-Lik: -519103.800, Max-Change: 0.00124
Iteration: 18, Log-Lik: -519103.736, Max-Change: 0.00088
Iteration: 19, Log-Lik: -519103.558, Max-Change: 0.00074
Iteration: 20, Log-Lik: -519103.535, Max-Change: 0.00058
Iteration: 21, Log-Lik: -519103.517, Max-Change: 0.00072
Iteration: 22, Log-Lik: -519103.494, Max-Change: 0.00074
Iteration: 23, Log-Lik: -519103.480, Max-Change: 0.00033
Iteration: 24, Log-Lik: -519103.472, Max-Change: 0.00035
Iteration: 25, Log-Lik: -519103.450, Max-Change: 0.00024
Iteration: 26, Log-Lik: -519103.446, Max-Change: 0.00023
Iteration: 27, Log-Lik: -519103.443, Max-Change: 0.00021
Iteration: 28, Log-Lik: -519103.435, Max-Change: 0.00036
Iteration: 29, Log-Lik: -519103.434, Max-Change: 0.00021
Iteration: 30, Log-Lik: -519103.432, Max-Change: 0.00016
Iteration: 31, Log-Lik: -519103.430, Max-Change: 0.00022
Iteration: 32, Log-Lik: -519103.429, Max-Change: 0.00014
Iteration: 33, Log-Lik: -519103.428, Max-Change: 0.00013
Iteration: 34, Log-Lik: -519103.426, Max-Change: 0.00020
Iteration: 35, Log-Lik: -519103.426, Max-Change: 0.00012
Iteration: 36, Log-Lik: -519103.425, Max-Change: 0.00011
Iteration: 37, Log-Lik: -519103.424, Max-Change: 0.00015
Iteration: 38, Log-Lik: -519103.424, Max-Change: 0.00010
##
## Step 5: Fit without DIF items, conservative threshold
##
Iteration: 1, Log-Lik: -498417.174, Max-Change: 1.24429
Iteration: 2, Log-Lik: -488881.053, Max-Change: 0.35709
Iteration: 3, Log-Lik: -487742.038, Max-Change: 0.16558
Iteration: 4, Log-Lik: -487336.721, Max-Change: 0.09914
Iteration: 5, Log-Lik: -487106.369, Max-Change: 0.07016
Iteration: 6, Log-Lik: -486969.267, Max-Change: 0.05040
Iteration: 7, Log-Lik: -486876.580, Max-Change: 0.04035
Iteration: 8, Log-Lik: -486813.380, Max-Change: 0.03418
Iteration: 9, Log-Lik: -486769.387, Max-Change: 0.02634
Iteration: 10, Log-Lik: -486739.510, Max-Change: 0.02207
Iteration: 11, Log-Lik: -486718.799, Max-Change: 0.01856
Iteration: 12, Log-Lik: -486704.309, Max-Change: 0.01543
Iteration: 13, Log-Lik: -486694.041, Max-Change: 0.01326
Iteration: 14, Log-Lik: -486686.725, Max-Change: 0.01129
Iteration: 15, Log-Lik: -486681.508, Max-Change: 0.00948
Iteration: 16, Log-Lik: -486677.776, Max-Change: 0.00804
Iteration: 17, Log-Lik: -486675.079, Max-Change: 0.00684
Iteration: 18, Log-Lik: -486673.103, Max-Change: 0.00588
Iteration: 19, Log-Lik: -486667.981, Max-Change: 0.00134
Iteration: 20, Log-Lik: -486667.850, Max-Change: 0.00106
Iteration: 21, Log-Lik: -486667.749, Max-Change: 0.00091
Iteration: 22, Log-Lik: -486667.350, Max-Change: 0.00095
Iteration: 23, Log-Lik: -486667.313, Max-Change: 0.00067
Iteration: 24, Log-Lik: -486667.285, Max-Change: 0.00059
Iteration: 25, Log-Lik: -486667.167, Max-Change: 0.00036
Iteration: 26, Log-Lik: -486667.157, Max-Change: 0.00035
Iteration: 27, Log-Lik: -486667.148, Max-Change: 0.00031
Iteration: 28, Log-Lik: -486667.117, Max-Change: 0.00033
Iteration: 29, Log-Lik: -486667.113, Max-Change: 0.00021
Iteration: 30, Log-Lik: -486667.109, Max-Change: 0.00020
Iteration: 31, Log-Lik: -486667.098, Max-Change: 0.00021
Iteration: 32, Log-Lik: -486667.096, Max-Change: 0.00016
Iteration: 33, Log-Lik: -486667.094, Max-Change: 0.00016
Iteration: 34, Log-Lik: -486667.089, Max-Change: 0.00024
Iteration: 35, Log-Lik: -486667.088, Max-Change: 0.00014
Iteration: 36, Log-Lik: -486667.087, Max-Change: 0.00014
Iteration: 37, Log-Lik: -486667.084, Max-Change: 0.00014
Iteration: 38, Log-Lik: -486667.083, Max-Change: 0.00012
Iteration: 39, Log-Lik: -486667.082, Max-Change: 0.00012
Iteration: 40, Log-Lik: -486667.081, Max-Change: 0.00015
Iteration: 41, Log-Lik: -486667.080, Max-Change: 0.00011
Iteration: 42, Log-Lik: -486667.080, Max-Change: 0.00010
Iteration: 43, Log-Lik: -486667.079, Max-Change: 0.00009
##
## Step 6: Fit with anchor items, liberal threshold
##
Iteration: 1, Log-Lik: -494740.685, Max-Change: 1.19768
Iteration: 2, Log-Lik: -479963.397, Max-Change: 0.15953
Iteration: 3, Log-Lik: -479254.391, Max-Change: 0.07793
Iteration: 4, Log-Lik: -478943.215, Max-Change: 0.04834
Iteration: 5, Log-Lik: -478724.646, Max-Change: 0.04941
Iteration: 6, Log-Lik: -478550.394, Max-Change: 0.04811
Iteration: 7, Log-Lik: -478405.729, Max-Change: 0.04422
Iteration: 8, Log-Lik: -478283.708, Max-Change: 0.03963
Iteration: 9, Log-Lik: -478179.872, Max-Change: 0.03525
Iteration: 10, Log-Lik: -478091.003, Max-Change: 0.03126
Iteration: 11, Log-Lik: -478014.566, Max-Change: 0.02845
Iteration: 12, Log-Lik: -477948.474, Max-Change: 0.02685
Iteration: 13, Log-Lik: -477891.093, Max-Change: 0.02556
Iteration: 14, Log-Lik: -477841.055, Max-Change: 0.02438
Iteration: 15, Log-Lik: -477797.232, Max-Change: 0.02322
Iteration: 16, Log-Lik: -477758.733, Max-Change: 0.02214
Iteration: 17, Log-Lik: -477724.760, Max-Change: 0.02111
Iteration: 18, Log-Lik: -477694.692, Max-Change: 0.02015
Iteration: 19, Log-Lik: -477667.974, Max-Change: 0.01929
Iteration: 20, Log-Lik: -477644.157, Max-Change: 0.01840
Iteration: 21, Log-Lik: -477622.861, Max-Change: 0.01760
Iteration: 22, Log-Lik: -477603.767, Max-Change: 0.01683
Iteration: 23, Log-Lik: -477586.581, Max-Change: 0.01607
Iteration: 24, Log-Lik: -477571.081, Max-Change: 0.01538
Iteration: 25, Log-Lik: -477557.058, Max-Change: 0.01474
Iteration: 26, Log-Lik: -477544.345, Max-Change: 0.01402
Iteration: 27, Log-Lik: -477532.788, Max-Change: 0.01349
Iteration: 28, Log-Lik: -477522.255, Max-Change: 0.01292
Iteration: 29, Log-Lik: -477512.633, Max-Change: 0.01239
Iteration: 30, Log-Lik: -477503.823, Max-Change: 0.01188
Iteration: 31, Log-Lik: -477495.739, Max-Change: 0.01140
Iteration: 32, Log-Lik: -477488.308, Max-Change: 0.01093
Iteration: 33, Log-Lik: -477481.462, Max-Change: 0.01050
Iteration: 34, Log-Lik: -477475.145, Max-Change: 0.01009
Iteration: 35, Log-Lik: -477469.305, Max-Change: 0.00969
Iteration: 36, Log-Lik: -477463.900, Max-Change: 0.00932
Iteration: 37, Log-Lik: -477458.885, Max-Change: 0.00890
Iteration: 38, Log-Lik: -477454.236, Max-Change: 0.00858
Iteration: 39, Log-Lik: -477449.911, Max-Change: 0.00826
Iteration: 40, Log-Lik: -477430.299, Max-Change: 0.01990
Iteration: 41, Log-Lik: -477425.959, Max-Change: 0.00708
Iteration: 42, Log-Lik: -477423.508, Max-Change: 0.00633
Iteration: 43, Log-Lik: -477412.477, Max-Change: 0.01651
Iteration: 44, Log-Lik: -477409.732, Max-Change: 0.00477
Iteration: 45, Log-Lik: -477408.263, Max-Change: 0.00446
Iteration: 46, Log-Lik: -477401.690, Max-Change: 0.01348
Iteration: 47, Log-Lik: -477399.921, Max-Change: 0.00372
Iteration: 48, Log-Lik: -477399.008, Max-Change: 0.00340
Iteration: 49, Log-Lik: -477394.976, Max-Change: 0.01094
Iteration: 50, Log-Lik: -477393.821, Max-Change: 0.00276
Iteration: 51, Log-Lik: -477393.246, Max-Change: 0.00254
Iteration: 52, Log-Lik: -477390.740, Max-Change: 0.00884
Iteration: 53, Log-Lik: -477389.987, Max-Change: 0.00215
Iteration: 54, Log-Lik: -477389.624, Max-Change: 0.00195
Iteration: 55, Log-Lik: -477388.056, Max-Change: 0.00712
Iteration: 56, Log-Lik: -477387.570, Max-Change: 0.00166
Iteration: 57, Log-Lik: -477387.339, Max-Change: 0.00150
Iteration: 58, Log-Lik: -477386.356, Max-Change: 0.00571
Iteration: 59, Log-Lik: -477386.043, Max-Change: 0.00130
Iteration: 60, Log-Lik: -477385.898, Max-Change: 0.00117
Iteration: 61, Log-Lik: -477385.280, Max-Change: 0.00456
Iteration: 62, Log-Lik: -477385.080, Max-Change: 0.00101
Iteration: 63, Log-Lik: -477384.988, Max-Change: 0.00092
Iteration: 64, Log-Lik: -477384.600, Max-Change: 0.00364
Iteration: 65, Log-Lik: -477384.473, Max-Change: 0.00079
Iteration: 66, Log-Lik: -477384.415, Max-Change: 0.00072
Iteration: 67, Log-Lik: -477384.172, Max-Change: 0.00290
Iteration: 68, Log-Lik: -477384.091, Max-Change: 0.00062
Iteration: 69, Log-Lik: -477384.055, Max-Change: 0.00056
Iteration: 70, Log-Lik: -477383.902, Max-Change: 0.00230
Iteration: 71, Log-Lik: -477383.851, Max-Change: 0.00049
Iteration: 72, Log-Lik: -477383.828, Max-Change: 0.00045
Iteration: 73, Log-Lik: -477383.732, Max-Change: 0.00183
Iteration: 74, Log-Lik: -477383.700, Max-Change: 0.00039
Iteration: 75, Log-Lik: -477383.685, Max-Change: 0.00035
Iteration: 76, Log-Lik: -477383.625, Max-Change: 0.00145
Iteration: 77, Log-Lik: -477383.605, Max-Change: 0.00031
Iteration: 78, Log-Lik: -477383.596, Max-Change: 0.00028
Iteration: 79, Log-Lik: -477383.558, Max-Change: 0.00115
Iteration: 80, Log-Lik: -477383.545, Max-Change: 0.00024
Iteration: 81, Log-Lik: -477383.540, Max-Change: 0.00022
Iteration: 82, Log-Lik: -477383.516, Max-Change: 0.00091
Iteration: 83, Log-Lik: -477383.508, Max-Change: 0.00019
Iteration: 84, Log-Lik: -477383.504, Max-Change: 0.00017
Iteration: 85, Log-Lik: -477383.490, Max-Change: 0.00072
Iteration: 86, Log-Lik: -477383.484, Max-Change: 0.00015
Iteration: 87, Log-Lik: -477383.482, Max-Change: 0.00014
Iteration: 88, Log-Lik: -477383.473, Max-Change: 0.00057
Iteration: 89, Log-Lik: -477383.470, Max-Change: 0.00012
Iteration: 90, Log-Lik: -477383.468, Max-Change: 0.00011
Iteration: 91, Log-Lik: -477383.463, Max-Change: 0.00045
Iteration: 92, Log-Lik: -477383.461, Max-Change: 0.00009
##
## Step 7: Fit with anchor items, conservative threshold
##
Iteration: 1, Log-Lik: -494740.685, Max-Change: 1.19754
Iteration: 2, Log-Lik: -479973.186, Max-Change: 0.15514
Iteration: 3, Log-Lik: -479292.809, Max-Change: 0.07494
Iteration: 4, Log-Lik: -478987.907, Max-Change: 0.05168
Iteration: 5, Log-Lik: -478764.534, Max-Change: 0.05452
Iteration: 6, Log-Lik: -478584.051, Max-Change: 0.05052
Iteration: 7, Log-Lik: -478434.377, Max-Change: 0.04473
Iteration: 8, Log-Lik: -478308.894, Max-Change: 0.03961
Iteration: 9, Log-Lik: -478202.858, Max-Change: 0.03461
Iteration: 10, Log-Lik: -478112.739, Max-Change: 0.03045
Iteration: 11, Log-Lik: -478035.667, Max-Change: 0.02830
Iteration: 12, Log-Lik: -477969.423, Max-Change: 0.02642
Iteration: 13, Log-Lik: -477912.198, Max-Change: 0.02455
Iteration: 14, Log-Lik: -477862.531, Max-Change: 0.02328
Iteration: 15, Log-Lik: -477819.232, Max-Change: 0.02218
Iteration: 16, Log-Lik: -477781.313, Max-Change: 0.02116
Iteration: 17, Log-Lik: -477747.983, Max-Change: 0.02011
Iteration: 18, Log-Lik: -477718.554, Max-Change: 0.01931
Iteration: 19, Log-Lik: -477692.470, Max-Change: 0.01829
Iteration: 20, Log-Lik: -477669.278, Max-Change: 0.01749
Iteration: 21, Log-Lik: -477648.583, Max-Change: 0.01677
Iteration: 22, Log-Lik: -477630.051, Max-Change: 0.01593
Iteration: 23, Log-Lik: -477613.410, Max-Change: 0.01511
Iteration: 24, Log-Lik: -477598.429, Max-Change: 0.01478
Iteration: 25, Log-Lik: -477584.872, Max-Change: 0.01400
Iteration: 26, Log-Lik: -477572.581, Max-Change: 0.01336
Iteration: 27, Log-Lik: -477561.421, Max-Change: 0.01281
Iteration: 28, Log-Lik: -477551.256, Max-Change: 0.01228
Iteration: 29, Log-Lik: -477541.964, Max-Change: 0.01177
Iteration: 30, Log-Lik: -477533.464, Max-Change: 0.01129
Iteration: 31, Log-Lik: -477525.660, Max-Change: 0.01084
Iteration: 32, Log-Lik: -477518.484, Max-Change: 0.01039
Iteration: 33, Log-Lik: -477511.873, Max-Change: 0.00997
Iteration: 34, Log-Lik: -477505.772, Max-Change: 0.00951
Iteration: 35, Log-Lik: -477500.136, Max-Change: 0.00920
Iteration: 36, Log-Lik: -477494.916, Max-Change: 0.00884
Iteration: 37, Log-Lik: -477490.075, Max-Change: 0.00850
Iteration: 38, Log-Lik: -477485.579, Max-Change: 0.00817
Iteration: 39, Log-Lik: -477481.397, Max-Change: 0.00784
Iteration: 40, Log-Lik: -477462.407, Max-Change: 0.01952
Iteration: 41, Log-Lik: -477458.211, Max-Change: 0.00576
Iteration: 42, Log-Lik: -477455.849, Max-Change: 0.00563
Iteration: 43, Log-Lik: -477445.139, Max-Change: 0.01603
Iteration: 44, Log-Lik: -477442.517, Max-Change: 0.00422
Iteration: 45, Log-Lik: -477441.096, Max-Change: 0.00413
Iteration: 46, Log-Lik: -477434.721, Max-Change: 0.01299
Iteration: 47, Log-Lik: -477433.037, Max-Change: 0.00318
Iteration: 48, Log-Lik: -477432.160, Max-Change: 0.00311
Iteration: 49, Log-Lik: -477428.272, Max-Change: 0.01054
Iteration: 50, Log-Lik: -477427.180, Max-Change: 0.00242
Iteration: 51, Log-Lik: -477426.632, Max-Change: 0.00235
Iteration: 52, Log-Lik: -477424.235, Max-Change: 0.00846
Iteration: 53, Log-Lik: -477423.533, Max-Change: 0.00186
Iteration: 54, Log-Lik: -477423.190, Max-Change: 0.00181
Iteration: 55, Log-Lik: -477421.703, Max-Change: 0.00677
Iteration: 56, Log-Lik: -477421.255, Max-Change: 0.00143
Iteration: 57, Log-Lik: -477421.040, Max-Change: 0.00140
Iteration: 58, Log-Lik: -477420.116, Max-Change: 0.00539
Iteration: 59, Log-Lik: -477419.832, Max-Change: 0.00112
Iteration: 60, Log-Lik: -477419.698, Max-Change: 0.00109
Iteration: 61, Log-Lik: -477419.124, Max-Change: 0.00429
Iteration: 62, Log-Lik: -477418.945, Max-Change: 0.00087
Iteration: 63, Log-Lik: -477418.861, Max-Change: 0.00085
Iteration: 64, Log-Lik: -477418.504, Max-Change: 0.00339
Iteration: 65, Log-Lik: -477418.392, Max-Change: 0.00068
Iteration: 66, Log-Lik: -477418.340, Max-Change: 0.00066
Iteration: 67, Log-Lik: -477418.119, Max-Change: 0.00268
Iteration: 68, Log-Lik: -477418.049, Max-Change: 0.00054
Iteration: 69, Log-Lik: -477418.016, Max-Change: 0.00052
Iteration: 70, Log-Lik: -477417.879, Max-Change: 0.00212
Iteration: 71, Log-Lik: -477417.835, Max-Change: 0.00042
Iteration: 72, Log-Lik: -477417.815, Max-Change: 0.00041
Iteration: 73, Log-Lik: -477417.730, Max-Change: 0.00167
Iteration: 74, Log-Lik: -477417.702, Max-Change: 0.00033
Iteration: 75, Log-Lik: -477417.690, Max-Change: 0.00032
Iteration: 76, Log-Lik: -477417.637, Max-Change: 0.00132
Iteration: 77, Log-Lik: -477417.620, Max-Change: 0.00026
Iteration: 78, Log-Lik: -477417.612, Max-Change: 0.00025
Iteration: 79, Log-Lik: -477417.580, Max-Change: 0.00104
Iteration: 80, Log-Lik: -477417.569, Max-Change: 0.00020
Iteration: 81, Log-Lik: -477417.564, Max-Change: 0.00020
Iteration: 82, Log-Lik: -477417.544, Max-Change: 0.00082
Iteration: 83, Log-Lik: -477417.538, Max-Change: 0.00016
Iteration: 84, Log-Lik: -477417.535, Max-Change: 0.00016
Iteration: 85, Log-Lik: -477417.522, Max-Change: 0.00064
Iteration: 86, Log-Lik: -477417.518, Max-Change: 0.00013
Iteration: 87, Log-Lik: -477417.516, Max-Change: 0.00012
Iteration: 88, Log-Lik: -477417.508, Max-Change: 0.00051
Iteration: 89, Log-Lik: -477417.506, Max-Change: 0.00010
##
## Step 8: Get scores
#DIF size on test
DIF_fit$effect_size_test
## $liberal
## Effect Size Value
## 1 STDS 0.1734
## 2 UTDS 0.8447
## 3 UETSDS 0.2443
## 4 ETSSD 0.0202
## 5 Starks.DTFR 0.1699
## 6 UDTFR 0.8456
## 7 UETSDN 0.2537
## 8 theta.of.max.test.D -1.7708
## 9 Test.Dmax 0.5436
##
## $conservative
## Effect Size Value
## 1 STDS 0.2937
## 2 UTDS 0.6913
## 3 UETSDS 0.3212
## 4 ETSSD 0.0341
## 5 Starks.DTFR 0.2881
## 6 UDTFR 0.6925
## 7 UETSDN 0.3264
## 8 theta.of.max.test.D -0.8338
## 9 Test.Dmax 0.5656
#DIF test results
DIF_fit$DIF_stats
#plot bias for test
DIF_fit$fits$anchor_conservative %>% plot(type = "score")

#plot bias for items
DIF_fit$fits$anchor_conservative %>% plot(type = "trace")

#only 2 bad items
DIF_fit$fits$anchor_conservative %>% plot(type = "trace", which.items = c(10, 25))
