--- title: "Many-facet Rasch measurement" author: "Josh McGrane" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Many-facet Rasch measurement} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set(collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4.2) options(digits = 4) ``` ```{r library} library(rasch) ``` ## When to use the MFRM The many-facet Rasch model (Linacre 1989) extends the Rasch model (Rasch 1960) to responses jointly indexed by a person, an item, and one or more measurement facets such as rater, task, or occasion. Use `rasch_mfrm` for such designs. A positive facet parameter denotes greater severity. Person-group variables such as sex or treatment are not facets: carry them as person factors and assess them with `dif_anova`. For facet levels $f_1,\ldots,f_Q$, the model is $$ P(X_{ni\mathbf{f}}=x)= \frac{\exp\left\{x\theta_n- \sum_{k=1}^{x}\left(\delta_{ik}+\sum_{q=1}^{Q}\rho_{qf_q}\right)\right\}} {\sum_{y=0}^{m_i}\exp\left\{y\theta_n- \sum_{k=1}^{y}\left(\delta_{ik}+\sum_{q=1}^{Q}\rho_{qf_q}\right)\right\}}. $$ Item thresholds have a common sum-zero origin, and the levels of each facet sum to zero. ```{r fit} d <- simulate_mfrm(n_persons = 60, n_items = 4, n_raters = 5, rater_severity_sd = 0.7, seed = 8) fit <- rasch_mfrm(d, person = "person", item = "item", score = "score", facets = "rater") fit ``` ## Read the structural parameters The model estimates item thresholds and facet severities together. Internally, each observed item-by-facet combination is a virtual item whose thresholds are the item thresholds shifted by the relevant facet effects. Pairwise conditioning removes the person parameter before calibration. ```{r tables} fit$item_effects fit$facet_effects$rater head(fit$item_thresholds) ``` ```{r facets, fig.alt = "Rater severity estimates with confidence intervals."} plot_facets(fit, facet = "rater") ``` The design must connect facet levels through common items and persons. A facet nested within an item or a person-disjoint block can be confounded with item location. `rasch_mfrm` checks the structural rank and informative co-observation graph and stops when the decomposition is not identified. ## Item-by-facet interaction The additive model assumes that severity differences are invariant across items. When the design and substantive question require it, `interaction` adds item-by-level terms with double sum-to-zero constraints. ```{r interaction} fit_interaction <- rasch_mfrm( d, person = "person", item = "item", score = "score", facets = "rater", interaction = "rater" ) head(fit_interaction$interaction_effects) fit_interaction$interaction_test ``` The interaction model retains equal discrimination, but comparisons among raters become item-dependent. A material interaction therefore qualifies the claim of invariant rater severity rather than merely improving fit. The joint Wald test is the primary test of the interaction family; individual cells are exploratory and adjusted by Holm's method. The test uses the least-supported facet level and withholds probabilities when that level has fewer than `max(30, q + 2)` persons or effective persons, where `q` is the omnibus degrees of freedom. ## Diagnostics The returned object is also a `rasch` fit in which each item-by-facet cell enters as its own column of the response matrix (a *virtual item*), so the fit, targeting, dependence, dimensionality, and plotting functions remain available. MFRM margin tables additionally report an equal-cell fit residual and a response-weighted pooled residual. Their weighting differs, so both the design and the location of any misfit should guide interpretation. ## References Linacre, J. M. (1989). *Many-Facet Rasch Measurement*. Chicago: MESA Press. Rasch, G. (1960). *Probabilistic Models for Some Intelligence and Attainment Tests*. Copenhagen: Danish Institute for Educational Research. (Expanded edition, 1980, Chicago: University of Chicago Press.)