Function to estimate estimate item influence measures. Code adapted from (Jurich & Madison, 2023). This function is not available for longitudinal DCMs.
Arguments
- model
a previously calibrated model; an object of class
gdina
.- data
a required \(N \times I\) matrix. Binary item responses are in the columns.
- fullcorrelation
optional logical argument indicating a full or reduced response-classification correlation matrix.
- progress
An optional logical indicating whether the function should print the progress of estimation.
Details
For DCMs, item influence quantifies how much an item impacts classifications. Given an estimated DCM and item response data, this function estimates five item influence measures, including item pull, item override, proportion of attribute information, response-classification correlation (corr1), and response-posterior correlation (corr2).
Note
Currently, this function currently only runs on DCMs estimated at a single time point. It will not run properly for TDCM objects.
References
Jurich, D. & Madison, M. J. (2023). Measuring item influence for diagnostic classification models. Educational Assessment.
Examples
# \donttest{
## Item influence illustration
#load data (simulated based on Jurich and Bradshaw (2014))
qmatrix <- CDM::data.sda6$q.matrix
responses <- CDM::data.sda6$data
#Estimate the full LCDM
model1 <- CDM::gdina(responses, qmatrix, linkfct = "logit", method = "ML")
#> -----------------------------------------------------------------
#> CDM 8.2-6 (2022-08-25 15:43:23)
#> GDINA Model
#> Link function: logit
#> ** 2024-02-05 21:04:46.891248
#> -----------------------------------------------------------------
#> ...........................................................
#> Iteration 1 2024-02-05 21:04:46.909252
#> Deviance = 41250.26
#> Maximum parameter change: 0.255116
#> ...........................................................
#> Iteration 2 2024-02-05 21:04:46.949708
#> Deviance = 37307.05 | Deviance change = 3943.205
#> Maximum parameter change: 0.237804
#> ...........................................................
#> Iteration 3 2024-02-05 21:04:46.973044
#> Deviance = 36844.82 | Deviance change = 462.2331
#> Maximum parameter change: 0.058056
#> ...........................................................
#> Iteration 4 2024-02-05 21:04:47.00171
#> Deviance = 36784.82 | Deviance change = 60.00074
#> Maximum parameter change: 0.037476
#> ...........................................................
#> Iteration 5 2024-02-05 21:04:47.020442
#> Deviance = 36765.74 | Deviance change = 19.07726
#> Maximum parameter change: 0.134754
#> ...........................................................
#> Iteration 6 2024-02-05 21:04:47.056603
#> Deviance = 36639.5 | Deviance change = 126.237
#> Maximum parameter change: 0.052503
#> ...........................................................
#> Iteration 7 2024-02-05 21:04:47.075593
#> Deviance = 36619.88 | Deviance change = 19.628
#> Maximum parameter change: 0.058732
#> ...........................................................
#> Iteration 8 2024-02-05 21:04:47.10148
#> Deviance = 36562.93 | Deviance change = 56.9458
#> Maximum parameter change: 0.028076
#> ...........................................................
#> Iteration 9 2024-02-05 21:04:47.119688
#> Deviance = 36557.01 | Deviance change = 5.918638
#> Maximum parameter change: 0.069777
#> ...........................................................
#> Iteration 10 2024-02-05 21:04:47.151386
#> Deviance = 36533.7 | Deviance change = 23.31049
#> Maximum parameter change: 0.006856
#> ...........................................................
#> Iteration 11 2024-02-05 21:04:47.166089
#> Deviance = 36535.91 | Deviance change = -2.21303
#> **** Deviances decreases! Check for nonconvergence. ****
#> Maximum parameter change: 0.034248
#> ...........................................................
#> Iteration 12 2024-02-05 21:04:47.190953
#> Deviance = 36529.54 | Deviance change = 6.379348
#> Maximum parameter change: 0.005495
#> ...........................................................
#> Iteration 13 2024-02-05 21:04:47.205251
#> Deviance = 36528.75 | Deviance change = 0.7851916
#> Maximum parameter change: 0.003748
#> ...........................................................
#> Iteration 14 2024-02-05 21:04:47.224933
#> Deviance = 36528.29 | Deviance change = 0.4589058
#> Maximum parameter change: 0.00302
#> ...........................................................
#> Iteration 15 2024-02-05 21:04:47.23943
#> Deviance = 36527.71 | Deviance change = 0.5760876
#> Maximum parameter change: 0.009911
#> ...........................................................
#> Iteration 16 2024-02-05 21:04:47.272042
#> Deviance = 36527.23 | Deviance change = 0.4854475
#> Maximum parameter change: 0.00118
#> ...........................................................
#> Iteration 17 2024-02-05 21:04:47.286155
#> Deviance = 36526.96 | Deviance change = 0.2715357
#> Maximum parameter change: 0.010884
#> ...........................................................
#> Iteration 18 2024-02-05 21:04:47.31231
#> Deviance = 36526.76 | Deviance change = 0.2015728
#> Maximum parameter change: 0.001425
#> ...........................................................
#> Iteration 19 2024-02-05 21:04:47.32607
#> Deviance = 36526.66 | Deviance change = 0.1012999
#> Maximum parameter change: 0.00123
#> ...........................................................
#> Iteration 20 2024-02-05 21:04:47.340213
#> Deviance = 36526.58 | Deviance change = 0.0787773
#> Maximum parameter change: 0.001022
#> ...........................................................
#> Iteration 21 2024-02-05 21:04:47.35426
#> Deviance = 36526.51 | Deviance change = 0.0670459
#> Maximum parameter change: 0.000859
#> ...........................................................
#> Iteration 22 2024-02-05 21:04:47.368735
#> Deviance = 36526.45 | Deviance change = 0.0594842
#> Maximum parameter change: 0.00073
#> ...........................................................
#> Iteration 23 2024-02-05 21:04:47.382993
#> Deviance = 36526.4 | Deviance change = 0.0540514
#> Maximum parameter change: 0.000624
#> ...........................................................
#> Iteration 24 2024-02-05 21:04:47.396954
#> Deviance = 36526.35 | Deviance change = 0.0498587
#> Maximum parameter change: 0.000537
#> ...........................................................
#> Iteration 25 2024-02-05 21:04:47.431053
#> Deviance = 36526.3 | Deviance change = 0.0464631
#> Maximum parameter change: 0.000465
#> ...........................................................
#> Iteration 26 2024-02-05 21:04:47.449994
#> Deviance = 36526.26 | Deviance change = 0.0436157
#> Maximum parameter change: 0.000405
#> ...........................................................
#> Iteration 27 2024-02-05 21:04:47.468681
#> Deviance = 36526.21 | Deviance change = 0.0411638
#> Maximum parameter change: 0.000355
#> ...........................................................
#> Iteration 28 2024-02-05 21:04:47.489416
#> Deviance = 36526.18 | Deviance change = 0.0390077
#> Maximum parameter change: 0.000312
#> ...........................................................
#> Iteration 29 2024-02-05 21:04:47.507491
#> Deviance = 36526.14 | Deviance change = 0.0370793
#> Maximum parameter change: 0.000277
#> ...........................................................
#> Iteration 30 2024-02-05 21:04:47.527358
#> Deviance = 36526.1 | Deviance change = 0.0353313
#> Maximum parameter change: 0.000246
#> ...........................................................
#> Iteration 31 2024-02-05 21:04:47.55362
#> Deviance = 36526.07 | Deviance change = 0.0337297
#> Maximum parameter change: 0.00022
#> ...........................................................
#> Iteration 32 2024-02-05 21:04:47.568091
#> Deviance = 36526.04 | Deviance change = 0.0322497
#> Maximum parameter change: 0.000212
#> ...........................................................
#> Iteration 33 2024-02-05 21:04:47.582015
#> Deviance = 36526.01 | Deviance change = 0.0308728
#> Maximum parameter change: 0.000207
#> ...........................................................
#> Iteration 34 2024-02-05 21:04:47.595969
#> Deviance = 36525.98 | Deviance change = 0.0295852
#> Maximum parameter change: 0.000202
#> ...........................................................
#> Iteration 35 2024-02-05 21:04:47.60987
#> Deviance = 36525.95 | Deviance change = 0.028376
#> Maximum parameter change: 0.000197
#> ...........................................................
#> Iteration 36 2024-02-05 21:04:47.623767
#> Deviance = 36525.92 | Deviance change = 0.0272367
#> Maximum parameter change: 0.000192
#> ...........................................................
#> Iteration 37 2024-02-05 21:04:47.643565
#> Deviance = 36525.9 | Deviance change = 0.0261606
#> Maximum parameter change: 0.000187
#> ...........................................................
#> Iteration 38 2024-02-05 21:04:47.65732
#> Deviance = 36525.87 | Deviance change = 0.025142
#> Maximum parameter change: 0.000183
#> ...........................................................
#> Iteration 39 2024-02-05 21:04:47.670806
#> Deviance = 36525.85 | Deviance change = 0.0241762
#> Maximum parameter change: 0.000178
#> ...........................................................
#> Iteration 40 2024-02-05 21:04:47.684248
#> Deviance = 36525.82 | Deviance change = 0.0232592
#> Maximum parameter change: 0.000174
#> ...........................................................
#> Iteration 41 2024-02-05 21:04:47.697841
#> Deviance = 36525.8 | Deviance change = 0.0223876
#> Maximum parameter change: 0.00017
#> ...........................................................
#> Iteration 42 2024-02-05 21:04:47.711185
#> Deviance = 36525.78 | Deviance change = 0.0215582
#> Maximum parameter change: 0.000166
#> ...........................................................
#> Iteration 43 2024-02-05 21:04:47.724599
#> Deviance = 36525.76 | Deviance change = 0.0207684
#> Maximum parameter change: 0.000162
#> ...........................................................
#> Iteration 44 2024-02-05 21:04:47.738093
#> Deviance = 36525.74 | Deviance change = 0.0200156
#> Maximum parameter change: 0.000158
#> ...........................................................
#> Iteration 45 2024-02-05 21:04:47.751512
#> Deviance = 36525.72 | Deviance change = 0.0192977
#> Maximum parameter change: 0.000154
#> ...........................................................
#> Iteration 46 2024-02-05 21:04:47.764966
#> Deviance = 36525.7 | Deviance change = 0.0186127
#> Maximum parameter change: 0.00015
#> ...........................................................
#> Iteration 47 2024-02-05 21:04:47.778382
#> Deviance = 36525.68 | Deviance change = 0.0179586
#> Maximum parameter change: 0.000147
#> ...........................................................
#> Iteration 48 2024-02-05 21:04:47.791758
#> Deviance = 36525.66 | Deviance change = 0.0173337
#> Maximum parameter change: 0.000143
#> ...........................................................
#> Iteration 49 2024-02-05 21:04:47.81101
#> Deviance = 36525.65 | Deviance change = 0.0167363
#> Maximum parameter change: 0.00014
#> ...........................................................
#> Iteration 50 2024-02-05 21:04:47.824361
#> Deviance = 36525.63 | Deviance change = 0.0161651
#> Maximum parameter change: 0.000137
#> ...........................................................
#> Iteration 51 2024-02-05 21:04:47.837103
#> Deviance = 36525.62 | Deviance change = 0.0156186
#> Maximum parameter change: 0.000134
#> ...........................................................
#> Iteration 52 2024-02-05 21:04:47.849903
#> Deviance = 36525.6 | Deviance change = 0.0150956
#> Maximum parameter change: 0.000131
#> ...........................................................
#> Iteration 53 2024-02-05 21:04:47.862393
#> Deviance = 36525.59 | Deviance change = 0.0145947
#> Maximum parameter change: 0.000128
#> ...........................................................
#> Iteration 54 2024-02-05 21:04:47.87501
#> Deviance = 36525.57 | Deviance change = 0.0141148
#> Maximum parameter change: 0.000125
#> ...........................................................
#> Iteration 55 2024-02-05 21:04:47.887644
#> Deviance = 36525.56 | Deviance change = 0.0136549
#> Maximum parameter change: 0.000122
#> ...........................................................
#> Iteration 56 2024-02-05 21:04:47.900034
#> Deviance = 36525.55 | Deviance change = 0.013214
#> Maximum parameter change: 0.000119
#> ...........................................................
#> Iteration 57 2024-02-05 21:04:47.912574
#> Deviance = 36525.53 | Deviance change = 0.0127911
#> Maximum parameter change: 0.000117
#> ...........................................................
#> Iteration 58 2024-02-05 21:04:47.925019
#> Deviance = 36525.52 | Deviance change = 0.0123853
#> Maximum parameter change: 0.000114
#> ...........................................................
#> Iteration 59 2024-02-05 21:04:47.937421
#> Deviance = 36525.51 | Deviance change = 0.0119958
#> Maximum parameter change: 0.000112
#> ...........................................................
#> Iteration 60 2024-02-05 21:04:47.949935
#> Deviance = 36525.5 | Deviance change = 0.0116218
#> Maximum parameter change: 0.000109
#> ...........................................................
#> Iteration 61 2024-02-05 21:04:47.962296
#> Deviance = 36525.49 | Deviance change = 0.0112625
#> Maximum parameter change: 0.000107
#> ...........................................................
#> Iteration 62 2024-02-05 21:04:47.98054
#> Deviance = 36525.47 | Deviance change = 0.0109173
#> Maximum parameter change: 0.000105
#> ...........................................................
#> Iteration 63 2024-02-05 21:04:47.992892
#> Deviance = 36525.46 | Deviance change = 0.0105854
#> Maximum parameter change: 0.000102
#> ...........................................................
#> Iteration 64 2024-02-05 21:04:48.005104
#> Deviance = 36525.45 | Deviance change = 0.0102663
#> Maximum parameter change: 1e-04
#> ...........................................................
#> Iteration 65 2024-02-05 21:04:48.017309
#> Deviance = 36525.44 | Deviance change = 0.0099593
#> Maximum parameter change: 9.8e-05
#> -----------------------------------------------------------------
#> Time difference of 1.19331 secs
#Estimate item influence measures
influence <- TDCM::item.influence(model1, responses)
#> [1] Calclating item influence measures. Progress = 0%.
#> [1] Calclating item influence measures. Progress = 24%.
#> [1] Calclating item influence measures. Progress = 47%.
#> [1] Calclating item influence measures. Progress = 71%.
#> [1] Calclating item influence measures. Progress = 94%.
#> [1] Routine finished. Check results.
#Summarize influence statistics
influence$Pull #item pull
#> Item Attribute pull0 pull1
#> 1 1 1 0.65 0.65
#> 2 2 1 0.68 0.74
#> 3 3 1 0.60 0.69
#> 4 4 1 0.86 0.68
#> 5 5 2 0.50 0.70
#> 6 6 2 0.47 0.81
#> 7 7 2 0.52 0.76
#> 8 8 2 0.59 0.76
#> 9 9 3 0.60 0.63
#> 10 10 3 0.58 0.71
#> 11 11 3 0.50 0.71
#> 12 12 3 0.55 0.68
#> 13 13 3 1.00 0.82
#> 14 14 3 0.86 0.75
#> 15 15 4 0.58 0.77
#> 16 16 4 0.63 0.86
#> 17 17 4 0.75 0.75
influence$Override #item override
#> Item Attribute override
#> 1 1 1 0.07
#> 2 2 1 0.10
#> 3 3 1 0.04
#> 4 4 1 0.11
#> 5 5 2 0.03
#> 6 6 2 0.07
#> 7 7 2 0.07
#> 8 8 2 0.09
#> 9 9 3 0.02
#> 10 10 3 0.04
#> 11 11 3 0.02
#> 12 12 3 0.03
#> 13 13 3 0.16
#> 14 14 3 0.09
#> 15 15 4 0.10
#> 16 16 4 0.22
#> 17 17 4 0.09
influence$Information #proportion of attribute information
#> Item Attribute propinfo
#> 1 1 1 0.16
#> 2 2 1 0.24
#> 3 3 1 0.13
#> 4 4 1 0.48
#> 5 5 2 0.12
#> 6 6 2 0.25
#> 7 7 2 0.27
#> 8 8 2 0.37
#> 9 9 3 0.03
#> 10 10 3 0.08
#> 11 11 3 0.04
#> 12 12 3 0.04
#> 13 13 3 0.59
#> 14 14 3 0.22
#> 15 15 4 0.22
#> 16 16 4 0.40
#> 17 17 4 0.38
influence$Correlation1 #correlation of responses and classifications
#> Item Attribute Correl1
#> 1 1 1 0.30
#> 2 2 1 0.41
#> 3 3 1 0.27
#> 4 4 1 0.52
#> 5 5 2 0.19
#> 6 6 2 0.29
#> 7 7 2 0.29
#> 8 8 2 0.34
#> 9 9 3 0.19
#> 10 10 3 0.30
#> 11 11 3 0.21
#> 12 12 3 0.23
#> 13 13 3 0.76
#> 14 14 3 0.56
#> 15 15 4 0.36
#> 16 16 4 0.50
#> 17 17 4 0.47
influence$Correlation2 #correlation of responses and posterior probabilities
#> Item Attribute Correl2
#> 1 1 1 0.36
#> 2 2 1 0.44
#> 3 3 1 0.33
#> 4 4 1 0.60
#> 5 5 2 0.22
#> 6 6 2 0.31
#> 7 7 2 0.33
#> 8 8 2 0.39
#> 9 9 3 0.21
#> 10 10 3 0.36
#> 11 11 3 0.25
#> 12 12 3 0.27
#> 13 13 3 0.82
#> 14 14 3 0.58
#> 15 15 4 0.44
#> 16 16 4 0.58
#> 17 17 4 0.58
# }