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

Get subject data

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))

Run 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."

Look at thetas by sub

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)

See which items were retained

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'))
items_with_matches <- coefficients_pruned_items %>%
  group_by(word1) %>%
  mutate(num_pairs_retains = length(unique(word2))) %>%
  filter(num_pairs_retains>1)

Refit a model kicking with items without 2 distract ors

kept_items = items_with_matches$words

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 the 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

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

Look at thetas by sub for refit model

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)

Look at items Show items by difficulty

coefficients_subset <- coefficients_subset %>%
  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'))
ggplot(data = coefficients_pruned_items, aes(x=difficulty, y=a1,col=wordPairingClip )) + 
  geom_point(alpha=.5) + 
  ggrepel::geom_label_repel(aes(label = item_pair), box.padding = 0.1, max.overlaps=20, size=3) +
  theme_few(base_size=10) + 
  xlab("IRT difficulty") +
  ylab("IRT discriminability (slope)")

by_word <- 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

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)

Plot some individual items

thetas_for_plot <- seq(-6,6,.1)

irt2pl <- function(a, d, theta = seq(-6,6,.1)) {
  p = boot::inv.logit(a * (theta + d))
  return(p)
}
iccs <- coefficients_subset %>%
  filter(d > quantile(d, .9)) %>%
  split(.$item_pair) %>%
  map_df(function(d) {
    return(data_frame(item_pair = d$item_pair,
                      theta = thetas_for_plot, 
                      p = irt2pl(d$a1, d$d, thetas_for_plot)))
  })

ggplot(iccs,  
       aes(x = theta, y = p)) + 
  geom_line() + 
  facet_wrap(~item_pair) + 
  xlab("Ability") + 
  ylab("Probability of comprehension") +
  ggtitle('Easiest items')

Hardest items

iccs <- coefficients_subset %>%
  filter(d < quantile(d, .1)) %>%
  split(.$item_pair) %>%
  map_df(function(d) {
    return(data_frame(item_pair = d$item_pair,
                      theta = thetas_for_plot, 
                      p = irt2pl(d$a1, d$d, thetas_for_plot)))
  })

ggplot(iccs,  
       aes(x = theta, y = p)) + 
  geom_line() + 
  facet_wrap(~item_pair) + 
  xlab("Ability") + 
  ylab("Probability of comprehension") +
  ggtitle('Hardest items')

Partial compensatory model?

# same as partial credit models?
# 'PC2PL'