Skip to contents

Latent-variable linking. The true scores on all occasions (interims on their own reporting scales, and the summative) are jointly multivariate normal, `tau ~ MVN(mu, Sigma)`. Each observed score equals its true score plus error with the reported (known) SE, and any score may be missing. `mu` and `Sigma` are estimated by EM from all students; only the calibration cohort needs summative scores. Because measurement error is modeled rather than ignored, the regression of summative on interims is not attenuated, and a student's projection carries their own interim precision forward.

Usage

ty_link(
  data,
  interims = attr(data, "interims"),
  summative = "S",
  se_suffix = "_se",
  max_iter = 1000,
  tol = 1e-06
)

Arguments

data

Data frame with interim scores, the summative score, and their SEs.

interims

Interim score columns, in time order.

summative

Summative score column (NA for students without one yet).

se_suffix

Suffix of the SE columns.

max_iter, tol

EM controls; `tol` is relative to the largest parameter in `Sigma`, so it does not depend on the reporting scales.

Value

A `ty_link` object with `mu`, `Sigma`, `vars`, `summative`, `converged`, `iterations` (EM step evaluations), `loglik`.

Examples

sim <- ty_simulate(n_calibration = 300, n_operational = 300, seed = 1)
link <- ty_link(sim)
link
#> <ty_link> 600 students | 3 interims -> S | EM converged in 216 iterations
#> latent means:
#>      I1      I2      I3       S 
#> 195.533 197.459 198.970   0.058 
#> latent correlations:
#>       I1    I2    I3     S
#> I1 1.000 0.981 0.980 0.948
#> I2 0.981 1.000 0.986 0.957
#> I3 0.980 0.986 1.000 0.985
#> S  0.948 0.957 0.985 1.000