| fit.FCGGUM | R Documentation |
Fits a forced-choice variant of the multidimensional generalized graded unfolding model (GGUM) to comparative ranking data. Unlike dominance-based FC models, the FCGGUM uses an ideal-point (unfolding) item response process: endorsement probability peaks when the person and item locations coincide, and the block-level ranking follows the Luce–Plackett model.
fit.FCGGUM(
data,
Q.matrix = NULL,
block.items = NULL,
D = NULL,
fc.type = NULL,
method = c("iStEM", "stan"),
control.model = NULL,
control.method = NULL
)
data |
An |
Q.matrix |
An optional |
block.items |
A list of length |
D |
Integer; number of latent dimensions. If |
fc.type |
Forced-choice response type: |
method |
Estimation method: |
control.model |
A named list of model-level hyperparameters for the GGUM unfolding model in a forced-choice framework. Supported entries:
|
control.method |
A named list of method-specific tuning parameters. Common entries (used by both Stan and iStEM):
Stan-specific entries:
iStEM-specific entries:
|
An object of class "FCGGUM" containing:
nparNumber of free parameters.
method"stan" or "iStEM".
thetaList with est, se, Rhat
(N \times D).
parList with est, se, Rhat,
free (I \times (2D + 2)).
CorrList with est, se, Rhat
(D \times D).
block.items, patterns, patterns.total,
responseBlock structure.
logLikMarginal log-likelihood (class "logLik").
Item-level unfolding process.
For statement i with Q-vector \mathbf{q}_i \in \{-1, 0, 1\}^D,
the category response function is the GGUM (see fit.MGGUM
for the full polytomous specification). For the forced-choice context,
each item is binary (K_i=2). Define
r_{ij} =
\left[
\sum_{d=1}^{D} a_{id}^2
\left(\theta_{jd} - \delta_{id}\right)^2
\right]^{1/2},
\qquad
S_i = \sum_{d=1}^{D} a_{id},
\qquad
\psi_{i1} = \tau_{i1}S_i .
The binary GGUM endorsement probability used by the code is:
P_i(\boldsymbol{\theta}_j) =
\frac{
\exp\{r_{ij}-\psi_{i1}\} +
\exp\{2r_{ij}-\psi_{i1}\}
}{
1 + \exp\{3r_{ij}\} +
\exp\{r_{ij}-\psi_{i1}\} +
\exp\{2r_{ij}-\psi_{i1}\}
},
where \tau_{i1} < 0 is the first (and only free) threshold.
Block-level forced-choice ranking.
Within each block b, the probability of the observed ranking is
computed by applying the sequential Luce/Plackett rule to
u_i(\boldsymbol{\theta}_j)=\mathrm{logit}
\{P_i(\boldsymbol{\theta}_j)\}:
P(\text{ranking} \mid \boldsymbol{\theta}_j) =
\prod_{m=1}^{K_b-1}
\frac{\exp\{u_{i_{(m)}}(\boldsymbol{\theta}_j)\}}
{\sum_{r=m}^{K_b}\exp\{u_{i_{(r)}}(\boldsymbol{\theta}_j)\}}.
MOLE and PICK probabilities are sums over compatible full rankings, normalized over the observed block patterns by the C++ probability helper.
Q-matrix for unfolding. The Q-matrix serves a dual role:
entries of \pm 1 activate both the slope a_{id} and the
location \delta_{id}; the sign of q_{id} determines the
sign of \delta_{id} (positive vs. negative side of dimension
d).
method = "stan"):Full Bayesian inference via HMC. The GGUM likelihood involves summation terms that are handled in the Stan model block.
method = "iStEM"):Improved Stochastic EM. Person sampling uses finite-grid block Gibbs;
GGUM item parameters updated via constrained L-BFGS-B with
monotonicity constraints on \tau and sign constraints on
\delta.
Roberts, J. S., Donoghue, J. R., & Laughlin, J. E. (2000). A general item response theory model for unfolding unidimensional polytomous responses. Applied Psychological Measurement, 24(1), 3–32.
sim.data.FCGGUM, get.fit.index.FCGGUM,
logLik.FCGGUM, fit.MGGUM
sim <- sim.data.FCGGUM(N.person = 20, N.block = 3, I.block = 2,
D = 2, fc.type = "RANK")
fit <- fit.FCGGUM(sim$data, Q.matrix = sim$Q.matrix,
block.items = sim$block.items,
D = 2, fc.type = "RANK", method = "iStEM",
control.method = list(
vis = FALSE, seed = 123,
M = 2, B = 2, burnin.maxitr = 2,
maxitr = 3, eps1 = 10, eps2 = 10,
estimate.se = FALSE))
head(fit$theta$est)
gof <- get.fit.index(fit)
summary(gof)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.