This function can be used to generate hierarchical attributes structures, and to provide prior joint attribute distribution with hierarchical structures.

att.structure(hierarchy.list = NULL, K, Q, att.prob = "uniform")

## Arguments

hierarchy.list a list specifying the hierarchical structure between attributes. Each element in this list specifies a DIRECT prerequisite relation between two or more attributes. See example for more information. the number of attributes involved in the assessment Q-matrix How are the probabilities for latent classes simulated? It can be "random" or "uniform".

## Value

att.str reduced latent classes under the specified hierarchical structure

impossible.latentclass impossible latent classes under the specified hierarchical structure

att.prob probabilities for all latent classes; 0 for impossible latent classes

GDINA, autoGDINA

## Examples

if (FALSE) {
#################
#
# Leighton et al. (2004, p.210)
#
##################
# linear structure A1->A2->A3->A4->A5->A6
K <- 6
linear=list(c(1,2),c(2,3),c(3,4),c(4,5),c(5,6))
att.structure(linear,K)

# convergent structure A1->A2->A3->A5->A6;A1->A2->A4->A5->A6
K <- 6
converg <- list(c(1,2),c(2,3),c(2,4),
c(3,4,5), #this is how to show that either A3 or A4 is a prerequisite to A5
c(5,6))
att.structure(converg,K)

# convergent structure [the difference between this one and the previous one is that
#                       A3 and A4 are both needed in order to master A5]
K <- 6
converg2 <- list(c(1,2),c(2,3),c(2,4),
c(3,5), #this is how to specify that both A3 and A4 are needed for A5
c(4,5), #this is how to specify that both A3 and A4 are needed for A5
c(5,6))
att.structure(converg2,K)

# divergent structure A1->A2->A3;A1->A4->A5;A1->A4->A6
diverg <- list(c(1,2),
c(2,3),
c(1,4),
c(4,5),
c(4,6))
att.structure(diverg,K)

# unstructured A1->A2;A1->A3;A1->A4;A1->A5;A1->A6
unstru <- list(c(1,2),c(1,3),c(1,4),c(1,5),c(1,6))
att.structure(unstru,K)

## See Example 4 and 5 in GDINA function
}