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

is_q_generic(x)

Arguments

x

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

Value

A logical vector

Details

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

  • (G1) The true \(\boldsymbol{Q}\) matrix takes the form of \(\boldsymbol{Q}^\top=\left[{\boldsymbol{Q}_1,\boldsymbol{Q}_2, (\boldsymbol{Q}^\ast)^\top}\right]^\top\) after row swapping, where \(\boldsymbol{Q}^\ast\) is a \((J-2K)\times K\) binary matrix and \(\boldsymbol{Q}_1,\boldsymbol{Q}_2 \in \mathcal{Q}_g\) with $${\mathbb {Q}}_g =\left\{ \boldsymbol{Q} \in \{0,1\}^{J\times K}: \boldsymbol{Q} = \begin{bmatrix} * &{} 1 &{} *&{} \dots &{} *&{}\dots &{} *\\ * &{}*&{} 1 &{} \dots &{} *&{}\dots &{} *\\ \vdots &{} \vdots &{} &{} \ddots &{} &{} &{} \vdots \\ * &{} * &{} *&{} \dots &{} 1&{}\dots &{} *\\ \end{bmatrix}\right\}$$ where * can be either 0 or 1.

  • (G2) For any \(k = 1, 2, \ldots, K\), there exists a \(j_k > 2K\), such that \(q_{j_k, k} = 1\).

References

Gu, Yuqi, and Gongjun Xu. "Sufficient and Necessary Conditions for the Identifiability of the \(Q\)-matrix." arXiv preprint arXiv:1810.03819 (2018).

The function implemented is a translation of the publicly available MATLAB code from https://github.com/yuqigu/Identify_Q into C++.

See also

Author

James Joseph Balamuta and Steven Andrew Culpepper

Examples

## Check if Q Matrix is Generically Identified --- # Create a generically identified Q matrix q3_generic = rbind(diag(3), c(1, 1, 0), c(1, 0, 1), c(0, 1, 1), c(1, 1, 1)) # Check if Q matrix is generic is_q_generic(q3_generic)
#> [1] TRUE
# (Extra) Check if Q matrix is strict is_q_strict(q3_generic)
#> [1] FALSE