---
title: "IRT linking, DIF, DTF, and invariance evidence"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{IRT linking, DIF, DTF, and invariance evidence}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")
library(eyeprocess)
```

Scale linking and invariance are treated as evidence components rather than binary declarations of validity.

```{r}
ref <- data.frame(item_id=paste0("I",1:8),a=seq(.8,1.5,length.out=8),b=seq(-1.5,1.5,length.out=8),c=0,d=1)
A <- 1.2; B <- -.3
foc <- ref; foc$a <- ref$a * A; foc$b <- (ref$b - B) / A
link <- eyeprocess_irt_mean_sigma_link(ref, foc)
link
eyeprocess_irt_apply_link(foc, link)
```

Native utilities include mean-sigma, mean-mean, Stocking-Lord, and Haebara objectives, anchor screening/purification, DIF/DTF effect curves, anchor-set stability, session/device drift, and descriptive process-channel concordance. For mature equating workflows, `equateIRT` remains an explicit optional engine rather than being replaced by a simpler estimator.

Primary package source: <https://cran.r-project.org/package=equateIRT>.
