Checks if the \(Q\) matrix is strictly identified.

is_q_strict(x)

Arguments

x

A q_matrix() or base::matrix() to test.

Value

A logical value.

Details

If \(\mathbf{Q}\) is in the strictly identifiable set \(\mathcal{Q}_s\), then it must satisfy the following conditions:

  • (S1) The rows of \(\boldsymbol{Q}\) can be permuted to the form, \(\boldsymbol{Q}^\top=\left[{\boldsymbol{I_K},\boldsymbol{I_K}, (\boldsymbol{Q}^\ast)^\top}\right]^\top\) where \(\boldsymbol{I_K}\) is a \(K\)-dimensional identity matrix and \(\boldsymbol{Q}^\ast\) is a \((J-2K)\times K\) matrix.

  • (S2) For any two latent classes \(c\) and \(c'\), there exists at least one item in \(\boldsymbol{Q}^\ast\), in which \(\boldsymbol{\theta}_{jc}\neq \boldsymbol{\theta}_{jc'}\).

In a more practical light, this means (S1) requires \(\boldsymbol{Q}\) to include two simple structure items for each attribute and (S2) states there must be at least one item not specified for (S1) that distinguishes between all pairs of classes.

See also

Author

James Joseph Balamuta and Steven Andrew Culpepper

Examples

## Check if Q Matrix is Strictly Identified --- # Create a strict Q matrix q2_strict = matrix( c(0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0), ncol = 2 ) # Check if Q matrix is strict is_q_strict(q2_strict)
#> [1] TRUE
# (Extra) Check if Q matrix is generic is_q_generic(q2_strict)
#> [1] TRUE