Skip to content

Restore Driver Table 2 T0TDPREDCOV as t0_m·v - #317

Draft
seonghobae wants to merge 1 commit into
mainfrom
agent/psychometric-t0-tdpred-cov
Draft

Restore Driver Table 2 T0TDPREDCOV as t0_m·v#317
seonghobae wants to merge 1 commit into
mainfrom
agent/psychometric-t0-tdpred-cov

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Summary

Independent Driver, Oud, and Voelkle (2017, JSS 77(5)) Table 2 restore of one named quantity: T0TDPREDCOV.

Table 2 names T0TDPREDCOV the n.latent × (Tpoints × n.TDpred) covariance matrix between latents at T0 and time-dependent predictors. Default of "auto" restricts covariance to 0. Table 3 names T0TDPREDEFFECT the first-occasion TD effect (a regression). The crate already recovers T0TDPREDEFFECT as t0_m.

The 2017-era ctFit.R (ctsem 2.5.0) places T0TDPREDCOV in the OpenMx S covariance block between first-occasion latents and TD predictors. The 2017-era summary.ctsemFit.R comments out TDPREDVAR / TDPREDVARstd and does not form T0TDPREDCOV in summary. SEM conversion: T0TDPREDEFFECT = T0TDPREDCOV * solve(TDPREDVAR), so the scalar covariance is t0_m · v after finite t0_m and v ≥ 0. Form t0_m first, then multiply by v. A zero coefficient or zero predictor variance is exact 0. A signed coefficient is a signed covariance. Free first-occasion covariance does not require stable a < 0.

This is not a std map. This crate does not invent TDPREDVARstd.

JSS PDF re-opened 2026-08-30T16:40Z from https://www.jstatsoft.org/index.php/jss/article/download/v077i05/1104

Fail-closed / refuses

  • unstandardised t0_m is not T0TDPREDCOV (equal numbers when v = 1 remain distinct named quantities)
  • analog extra t0_m² v is not T0TDPREDCOV (equal numbers when t0_m = 1 remain distinct named quantities; Table 2 names the covariance, not that extra)
  • TI analog t0_b · v is not T0TDPREDCOV even when t0_m = t0_b
  • process m · v is TDPREDEFFECT × TDPREDVAR and is not this first-occasion map even when t0_m = m
  • v < 0, non-event clock, overflow, and nonfinite inputs fail closed

Scope

Stays inside psychometric_core. Does not add a second invariance crate. Does not recreate #78 longitudinal_core or #80 irregular_time. Independent of open sibling std PRs (#299#316). Register items 110–111 (1–105 are on the research note; 55–88 / 106–109 are queued elsewhere).

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 (Unpaywall is_oa: false).

Verification

cargo test -p psychometric_core green. cargo clippy -p psychometric_core --all-targets -- -D warnings clean.

Do not merge on this author. Do not self-approve. Draft until independent non-author APPROVE + exact-head required-check success.

Table 2 names T0TDPREDCOV the covariance between latents at T0 and
time-dependent predictors. The 2017-era OpenMx path places that matrix
in S; Table 3 T0TDPREDEFFECT is the regression, so the scalar map is
t0_m · v. This is not the coefficient, not analog extra t0_m² v, not
the TI analog t0_b · v, and not process m · v. Register items 110–111.
@coderabbitai

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant