Skip to content

[D07] Paired cohort recovery — 4,103 shared subjects to 1,208 rows #62

Description

@duckyquang

Task metadata

Field Value
Task ID D07
Category Data
Priority High
Complexity Medium
Est. days 3

Features / method

Recover paired cohort size. 4,103 shared subjects currently collapse to 1,208 rows.

Description

The join summary in docs/echo_hubert_loader.md shows where the cohort goes:

Echo studies: 7,251 (4,585 subjects)
ECG studies: 800,035 (161,352 subjects)
Shared Echo + ECG subjects: 4,103
Echo studies among shared subjects: 6,617
Subject-only candidate Echo+ECG pairs: 116,754
Final joined manifest rows: 1,208

6,617 echo studies belong to subjects who also have an ECG, and the final manifest keeps 1,208. TECHNICAL.md 3.1 predicted "a few thousand to tens of thousands" of paired rows, so the current cohort is at the bottom of the expected range and below it on the echo side.

Cohort size plausibly explains the E10 baseline gap, and it is the hard ceiling on Task A's statistical power — a 248-row test split makes stratified fairness cells thin and bootstrap CIs wide. Worth understanding before treating the current numbers as final.

The first question is which constraint is actually binding: the 48h pairing window, the LVEF label requirement, the admission-matching mode, or the echo embedding coverage (7,251 studies pooled from the ~525K clip corpus, which is itself a small slice).

Steps:

  1. Produce the funnel from 6,617 candidate echo studies down to 1,208 with a count dropped at each step. build_cohort.py already emits cohort_funnel.json — read it rather than reconstructing.
  2. Isolate the binding constraint. Check the pairing window (24h vs 48h vs admission mode) and the LVEF label join separately.
  3. Check whether echo embedding coverage is the limiter. 7,251 echo studies out of the full corpus is a small fraction — establish whether more studies can be pooled from the available EchoJEPA shards.
  4. Run a sensitivity analysis on the pairing window and report cohort size vs window, closing the open decision in TECHNICAL.md 11.
  5. If a defensible relaxation gets materially more rows, rebuild the manifest and note that M10 should be rerun on it.

Acceptance criteria:

  • Exclusion counts published for every step from candidate pairs to final cohort.
  • The binding constraint named, with numbers.
  • Pairing window decision (24h vs 48h vs admission) fixed and justified rather than left open.
  • A clear yes/no on whether cohort size can be materially increased without weakening the pairing protocol.

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions