Setup

library(tidyverse)
library(here)
library(lubridate)
library(ggthemes)
library(langcog)
library(mirt)
library(knitr)
pilot_data_filtered <- read_csv(file = here::here('data/preprocessed_data/all_preprocessed_data.csv')) %>%
  mutate(word1 = str_replace(word1, ' ', '.')) %>%
  mutate(word2 = str_replace(word2, ' ', '.')) %>%
  mutate(item_pair = paste0(word1,'_',word2))
d_wide_all<- pilot_data_filtered %>%
  ungroup() %>%
  select(sub_id, item_pair, correct) %>%
  arrange(item_pair) %>%
  ungroup() %>%
  pivot_wider(names_from=item_pair, values_from=correct, values_fn = ~mean(.x)) %>%
  ungroup()

d_mat_all <- d_wide_all %>%
  select(-sub_id) %>%
  data.frame %>%
  data.matrix 

rownames(d_mat_all) <- d_wide_all$sub_id

Iterative 2PL IRT model with all data

With guess rate of 0.5 Removes items that have slopes <.7

outliers <- TRUE
maxiter <- 20
iteration <- 0
df_good <- d_mat_all
aminmax <- c(.7, Inf) # Keep items with positive slopes over .9

# Model priors specified in loop

while (outliers > 0 & iteration<maxiter){
  iteration <- iteration + 1;
  start.dim <- dim(df_good)[2]-1
  mm = (
  'F = 1-%d,
  PRIOR = (1-%d, a1, norm, .2, 1),
  PRIOR = (1-%d, d, norm, 0, 2)'
  )
  mm = mirt.model(sprintf(mm,start.dim,start.dim,start.dim))
  m <- mirt(df_good, model = mm,itemtype = '2PL',guess=0.5) # 2AFC. Guess Rate = 0.5
  co <- coef(m,simplify=TRUE, IRTpars = FALSE) # Get coeeficients
  co <- tibble::rownames_to_column(as.data.frame(co$items),'words')
  ggplot(co, aes(a1, d)) + geom_point(size=3)
  # ggsave(sprintf('2PL-ModelParams_%d.png',iteration))
  # Remove items with low or extreme slope and refit
  df_good <- df_good[,which(co$a1>aminmax[1] & co$a1<aminmax[2])]
  end.dim <- dim(df_good)[2]-1
  outliers <- sum(!(co$a1>aminmax[1] & co$a1<aminmax[2]))
  print(sprintf('2PL ITERATION %d. STARTED WITH %d ITEMS. %d OUTLIERS REMOVED. %d ITEMS RETAINED.',iteration,start.dim,outliers,end.dim))
}
## 
Iteration: 1, Log-Lik: -56576.090, Max-Change: 19.79992
Iteration: 2, Log-Lik: -43505.654, Max-Change: 10.32434
Iteration: 3, Log-Lik: -42380.588, Max-Change: 4.02271
Iteration: 4, Log-Lik: -42164.092, Max-Change: 2.13244
Iteration: 5, Log-Lik: -42106.750, Max-Change: 0.47059
Iteration: 6, Log-Lik: -42084.497, Max-Change: 0.10578
Iteration: 7, Log-Lik: -42074.445, Max-Change: 0.08024
Iteration: 8, Log-Lik: -42069.250, Max-Change: 0.06239
Iteration: 9, Log-Lik: -42066.279, Max-Change: 0.04749
Iteration: 10, Log-Lik: -42064.519, Max-Change: 0.03698
Iteration: 11, Log-Lik: -42063.458, Max-Change: 0.02859
Iteration: 12, Log-Lik: -42062.814, Max-Change: 0.02243
Iteration: 13, Log-Lik: -42061.855, Max-Change: 0.00552
Iteration: 14, Log-Lik: -42061.828, Max-Change: 0.00377
Iteration: 15, Log-Lik: -42061.814, Max-Change: 0.00319
Iteration: 16, Log-Lik: -42061.791, Max-Change: 0.00461
Iteration: 17, Log-Lik: -42061.789, Max-Change: 0.00175
Iteration: 18, Log-Lik: -42061.789, Max-Change: 0.00080
Iteration: 19, Log-Lik: -42061.788, Max-Change: 0.00038
Iteration: 20, Log-Lik: -42061.788, Max-Change: 0.00037
Iteration: 21, Log-Lik: -42061.788, Max-Change: 0.00037
Iteration: 22, Log-Lik: -42061.787, Max-Change: 0.00163
Iteration: 23, Log-Lik: -42061.787, Max-Change: 0.00116
Iteration: 24, Log-Lik: -42061.787, Max-Change: 0.00087
Iteration: 25, Log-Lik: -42061.787, Max-Change: 0.00028
Iteration: 26, Log-Lik: -42061.787, Max-Change: 0.00027
Iteration: 27, Log-Lik: -42061.787, Max-Change: 0.00133
Iteration: 28, Log-Lik: -42061.787, Max-Change: 0.00113
Iteration: 29, Log-Lik: -42061.787, Max-Change: 0.00087
Iteration: 30, Log-Lik: -42061.787, Max-Change: 0.00066
Iteration: 31, Log-Lik: -42061.787, Max-Change: 0.00022
Iteration: 32, Log-Lik: -42061.787, Max-Change: 0.00106
Iteration: 33, Log-Lik: -42061.787, Max-Change: 0.00080
Iteration: 34, Log-Lik: -42061.787, Max-Change: 0.00018
Iteration: 35, Log-Lik: -42061.787, Max-Change: 0.00018
Iteration: 36, Log-Lik: -42061.787, Max-Change: 0.00087
Iteration: 37, Log-Lik: -42061.787, Max-Change: 0.00062
Iteration: 38, Log-Lik: -42061.787, Max-Change: 0.00047
Iteration: 39, Log-Lik: -42061.787, Max-Change: 0.00036
Iteration: 40, Log-Lik: -42061.787, Max-Change: 0.00014
Iteration: 41, Log-Lik: -42061.787, Max-Change: 0.00069
Iteration: 42, Log-Lik: -42061.787, Max-Change: 0.00040
Iteration: 43, Log-Lik: -42061.787, Max-Change: 0.00012
Iteration: 44, Log-Lik: -42061.787, Max-Change: 0.00058
Iteration: 45, Log-Lik: -42061.787, Max-Change: 0.00040
Iteration: 46, Log-Lik: -42061.787, Max-Change: 0.00010
Iteration: 47, Log-Lik: -42061.787, Max-Change: 0.00049
Iteration: 48, Log-Lik: -42061.787, Max-Change: 0.00025
Iteration: 49, Log-Lik: -42061.787, Max-Change: 0.00008
## [1] "2PL ITERATION 1. STARTED WITH 392 ITEMS. 77 OUTLIERS REMOVED. 315 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -45533.039, Max-Change: 14.34072
Iteration: 2, Log-Lik: -34411.410, Max-Change: 6.52685
Iteration: 3, Log-Lik: -33395.206, Max-Change: 4.59254
Iteration: 4, Log-Lik: -33190.415, Max-Change: 1.07201
Iteration: 5, Log-Lik: -33135.889, Max-Change: 0.18865
Iteration: 6, Log-Lik: -33114.669, Max-Change: 0.10683
Iteration: 7, Log-Lik: -33103.998, Max-Change: 0.08372
Iteration: 8, Log-Lik: -33098.133, Max-Change: 0.06558
Iteration: 9, Log-Lik: -33094.706, Max-Change: 0.05089
Iteration: 10, Log-Lik: -33092.665, Max-Change: 0.03964
Iteration: 11, Log-Lik: -33091.441, Max-Change: 0.03064
Iteration: 12, Log-Lik: -33090.701, Max-Change: 0.02401
Iteration: 13, Log-Lik: -33089.599, Max-Change: 0.00651
Iteration: 14, Log-Lik: -33089.583, Max-Change: 0.00338
Iteration: 15, Log-Lik: -33089.574, Max-Change: 0.00215
Iteration: 16, Log-Lik: -33089.566, Max-Change: 0.00164
Iteration: 17, Log-Lik: -33089.563, Max-Change: 0.00135
Iteration: 18, Log-Lik: -33089.562, Max-Change: 0.00113
Iteration: 19, Log-Lik: -33089.559, Max-Change: 0.00077
Iteration: 20, Log-Lik: -33089.559, Max-Change: 0.00042
Iteration: 21, Log-Lik: -33089.559, Max-Change: 0.00023
Iteration: 22, Log-Lik: -33089.559, Max-Change: 0.00049
Iteration: 23, Log-Lik: -33089.559, Max-Change: 0.00040
Iteration: 24, Log-Lik: -33089.559, Max-Change: 0.00022
Iteration: 25, Log-Lik: -33089.559, Max-Change: 0.00032
Iteration: 26, Log-Lik: -33089.559, Max-Change: 0.00025
Iteration: 27, Log-Lik: -33089.559, Max-Change: 0.00014
Iteration: 28, Log-Lik: -33089.559, Max-Change: 0.00019
Iteration: 29, Log-Lik: -33089.559, Max-Change: 0.00023
Iteration: 30, Log-Lik: -33089.559, Max-Change: 0.00013
Iteration: 31, Log-Lik: -33089.559, Max-Change: 0.00004
## [1] "2PL ITERATION 2. STARTED WITH 315 ITEMS. 2 OUTLIERS REMOVED. 313 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -45268.116, Max-Change: 14.28993
Iteration: 2, Log-Lik: -34194.024, Max-Change: 6.56276
Iteration: 3, Log-Lik: -33214.664, Max-Change: 4.20871
Iteration: 4, Log-Lik: -33008.581, Max-Change: 1.37019
Iteration: 5, Log-Lik: -32950.802, Max-Change: 0.19505
Iteration: 6, Log-Lik: -32928.749, Max-Change: 0.11032
Iteration: 7, Log-Lik: -32917.666, Max-Change: 0.08567
Iteration: 8, Log-Lik: -32911.590, Max-Change: 0.06696
Iteration: 9, Log-Lik: -32908.044, Max-Change: 0.05190
Iteration: 10, Log-Lik: -32905.934, Max-Change: 0.04049
Iteration: 11, Log-Lik: -32904.669, Max-Change: 0.03113
Iteration: 12, Log-Lik: -32903.906, Max-Change: 0.02441
Iteration: 13, Log-Lik: -32902.771, Max-Change: 0.00664
Iteration: 14, Log-Lik: -32902.755, Max-Change: 0.00347
Iteration: 15, Log-Lik: -32902.746, Max-Change: 0.00211
Iteration: 16, Log-Lik: -32902.738, Max-Change: 0.00171
Iteration: 17, Log-Lik: -32902.735, Max-Change: 0.00141
Iteration: 18, Log-Lik: -32902.734, Max-Change: 0.00119
Iteration: 19, Log-Lik: -32902.730, Max-Change: 0.00090
Iteration: 20, Log-Lik: -32902.730, Max-Change: 0.00049
Iteration: 21, Log-Lik: -32902.730, Max-Change: 0.00028
Iteration: 22, Log-Lik: -32902.730, Max-Change: 0.00052
Iteration: 23, Log-Lik: -32902.730, Max-Change: 0.00044
Iteration: 24, Log-Lik: -32902.730, Max-Change: 0.00025
Iteration: 25, Log-Lik: -32902.730, Max-Change: 0.00034
Iteration: 26, Log-Lik: -32902.730, Max-Change: 0.00025
Iteration: 27, Log-Lik: -32902.730, Max-Change: 0.00015
Iteration: 28, Log-Lik: -32902.730, Max-Change: 0.00020
Iteration: 29, Log-Lik: -32902.730, Max-Change: 0.00019
Iteration: 30, Log-Lik: -32902.730, Max-Change: 0.00011
Iteration: 31, Log-Lik: -32902.730, Max-Change: 0.00015
Iteration: 32, Log-Lik: -32902.730, Max-Change: 0.00021
Iteration: 33, Log-Lik: -32902.730, Max-Change: 0.00012
Iteration: 34, Log-Lik: -32902.730, Max-Change: 0.00005
## [1] "2PL ITERATION 3. STARTED WITH 313 ITEMS. 1 OUTLIERS REMOVED. 312 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -45166.577, Max-Change: 14.26319
Iteration: 2, Log-Lik: -34125.901, Max-Change: 6.38952
Iteration: 3, Log-Lik: -33158.924, Max-Change: 4.72414
Iteration: 4, Log-Lik: -32951.540, Max-Change: 0.94181
Iteration: 5, Log-Lik: -32899.472, Max-Change: 0.19987
Iteration: 6, Log-Lik: -32878.482, Max-Change: 0.10925
Iteration: 7, Log-Lik: -32867.910, Max-Change: 0.08422
Iteration: 8, Log-Lik: -32862.102, Max-Change: 0.06570
Iteration: 9, Log-Lik: -32858.711, Max-Change: 0.05085
Iteration: 10, Log-Lik: -32856.695, Max-Change: 0.03953
Iteration: 11, Log-Lik: -32855.486, Max-Change: 0.03054
Iteration: 12, Log-Lik: -32854.757, Max-Change: 0.02392
Iteration: 13, Log-Lik: -32853.675, Max-Change: 0.00650
Iteration: 14, Log-Lik: -32853.659, Max-Change: 0.00318
Iteration: 15, Log-Lik: -32853.650, Max-Change: 0.00213
Iteration: 16, Log-Lik: -32853.640, Max-Change: 0.00151
Iteration: 17, Log-Lik: -32853.638, Max-Change: 0.00124
Iteration: 18, Log-Lik: -32853.637, Max-Change: 0.00132
Iteration: 19, Log-Lik: -32853.637, Max-Change: 0.00053
Iteration: 20, Log-Lik: -32853.636, Max-Change: 0.00046
Iteration: 21, Log-Lik: -32853.636, Max-Change: 0.00041
Iteration: 22, Log-Lik: -32853.635, Max-Change: 0.00082
Iteration: 23, Log-Lik: -32853.635, Max-Change: 0.00045
Iteration: 24, Log-Lik: -32853.635, Max-Change: 0.00152
Iteration: 25, Log-Lik: -32853.635, Max-Change: 0.00223
Iteration: 26, Log-Lik: -32853.635, Max-Change: 0.00132
Iteration: 27, Log-Lik: -32853.635, Max-Change: 0.00077
Iteration: 28, Log-Lik: -32853.635, Max-Change: 0.00026
Iteration: 29, Log-Lik: -32853.635, Max-Change: 0.00016
Iteration: 30, Log-Lik: -32853.635, Max-Change: 0.00044
Iteration: 31, Log-Lik: -32853.635, Max-Change: 0.00078
Iteration: 32, Log-Lik: -32853.635, Max-Change: 0.00045
Iteration: 33, Log-Lik: -32853.635, Max-Change: 0.00027
Iteration: 34, Log-Lik: -32853.635, Max-Change: 0.00009
## [1] "2PL ITERATION 4. STARTED WITH 312 ITEMS. 1 OUTLIERS REMOVED. 311 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -45097.534, Max-Change: 14.26793
Iteration: 2, Log-Lik: -34052.958, Max-Change: 6.45949
Iteration: 3, Log-Lik: -33084.504, Max-Change: 5.46831
Iteration: 4, Log-Lik: -32903.522, Max-Change: 0.49257
Iteration: 5, Log-Lik: -32834.266, Max-Change: 0.18552
Iteration: 6, Log-Lik: -32809.106, Max-Change: 0.11158
Iteration: 7, Log-Lik: -32796.886, Max-Change: 0.08827
Iteration: 8, Log-Lik: -32790.305, Max-Change: 0.06942
Iteration: 9, Log-Lik: -32786.489, Max-Change: 0.05385
Iteration: 10, Log-Lik: -32784.227, Max-Change: 0.04200
Iteration: 11, Log-Lik: -32782.874, Max-Change: 0.03227
Iteration: 12, Log-Lik: -32782.060, Max-Change: 0.02530
Iteration: 13, Log-Lik: -32780.856, Max-Change: 0.00673
Iteration: 14, Log-Lik: -32780.838, Max-Change: 0.00360
Iteration: 15, Log-Lik: -32780.828, Max-Change: 0.00218
Iteration: 16, Log-Lik: -32780.820, Max-Change: 0.00177
Iteration: 17, Log-Lik: -32780.818, Max-Change: 0.00146
Iteration: 18, Log-Lik: -32780.816, Max-Change: 0.00123
Iteration: 19, Log-Lik: -32780.812, Max-Change: 0.00093
Iteration: 20, Log-Lik: -32780.812, Max-Change: 0.00050
Iteration: 21, Log-Lik: -32780.812, Max-Change: 0.00029
Iteration: 22, Log-Lik: -32780.812, Max-Change: 0.00054
Iteration: 23, Log-Lik: -32780.812, Max-Change: 0.00047
Iteration: 24, Log-Lik: -32780.812, Max-Change: 0.00027
Iteration: 25, Log-Lik: -32780.812, Max-Change: 0.00036
Iteration: 26, Log-Lik: -32780.812, Max-Change: 0.00029
Iteration: 27, Log-Lik: -32780.812, Max-Change: 0.00017
Iteration: 28, Log-Lik: -32780.812, Max-Change: 0.00021
Iteration: 29, Log-Lik: -32780.812, Max-Change: 0.00026
Iteration: 30, Log-Lik: -32780.812, Max-Change: 0.00015
Iteration: 31, Log-Lik: -32780.812, Max-Change: 0.00005
## [1] "2PL ITERATION 5. STARTED WITH 311 ITEMS. 1 OUTLIERS REMOVED. 310 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -45034.012, Max-Change: 14.22868
Iteration: 2, Log-Lik: -34025.133, Max-Change: 6.43184
Iteration: 3, Log-Lik: -33038.876, Max-Change: 4.12162
Iteration: 4, Log-Lik: -32830.431, Max-Change: 1.52145
Iteration: 5, Log-Lik: -32772.626, Max-Change: 0.19167
Iteration: 6, Log-Lik: -32750.933, Max-Change: 0.10944
Iteration: 7, Log-Lik: -32740.106, Max-Change: 0.08493
Iteration: 8, Log-Lik: -32734.203, Max-Change: 0.06633
Iteration: 9, Log-Lik: -32730.769, Max-Change: 0.05131
Iteration: 10, Log-Lik: -32728.732, Max-Change: 0.03983
Iteration: 11, Log-Lik: -32727.515, Max-Change: 0.03078
Iteration: 12, Log-Lik: -32726.781, Max-Change: 0.02409
Iteration: 13, Log-Lik: -32725.697, Max-Change: 0.00654
Iteration: 14, Log-Lik: -32725.681, Max-Change: 0.00321
Iteration: 15, Log-Lik: -32725.672, Max-Change: 0.00215
Iteration: 16, Log-Lik: -32725.662, Max-Change: 0.00153
Iteration: 17, Log-Lik: -32725.660, Max-Change: 0.00125
Iteration: 18, Log-Lik: -32725.659, Max-Change: 0.00132
Iteration: 19, Log-Lik: -32725.658, Max-Change: 0.00053
Iteration: 20, Log-Lik: -32725.658, Max-Change: 0.00047
Iteration: 21, Log-Lik: -32725.657, Max-Change: 0.00041
Iteration: 22, Log-Lik: -32725.657, Max-Change: 0.00083
Iteration: 23, Log-Lik: -32725.657, Max-Change: 0.00045
Iteration: 24, Log-Lik: -32725.657, Max-Change: 0.00154
Iteration: 25, Log-Lik: -32725.656, Max-Change: 0.00227
Iteration: 26, Log-Lik: -32725.656, Max-Change: 0.00134
Iteration: 27, Log-Lik: -32725.656, Max-Change: 0.00078
Iteration: 28, Log-Lik: -32725.656, Max-Change: 0.00026
Iteration: 29, Log-Lik: -32725.656, Max-Change: 0.00017
Iteration: 30, Log-Lik: -32725.656, Max-Change: 0.00045
Iteration: 31, Log-Lik: -32725.656, Max-Change: 0.00080
Iteration: 32, Log-Lik: -32725.656, Max-Change: 0.00046
Iteration: 33, Log-Lik: -32725.656, Max-Change: 0.00028
Iteration: 34, Log-Lik: -32725.656, Max-Change: 0.00009
## [1] "2PL ITERATION 6. STARTED WITH 310 ITEMS. 1 OUTLIERS REMOVED. 309 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -45034.221, Max-Change: 14.13620
Iteration: 2, Log-Lik: -33945.875, Max-Change: 6.45192
Iteration: 3, Log-Lik: -32982.702, Max-Change: 5.51773
Iteration: 4, Log-Lik: -32802.754, Max-Change: 0.47821
Iteration: 5, Log-Lik: -32736.305, Max-Change: 0.17983
Iteration: 6, Log-Lik: -32712.416, Max-Change: 0.10692
Iteration: 7, Log-Lik: -32700.923, Max-Change: 0.08592
Iteration: 8, Log-Lik: -32694.729, Max-Change: 0.06694
Iteration: 9, Log-Lik: -32691.183, Max-Change: 0.07152
Iteration: 10, Log-Lik: -32689.085, Max-Change: 0.08870
Iteration: 11, Log-Lik: -32687.822, Max-Change: 0.21776
Iteration: 12, Log-Lik: -32687.022, Max-Change: 0.80753
Iteration: 13, Log-Lik: -32686.213, Max-Change: 5.05328
Iteration: 14, Log-Lik: -32676.275, Max-Change: 0.67228
Iteration: 15, Log-Lik: -32670.227, Max-Change: 0.04731
Iteration: 16, Log-Lik: -32670.113, Max-Change: 0.01785
Iteration: 17, Log-Lik: -32670.085, Max-Change: 0.00601
Iteration: 18, Log-Lik: -32670.073, Max-Change: 0.00256
Iteration: 19, Log-Lik: -32670.067, Max-Change: 0.00192
Iteration: 20, Log-Lik: -32670.063, Max-Change: 0.00162
Iteration: 21, Log-Lik: -32670.060, Max-Change: 0.00133
Iteration: 22, Log-Lik: -32670.055, Max-Change: 0.00078
Iteration: 23, Log-Lik: -32670.055, Max-Change: 0.00049
Iteration: 24, Log-Lik: -32670.055, Max-Change: 0.00028
Iteration: 25, Log-Lik: -32670.055, Max-Change: 0.00085
Iteration: 26, Log-Lik: -32670.055, Max-Change: 0.00096
Iteration: 27, Log-Lik: -32670.055, Max-Change: 0.00054
Iteration: 28, Log-Lik: -32670.055, Max-Change: 0.00019
Iteration: 29, Log-Lik: -32670.055, Max-Change: 0.00012
Iteration: 30, Log-Lik: -32670.055, Max-Change: 0.00042
Iteration: 31, Log-Lik: -32670.055, Max-Change: 0.00056
Iteration: 32, Log-Lik: -32670.055, Max-Change: 0.00033
Iteration: 33, Log-Lik: -32670.055, Max-Change: 0.00020
Iteration: 34, Log-Lik: -32670.055, Max-Change: 0.00007
## [1] "2PL ITERATION 7. STARTED WITH 309 ITEMS. 1 OUTLIERS REMOVED. 308 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -44825.487, Max-Change: 14.24352
Iteration: 2, Log-Lik: -33857.838, Max-Change: 6.41549
Iteration: 3, Log-Lik: -32898.186, Max-Change: 5.34328
Iteration: 4, Log-Lik: -32710.381, Max-Change: 0.43914
Iteration: 5, Log-Lik: -32639.407, Max-Change: 0.19417
Iteration: 6, Log-Lik: -32613.616, Max-Change: 0.11356
Iteration: 7, Log-Lik: -32601.157, Max-Change: 0.08977
Iteration: 8, Log-Lik: -32594.437, Max-Change: 0.06951
Iteration: 9, Log-Lik: -32590.589, Max-Change: 0.05401
Iteration: 10, Log-Lik: -32588.314, Max-Change: 0.04210
Iteration: 11, Log-Lik: -32586.955, Max-Change: 0.03232
Iteration: 12, Log-Lik: -32586.139, Max-Change: 0.02531
Iteration: 13, Log-Lik: -32584.937, Max-Change: 0.00688
Iteration: 14, Log-Lik: -32584.919, Max-Change: 0.00363
Iteration: 15, Log-Lik: -32584.909, Max-Change: 0.00220
Iteration: 16, Log-Lik: -32584.901, Max-Change: 0.00179
Iteration: 17, Log-Lik: -32584.898, Max-Change: 0.00147
Iteration: 18, Log-Lik: -32584.896, Max-Change: 0.00123
Iteration: 19, Log-Lik: -32584.892, Max-Change: 0.00090
Iteration: 20, Log-Lik: -32584.892, Max-Change: 0.00048
Iteration: 21, Log-Lik: -32584.892, Max-Change: 0.00028
Iteration: 22, Log-Lik: -32584.892, Max-Change: 0.00055
Iteration: 23, Log-Lik: -32584.892, Max-Change: 0.00057
Iteration: 24, Log-Lik: -32584.892, Max-Change: 0.00033
Iteration: 25, Log-Lik: -32584.892, Max-Change: 0.00037
Iteration: 26, Log-Lik: -32584.892, Max-Change: 0.00052
Iteration: 27, Log-Lik: -32584.892, Max-Change: 0.00030
Iteration: 28, Log-Lik: -32584.892, Max-Change: 0.00010
Iteration: 29, Log-Lik: -32584.892, Max-Change: 0.00006
## [1] "2PL ITERATION 8. STARTED WITH 308 ITEMS. 2 OUTLIERS REMOVED. 306 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -44615.890, Max-Change: 14.18950
Iteration: 2, Log-Lik: -33612.461, Max-Change: 6.40974
Iteration: 3, Log-Lik: -32652.900, Max-Change: 4.08619
Iteration: 4, Log-Lik: -32448.724, Max-Change: 1.46209
Iteration: 5, Log-Lik: -32391.052, Max-Change: 0.20188
Iteration: 6, Log-Lik: -32369.679, Max-Change: 0.10869
Iteration: 7, Log-Lik: -32359.098, Max-Change: 0.08407
Iteration: 8, Log-Lik: -32353.360, Max-Change: 0.06545
Iteration: 9, Log-Lik: -32350.038, Max-Change: 0.05054
Iteration: 10, Log-Lik: -32348.076, Max-Change: 0.03918
Iteration: 11, Log-Lik: -32346.907, Max-Change: 0.03020
Iteration: 12, Log-Lik: -32346.205, Max-Change: 0.02357
Iteration: 13, Log-Lik: -32345.178, Max-Change: 0.00613
Iteration: 14, Log-Lik: -32345.162, Max-Change: 0.00341
Iteration: 15, Log-Lik: -32345.153, Max-Change: 0.00216
Iteration: 16, Log-Lik: -32345.145, Max-Change: 0.00164
Iteration: 17, Log-Lik: -32345.143, Max-Change: 0.00135
Iteration: 18, Log-Lik: -32345.141, Max-Change: 0.00112
Iteration: 19, Log-Lik: -32345.138, Max-Change: 0.00072
Iteration: 20, Log-Lik: -32345.138, Max-Change: 0.00038
Iteration: 21, Log-Lik: -32345.138, Max-Change: 0.00021
Iteration: 22, Log-Lik: -32345.138, Max-Change: 0.00050
Iteration: 23, Log-Lik: -32345.138, Max-Change: 0.00057
Iteration: 24, Log-Lik: -32345.138, Max-Change: 0.00032
Iteration: 25, Log-Lik: -32345.138, Max-Change: 0.00045
Iteration: 26, Log-Lik: -32345.138, Max-Change: 0.00064
Iteration: 27, Log-Lik: -32345.138, Max-Change: 0.00037
Iteration: 28, Log-Lik: -32345.138, Max-Change: 0.00014
Iteration: 29, Log-Lik: -32345.138, Max-Change: 0.00008
## [1] "2PL ITERATION 9. STARTED WITH 306 ITEMS. 1 OUTLIERS REMOVED. 305 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -44277.468, Max-Change: 14.37600
Iteration: 2, Log-Lik: -33408.728, Max-Change: 6.54879
Iteration: 3, Log-Lik: -32480.911, Max-Change: 4.58045
Iteration: 4, Log-Lik: -32272.028, Max-Change: 0.98148
Iteration: 5, Log-Lik: -32220.211, Max-Change: 0.19648
Iteration: 6, Log-Lik: -32199.394, Max-Change: 0.10870
Iteration: 7, Log-Lik: -32189.041, Max-Change: 0.08363
Iteration: 8, Log-Lik: -32183.408, Max-Change: 0.06499
Iteration: 9, Log-Lik: -32180.144, Max-Change: 0.05015
Iteration: 10, Log-Lik: -32178.215, Max-Change: 0.03887
Iteration: 11, Log-Lik: -32177.065, Max-Change: 0.02996
Iteration: 12, Log-Lik: -32176.375, Max-Change: 0.02339
Iteration: 13, Log-Lik: -32175.366, Max-Change: 0.00599
Iteration: 14, Log-Lik: -32175.351, Max-Change: 0.00314
Iteration: 15, Log-Lik: -32175.342, Max-Change: 0.00214
Iteration: 16, Log-Lik: -32175.334, Max-Change: 0.00170
Iteration: 17, Log-Lik: -32175.332, Max-Change: 0.00144
Iteration: 18, Log-Lik: -32175.330, Max-Change: 0.00118
Iteration: 19, Log-Lik: -32175.327, Max-Change: 0.00025
Iteration: 20, Log-Lik: -32175.327, Max-Change: 0.00071
Iteration: 21, Log-Lik: -32175.327, Max-Change: 0.00072
Iteration: 22, Log-Lik: -32175.327, Max-Change: 0.00043
Iteration: 23, Log-Lik: -32175.327, Max-Change: 0.00027
Iteration: 24, Log-Lik: -32175.327, Max-Change: 0.00015
Iteration: 25, Log-Lik: -32175.327, Max-Change: 0.00033
Iteration: 26, Log-Lik: -32175.327, Max-Change: 0.00016
Iteration: 27, Log-Lik: -32175.327, Max-Change: 0.00009
## [1] "2PL ITERATION 10. STARTED WITH 305 ITEMS. 1 OUTLIERS REMOVED. 304 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -44200.600, Max-Change: 14.36555
Iteration: 2, Log-Lik: -33398.884, Max-Change: 6.53100
Iteration: 3, Log-Lik: -32467.470, Max-Change: 5.28902
Iteration: 4, Log-Lik: -32284.420, Max-Change: 0.47666
Iteration: 5, Log-Lik: -32210.688, Max-Change: 0.19409
Iteration: 6, Log-Lik: -32185.987, Max-Change: 0.11059
Iteration: 7, Log-Lik: -32174.163, Max-Change: 0.08706
Iteration: 8, Log-Lik: -32167.851, Max-Change: 0.06825
Iteration: 9, Log-Lik: -32164.213, Max-Change: 0.05282
Iteration: 10, Log-Lik: -32162.070, Max-Change: 0.04110
Iteration: 11, Log-Lik: -32160.795, Max-Change: 0.03150
Iteration: 12, Log-Lik: -32160.032, Max-Change: 0.02461
Iteration: 13, Log-Lik: -32158.916, Max-Change: 0.00620
Iteration: 14, Log-Lik: -32158.900, Max-Change: 0.00352
Iteration: 15, Log-Lik: -32158.891, Max-Change: 0.00222
Iteration: 16, Log-Lik: -32158.883, Max-Change: 0.00168
Iteration: 17, Log-Lik: -32158.880, Max-Change: 0.00138
Iteration: 18, Log-Lik: -32158.878, Max-Change: 0.00115
Iteration: 19, Log-Lik: -32158.875, Max-Change: 0.00068
Iteration: 20, Log-Lik: -32158.875, Max-Change: 0.00036
Iteration: 21, Log-Lik: -32158.875, Max-Change: 0.00099
Iteration: 22, Log-Lik: -32158.875, Max-Change: 0.00155
Iteration: 23, Log-Lik: -32158.875, Max-Change: 0.00091
Iteration: 24, Log-Lik: -32158.875, Max-Change: 0.00051
Iteration: 25, Log-Lik: -32158.875, Max-Change: 0.00019
Iteration: 26, Log-Lik: -32158.875, Max-Change: 0.00012
Iteration: 27, Log-Lik: -32158.875, Max-Change: 0.00032
Iteration: 28, Log-Lik: -32158.875, Max-Change: 0.00054
Iteration: 29, Log-Lik: -32158.875, Max-Change: 0.00031
Iteration: 30, Log-Lik: -32158.875, Max-Change: 0.00018
Iteration: 31, Log-Lik: -32158.875, Max-Change: 0.00006
## [1] "2PL ITERATION 11. STARTED WITH 304 ITEMS. 1 OUTLIERS REMOVED. 303 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -44171.594, Max-Change: 14.49327
Iteration: 2, Log-Lik: -33353.687, Max-Change: 7.69781
Iteration: 3, Log-Lik: -32404.800, Max-Change: 4.86473
Iteration: 4, Log-Lik: -32236.212, Max-Change: 0.72904
Iteration: 5, Log-Lik: -32173.325, Max-Change: 0.19843
Iteration: 6, Log-Lik: -32149.987, Max-Change: 0.11048
Iteration: 7, Log-Lik: -32138.716, Max-Change: 0.08601
Iteration: 8, Log-Lik: -32132.694, Max-Change: 0.06689
Iteration: 9, Log-Lik: -32129.229, Max-Change: 0.05159
Iteration: 10, Log-Lik: -32127.192, Max-Change: 0.03995
Iteration: 11, Log-Lik: -32125.983, Max-Change: 0.03075
Iteration: 12, Log-Lik: -32125.258, Max-Change: 0.02394
Iteration: 13, Log-Lik: -32124.207, Max-Change: 0.00635
Iteration: 14, Log-Lik: -32124.191, Max-Change: 0.00348
Iteration: 15, Log-Lik: -32124.181, Max-Change: 0.00221
Iteration: 16, Log-Lik: -32124.173, Max-Change: 0.00167
Iteration: 17, Log-Lik: -32124.171, Max-Change: 0.00137
Iteration: 18, Log-Lik: -32124.169, Max-Change: 0.00114
Iteration: 19, Log-Lik: -32124.166, Max-Change: 0.00075
Iteration: 20, Log-Lik: -32124.166, Max-Change: 0.00040
Iteration: 21, Log-Lik: -32124.166, Max-Change: 0.00022
Iteration: 22, Log-Lik: -32124.166, Max-Change: 0.00050
Iteration: 23, Log-Lik: -32124.166, Max-Change: 0.00057
Iteration: 24, Log-Lik: -32124.166, Max-Change: 0.00032
Iteration: 25, Log-Lik: -32124.166, Max-Change: 0.00043
Iteration: 26, Log-Lik: -32124.166, Max-Change: 0.00061
Iteration: 27, Log-Lik: -32124.166, Max-Change: 0.00035
Iteration: 28, Log-Lik: -32124.166, Max-Change: 0.00013
Iteration: 29, Log-Lik: -32124.166, Max-Change: 0.00008
## [1] "2PL ITERATION 12. STARTED WITH 303 ITEMS. 1 OUTLIERS REMOVED. 302 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -44216.134, Max-Change: 37.64747
Iteration: 2, Log-Lik: -33269.401, Max-Change: 6.52420
Iteration: 3, Log-Lik: -32316.574, Max-Change: 4.54107
Iteration: 4, Log-Lik: -32136.606, Max-Change: 0.65019
Iteration: 5, Log-Lik: -32074.615, Max-Change: 0.17960
Iteration: 6, Log-Lik: -32051.276, Max-Change: 0.10989
Iteration: 7, Log-Lik: -32040.240, Max-Change: 0.08493
Iteration: 8, Log-Lik: -32034.433, Max-Change: 0.06596
Iteration: 9, Log-Lik: -32031.124, Max-Change: 0.05099
Iteration: 10, Log-Lik: -32029.191, Max-Change: 0.03888
Iteration: 11, Log-Lik: -32028.047, Max-Change: 0.03006
Iteration: 12, Log-Lik: -32027.364, Max-Change: 0.02342
Iteration: 13, Log-Lik: -32026.379, Max-Change: 0.00623
Iteration: 14, Log-Lik: -32026.363, Max-Change: 0.00316
Iteration: 15, Log-Lik: -32026.354, Max-Change: 0.00210
Iteration: 16, Log-Lik: -32026.347, Max-Change: 0.00173
Iteration: 17, Log-Lik: -32026.344, Max-Change: 0.00148
Iteration: 18, Log-Lik: -32026.343, Max-Change: 0.00122
Iteration: 19, Log-Lik: -32026.340, Max-Change: 0.00084
Iteration: 20, Log-Lik: -32026.339, Max-Change: 0.00047
Iteration: 21, Log-Lik: -32026.339, Max-Change: 0.00030
Iteration: 22, Log-Lik: -32026.339, Max-Change: 0.00077
Iteration: 23, Log-Lik: -32026.339, Max-Change: 0.00083
Iteration: 24, Log-Lik: -32026.339, Max-Change: 0.00052
Iteration: 25, Log-Lik: -32026.339, Max-Change: 0.00019
Iteration: 26, Log-Lik: -32026.339, Max-Change: 0.00011
Iteration: 27, Log-Lik: -32026.339, Max-Change: 0.00035
Iteration: 28, Log-Lik: -32026.339, Max-Change: 0.00053
Iteration: 29, Log-Lik: -32026.339, Max-Change: 0.00031
Iteration: 30, Log-Lik: -32026.339, Max-Change: 0.00019
Iteration: 31, Log-Lik: -32026.339, Max-Change: 0.00006
## [1] "2PL ITERATION 13. STARTED WITH 302 ITEMS. 2 OUTLIERS REMOVED. 300 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -43502.030, Max-Change: 14.63076
Iteration: 2, Log-Lik: -32796.879, Max-Change: 8.32444
Iteration: 3, Log-Lik: -31831.478, Max-Change: 5.11912
Iteration: 4, Log-Lik: -31668.117, Max-Change: 0.48556
Iteration: 5, Log-Lik: -31609.353, Max-Change: 0.16937
Iteration: 6, Log-Lik: -31587.009, Max-Change: 0.11159
Iteration: 7, Log-Lik: -31576.244, Max-Change: 0.08560
Iteration: 8, Log-Lik: -31570.503, Max-Change: 0.06601
Iteration: 9, Log-Lik: -31567.219, Max-Change: 0.05073
Iteration: 10, Log-Lik: -31565.298, Max-Change: 0.03979
Iteration: 11, Log-Lik: -31564.153, Max-Change: 0.03018
Iteration: 12, Log-Lik: -31563.474, Max-Change: 0.02322
Iteration: 13, Log-Lik: -31562.540, Max-Change: 0.00502
Iteration: 14, Log-Lik: -31562.517, Max-Change: 0.00431
Iteration: 15, Log-Lik: -31562.503, Max-Change: 0.00314
Iteration: 16, Log-Lik: -31562.488, Max-Change: 0.00264
Iteration: 17, Log-Lik: -31562.485, Max-Change: 0.00146
Iteration: 18, Log-Lik: -31562.483, Max-Change: 0.00119
Iteration: 19, Log-Lik: -31562.480, Max-Change: 0.00067
Iteration: 20, Log-Lik: -31562.480, Max-Change: 0.00037
Iteration: 21, Log-Lik: -31562.480, Max-Change: 0.00118
Iteration: 22, Log-Lik: -31562.480, Max-Change: 0.00157
Iteration: 23, Log-Lik: -31562.480, Max-Change: 0.00089
Iteration: 24, Log-Lik: -31562.480, Max-Change: 0.00056
Iteration: 25, Log-Lik: -31562.480, Max-Change: 0.00021
Iteration: 26, Log-Lik: -31562.480, Max-Change: 0.00012
Iteration: 27, Log-Lik: -31562.480, Max-Change: 0.00008
## [1] "2PL ITERATION 14. STARTED WITH 300 ITEMS. 1 OUTLIERS REMOVED. 299 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -43305.621, Max-Change: 14.26489
Iteration: 2, Log-Lik: -32638.486, Max-Change: 7.54889
Iteration: 3, Log-Lik: -31731.980, Max-Change: 5.74525
Iteration: 4, Log-Lik: -31573.936, Max-Change: 0.35158
Iteration: 5, Log-Lik: -31513.249, Max-Change: 0.17291
Iteration: 6, Log-Lik: -31491.291, Max-Change: 0.10525
Iteration: 7, Log-Lik: -31480.998, Max-Change: 0.08248
Iteration: 8, Log-Lik: -31475.591, Max-Change: 0.06392
Iteration: 9, Log-Lik: -31472.518, Max-Change: 0.04943
Iteration: 10, Log-Lik: -31470.728, Max-Change: 0.03822
Iteration: 11, Log-Lik: -31469.663, Max-Change: 0.02900
Iteration: 12, Log-Lik: -31469.032, Max-Change: 0.02255
Iteration: 13, Log-Lik: -31468.158, Max-Change: 0.00466
Iteration: 14, Log-Lik: -31468.141, Max-Change: 0.00356
Iteration: 15, Log-Lik: -31468.130, Max-Change: 0.00228
Iteration: 16, Log-Lik: -31468.121, Max-Change: 0.00188
Iteration: 17, Log-Lik: -31468.118, Max-Change: 0.00152
Iteration: 18, Log-Lik: -31468.116, Max-Change: 0.00127
Iteration: 19, Log-Lik: -31468.112, Max-Change: 0.00082
Iteration: 20, Log-Lik: -31468.112, Max-Change: 0.00049
Iteration: 21, Log-Lik: -31468.112, Max-Change: 0.00029
Iteration: 22, Log-Lik: -31468.112, Max-Change: 0.00075
Iteration: 23, Log-Lik: -31468.112, Max-Change: 0.00101
Iteration: 24, Log-Lik: -31468.112, Max-Change: 0.00057
Iteration: 25, Log-Lik: -31468.112, Max-Change: 0.00019
Iteration: 26, Log-Lik: -31468.112, Max-Change: 0.00061
Iteration: 27, Log-Lik: -31468.112, Max-Change: 0.00077
Iteration: 28, Log-Lik: -31468.112, Max-Change: 0.00025
Iteration: 29, Log-Lik: -31468.112, Max-Change: 0.00015
Iteration: 30, Log-Lik: -31468.112, Max-Change: 0.00009
## [1] "2PL ITERATION 15. STARTED WITH 299 ITEMS. 1 OUTLIERS REMOVED. 298 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -43186.153, Max-Change: 14.48338
Iteration: 2, Log-Lik: -32628.740, Max-Change: 7.31660
Iteration: 3, Log-Lik: -31696.046, Max-Change: 4.51505
Iteration: 4, Log-Lik: -31517.105, Max-Change: 1.12462
Iteration: 5, Log-Lik: -31463.991, Max-Change: 0.18806
Iteration: 6, Log-Lik: -31444.002, Max-Change: 0.11346
Iteration: 7, Log-Lik: -31434.317, Max-Change: 0.08145
Iteration: 8, Log-Lik: -31429.130, Max-Change: 0.06293
Iteration: 9, Log-Lik: -31426.165, Max-Change: 0.04865
Iteration: 10, Log-Lik: -31424.432, Max-Change: 0.03762
Iteration: 11, Log-Lik: -31423.399, Max-Change: 0.02855
Iteration: 12, Log-Lik: -31422.788, Max-Change: 0.02220
Iteration: 13, Log-Lik: -31421.942, Max-Change: 0.00462
Iteration: 14, Log-Lik: -31421.925, Max-Change: 0.00352
Iteration: 15, Log-Lik: -31421.915, Max-Change: 0.00226
Iteration: 16, Log-Lik: -31421.906, Max-Change: 0.00186
Iteration: 17, Log-Lik: -31421.903, Max-Change: 0.00150
Iteration: 18, Log-Lik: -31421.901, Max-Change: 0.00125
Iteration: 19, Log-Lik: -31421.898, Max-Change: 0.00088
Iteration: 20, Log-Lik: -31421.898, Max-Change: 0.00053
Iteration: 21, Log-Lik: -31421.898, Max-Change: 0.00031
Iteration: 22, Log-Lik: -31421.898, Max-Change: 0.00069
Iteration: 23, Log-Lik: -31421.897, Max-Change: 0.00091
Iteration: 24, Log-Lik: -31421.897, Max-Change: 0.00052
Iteration: 25, Log-Lik: -31421.897, Max-Change: 0.00016
Iteration: 26, Log-Lik: -31421.897, Max-Change: 0.00053
Iteration: 27, Log-Lik: -31421.897, Max-Change: 0.00066
Iteration: 28, Log-Lik: -31421.897, Max-Change: 0.00024
Iteration: 29, Log-Lik: -31421.897, Max-Change: 0.00014
Iteration: 30, Log-Lik: -31421.897, Max-Change: 0.00008
## [1] "2PL ITERATION 16. STARTED WITH 298 ITEMS. 1 OUTLIERS REMOVED. 297 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -43063.191, Max-Change: 14.58058
Iteration: 2, Log-Lik: -32569.929, Max-Change: 6.93401
Iteration: 3, Log-Lik: -31657.052, Max-Change: 5.26143
Iteration: 4, Log-Lik: -31487.208, Max-Change: 0.37763
Iteration: 5, Log-Lik: -31425.672, Max-Change: 0.18529
Iteration: 6, Log-Lik: -31403.035, Max-Change: 0.11664
Iteration: 7, Log-Lik: -31392.324, Max-Change: 0.08370
Iteration: 8, Log-Lik: -31386.672, Max-Change: 0.06514
Iteration: 9, Log-Lik: -31383.455, Max-Change: 0.05047
Iteration: 10, Log-Lik: -31381.582, Max-Change: 0.03905
Iteration: 11, Log-Lik: -31380.467, Max-Change: 0.02917
Iteration: 12, Log-Lik: -31379.816, Max-Change: 0.02328
Iteration: 13, Log-Lik: -31378.878, Max-Change: 0.00558
Iteration: 14, Log-Lik: -31378.866, Max-Change: 0.00212
Iteration: 15, Log-Lik: -31378.861, Max-Change: 0.00192
Iteration: 16, Log-Lik: -31378.852, Max-Change: 0.00153
Iteration: 17, Log-Lik: -31378.851, Max-Change: 0.00079
Iteration: 18, Log-Lik: -31378.851, Max-Change: 0.00055
Iteration: 19, Log-Lik: -31378.851, Max-Change: 0.00045
Iteration: 20, Log-Lik: -31378.851, Max-Change: 0.00164
Iteration: 21, Log-Lik: -31378.851, Max-Change: 0.00190
Iteration: 22, Log-Lik: -31378.850, Max-Change: 0.00104
Iteration: 23, Log-Lik: -31378.850, Max-Change: 0.00064
Iteration: 24, Log-Lik: -31378.850, Max-Change: 0.00036
Iteration: 25, Log-Lik: -31378.850, Max-Change: 0.00062
Iteration: 26, Log-Lik: -31378.850, Max-Change: 0.00054
Iteration: 27, Log-Lik: -31378.850, Max-Change: 0.00033
Iteration: 28, Log-Lik: -31378.850, Max-Change: 0.00036
Iteration: 29, Log-Lik: -31378.850, Max-Change: 0.00030
Iteration: 30, Log-Lik: -31378.850, Max-Change: 0.00019
Iteration: 31, Log-Lik: -31378.850, Max-Change: 0.00023
Iteration: 32, Log-Lik: -31378.850, Max-Change: 0.00021
Iteration: 33, Log-Lik: -31378.850, Max-Change: 0.00013
Iteration: 34, Log-Lik: -31378.850, Max-Change: 0.00017
Iteration: 35, Log-Lik: -31378.850, Max-Change: 0.00022
Iteration: 36, Log-Lik: -31378.850, Max-Change: 0.00013
Iteration: 37, Log-Lik: -31378.850, Max-Change: 0.00005
## [1] "2PL ITERATION 17. STARTED WITH 297 ITEMS. 2 OUTLIERS REMOVED. 295 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -42928.172, Max-Change: 14.50660
Iteration: 2, Log-Lik: -32490.895, Max-Change: 6.35474
Iteration: 3, Log-Lik: -31585.405, Max-Change: 4.50152
Iteration: 4, Log-Lik: -31422.658, Max-Change: 1.28450
Iteration: 5, Log-Lik: -31372.383, Max-Change: 0.19192
Iteration: 6, Log-Lik: -31354.635, Max-Change: 0.10986
Iteration: 7, Log-Lik: -31346.029, Max-Change: 0.07722
Iteration: 8, Log-Lik: -31341.418, Max-Change: 0.05961
Iteration: 9, Log-Lik: -31338.791, Max-Change: 0.04597
Iteration: 10, Log-Lik: -31337.262, Max-Change: 0.03498
Iteration: 11, Log-Lik: -31336.362, Max-Change: 0.02706
Iteration: 12, Log-Lik: -31335.822, Max-Change: 0.02091
Iteration: 13, Log-Lik: -31335.090, Max-Change: 0.00470
Iteration: 14, Log-Lik: -31335.071, Max-Change: 0.00359
Iteration: 15, Log-Lik: -31335.061, Max-Change: 0.00241
Iteration: 16, Log-Lik: -31335.048, Max-Change: 0.00169
Iteration: 17, Log-Lik: -31335.046, Max-Change: 0.00140
Iteration: 18, Log-Lik: -31335.045, Max-Change: 0.00156
Iteration: 19, Log-Lik: -31335.044, Max-Change: 0.00060
Iteration: 20, Log-Lik: -31335.044, Max-Change: 0.00052
Iteration: 21, Log-Lik: -31335.043, Max-Change: 0.00045
Iteration: 22, Log-Lik: -31335.042, Max-Change: 0.00100
Iteration: 23, Log-Lik: -31335.042, Max-Change: 0.00054
Iteration: 24, Log-Lik: -31335.042, Max-Change: 0.00183
Iteration: 25, Log-Lik: -31335.042, Max-Change: 0.00276
Iteration: 26, Log-Lik: -31335.042, Max-Change: 0.00163
Iteration: 27, Log-Lik: -31335.042, Max-Change: 0.00096
Iteration: 28, Log-Lik: -31335.042, Max-Change: 0.00032
Iteration: 29, Log-Lik: -31335.042, Max-Change: 0.00020
Iteration: 30, Log-Lik: -31335.042, Max-Change: 0.00055
Iteration: 31, Log-Lik: -31335.042, Max-Change: 0.00098
Iteration: 32, Log-Lik: -31335.042, Max-Change: 0.00057
Iteration: 33, Log-Lik: -31335.042, Max-Change: 0.00034
Iteration: 34, Log-Lik: -31335.042, Max-Change: 0.00012
Iteration: 35, Log-Lik: -31335.042, Max-Change: 0.00007
## [1] "2PL ITERATION 18. STARTED WITH 295 ITEMS. 1 OUTLIERS REMOVED. 294 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -42971.881, Max-Change: 26.57850
Iteration: 2, Log-Lik: -32452.006, Max-Change: 6.13016
Iteration: 3, Log-Lik: -31545.626, Max-Change: 3.91902
Iteration: 4, Log-Lik: -31366.546, Max-Change: 1.27451
Iteration: 5, Log-Lik: -31311.972, Max-Change: 0.17905
Iteration: 6, Log-Lik: -31292.457, Max-Change: 0.10932
Iteration: 7, Log-Lik: -31283.345, Max-Change: 0.07765
Iteration: 8, Log-Lik: -31278.591, Max-Change: 0.05931
Iteration: 9, Log-Lik: -31275.920, Max-Change: 0.04560
Iteration: 10, Log-Lik: -31274.378, Max-Change: 0.03467
Iteration: 11, Log-Lik: -31273.476, Max-Change: 0.02680
Iteration: 12, Log-Lik: -31272.936, Max-Change: 0.02042
Iteration: 13, Log-Lik: -31272.222, Max-Change: 0.00510
Iteration: 14, Log-Lik: -31272.198, Max-Change: 0.00419
Iteration: 15, Log-Lik: -31272.184, Max-Change: 0.00332
Iteration: 16, Log-Lik: -31272.169, Max-Change: 0.00785
Iteration: 17, Log-Lik: -31272.166, Max-Change: 0.00128
Iteration: 18, Log-Lik: -31272.165, Max-Change: 0.00092
Iteration: 19, Log-Lik: -31272.164, Max-Change: 0.00067
Iteration: 20, Log-Lik: -31272.164, Max-Change: 0.00046
Iteration: 21, Log-Lik: -31272.163, Max-Change: 0.00039
Iteration: 22, Log-Lik: -31272.163, Max-Change: 0.00074
Iteration: 23, Log-Lik: -31272.163, Max-Change: 0.00048
Iteration: 24, Log-Lik: -31272.163, Max-Change: 0.00122
Iteration: 25, Log-Lik: -31272.162, Max-Change: 0.00214
Iteration: 26, Log-Lik: -31272.162, Max-Change: 0.00121
Iteration: 27, Log-Lik: -31272.162, Max-Change: 0.00070
Iteration: 28, Log-Lik: -31272.162, Max-Change: 0.00024
Iteration: 29, Log-Lik: -31272.162, Max-Change: 0.00064
Iteration: 30, Log-Lik: -31272.162, Max-Change: 0.00093
Iteration: 31, Log-Lik: -31272.162, Max-Change: 0.00032
Iteration: 32, Log-Lik: -31272.162, Max-Change: 0.00018
Iteration: 33, Log-Lik: -31272.162, Max-Change: 0.00011
Iteration: 34, Log-Lik: -31272.162, Max-Change: 0.00023
Iteration: 35, Log-Lik: -31272.162, Max-Change: 0.00010
Iteration: 36, Log-Lik: -31272.162, Max-Change: 0.00005
## [1] "2PL ITERATION 19. STARTED WITH 294 ITEMS. 2 OUTLIERS REMOVED. 292 ITEMS RETAINED."
## 
Iteration: 1, Log-Lik: -42524.883, Max-Change: 14.62557
Iteration: 2, Log-Lik: -32113.248, Max-Change: 6.62731
Iteration: 3, Log-Lik: -31198.678, Max-Change: 5.58434
Iteration: 4, Log-Lik: -31032.983, Max-Change: 0.39426
Iteration: 5, Log-Lik: -30971.316, Max-Change: 0.18858
Iteration: 6, Log-Lik: -30949.555, Max-Change: 0.11783
Iteration: 7, Log-Lik: -30939.538, Max-Change: 0.07942
Iteration: 8, Log-Lik: -30934.337, Max-Change: 0.06170
Iteration: 9, Log-Lik: -30931.415, Max-Change: 0.04768
Iteration: 10, Log-Lik: -30929.728, Max-Change: 0.03677
Iteration: 11, Log-Lik: -30928.731, Max-Change: 0.02780
Iteration: 12, Log-Lik: -30928.146, Max-Change: 0.02148
Iteration: 13, Log-Lik: -30927.351, Max-Change: 0.00505
Iteration: 14, Log-Lik: -30927.334, Max-Change: 0.00347
Iteration: 15, Log-Lik: -30927.324, Max-Change: 0.00233
Iteration: 16, Log-Lik: -30927.314, Max-Change: 0.00177
Iteration: 17, Log-Lik: -30927.312, Max-Change: 0.00143
Iteration: 18, Log-Lik: -30927.310, Max-Change: 0.00117
Iteration: 19, Log-Lik: -30927.307, Max-Change: 0.00083
Iteration: 20, Log-Lik: -30927.307, Max-Change: 0.00049
Iteration: 21, Log-Lik: -30927.307, Max-Change: 0.00028
Iteration: 22, Log-Lik: -30927.307, Max-Change: 0.00066
Iteration: 23, Log-Lik: -30927.307, Max-Change: 0.00082
Iteration: 24, Log-Lik: -30927.307, Max-Change: 0.00044
Iteration: 25, Log-Lik: -30927.307, Max-Change: 0.00015
Iteration: 26, Log-Lik: -30927.307, Max-Change: 0.00047
Iteration: 27, Log-Lik: -30927.307, Max-Change: 0.00057
Iteration: 28, Log-Lik: -30927.307, Max-Change: 0.00022
Iteration: 29, Log-Lik: -30927.307, Max-Change: 0.00013
Iteration: 30, Log-Lik: -30927.307, Max-Change: 0.00007
## [1] "2PL ITERATION 20. STARTED WITH 292 ITEMS. 1 OUTLIERS REMOVED. 291 ITEMS RETAINED."

