To identify a unidimensional 2PL IRT model with unconstrained mean and variance parameters of the latent trait, we can fix one difficulty parameter to 0 (for the unconstrained mean) and one discrimination parameter to 1 (for the unconstrained variance).
But there’s also a different approach, advocated i.a. by Fox (2010, p. 88-89), i.e.
to constrain the sum of difficulty parameters to 0:
\mu_{\beta} = \sum_{k} \beta_{k} / K , where K is the number of (binary) items
\widetilde{\beta}_{k} = \beta_{k} - \mu_{\beta}
and the product of discrimination parameters to 1:
\sigma_{\alpha} = \prod_k \alpha_{k}
\widetilde{\alpha}_{k} = \alpha_{k} (1/\sigma_{\alpha})^{1/K}
I have two questions.
First, following this topic on sum-to-zero constraints, and this bit of code specifically:
transformed data {
vector[2*N] Q_r = Q_sum_to_zero_QR(N);
real x_raw_sigma = inv_sqrt(1 - inv(N));
}
parameters {
vector[N - 1] x_raw;
}
transformed parameters {
vector[N] x = sum_to_zero_QR(x_raw, Q_r);
}
model {
x_raw ~ normal(0, x_raw_sigma);
}
is there a way of specifying priors on the elements of x? I was just wondering how to translate the priors of the difficulty parameters from the “typical” approach, say:
beta ~ normal(0, 3);
into the approach with a centered vector? I’d be grateful for some code examples.
Second, following the discussion on constraining the vector of parameters by their product , is there a way of imposing that constraint on the discrimination parameters so that their product is equal to 1? Again, I’d be grateful for some code examples.
Thank you!