feat(psychometric): recover Driver lagged covariance of predetermined T0VAR on main - #367
Draft
seonghobae wants to merge 1 commit into
Draft
feat(psychometric): recover Driver lagged covariance of predetermined T0VAR on main#367seonghobae wants to merge 1 commit into
seonghobae wants to merge 1 commit into
Conversation
… T0VAR on main Restore the §4.3 predetermined lagged T0VAR map on current main independently of unpublished #363 and #365. Form trait + e^{a Δt} p_0 + (B / a)² v INLINE from on-main recoveries. Setting p_0 = −q/(2a) recovers the stationary lagged map as a number, not as the same named quantity. A zero-diffusion carry with a ≥ 0 is kept. JSS PDF re-opened 2026-08-31T10:02Z from https://www.jstatsoft.org/index.php/jss/article/download/v077i05/1104
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
psychometric_corerecovers the lagged covariance of §4.3 predeterminedT0VARindependently on current main (register item 47). Driver, Oud, and Voelkle (2017, Eq. 3–4, pp. 4–5; §4.3, pp. 9–10; Table 2, p. 12; p. 16; §7.2, pp. 20–21; JSS PDF re-opened 2026-08-31T10:02Z from https://www.jstatsoft.org/index.php/jss/article/download/v077i05/1104) treat the first time point as predetermined when no assumptions are made about the process prior toT0.This is an independent companion of still-unmerged PR #365 (item 46, Eq. 5 of predetermined later observed), PR #363 (item 45, predetermined later latent), PR #310 (
discreteDRIFTstd), PR #357 (asymptotes=TRUEDIFFUSION rewrite), PR #355 / #352 (asymptotes=TRUETIPREDEFFECT rewrite), and PR #349 (asymptotes=TRUECINT rewrite). It branches fromorigin/main1bc02f58, does not wait for those drafts, and is not stacked on them. Unpublished#363recover_predetermined_later_latent_varianceand unpublished#365observed maps are not imported; the lagged composition is formed INLINE from on-mainrecover_trait_plus_state_lagged_covarianceandrecover_asymptotic_time_independent_predictor_variance. Stationary lagged covariance is already on main asrecover_stationary_lagged_latent_covariance.Section 4.3 treats the first time point as predetermined when no assumptions are made about the process prior to
T0: free first-occasion variancep_0is estimated. Equation 3 writesη(t) = exp(A Δt) η(t0) + …. Equation 4 writescov(η_t, η_{t-1}) = A_Δt cov(η_{t-1}). Trait variance andaddedTIPREDVARare time-invariant between-subject and do not decay withe^{a Δt}. The lagged composition istrait + e^{a Δt} p_0 + (B / a)² v.p_0 = −q / (2 a)recovers the stationary lagged map.−q / (2 a)in place of freep_0and is not this map whenp_0is free.Q_Δtand is not this lagged map (formed INLINE from on-main recoveries).trait + p_0 + (B / a)² vas if it were all state is not this map.p_0is not this map.a ≥ 0ise^{a Δt} p_0and is kept.a < 0.Fail-closed EventTime-only clocks, non-positive
Δt, and invalid numeric input. Three refuse helpers:refuse_stationary_lagged_latent_covariance_as_predetermined_lagged_latent_covariance,refuse_predetermined_later_latent_variance_as_predetermined_lagged_latent_covariance,refuse_decayed_predetermined_total_as_predetermined_lagged_latent_covariance.Meredith (1993) remains unread (Unpaywall 2026-08-31T10:02Z:
is_oa: false; title Measurement Invariance, Factor Analysis and Factorial Invariance; Springercontent/pdfhistorically an HTML stub). Mislevy (1991, Psychometrika, 56, 177–196, DOI10.1007/bf02294457) remains unread (Unpaywall 2026-08-31T10:02Z:is_oa: false). The 1988 ETS RR of the same title is OA-flagged by Unpaywall (10.1002/j.2330-8516.1988.tb00310.x) but Wileypdfdirectreturned Cloudflare 403; it is not the 1991 journal article. Still not a Kalman filter, not a matrixexpm, not ESEM estimation, not DSEM, and not ctsem estimation.Plan
Fail-closed scalar
recover_predetermined_lagged_latent_covariance(trait, p_0, B, v, a, Δt, clock)astrait + e^{a Δt} p_0 + (B / a)² vonorigin/main, forming the lagged composition INLINE from on-main recoveries, with three refuse helpers, three error variants, CHANGELOG, ADR 0005 timestamp, CLAUDE.md, research notes item 47 timestamp, and crate/contract tests. Independent of #365, #363, #310, #357, #355, #352, and #349.Verification
cargo clippy -p psychometric_core --all-targets -- -D warnings(clean)cargo test -p psychometric_core --lib predetermined_lagged_latent(3 passed; 186 filtered)cargo test -p psychometric_core --test multilevel_event_time_recovery_contract predetermined_lagged_latent(2 passed)cargo test -p psychometric_core --test scientific_claim_boundary_contract predetermined_lagged_latent(1 passed)cargo test -p psychometric_core --lib stationary_later_variance_boundary_messages(1 passed)Do not rustfmt
lib.rs(reorders types after functions).Opened by: Grok Build (xAI) on behalf of Seongho Bae.
Do not merge without independent non-author APPROVE + exact-head required-check success. Do not convert from draft. Do not self-approve. Do not request Copilot.