Metadata merge and examination

school_meta <- read_csv(here::here('data/rocketship_data/cs01-metadata-age.csv')) %>%
  as_tibble() %>%
  select(pid, grade, age)
sub_data_age_cleaned <- pilot_data_filtered %>%
  filter(! cohort %in% c('school')) %>%
  distinct(age, pid) %>%
  mutate(age = str_replace(age, '\\+', '')) %>%
  mutate(age = str_replace(age, 'Adult', '20')) %>%
  mutate(age = as.numeric(age)) %>%
  full_join(school_meta %>% select(pid,age))
thetas_by_all_subs <- fscores(m) %>%
  as_tibble() %>%
  add_column(pid = d_wide_all$sub_id) %>%
  rename(theta_2pl_all_data = `F`) %>%
  left_join(sub_data_age_cleaned)
thetas_by_age_all_data <- thetas_by_all_subs %>%
  group_by(age) %>%
  multi_boot_standard(col='theta_2pl_all_data') %>%
  filter(!is.na(age))
ggplot(data = thetas_by_all_subs, aes(x=age, y=theta_2pl_all_data, col=age)) +
    geom_jitter(width=.2, alpha=.2) +
  geom_smooth(method='lm', color='grey',alpha=.8)  +
  geom_pointrange(data=thetas_by_age_all_data,aes(x=age, y=mean, ymin=ci_lower, ymax =ci_upper), col='black', alpha=.5) +
  theme_few()  +
  ylab('Theta estimates') +
  xlab('Age') + 
  # facet_wrap(~model, nrow=2) +
  theme(legend.position='none') +
  theme(aspect.ratio=.75)

