Computes the knowledge structure delineated by a skill function.

delineate(skillfun, itemID = 1)

Arguments

skillfun

a data frame or a matrix representing the skill function. It consists of an item indicator and a problem-by-skill indicator matrix.

itemID

index of the column in skillfun that holds the item indicator.

Details

The skill function \((Q, S, \mu)\) indicates for each item in \(Q\) which subsets of skills in \(S\) are required to solve the item. Thus, \(\mu(q)\) is a set containing sets of skills. An item may have multiple entries in skillfun, each in a separate row identified by the same itemID.

See Doignon and Falmagne (1999, Chap. 4).

Value

A list of two components:

K

the knowledge structure delineated by the skill function.

classes

a list of equivalence classes of competence states; the members of these classes are mapped onto the same knowledge state by the problem function induced by the skill function \(\mu\).

References

Doignon, J.-P., & Falmagne, J.-C. (1999). Knowledge spaces. Berlin: Springer.

See also

Examples

# Skill function
# mu(e) = {{s, t}, {s, u}},  mu(f) = {{u}}
# mu(g) = {{s}, {t}},        mu(h) = {{t}}
sf <- read.table(header = TRUE, text = "
  item s t u
     e 1 1 0
     e 1 0 1
     f 0 0 1
     g 1 0 0
     g 0 1 0
     h 0 1 0
")
delineate(sf)
#> $K
#>      e f g h
#> 0000 0 0 0 0
#> 0010 0 0 1 0
#> 0100 0 1 0 0
#> 0011 0 0 1 1
#> 1011 1 0 1 1
#> 1110 1 1 1 0
#> 0111 0 1 1 1
#> 1111 1 1 1 1
#> 
#> $classes
#> $classes$`0000`
#>      s t u
#> [1,] 0 0 0
#> 
#> $classes$`0010`
#>      s t u
#> [1,] 1 0 0
#> 
#> $classes$`0100`
#>      s t u
#> [1,] 0 0 1
#> 
#> $classes$`0011`
#>      s t u
#> [1,] 0 1 0
#> 
#> $classes$`1011`
#>      s t u
#> [1,] 1 1 0
#> 
#> $classes$`1110`
#>      s t u
#> [1,] 1 0 1
#> 
#> $classes$`0111`
#>      s t u
#> [1,] 0 1 1
#> 
#> $classes$`1111`
#>      s t u
#> [1,] 1 1 1
#> 
#> 

## See ?probability for further examples.