M2 Posterior Predictive Checks and Negative Controls

knitr::opts_chunk$set(collapse = TRUE, comment = "#>")

Channel-specific model checks

The three-way reference literature evaluates response, response-time, and fixation-count components separately using W, L, and M discrepancy statistics. multimodal_m2_ppc() implements the same channel-specific logic as posterior predictive item checks.

library(eyeprocess)

sim <- simulate_multimodal_m2(
  n_person = 120,
  n_item = 12,
  seed = 55
)

fit <- fit_multimodal_m2(sim, seed = 56)

ppc <- multimodal_m2_ppc(fit)
ppc
plot(ppc)

Posterior predictive p-values are model-data diagnostics. They are not proof that the latent gaze dimension is a validated psychological construct.

Alignment negative controls

Negative controls ask whether apparent multimodal information depends on meaningful person-level alignment rather than only channel marginals.

library(eyeprocess)

sim <- simulate_multimodal_m2(
  n_person = 80,
  n_item = 10,
  seed = 77
)

nc <- multimodal_m2_negative_controls(
  sim,
  seed = 78
)

nc
head(nc$provenance)
plot(nc)

The controls permute gaze, RT, or response within item. This preserves each item's observed marginal values and missingness pattern while breaking the named person-level alignment.

These are falsification controls, not causal interventions and not misconduct classifiers.



Try the eyeprocess package in your browser

Any scripts or data that you put into this service are public.

eyeprocess documentation built on Sept. 28, 2026, 5:08 p.m.