Break down by cohort.

ggplot(data = left_join(thetas_by_all_subs, 
                        pilot_data_filtered |>
                          select(pid, cohort) |>
                          distinct()) ,
       aes(x=age, y=theta_2pl_all_data, col=age)) +
    geom_jitter(width=.2, alpha=.2) +
  geom_smooth(method='lm', color='grey',alpha=.8)  +
  theme_few()  +
  ylab('Theta estimates') +
  xlab('Age') + 
  # facet_wrap(~model, nrow=2) +
  theme(legend.position='none') +
  facet_wrap(~cohort)

Compare with raw scores.

ggplot(data = left_join(thetas_by_all_subs, 
                        pilot_data_filtered |>
                          select(pid, cohort, correct) |>
                          group_by(pid, cohort) |>
                          summarise(correct = mean(correct))) ,
       aes(x=age, y=correct, col=age)) +
  geom_jitter(width=.2, alpha=.2) +
  geom_smooth(method='lm', color='grey',alpha=.8)  +
  theme_few()  +
  geom_hline(yintercept = .5, lty = 2) + 
  ylab('Theta estimates') +
  xlab('Age') + 
  theme(legend.position='none') +
  facet_wrap(~cohort)

Now age to theta. Model is buying us some within-raw score differentiation, and a little bit of grouping of low scores vs. differentiation of high ones (curves). But not a ton of difference, which is good.

