Skip to content

feat(psychometric): recover Driver p.16 T0MEANSstd after positive T0VAR - #218

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

feat(psychometric): recover Driver p.16 T0MEANSstd after positive T0VAR#218
seonghobae wants to merge 1 commit into
agent/psychometric-standardised-asymptotic-interceptfrom
agent/psychometric-standardised-initial-latent-mean

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Stacked on #216 (asymCINTstd). Next unique licensed map on this ancestry is footnote-4 standardisation of 2017-era T0MEANS. Do not duplicate #195 CINTstd. TDPREDVARstd is commented out in the 2017-era source and is not recovered. addedTIPREDVARstd is on the parallel #203 stack and is not recovered here.

Driver, Oud, and Voelkle (2017, Table 2, p. 12; p. 16; footnote 4; JSS PDF re-opened 2026-08-24T22:30Z) print standardised matrices with the suffix std when appropriate. Footnote 4 standardises using only the relevant variance, not the total. Table 2 names T0MEANS the latent process means at the first time point T0. The first-occasion relevant variance is free T0VAR p_0, not process-dynamics asymDIFFUSION -q / (2 a), matching Table 3 T0TIPREDEFFECTstd. The 2017-era summary.ctsemFit.R forms unstandardised T0MEANS:

T0MEANS <- OpenMx::mxEval(T0MEANS, mxobj, compute=TRUE)

That source does not form a T0MEANSstd matrix. The scalar map here is the footnote 4 standardisation of that named first-occasion mean: μ_0 / √p_0.

Recovery

  • recover_standardised_initial_latent_mean(μ_0, p_0, clock) forms strictly positive p_0 first, then divides μ_0 by √p_0.
  • A zero mean is exactly zero.
  • A larger positive p_0 yields a smaller |std|.
  • Zero p_0 fails closed. Unstandardised T0MEANS is defined for a zero first-occasion variance; standardised T0MEANS is not.
  • Non-event clock fails closed.
  • Free T0MEANS does not require stable a < 0.

Claim boundary

  • Unstandardised T0MEANS is not T0MEANSstd.
  • T0VARstd p_0 / p_0 = 1 recovers the same number when μ_0 = √p_0 and remains a distinct named quantity.
  • μ_0 / √asymDIFFUSION uses process-dynamics variance and is not this first-occasion map.

Meredith (1993) and Mislevy (1991) remain closed (Unpaywall 2026-08-24T08:02Z: 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.

Footnote 4 standardises using only the relevant variance. Table 2 T0MEANS
is the first-occasion mean, so that variance is free T0VAR, not
asymDIFFUSION. 2017-era summary.ctsemFit.R forms T0MEANS and does not
form T0MEANSstd; the scalar map is μ_0 / √p_0.
@coderabbitai

coderabbitai Bot commented Aug 24, 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

Folded into the consolidation vehicle #231; this draft stays open until the vehicle merges, then closes as superseded-by-consolidation.

@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