Fits an LCA model where item difficulty is parameterized using an unbounded real-valued parameter instead of raw gamma (guessing probability). This is a reparameterized LCA, not an item-response model: it contains no person ability parameter.
Transition matrix returned from multi_transmat
Numeric. Minimum guessing probability (random chance). Default 0.25 (1/4 for 4-choice items). This is the floor for gamma when difficulty -> +Inf.
Optional. Vector of length 4. Starting values for (gg, gk, kk, difficulty). First 3 must sum to 1.
Optional. Vector of length 8. Starting values for DK model. First 7 must sum to 1.
A guess_fit object with additional components:
Parameter matrix with "difficulty" row instead of "gamma"
Derived gamma values from difficulty (added for convenience)
Learning estimates (gk or gk + kd)
Difficulty-Parameterized LCA Estimation
The relationship between difficulty (d) and gamma is: $$\gamma = base\_rate + (1 - base\_rate) \cdot logistic(-d)$$
Where logistic(x) = 1/(1+exp(-x)). This means:
d = 0: gamma = base_rate + 0.5*(1-base_rate) (middle difficulty)
d -> +Inf: gamma -> base_rate (hard item, random guessing)
d -> -Inf: gamma -> 1 (easy item, always correct even when guessing)
# Simulate data with known difficulty
sim <- simulate_lca(n = 500, n_items = 3, difficulty = c(1, 0, -1), seed = 123)
transmatrix <- multi_transmat(sim$pre, sim$post)
# Fit with the difficulty-link parameterization
fit <- lca_difficulty(transmatrix)
fit$params["difficulty", ] # Should recover approximately c(1, 0, -1)
#> item1 item2 item3
#> 1.1080912 -0.1718505 -0.9409851
fit$gamma # Derived gamma values
#> item1 item2 item3
#> 0.4361702 0.6571429 0.7894740