ggplot(data = left_join(thetas_by_all_subs, 
                        pilot_data_filtered |>
                          select(pid, cohort, correct) |>
                          group_by(pid, cohort) |>
                          summarise(correct = mean(correct))) ,
       aes(x=correct, y=theta_2pl_all_data, col=age)) +
    geom_jitter(alpha=.2) +
  geom_smooth(color='grey',alpha=.8)  +
  theme_few()  +
  ylab('Theta estimates') +
  xlab('Raw Score') + 
  theme(legend.position='none') +
  facet_wrap(~cohort)

See which items were retained

Items by difficulty.

diffs_pruned <- co |>
  mutate(slope = a1, 
         item_pair = words)  |>
  mutate(difficulty = -d)  |>
  select(item_pair, difficulty, a1) |>
  arrange(-difficulty) 

diffs_pruned |>
  kable(digits = 2)
item_pair difficulty a1
savor_toothbrushing 3.04 1.12
bobsled_sidecar 2.99 2.39
intersection_monastery 2.85 1.03
savor_to.smell 2.79 1.03
metronome_voltmeter 2.55 0.99
grate_crate 2.52 0.97
aversion_dull 2.41 1.03
mischievous_suprised 2.40 1.02
swordfish_catfish 2.32 1.48
bust_statue 2.21 1.27
pitcher_tumbleweed 2.16 2.88
triad_myriad 2.13 0.85
incensed_doubt 2.07 1.04
mischievous_headaches 2.04 1.83
convoy_library 1.97 1.09
aversion_delighted 1.95 1.17
percussion_accordion 1.90 1.36
colony_school 1.87 1.10
coaster_painting 1.87 2.15
posterior_inferior 1.81 0.81
thermos_oilcan 1.77 2.60
figurehead_angel 1.65 1.21
corset_harness 1.59 2.38
freezer_cooler 1.52 1.82
resuscitation_breathing 1.52 0.85
aloe_bracket 1.50 2.78
sauerkraut_potpourri 1.49 1.71
pitcher_batter 1.49 2.84
cheese_butter 1.38 1.94
flan_amplifier 1.34 2.40
habit_diving.helmet 1.33 1.14
scrabble_whisk 1.30 2.64
posterior_lateral 1.30 0.91
flan_fuse 1.28 2.03
mulch_clarinet 1.23 2.41
scaffolding_satellite 1.23 3.09
figurehead_hero.image 1.19 1.05
ecstatic_to.sleep 1.13 1.52
stew_soup 1.10 1.77
steam_blacksmith 1.05 1.10
metronome_electricity.meter 1.04 0.94
rosette_rose.ball 1.02 1.13
slope_gap 1.00 1.10
parsley_basil 0.84 1.11
habit_mail 0.82 0.88
intersection_avenue 0.79 1.42
preserve_grilling 0.71 1.22
bouquet_centerpiece 0.69 2.64
sedentary_tripod 0.62 0.76
preserve_peel 0.55 0.97
pajamas_pants 0.50 0.85
grate_reel 0.50 2.28
cymbal_kaleidoscope 0.44 1.11
prune_raisin 0.43 0.95
artifact_crystal 0.40 2.06
carousel_carriage 0.38 1.23
slope_sky 0.35 1.00
bouquet_bandanna 0.32 2.27
beret_chef.s.hat 0.31 0.79
gutter_filter 0.29 1.77
sedentary_proposal 0.27 0.97
rickety_dusk 0.25 1.71
cloak_hood 0.18 0.79
preserve_Heels 0.17 0.96
rickety_skyscraper 0.14 1.19
stump_log 0.14 1.95
scrabble_poker 0.14 2.05
bobsled_dip 0.03 1.65
ecstatic_tired 0.00 1.26
pecan_peanut -0.02 1.66
clothespin_toothpick -0.05 1.24
sedentary_effort -0.05 1.14
convoy_provisions -0.07 0.83
tulip_rose -0.11 1.43
prism_radar -0.13 2.53
gondola_trolley -0.15 0.97
kimono_turntable -0.21 1.85
artichoke_leek -0.28 0.95
parsley_tiara -0.28 2.08
oatmeal_cereal -0.34 0.96
tapestry_backdrop -0.34 1.00
syringe_seismograph -0.35 1.79
tumble_applaud -0.36 0.00
saffron_cinnamon -0.39 1.88
scaffolding_veil -0.39 1.87
headdress_crown -0.40 1.10
posterior_frontal -0.42 0.77
cornbread_corn -0.49 0.82
steam_rust -0.50 0.79
antenna_stem -0.55 1.84
modem_baklava -0.60 1.26
mandolin_gourd -0.60 1.35
gourmet_archaeological -0.63 1.56
mandolin_mast -0.64 1.78
cloak_cinnamon -0.67 1.81
artifact_herringbone -0.73 1.20
modem_scanner -0.73 1.01
sorbet_tamale -0.74 0.85
corset_mantle -0.75 1.47
silverware_trophy -0.75 1.70
pistachio_taco -0.76 1.65
dumpling_meatball -0.76 0.84
kayak_pendulum -0.78 1.72
teapot_teacup -0.81 1.05
oil_gel -0.81 1.00
bandage_stretcher -0.83 0.78
kimono_cardigan -0.87 1.44
steam_pottery -0.87 1.92
prune_headrest -0.89 1.48
bulldozer_tractor -0.91 1.20
slope_flat -0.94 0.86
sorbet_palette -0.94 1.00
omelet_clay -0.95 1.67
caramel_amber -0.97 0.85
sandbag_sandpaper -0.97 0.96
syringe_vial -0.97 1.38
rosette_manhole.cover -1.04 1.30
foam_float -1.07 2.04
thermos_firewood -1.11 2.16
aloe_cactus -1.12 1.44
blower_burner -1.13 1.04
hoe_peg -1.16 1.56
foam_quilt -1.17 1.03
coaster_card -1.18 1.46
sauerkraut_dashboard -1.18 1.10
prism_subway -1.20 1.63
gourmet_surgical -1.24 1.57
latch_lock -1.24 1.68
beret_hat -1.25 0.86
saddle_handle -1.27 1.88
pecan_steak -1.28 1.64
scoop_sauce -1.29 0.97
seaweed_seafood -1.33 1.04
shredder_razor -1.36 1.32
saddle_figurine -1.39 1.69
pump_plug -1.44 1.42
headdress_poster -1.45 1.26
neck_shoulder -1.46 1.07
rickety_vacation.home -1.47 0.89
towel_blanket -1.58 0.87
stew_mixer -1.59 2.09
sloth_clam -1.61 1.09
swing_slide -1.63 1.13
stump_bookshelf -1.63 2.20
snail_worm -1.67 1.18
cassette_tape -1.71 1.26
neck_diaper -1.73 0.90
cork_jersey -1.75 1.85
hopscotch_chalk -1.76 0.84
hoe_dustpan -1.77 0.88
bark_skin -1.78 1.92
biscuit_column -1.79 0.98
fox_wolf -1.82 0.76
strap_sweater -1.83 1.76
artichoke_sunroof -1.84 1.12
conference_toast -1.85 1.19
puddle_bubble -1.85 1.39
stretcher_thermostat -1.86 1.00
conference_group.lesson -1.87 1.14
spinach_mint -1.87 1.58
gourmet_astronomical -1.87 1.48
bandage_bag.binder -1.89 1.16
gondola_clipboard -1.92 0.89
seagull_pigeon -1.92 1.38
teabag_tea -1.92 1.24
treasure_gift -1.95 1.24
shredder_padlock -1.96 1.45
tulip_glove -1.96 1.83
taillight_luggage -1.97 1.12
antenna_pinecone -1.98 1.41
cork_skateboard -1.99 1.61
gutter_almond -2.00 1.84
pistachio_avocado -2.03 0.87
screw_saw -2.04 1.23
puddle_baseball -2.05 1.12
koala_panda -2.05 1.04
latch_microwave -2.08 1.84
ship_boat -2.11 1.53
stretcher_drill -2.12 1.78
buffet_counter -2.18 1.04
pump_coat -2.19 0.86
squirrel_monkey -2.20 0.72
bark_thumb -2.20 1.67
hopscotch_funnel -2.20 1.31
silverware_garlic -2.23 1.72
sloth_donkey -2.24 0.73
hedgehog_iguana -2.24 1.10
bandage_mop -2.26 0.89
pajamas_cage -2.27 0.78
honey_puppet -2.28 1.78
squash_branch -2.29 0.94
fruitcake_fudge -2.30 1.35
papaya_hotplate -2.31 1.83
gazelle_tarantula -2.32 1.48
chandelier_pepperoni -2.32 1.52
barrel_shelf -2.32 1.25
sandbag_valve -2.34 1.02
fruitcake_dough -2.38 1.16
strap_staple -2.38 1.06
chat_mountaineering -2.40 0.71
cassette_book -2.41 1.38
artifact_honeycomb -2.44 1.47
trumpet_flute -2.46 1.26
otter_goose -2.47 1.03
barrel_bucket -2.48 1.08
chat_referee -2.49 1.13
candlestick_egg -2.55 1.05
caramel_olive -2.57 1.03
ski_ice -2.58 1.04
shower_soap -2.59 1.44
bulldozer_orange -2.61 2.02
coffee_vase -2.61 1.02
dumpling_rocket -2.65 1.59
hamster_rabbit -2.66 1.30
tapestry_leggings -2.66 1.43
map_ruby -2.68 1.11
carousel_dish -2.69 1.33
bamboo_yacht -2.69 1.15
fence_mask -2.70 2.07
horn_chin -2.72 1.14
blender_blind -2.73 0.97
bamboo_lumber -2.75 1.18
chat_horse.riding -2.78 1.61
towel_sausage -2.81 1.35
squirrel_eagle -2.82 1.46
clothespin_volleyball -2.82 1.66
carrot_phone -2.83 1.09
net_tee -2.84 1.75
telescope_tripod -2.84 1.68
spinach_buckle -2.86 1.20
spatula_lava -2.86 1.81
scoop_statue -2.87 1.15
oil_grain -2.88 1.59
coffee_drink -2.92 1.11
seagull_lobster -2.98 1.33
swing_foot -2.98 1.48
sink_toilet -3.01 1.37
shirt_uniform -3.02 1.51
shower_toe -3.04 1.25
map_marker -3.05 1.23
shirt_salad -3.06 1.04
rice_dice -3.10 1.30
locker_basket -3.10 1.64
hedgehog_owl -3.13 1.42
lollipop_doorbell -3.13 0.99
locker_cabinet -3.13 0.86
cake_refrigerator -3.14 0.90
teapot_brake -3.16 1.24
blender_mailbox -3.16 1.22
camp_to.steal -3.17 1.62
buffet_crib -3.18 1.63
fan_boulder -3.19 1.34
carrot_vegetable -3.20 1.06
teabag_fingerprint -3.22 1.30
milkshake_robot -3.26 1.28
trumpet_violin -3.28 1.48
fan_album -3.28 1.19
acorn_coconut -3.29 1.47
footbath_trough -3.30 1.01
seaweed_mousetrap -3.33 1.56
footbath_vest -3.34 0.92
fence_railing -3.34 1.46
honey_baby -3.36 1.98
sunflower_pineapple -3.42 0.90
potato_pot -3.45 1.30
oatmeal_collar -3.46 1.26
freezer_nest -3.48 0.98
swordfish_leopard -3.51 1.82
rice_box -3.51 1.05
telescope_windshield -3.54 1.34
hamster_tadpole -3.54 1.72
ski_suitcase -3.60 1.97
potato_glasses -3.60 1.29
cake_dessert -3.61 1.13
sprinkler_flower -3.63 1.35
net_domino -3.68 1.78
triangle_diamond -3.69 1.24
ship_nose -3.69 0.96
sunflower_rim -3.70 0.99
chandelier_lightbulb -3.71 1.82
snail_cow -3.72 0.99
acorn_key -3.73 1.52
cornbread_wreath -3.74 1.49
lollipop_candy -3.82 1.74
treasure_rope -3.84 1.84
cheese_mud -3.86 1.29
tongue_lipstick -3.89 1.96
marshmallow_dryer -3.89 1.39
tongue_envelope -3.90 1.02
sink_stair -3.92 2.06
pie_flashlight -3.92 1.44
triangle_lighter -4.30 1.72
elbow_bed -4.37 1.69

