feat(psychometric): recover Driver Eq. 5 of T0TOTALVAR as λ² (t0_trait² · trait + p_0) + θ - #328
feat(psychometric): recover Driver Eq. 5 of T0TOTALVAR as λ² (t0_trait² · trait + p_0) + θ#328seonghobae wants to merge 1 commit into
Conversation
|
Warning Review limit reachedNext included review available in 57 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
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. Comment |
|
@coderabbitai review |
|
One atomic recover on current
main(6444a81). Driver, Oud, and Voelkle (2017, Eq. 5, p. 5; Table 2, p. 12TRAITVAR/T0VAR/LAMBDA/MANIFESTVAR; §7.1, pp. 18–19; 2017-erasummary.ctsemFit.Rlines 322–339; JSS PDF re-opened 2026-08-30T20:06Z from https://www.jstatsoft.org/index.php/jss/article/download/v077i05/1104).Map. 2017-era source forms
T0TRAITVAR <- T0TRAITEFFECT %*% TRAITVAR %*% t(T0TRAITEFFECT)thenT0TOTALVAR <- T0TRAITVAR + T0VAR. Equation 5 of that total, withMANIFESTTRAITVARzero, isλ² (t0_trait² · trait + p_0) + θ. Form extra first, then add freeT0VAR, thenrecover_manifest_observed_variance(λ, total, θ). Do not formλ²first. This crate does not exportrecover_initial_total_variance; form extra and the sum inline.Fail closed.
trait < 0orp_0 < 0fails closed. Non-event clock fails closed. Zero extra, zerop_0, or zero loading is exactlyθ. FreeT0TRAITEFFECTand freeT0VARdo not require stablea < 0.Distinct from unstandardised
T0TOTALVARextra + p_0(unpublished #324),T0TOTALVARstdtotal / total = 1(unpublished #326), Eq. 5 of freeT0VARλ² p_0 + θ, Eq. 5 ofT0TRAITVARλ² extra + θ(unpublished #321), andMANIFESTVARθ. Also distinct from §4.3 predetermined first-occasion observed varianceλ²(trait + p_0 + (B / a)² v) + θ + ψ, which uses rawTRAITVARnot theT0TRAITEFFECTquadratic. Does not implement unstdT0TOTALVARorT0TOTALVARstd.Independent of sibling psychometric PRs #327, #326, #325, #324, #322, #321, #320, #319, #318, #317, #316, #315/#272, #314, #313, #312, #311, #310, #309, #308, #307, #306, #305, #304, #303, #302, #300, #299. Does not reuse their branches.
Nine files:
event_time.rs,error.rs,lib.rs,scientific_claim_boundary_contract.rs,multilevel_event_time_recovery_contract.rs, ADR 0005, CHANGELOG, CLAUDE.md, research notes (CONTRIBUTING requires the docs slice).Local verification on
fab63b3:cargo fmt -- --check;cargo clippy -p psychometric_core --all-targets -- -D warnings;cargo test -p psychometric_core --lib188 passed;cargo test -p psychometric_core --test scientific_claim_boundary_contract53 passed;cargo test -p psychometric_core --test multilevel_event_time_recovery_contract108 passed.Still not a Kalman filter, not a matrix
expm, not ESEM estimation, not DSEM, and not ctsem estimation. Meredith (1993) and Mislevy (1991) remain unread.Do not merge without independent non-author APPROVE plus exact-head required-check success.