Checks if the \(Q\) matrix is generically identified.
is_q_generic(x)
x | A |
---|
A logical vector
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\).
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++.
James Joseph Balamuta and Steven Andrew Culpepper
## 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#> [1] FALSE