feat(psychometric): recover Driver p.16 TIPREDMEANSstd on main - #339
feat(psychometric): recover Driver p.16 TIPREDMEANSstd on main#339seonghobae wants to merge 1 commit into
Conversation
Table 3 names TIPREDMEANS the free n.TIpred×1 time-independent predictor means. Footnote 4 standardises that named mean with only the relevant TIPREDVAR, so the scalar map is μ_z/√v after strictly positive v. The 2017-era summary forms TIPREDVARstd and does not form TIPREDMEANSstd. Zero mean is +0 bits. Zero v, a non-event clock, and overflow fail closed. Unstandardised TIPREDMEANS, TIPREDVARstd v/v=1, and μ_z/√asymDIFFUSION remain distinct named quantities.
|
Warning Review limit reachedNext included review available in 25 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 (11)
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 |
|
Independent review requested on exact head @coderabbitai review |
|
|
Summary
psychometric_corerecovers the Driver, Oud, and Voelkle (2017, p. 16) scalarTIPREDMEANSstdasμ_z / √vafter strictly positiveTIPREDVARv.This is an independent successor of the already-named
TIPREDVARstdcorrelation and of queuedTDPREDMEANSstd(#338). It does not depend on unpublished crates. Table 3 namesTIPREDMEANSthe freen.TIpred × 1matrix of time-independent predictor means and namesTIPREDVARthe Cholesky of time-independent predictor variance. Page 16 prints standardised matrices with the suffixstdwhen appropriate. The printed example on p. 16 isdiscreteDRIFTstd, notTIPREDMEANSstd. Footnote 4 standardises using only the relevant variance, not the total. The relevant variance for that named predictor mean isTIPREDVARv, not process-dynamicsasymDIFFUSION-q / (2 a).CRAN-era ctsem
summary.ctsemFit.Rforms unstandardisedTIPREDVARand formsTIPREDVARstdwheneververbose = TRUEandn.TIpred > 0assolve(sqrt(diag(TIPREDVAR) + ridging)) %&% TIPREDVAR. That source does not formTIPREDMEANSor aTIPREDMEANSstdmatrix. This crate therefore owns the footnote-4 standardisation of that named mean after a modeledv.JSS PDF re-opened 2026-08-31T03:30Z from https://www.jstatsoft.org/index.php/jss/article/download/v077i05/1104.
Map
Form strictly positive
vfirst, then divideμ_zby√v:TIPREDMEANSstd = μ_z / √vA zero mean is exactly zero. Overflow of the ratio fails closed.
Claim boundary
TIPREDMEANSμ_zis defined for a zero predictor variance and is notTIPREDMEANSstd.TIPREDVARstdv / v = 1recovers the same number whenμ_z = √vand remains a distinct named quantity. This crate does not currently export aTIPREDVARstdrecover function; the refuse still names that quantity.μ_z / √asymDIFFUSIONuses process-dynamics variance and is not this predictor map.Event time only. Zero
vhas no positive SD and fails closed.TIPREDMEANSdoes not require stablea < 0. Negative means remain valid signed locations.Still not a Kalman filter, not a matrix
expm, not ESEM estimation, not DSEM, and not ctsem estimation.Meredith (1993) remains unread (Unpaywall historically
is_oa: false; Springercontent/pdfis an HTML stub). Mislevy (1991, Psychometrika, 56, 177–196) remains unread on the same terms (DOI10.1007/bf02294457).Verification
cargo test -p psychometric_core(full crate, including the new unit, recovery, and claim-boundary tests)cargo clippy -p psychometric_core --all-targets -- -D warningscargo fmt -p psychometric_core -- --checkRUSTDOCFLAGS='-D warnings' cargo doc -p psychometric_core --no-depsDo not convert #310. Do not merge without independent non-author APPROVE and exact-head required-check success.