Try some other models

Partially compensatory 2PL.

mm_c = (
  'F = 1-%d,
  PRIOR = (1-%d, a1, norm, .2, 1),
  PRIOR = (1-%d, d, norm, 0, 2)'
  )

m_pc <- mirt(df_good, itemtype = 'PC2PL', guess=0.5) # 2AFC. Guess Rate = 0.5
## 
Iteration: 1, Log-Lik: -35730.185, Max-Change: 4.24877
Iteration: 2, Log-Lik: -29809.076, Max-Change: 1.45308
Iteration: 3, Log-Lik: -29629.211, Max-Change: 1.13032
Iteration: 4, Log-Lik: -29578.517, Max-Change: 0.93007
Iteration: 5, Log-Lik: -29556.643, Max-Change: 0.83335
Iteration: 6, Log-Lik: -29544.768, Max-Change: 0.00638
Iteration: 7, Log-Lik: -29544.569, Max-Change: 0.00000
co_pc <- coef(m_pc, simplify=TRUE) # Get coeeficients
co_pc <- tibble::rownames_to_column(as.data.frame(co_pc$items),'words')

Prune items and check model for multi-AFC study

Get items with difficulty pairs

Get item info for rejoining

item_info_clip <- pilot_data_filtered %>%
  filter(cohort == 'prolific') %>%
  distinct(item_pair, wordPairing, cor) %>%
  rename(wordPairingClip = wordPairing)

