ita.Rd
Item tree analysis (ITA) on a set of binary responses.
ita(R, L = NULL, makeK = FALSE, search = c("local", "global"))
a subject-by-problem indicator matrix representing the responses.
the threshold of violations acceptable for the precedence relation.
If NULL
(default), an optimal threshold is searched for.
should the corresponding knowledge structure be returned?
local (default) or global threshold search.
ITA seeks to establish a precedence relation among a set of binary items.
For each pair of items \((p, q)\), it counts how often \(p\) is not
solved if \(q\) is solved, which constitutes a violation of the relation.
ITA searches for a threshold L
for the maximum number of violations
consistent with a (transitive) precedence relation. Its attempts to
minimize the total discrepancy between R
and K
.
See van Leeuwe (1974) and Schrepp (1999) for details.
An object of class ita
having the following components:
the knowledge structure corresponding to the precedence relation.
the discrepancy between R
and K
(fit),
between K
and R
(complexity), and their sum (total).
the vector of transitive thresholds.
either NULL
or the method used for threshold search.
the selected or requested threshold.
the precedence matrix containing the number of violations.
the precedence relation as a logical incidence matrix at threshold
L
.
Schrepp, M. (1999). On the empirical construction of implications between bi-valued test items. Mathematical Social Sciences, 38(3), 361–375. doi:10.1016/S0165-4896(99)00025-6
Van Leeuwe, J.F. (1974). Item tree analysis. Nederlands Tijdschrift voor de Psychologie en haar Grensgebieden, 29(6), 475–483.
blim
.
data(chess)
ita(chess$R) # find (locally) optimal threshold L
#>
#> Item tree analysis (ITA)
#>
#> Violations of precedence relation:
#> >
#> < s gs egs eegs cs gcs ts ges f gf gff ggff ggf ff tf tff
#> s 0 0 0 0 10 0 3 1 22 1 0 0 0 11 10 3
#> gs 33 0 0 2 18 3 19 6 52 7 6 1 2 30 32 12
#> egs 42 9 0 3 18 4 24 10 60 13 10 3 2 39 36 17
#> eegs 45 14 6 0 20 6 26 14 63 16 13 6 4 42 40 20
#> cs 46 21 12 11 0 5 28 18 55 25 20 12 8 41 37 25
#> gcs 48 18 10 9 17 0 31 16 66 22 16 9 7 47 43 22
#> ts 24 7 3 2 13 4 0 5 39 8 6 2 1 23 20 8
#> ges 36 8 3 4 17 3 19 0 53 11 8 4 4 34 30 13
#> f 4 1 0 0 1 0 0 0 0 0 0 1 0 2 2 1
#> gf 30 3 0 0 18 3 16 5 47 0 2 1 1 26 28 9
#> gff 36 9 4 4 20 4 21 9 54 9 0 4 2 34 34 12
#> ggff 47 15 8 8 23 8 28 16 66 19 15 0 7 44 43 21
#> ggf 48 17 8 7 20 7 28 17 66 20 14 8 0 46 43 21
#> ff 15 1 1 1 9 3 6 3 24 1 2 1 2 0 11 3
#> tf 16 5 0 1 7 1 5 1 26 5 4 2 1 13 0 4
#> tff 31 7 3 3 17 2 15 6 47 8 4 2 1 27 26 0
#>
#> Selected threshold (L): 4
#> Transitive thresholds:
#> [1] 0 2 4 5 6 66
#>
i <- ita(chess$R, L = 6, makeK = TRUE)
identical(sort(as.pattern(i$K)),
sort(as.pattern(chess$dst1)))
#> [1] TRUE
## Plotting the precedence relation
if(requireNamespace("relations") &&
requireNamespace("Rgraphviz")) {
plot(relations::as.relation(i$I))
}