Skip to content

Function to estimate estimate item influence measures. Code adapted from (Jurich & Madison, 2023). This function is not available for longitudinal DCMs.

Usage

item.influence(model, data, fullcorrelation = FALSE, progress = TRUE)

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.

Value

A list containing several item influence measures.

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

# }