feat(psychometric): recover ESEM loadings and refuse reverse DSEM lags - #119
feat(psychometric): recover ESEM loadings and refuse reverse DSEM lags#119seonghobae wants to merge 1 commit into
Conversation
Add a standalone psychometric_fit crate that recovers exploratory cross-loadings on a CPU f64 OLS path from admitted log-ratio coordinates and refuses non-forward event-time DSEM lags. Does not recreate psychometric_core or allocate migration 0008.
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
1 similar comment
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
Summary
f64ESEM/DSEM fit path that does not treat raw topic proportions as Euclidean indicators.psychometric_fit: OLS recovers known exploratory cross-loadings from admitted ALR/ILR/logistic-normal coordinates; recovered RMSE is below a zero-loading collapse.psychometric_core(feat(psychometric): posterior ESEM input gates with true-parameter RMSE #49 owns input gates) and does not allocate migration0007/0008(#45still owns0007).Claim boundary
Test plan
esem_dsem_fit_contractfailed before the crate existedcargo test -p psychometric_fit --offline --lib --testscargo clippy -p psychometric_fit --all-targets --offline -- -D warningscargo llvm-cov -p psychometric_fitauthored lines 108/108; nightly-2026-08-01 branches 30/30