Get item pc/responses overall

items_all_responses <- pilot_data_filtered %>%
  group_by(item_pair, word1, word2) %>%
  summarize(num_responses = length(correct), pc = mean(correct))  

Add back in pc for sanity & and word pairing details

coefficients_pruned_items <- diffs_pruned %>%
  left_join(items_all_responses) %>%
  left_join(item_info_clip) %>%
  mutate(wordPairingClip = replace_na(wordPairingClip, 'DAIVT'))
items_with_matches <- coefficients_pruned_items %>%
  group_by(word1) %>%
  mutate(num_pairs_retains = length(unique(word2))) %>%
  filter(num_pairs_retains>1)

Model fitting

Refit a model with this subset of items

kept_items = items_with_matches$item_pair

d_wide_model_subset<- pilot_data_filtered %>%
  ungroup() %>%
  filter(item_pair %in% kept_items) %>%
  select(sub_id, item_pair, correct) %>%
  arrange(item_pair) %>%
  ungroup() %>%
  pivot_wider(names_from=item_pair, values_from=correct, values_fn = ~mean(.x)) %>%
  ungroup()

d_mat_model_subset <- d_wide_model_subset %>%
  select(-sub_id) %>%
  data.frame %>%
  data.matrix

rownames(d_mat_model_subset) <- d_wide_model_subset$sub_id

Fit a 2PL model to this subset

start.dim = length(colnames(d_mat_model_subset)) - 1
mm = (
  'F = 1-%d,
PRIOR = (1-%d, a1, norm, .2, 1),
PRIOR = (1-%d, d, norm, 0, 2)'
)
mm = mirt.model(sprintf(mm,start.dim,start.dim,start.dim))

mod_2pl_priors_subset <- mirt::mirt(d_mat_model_subset, mm, 
                                    itemtype='2PL', guess=.5,  upper=1, 
                                    verbose=FALSE)

Get coefficients

co_sub <- coef(mod_2pl_priors_subset,simplify=TRUE, IRTpars = FALSE) # Get coeeficients
co_sub <- tibble::rownames_to_column(as.data.frame(co$items),'words')

Look at thetas by sub

all_thetas_with_matched_subset <- fscores(mod_2pl_priors_subset) %>%
  as_tibble() %>%
  add_column(pid = d_wide_model_subset$sub_id) %>%
  rename(theta_2pl_matched_data = `F`) %>%
  left_join(sub_data_age_cleaned)
thetas_by_age_matched_subset <- all_thetas_with_matched_subset %>%
  group_by(age) %>%
  multi_boot_standard(col='theta_2pl_matched_data') %>%
  filter(!is.na(age))
