Skip to content

feat(psychometric): recover Driver p.16 MANIFESTMEANSstd after positive Θ - #227

Closed
seonghobae wants to merge 1 commit into
agent/psychometric-standardised-initial-latent-meanfrom
agent/psychometric-standardised-manifest-mean
Closed

feat(psychometric): recover Driver p.16 MANIFESTMEANSstd after positive Θ#227
seonghobae wants to merge 1 commit into
agent/psychometric-standardised-initial-latent-meanfrom
agent/psychometric-standardised-manifest-mean

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Stacked on #218 (T0MEANSstd). Next unique licensed map on this ancestry is footnote-4 standardisation of 2017-era MANIFESTMEANS. Do not duplicate #210 MANIFESTVARstd, #195 CINTstd, or #218 T0MEANSstd. TDPREDVARstd is commented out in the 2017-era source and is not recovered.

Driver, Oud, and Voelkle (2017, Table 2, p. 12; p. 16; footnote 4; Eq. 5, p. 5; JSS PDF re-opened 2026-08-25T05:04Z) print standardised matrices with the suffix std when appropriate. Footnote 4 standardises using only the relevant variance, not the total. Table 2 names MANIFESTMEANS τ the n.manifest × 1 matrix of manifest means. Table 2 names MANIFESTVAR Θ the residual covariance of the indicators. The relevant variance for that named measurement intercept is residual MANIFESTVAR θ, not total observed Var(y) = λ² Var(η) + θ, matching MANIFESTVARstd. The 2017-era summary.ctsemFit.R forms unstandardised MANIFESTMEANS:

MANIFESTMEANS <- mxEval(MANIFESTMEANS, mxobj, compute=TRUE)

That source does not form a MANIFESTMEANSstd matrix. The scalar map here is the footnote 4 standardisation of that named intercept: τ / √θ. The 2017-era dimnames(MANIFESTMEANS) <- list(manifestNames, manifestNames) assignment on an n.manifest × 1 matrix is a source bug and is not this map.

Recovery

  • recover_standardised_manifest_mean(τ, θ, clock) forms strictly positive θ first, then divides τ by √θ.
  • A zero mean is exactly zero.
  • A larger positive θ yields a smaller |std|.
  • Zero θ fails closed. Unstandardised MANIFESTMEANS is defined for a zero residual; standardised MANIFESTMEANS is not.
  • Non-event clock fails closed.
  • MANIFESTMEANS does not require stable a < 0.

Claim boundary

  • Unstandardised MANIFESTMEANS is not MANIFESTMEANSstd.
  • MANIFESTVARstd θ / θ = 1 recovers the same number when τ = √θ and remains a distinct named quantity.
  • τ / √(λ² Var(η) + θ) uses total observed variance and is not this residual map.
  • T0MEANSstd recovers the same number when τ = μ_0 and θ = p_0 and remains a distinct named quantity.

Meredith (1993) and Mislevy (1991) remain closed (Unpaywall 2026-08-25T05:04Z: is_oa: false, 0 locations).

Do not merge without an independent APPROVE plus exact-head required-check success. Do not self-approve. Do not request Copilot.

…ve Θ

Footnote 4 standardises 2017-era MANIFESTMEANS using residual
MANIFESTVAR, not total observed variance.
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Superseded by consolidation: this slice's Driver et al. (2017) standardization recovery landed on protected main through the integration vehicles (#231/#232), and its contract coverage is carried by the reconciled suites (multilevel_event_time_recovery_contract, rubin_and_mean_gate_contract) with test-signature repair tracked in #234. The stacked-draft form is retired to keep the delivery queue at review-ready work only; no capability is lost — the exact-head provenance remains in the vehicle PR descriptions and CHANGELOG.

@seonghobae seonghobae closed this Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant