You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Drafted by a LLM-based AI tool (Claude Code/Opus 4.8).
Status: optional — decide before building
Raised by notes/202607241600-findings-word-reading-bands.md, which rates it the second of three follow-ups and is explicit that it is weaker than the identification table first makes it look. This issue exists so the option is recorded and can be accepted or declined deliberately, rather than being rediscovered each time someone reads the note. Read the "Why you might not want it" section before scheduling any work.
What it would be
A two-process latent change-score model over word reading W and letter sounds L, with a single reverse coupling g_W_L — prior word-reading level predicting subsequent letter-sound change — pooled across all three transitions, plus arm × window change intercepts. A no-coupling companion (g_W_L dropped) gives the PSIS-LOO contrast, following the established mech-072 / mech-172 convention.
Adjustment set, machine-searched (not hand-written) against a crossover-aware three-slice unroll of dag/dag-language-reading-lagged.dagitty, with latent general ability GA removed throughout because no measured set blocks it: {age, hearing, LS, speech} on the randomised transition, {age, hearing, arm, LS, speech} post-crossover. That is the smallest adjustment set of any reverse coupling in the suite — smaller than the seven-node set lcsm-081 was built around — and the reason is structural: in the DAG letter sounds have exactly one skill parent, speech, so there is very little to block. Two processes rather than lcsm-081's three, and a smaller covariate block, so it is genuinely cheap to fit.
Ids are not free.lcsm-083 / lcsm-183 are unavailable (83 and 84 are dose-response models); pick the next free pair against definitions.MODEL_REGISTRY and docs/models/registry-counts.json at build time.
What it would add over what is already fitted
med-176 (reverse longitudinal mediation, W_t2 → L_t4, gate-passing) already answers the direction question: NIE +0.014 on the probability scale (89% CrI +0.001 to +0.035), +0.45 letters of 32, P = 0.963 — moderate evidence that reading feeds back into letter-sound knowledge. What it does not give is a per-transition coupling: it is a single t2 → t4 window and its estimand is the share of the intervention's effect on letter sounds that runs through word reading, not a lagged level → change coefficient. lcsm-081 shows the reverse-coupling programme works where it is identifiable (WR → TR +0.084, 89% CrI +0.049 to +0.121, P ≈ 1.000; WR → TE +0.062, +0.015 to +0.112, P = 0.984).
So the addition is: pooling across all three transitions instead of one window, and a coupling on the same scale as the rest of the LCSM family.
Why you might not want it
med-176 is fragile: its own sensitivity sweep tips the NIE to zero at an unmeasured mediator → outcome confounder worth 30% of the fitted coefficient (robust_over_full_sweep: false), and latent general ability — which confounds both directions symmetrically and is unblockable by construction — is exactly such a confounder. A cheap adjustment set buys freedom from measured confounding; it buys nothing against GA, so a second model inherits that fragility wholesale rather than firming the result up. Build this if the per-transition estimand is independently wanted, not in the expectation that it strengthens med-176.
Two related things are settled and should not be re-asked: the reverse blending coupling (lcsm-082 already returns prior reading → blending change +0.055, 89% CrI −0.036 to +0.147, P = 0.835, with no evidence either direction dominates), and the change-on-change form of the question (lcsm-091 shows those terms are not estimable at n ≈ 54 — intervals two to five times wider than the level terms and centred on zero).
Acceptance criteria (if built)
Two new modules in src/language_reading_predictors/statistical_models/ (coupling + no-coupling comparator), each a SPEC = ModelSpec(kind="lcsm", ...) + fit(), ids confirmed next-free against definitions.MODEL_REGISTRY.
Registered via module auto-discovery; python scripts/check_statistical_documentation.py --write run and registry-counts.json regenerated.
Thin report templates under docs/models/{model_id}/ reusing _results_lcsm; docs/models/README.md LCSM table updated; PSIS-LOO coupling-vs-no-coupling comparison wired into scripts/compare_statistical_models.py.
--config reporting fits pass the convergence gate (R-hat ≤ 1.01, ESS ≥ 400, BFMI ≥ 0.3, 0 divergences); g_W_L reported as median + 50% / 89% CrI + P(>0), flagged an adjusted association with the residual-GA caveat and an explicit statement that it does not resolve med-176's sensitivity.
notes/202607241600-findings-word-reading-bands.md updated with the result, or with the decision not to build.
ruff check src/, npm run format:check, npm run spellcheck pass.
Related
notes/202607241600-findings-word-reading-bands.md (pass 3, "What would be worth building" item 2); design context in notes/202607141030-time-lagged-model-designs.md, notes/202607172100-reverse-mediation-wr-ls-direction-spec.md and notes/202607172230-riclpm-direction-plan.md. Models quoted: med-176, med-076, lcsm-081, lcsm-082, lcsm-091. Sequencing note: #428 may amend the lagged DAG, which would require the adjustment set to be re-derived.
Note
Drafted by a LLM-based AI tool (Claude Code/Opus 4.8).
Status: optional — decide before building
Raised by
notes/202607241600-findings-word-reading-bands.md, which rates it the second of three follow-ups and is explicit that it is weaker than the identification table first makes it look. This issue exists so the option is recorded and can be accepted or declined deliberately, rather than being rediscovered each time someone reads the note. Read the "Why you might not want it" section before scheduling any work.What it would be
A two-process latent change-score model over word reading
Wand letter soundsL, with a single reverse couplingg_W_L— prior word-reading level predicting subsequent letter-sound change — pooled across all three transitions, plus arm × window change intercepts. A no-coupling companion (g_W_Ldropped) gives the PSIS-LOO contrast, following the establishedmech-072/mech-172convention.Adjustment set, machine-searched (not hand-written) against a crossover-aware three-slice unroll of
dag/dag-language-reading-lagged.dagitty, with latent general abilityGAremoved throughout because no measured set blocks it:{age, hearing, LS, speech}on the randomised transition,{age, hearing, arm, LS, speech}post-crossover. That is the smallest adjustment set of any reverse coupling in the suite — smaller than the seven-node setlcsm-081was built around — and the reason is structural: in the DAG letter sounds have exactly one skill parent, speech, so there is very little to block. Two processes rather thanlcsm-081's three, and a smaller covariate block, so it is genuinely cheap to fit.Ids are not free.
lcsm-083/lcsm-183are unavailable (83 and 84 are dose-response models); pick the next free pair againstdefinitions.MODEL_REGISTRYanddocs/models/registry-counts.jsonat build time.What it would add over what is already fitted
med-176(reverse longitudinal mediation,W_t2 → L_t4, gate-passing) already answers the direction question: NIE +0.014 on the probability scale (89% CrI +0.001 to +0.035), +0.45 letters of 32, P = 0.963 — moderate evidence that reading feeds back into letter-sound knowledge. What it does not give is a per-transition coupling: it is a single t2 → t4 window and its estimand is the share of the intervention's effect on letter sounds that runs through word reading, not a lagged level → change coefficient.lcsm-081shows the reverse-coupling programme works where it is identifiable (WR → TR+0.084, 89% CrI +0.049 to +0.121, P ≈ 1.000;WR → TE+0.062, +0.015 to +0.112, P = 0.984).So the addition is: pooling across all three transitions instead of one window, and a coupling on the same scale as the rest of the LCSM family.
Why you might not want it
med-176is fragile: its own sensitivity sweep tips the NIE to zero at an unmeasured mediator → outcome confounder worth 30% of the fitted coefficient (robust_over_full_sweep: false), and latent general ability — which confounds both directions symmetrically and is unblockable by construction — is exactly such a confounder. A cheap adjustment set buys freedom from measured confounding; it buys nothing againstGA, so a second model inherits that fragility wholesale rather than firming the result up. Build this if the per-transition estimand is independently wanted, not in the expectation that it strengthensmed-176.Two related things are settled and should not be re-asked: the reverse blending coupling (
lcsm-082already returns prior reading → blending change +0.055, 89% CrI −0.036 to +0.147, P = 0.835, with no evidence either direction dominates), and the change-on-change form of the question (lcsm-091shows those terms are not estimable at n ≈ 54 — intervals two to five times wider than the level terms and centred on zero).Acceptance criteria (if built)
src/language_reading_predictors/statistical_models/(coupling + no-coupling comparator), each aSPEC = ModelSpec(kind="lcsm", ...)+fit(), ids confirmed next-free againstdefinitions.MODEL_REGISTRY.dag/dag-language-reading-lagged.dagittyat build time (it may change if Decide whetherWR_t → NW_{t+1}belongs in the lagged DAG (and refresh the stale d-separation asset) #428 adopts theWR_t → NW_{t+1}edge).python scripts/check_statistical_documentation.py --writerun andregistry-counts.jsonregenerated.docs/models/{model_id}/reusing_results_lcsm;docs/models/README.mdLCSM table updated; PSIS-LOO coupling-vs-no-coupling comparison wired intoscripts/compare_statistical_models.py.--config reportingfits pass the convergence gate (R-hat ≤ 1.01, ESS ≥ 400, BFMI ≥ 0.3, 0 divergences);g_W_Lreported as median + 50% / 89% CrI + P(>0), flagged an adjusted association with the residual-GAcaveat and an explicit statement that it does not resolvemed-176's sensitivity.notes/202607241600-findings-word-reading-bands.mdupdated with the result, or with the decision not to build.ruff check src/,npm run format:check,npm run spellcheckpass.Related
notes/202607241600-findings-word-reading-bands.md(pass 3, "What would be worth building" item 2); design context innotes/202607141030-time-lagged-model-designs.md,notes/202607172100-reverse-mediation-wr-ls-direction-spec.mdandnotes/202607172230-riclpm-direction-plan.md. Models quoted:med-176,med-076,lcsm-081,lcsm-082,lcsm-091. Sequencing note: #428 may amend the lagged DAG, which would require the adjustment set to be re-derived.