ggplot(data = all_thetas_with_matched_subset, aes(x=age, y=theta_2pl_matched_data, col=age)) +
    geom_jitter(width=.2, alpha=.2) +
  geom_smooth(method='lm', color='grey',alpha=.8)  +
  geom_pointrange(data=thetas_by_age_matched_subset,aes(x=age, y=mean, ymin=ci_lower, ymax =ci_upper), col='black', alpha=.5) +
  theme_few()  +
  ylab('Theta estimates') +
  xlab('Age') + 
  # facet_wrap(~model, nrow=2) +
  theme(legend.position='none') +
  theme(aspect.ratio=.75)

Show items by difficulty

coefficients_pruned_items <- co %>%
  mutate(slope = a1, item_pair = words) %>%
  mutate(difficulty = -d) %>%
  arrange(-difficulty) 

Get item info for rejoining

item_info_clip <- pilot_data_filtered %>%
  filter(cohort == 'prolific') %>%
  distinct(item_pair, wordPairing, cor) %>%
  rename(wordPairingClip = wordPairing)

Get item pc/responses overall

items_all_responses <- pilot_data_filtered %>%
  group_by(item_pair, word1, word2) %>%
  summarize(num_responses = length(correct), pc = mean(correct))  

Add back in pc for sanity & and word pairing details

coefficients_pruned_items <- coefficients_pruned_items %>%
  left_join(items_all_responses) %>%
  left_join(item_info_clip) %>%
  mutate(wordPairingClip = replace_na(wordPairingClip, 'DAIVT'))

Examine difficulties

coef_pairs <- filter(coefficients_pruned_items, 
                     wordPairingClip %in% c("easy","hard")) |>
  mutate(word1 = fct_reorder(word1, difficulty, .desc=TRUE))
                     
ggplot(data = coef_pairs,
       aes(x=difficulty, y=word1, col = wordPairingClip)) + 
  geom_point(alpha=.5) + 
  geom_line(aes(group = word1), alpha = .3, col = "gray") + 
  theme_few(base_size=10) + 
  xlab("IRT difficulty") +
  ylab("IRT discriminability (slope)") 

coefficients_pruned_items %>%
  filter(wordPairingClip %in% c('easy','hard')) %>%
  select(word1, difficulty, wordPairingClip) %>%
  pivot_wider(values_from = difficulty, names_from=wordPairingClip) %>%
  mutate(diff = hard - easy) %>%
  arrange(-diff) %>% 
  kable(digits = 2)
word1 hard easy diff
swordfish 2.32 -3.51 5.83
cheese 1.38 -3.86 5.24
freezer 1.52 -3.48 5.01
cornbread -0.49 -3.74 3.25
oatmeal -0.34 -3.46 3.12
carousel 0.38 -2.69 3.06
bobsled 2.99 0.03 2.96
thermos 1.77 -1.11 2.89
clothespin -0.05 -2.82 2.77
pajamas 0.50 -2.27 2.77
stew 1.10 -1.59 2.69
sauerkraut 1.49 -1.18 2.67
teapot -0.81 -3.16 2.35
corset 1.59 -0.75 2.34
tapestry -0.34 -2.66 2.32
gutter 0.29 -2.00 2.29
oil -0.81 -2.88 2.07
snail -1.67 -3.72 2.04
grate 2.52 0.50 2.03
seaweed -1.33 -3.33 2.01
treasure -1.95 -3.84 1.90
dumpling -0.76 -2.65 1.89
tulip -0.11 -1.96 1.85
stump 0.14 -1.63 1.77
gondola -0.15 -1.92 1.76
bulldozer -0.91 -2.61 1.70
scaffolding 1.23 -0.39 1.62
caramel -0.97 -2.57 1.60
ship -2.11 -3.69 1.58
scoop -1.29 -2.87 1.58
artichoke -0.28 -1.84 1.56
silverware -0.75 -2.23 1.47
antenna -0.55 -1.98 1.44
sandbag -0.97 -2.34 1.37
swing -1.63 -2.98 1.35
prune 0.43 -0.89 1.32
teabag -1.92 -3.22 1.30
pecan -0.02 -1.28 1.27
towel -1.58 -2.81 1.23
parsley 0.84 -0.28 1.12
prism -0.13 -1.20 1.06
seagull -1.92 -2.98 1.06
headdress -0.40 -1.45 1.05
ski -2.58 -3.60 1.02
buffet -2.18 -3.18 1.00
spinach -1.87 -2.86 0.99
sink -3.01 -3.92 0.91
hamster -2.66 -3.54 0.88
cloak 0.18 -0.67 0.85
net -2.84 -3.68 0.84
latch -1.24 -2.08 0.84
trumpet -2.46 -3.28 0.82
pump -1.44 -2.19 0.75
cassette -1.71 -2.41 0.71
telescope -2.84 -3.54 0.70
squirrel -2.20 -2.82 0.62
hoe -1.16 -1.77 0.61
triangle -3.69 -4.30 0.60
shredder -1.36 -1.96 0.60
hopscotch -1.76 -2.20 0.45
shower -2.59 -3.04 0.45
acorn -3.29 -3.73 0.44
blender -2.73 -3.16 0.43
bark -1.78 -2.20 0.42
rice -3.10 -3.51 0.41
bouquet 0.69 0.32 0.37
sunflower -3.42 -3.70 0.28
neck -1.46 -1.73 0.27
cork -1.75 -1.99 0.24
puddle -1.85 -2.05 0.20
potato -3.45 -3.60 0.15
saddle -1.27 -1.39 0.11
foam -1.07 -1.17 0.09
fruitcake -2.30 -2.38 0.07
shirt -3.02 -3.06 0.04
mandolin -0.60 -0.64 0.04
footbath -3.30 -3.34 0.04
tongue -3.89 -3.90 0.02
locker -3.13 -3.10 -0.03
bamboo -2.75 -2.69 -0.05
flan 1.28 1.34 -0.06
fan -3.28 -3.19 -0.09
modem -0.73 -0.60 -0.13
barrel -2.48 -2.32 -0.16
sorbet -0.94 -0.74 -0.20
stretcher -2.12 -1.86 -0.25
coffee -2.92 -2.61 -0.30
carrot -3.20 -2.83 -0.37
map -3.05 -2.68 -0.38
cake -3.61 -3.14 -0.47
strap -2.38 -1.83 -0.55
syringe -0.97 -0.35 -0.62
sloth -2.24 -1.61 -0.63
fence -3.34 -2.70 -0.64
kimono -0.87 -0.21 -0.66
pitcher 1.49 2.16 -0.67
lollipop -3.82 -3.13 -0.69
hedgehog -3.13 -2.24 -0.88
honey -3.36 -2.28 -1.08
scrabble 0.14 1.30 -1.16
pistachio -2.03 -0.76 -1.27
chandelier -3.71 -2.32 -1.39
aloe -1.12 1.50 -2.62
coaster -1.18 1.87 -3.05
mulch NA 1.23 NA
cymbal NA 0.44 NA
kayak NA -0.78 NA
omelet NA -0.95 NA
blower -1.13 NA NA
biscuit NA -1.79 NA
fox -1.82 NA NA
taillight NA -1.97 NA
screw -2.04 NA NA
koala -2.05 NA NA
squash NA -2.29 NA
papaya NA -2.31 NA
gazelle NA -2.32 NA
otter NA -2.47 NA
candlestick NA -2.55 NA
horn NA -2.72 NA
spatula NA -2.86 NA
milkshake NA -3.26 NA
sprinkler NA -3.63 NA
marshmallow NA -3.89 NA
pie NA -3.92 NA
elbow NA -4.37 NA

Thetas with these two different models

thetas_by_all_subs <- thetas_by_all_subs %>%
  right_join(all_thetas_with_matched_subset)
ggplot(data = thetas_by_all_subs, aes(x=theta_2pl_all_data, y=theta_2pl_matched_data, col=age)) +
  geom_point(alpha=.8) +
  geom_smooth(method='lm', color='grey',alpha=.2)  +
  theme_few()  +
  ylab('Theta estimates') +
  xlab('Theta estimates') + 
  scale_color_viridis_c() +
  facet_wrap(~age, nrow=2) +
  theme(legend.position='right') +
  theme(aspect.ratio=.75)