Learn R Programming

pks (version 0.6-1)

ita: Item Tree Analysis (ITA)

Description

Item tree analysis (ITA) on a set of binary responses.

Usage

ita(R, L = NULL, makeK = FALSE, search = c("local", "global"))

Value

An object of class ita having the following components:

K

the knowledge structure corresponding to the precedence relation.

discrepancy

the discrepancy between R and K (fit), between K and R (complexity), and their sum (total).

transitiveL

the vector of transitive thresholds.

searchL

either NULL or the method used for threshold search.

L

the selected or requested threshold.

P

the precedence matrix containing the number of violations.

I

the precedence relation as a logical incidence matrix at threshold L.

Arguments

R

a subject-by-problem indicator matrix representing the responses.

L

the threshold of violations acceptable for the precedence relation. If NULL (default), an optimal threshold is searched for.

makeK

should the corresponding knowledge structure be returned?

search

local (default) or global threshold search.

Details

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.

References

Schrepp, M. (1999). On the empirical construction of implications between bi-valued test items. Mathematical Social Sciences, 38(3), 361--375. tools:::Rd_expr_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.

See Also

blim.

Examples

Run this code
data(chess)

ita(chess$R)  # find (locally) optimal threshold L

i <- ita(chess$R, L = 6, makeK = TRUE)
identical(sort(as.pattern(i$K)),
          sort(as.pattern(chess$dst1)))

## Plotting the precedence relation
if(requireNamespace("relations") &&
   requireNamespace("Rgraphviz")) {
  plot(relations::as.relation(i$I))
}

Run the code above in your browser using DataLab