Cordthym

Per-patient cardiac rhythm classification from remembered episodes — study record

PRIVATE — Working study record. Negative results and criteria that failed as written are retained. Not indexed.
active 6corrected 1negative 4retracted 1total 12

Scope of this record. All findings below concern within-patient cardiac rhythm classification from inter-beat intervals, measured on public patient data. The underlying method — a distance between processes and a memory-based classifier built on it — is developed and evaluated separately, on non-clinical signals, in the method record. Results in that record concern the method in general and are not clinical claims. Results here concern this application and do not extend to the method's behaviour in other domains.

Counts and the table below are generated from manifest.json, so they cannot disagree with the record. Newest finding: 2026-08-05.

FindingStatusRungDate
1Single-beat morphology: classification does not reach the pre-registered thresholdnegative32026-08-05
2Rhythm-level classification: per-patient AF detection reaches 0.935 at 16 stored windows per stateactive32026-08-05
3Comparison to published detectors, and to a population reference store, at equal store sizenegative32026-08-05
4Accuracy is limited by store size, not by hyperparameters: 0.983 at 64 stored windows per stateactive32026-08-05
5Continuous recording with no exclusions: 0.966 accuracy; AF onset detected in the first window of every episodeactive32026-08-05
6Replication on an independent database: holds for 11 of 12 patients, fails below chance for oneretracted42026-08-05
7Replication, restated with balanced query sets: 0.820 mean balanced accuracy, below the first databasenegative42026-08-05
8Diagnosis of the worst-performing patient: the representation does not separate that patient's two rhythmsactive32026-08-05
9The failures are physiological, not algorithmic: in those patients the non-AF rhythm is itself irregularcorrected32026-08-05
10The representation's fixed bins are not the cause: per-patient adaptive binning does not rescue the failing patientscardiac rhythmnegative32026-08-05
11The information is present and the method discards it: a single-number detector separates the patient the method classifies at chancecardiac rhythmactive32026-08-05
12Adding an interval channel to the representation raises accuracy on both databases, but not on the patient it was built forcardiac rhythmactive42026-08-05

The record, newest first

12Adding an interval channel to the representation raises accuracy on both databases, but not on the patient it was built forcardiac rhythmactive

2026-08-05 · rung 4 — replicated on a second, independent patient database

Claim

The representation was extended so that each frame carries two panels of equal mass: the existing distribution over successive interval DIFFERENCES, and a new distribution over the absolute intervals themselves, which the previous representation could not observe. On the second database mean balanced accuracy rises from 0.820 to 0.875; on the first it rises from 0.966 to 0.987. The two patients finding 9 identified as having states that do not differ gain the most: patient 10 rises 0.560 to 0.780 and patient 11 rises 0.440 to 0.590. Patient 103 does not recover: 0.510 to 0.540, with non-AF recall moving only from 0.040 to 0.100 while AF recall stays at 0.980.

Evidence

Both encoders were run in the same execution over the same patients, the same stores of 64 windows per state, the same class-balanced query sets and the same decision rule; the unmodified encoder reproduced the published per-patient figures of finding 7 exactly, including the 0.820 mean, so the two columns are comparable. The panel weighting was fixed at one half each before the run and was not adjusted afterwards. Four pre-registered criteria were declared before execution: recovery of patient 103 by at least 0.20 (FAILED at 0.030), overall gain of at least 0.03 (passed at 0.055), no patient at or above 0.90 losing more than 0.05 (passed, worst change -0.017), and no regression on the first database (passed at +0.021).

Scope / limits

Two databases, within-patient, single seed, one panel weighting. The first-database control figure here is 0.966, which coincides numerically with the published figure of finding 5 but is produced under this experiment's protocol rather than that one; the agreement is a coincidence and the two numbers are not the same measurement. No claim is made about which physiological quantity the interval panel captures beyond it being the absolute interval, and the change has not been adopted in the software.

Controls that could have killed it

  • the unmodified encoder was re-measured in the same run rather than compared against previously published numbers, so an implementation difference could not appear as an improvement
  • the panel weighting was fixed before the run, since a weighting chosen after seeing the outcome would make the result a property of the choice
  • a criterion that the change must not degrade the first database, which a representation tuned to rescue one difficult patient could easily have failed
  • the pre-registered recovery criterion was allowed to fail and is reported as failed
Two consequences, and they point in opposite directions. First, the patients finding 9 attributed to physiology gain the most from a change to our own representation, which further weakens the position that those recordings lack separable information: for patients 10 and 11 the information was there and the representation could not see it. Second, patient 103 remains unexplained. Four candidate causes have now been eliminated by measurement — bin clipping, per-patient adaptive binning, retrieval geometry, and the absence of rate — while a single number computed from that patient's own intervals separates its two states at an AUC of 0.026. A method that alarms on approximately ninety per cent of one patient's normal rhythm, for reasons that survive four eliminations, is the open problem of this record. Adopting the interval channel in the software is a separate decision: it changes the encoder version and, by design, invalidates every patient store recorded under the previous one.

validate/rate_channel_test.py · validate/rate_channel_test_result.json

11The information is present and the method discards it: a single-number detector separates the patient the method classifies at chancecardiac rhythmactive

2026-08-05 · rung 3 — measured on real patient data, single database

Claim

On patient 103, which finding 7 classified at 0.510 balanced accuracy and finding 9 attributed to an absence of separable signal, single-number detectors computed from beat timing alone separate the two rhythm states almost completely. Threshold-free AUC over that patient's pure-label windows: mean interval 0.026, RMSSD 0.070, median absolute successive difference 0.089 — all far from chance in the inverted direction, corresponding to separability of approximately 0.97, 0.93 and 0.91. The method, given the same windows and 64 stored examples of each of that patient's own states, assigns 96 percent of its non-AF windows to AF. Patients 10 and 11 also carry above-chance per-window information, with best absolute deviations from chance of 0.256 and 0.170, so the claim of absent signal does not hold for them either, though the margin is much smaller.

Evidence

Two further explanations were tested and eliminated before this one. Per-patient adaptive binning does not change patient 103's result (finding 10). Retrieval geometry is measurably skewed — AF stored windows occupy 86.8 percent of the nearest-neighbour slots returned to that patient's non-AF queries, against 50 percent for its balanced 64-plus-64 store — but correcting it does not help: hubness-corrected local scaling gives 0.520 and a per-class nearest-mean rule 0.510, against 0.510 for the current distance-weighted vote. One property of the representation is established by construction rather than by measurement: it is computed from successive differences only, so absolute rate is not among its inputs, and rate is the single most discriminative feature for this patient. Why the variability information, which the representation does encode, is also unused is not yet established.

Scope / limits

One patient for the strong result, three for the weaker one, one database, within-patient. The AUC figures are threshold-free but computed on the same windows they describe, so they are optimistically biased as performance figures and are not a competing method: they are used only to refute an impossibility claim, never to support a performance claim. No fix is proposed or tested here.

Controls that could have killed it

  • AUC is rank-based with tie correction and fits no threshold, so the separability figure cannot come from a threshold chosen to flatter it
  • three features reported rather than the best one alone, including mean rate, which the record had previously named as a possible confound for a variability difference
  • the two competing explanations were each given a pre-registered criterion that could have carried them, and the hubness criterion for a real skew passed while the criterion that correcting it would help failed
  • the strong result is stated in the inverted direction it was measured in, rather than reported as a magnitude that would hide the inversion
This corrects finding 9, whose original conclusion read: "The classifier is not misreading these recordings: for these patients the quantity it measures genuinely does not differ between the two states, and no detector operating on beat timing alone — including the published comparators in finding 3 — could separate them either." That sentence was reasoning, not measurement; no detector was run when it was written. The measurement, run afterwards, contradicts it. Finding 9's RMSSD table stands and its screening suggestion stands in weakened form — the ratio predicts where this method fails, not where the signal is absent. The practical consequence is the opposite of the original one: for a patient such as 103 the correct response is not to declare the patient unservable but to fix the method, and until that is done a false-alarm rate of this size on a patient's own normal rhythm is the failure mode that matters most clinically.

validate/hubness_decider_test.py, validate/simplest_detector_test.py · validate/simplest_detector_test_result.json · supersedes finding 9

10The representation's fixed bins are not the cause: per-patient adaptive binning does not rescue the failing patientscardiac rhythmnegative

2026-08-05 · rung 3 — measured on real patient data, single database

Claim

The hypothesis that the failures of finding 7 are caused by the encoder — which clips successive interval differences at plus or minus 0.4 seconds and bins them with edges fixed across all patients, so that a highly variable patient could saturate the outermost bins and have both states encode alike — is refuted. Across 12 patients, balanced accuracy is 0.820 with the fixed encoder, 0.825 with equal-width bins set to the patient's own 99th percentile, and 0.830 with equal-mass bins at the patient's own quantiles. Patient 103, the patient the hypothesis was constructed to explain, is unchanged: 0.510 fixed, 0.510 scaled, 0.530 quantile.

Evidence

Bin edges were fitted on each patient's store windows only, never on query windows. The fixed-bin condition was re-run inside the same script rather than compared against previously reported numbers, and reproduced the published per-patient figures of finding 7 exactly, including the 0.820 mean. Separately, the degree of saturation does not predict performance: across the same patients, balanced accuracy against worst-class clipping fraction gives r = -0.364 and against outermost-bin weight r = -0.040. What does correlate is whether the two classes differ in the encoder's output at all, at r = +0.631. Three pre-registered criteria were declared before running and all passed, but they are reported here as weak rather than as support: the rescue criterion's +0.057 is carried almost entirely by one patient, 01, at +0.140, and the criterion that the non-saturating failures should not move passed on a group mean of -0.050 whose two members moved in opposite directions, -0.170 and +0.070.

Scope / limits

Twelve patients, one database, single seed, within-patient. Two adaptive schemes tested; others exist. A per-patient encoder remains defensible on other grounds — it helped patient 01 substantially — but it does not explain or repair the failures this record has reported.

Controls that could have killed it

  • the fixed-bin baseline was recomputed in the same run rather than carried over, so an implementation difference could not masquerade as an improvement
  • encoder parameters fitted on store windows only, since fitting them on the queried windows would leak the answer into the representation
  • criteria written into the script before any result existed, including the criterion that would have falsified the hypothesis
This was our own hypothesis, proposed before it was tested and refuted by the test. It is recorded because the alternative — quietly dropping a hypothesis that failed — would leave the impression that the encoder question is open when it has been answered.

validate/encoder_saturation.py, validate/adaptive_encoder_test.py · validate/adaptive_encoder_test_result.json

9The failures are physiological, not algorithmic: in those patients the non-AF rhythm is itself irregularcorrected

2026-08-05 · rung 3 — measured on real patient data, single database

Claim

The patients on which classification fails are those whose two rhythm states do not differ in beat-to-beat variability. Median RMSSD for the non-AF and AF states, and their ratio, across the three lowest- and three highest-scoring patients of finding 7: patient 103, 282 ms non-AF against 109 ms AF (ratio 0.39, score 0.510); patient 11, 240 against 213 (0.89, 0.440); patient 10, 132 against 165 (1.25, 0.560); patient 110, 64 against 186 (2.89, 0.990); patient 00, 15 against 95 (6.50, 1.000); patient 102, 13 against 166 (12.42, 1.000). Every patient with a ratio above 2.8 scored at or above 0.990, and every patient below 1.3 scored at or below 0.560, with no overlap between the groups.

Evidence

RMSSD computed on pure-label windows of 64 intervals, reported as the median across windows of each class per patient. Normal sinus rhythm typically presents RMSSD in the range of tens of milliseconds; values of 240 and 282 ms in the non-AF state indicate a markedly irregular non-AF rhythm, consistent with frequent ectopy or an atypical supraventricular rhythm. Patient 103's AF at 109 ms is comparatively regular, consistent with a controlled ventricular response.

Scope / limits

Six patients from one database, selected as the three lowest and three highest scorers, so the separation of the two groups is not an independent test of the threshold. The clinical interpretations of the underlying rhythms are inferences from interval statistics, not annotated diagnoses. Whether the ratio predicts performance on unselected patients is untested.

Controls that could have killed it

  • both high- and low-scoring patients measured under the identical procedure, without which a low ratio among failures would carry no comparison
  • median across windows rather than a whole-recording figure, so a short unrepresentative segment cannot dominate
  • rate reported alongside variability, since a rate difference could otherwise be mistaken for a variability difference

Corrected — the part that did not hold

The measurement below stands; the conclusion drawn from it in the note does not, and the note has been rewritten. The claim that no detector operating on beat timing alone could separate these patients was never tested against a detector. It has now been tested against the simplest one that exists — a single number per window, thresholded — and it fails for every patient it was asserted about. For patient 103 the mean interval separates the two states at AUC 0.026 and RMSSD at 0.070, both far from chance in the inverted direction, meaning approximately 0.97 and 0.93 separability, while the method scores 0.510 on the same windows and assigns 96 percent of that patient's own non-AF rhythm to AF. Patients 10 and 11 also carry per-window information above chance (best absolute deviation from chance 0.256 and 0.170). The information these patients' recordings contain is therefore not absent; on patient 103 it is abundant, and the failure is the method's. The original wording is retained in finding 11, which reports the measurements that produced this correction. What survives here is the RMSSD table itself and the observation that per-class variability ratio tracks performance across these six patients.

Rewritten 2026-08-05 following the correction above; the original note is quoted in finding 11. What holds: the per-class variability ratio tracks performance across these six patients, and it is computable at enrolment, before any classification is issued, which makes it a candidate screening statistic for identifying patients this method serves poorly. What does not hold: that the recordings themselves lack the information. They do not. The ratio predicts where THIS method fails, not where the signal is absent, and it remains unvalidated on unselected patients with no specific threshold proposed.

validate/why_patient11.py

8Diagnosis of the worst-performing patient: the representation does not separate that patient's two rhythmsactive

2026-08-05 · rung 3 — measured on real patient data, single database

Claim

For the patient scoring lowest in finding 7, the representation does not distinguish the two rhythm states at all. Mean distance between windows of opposite class is SMALLER than between windows of the same class (22.64 against 23.34, separation −0.70). A classifier retrieving by that distance is therefore reading noise for this patient, and its output is not merely unreliable but uninformative. Two candidate explanations are excluded: the store and query sets were class-balanced by construction, and accuracy differs little between queries near and far in time from their nearest stored window (0.380 against 0.320), so neither class imbalance nor within-recording drift accounts for it.

Evidence

Within-class mean distance computed over 12 stored windows per class, between-class over all cross-class pairs. Label structure of the recording was also examined and does not explain the result: the recording is 65.7% AF with only 3 rhythm changes and no AF run shorter than one analysis window, so the labels are neither sparse nor fragmented.

Scope / limits

One patient. Whether negative separation occurs in the other low-scoring patients, and whether it can be predicted from the recording before classification is attempted, is not yet measured.

Controls that could have killed it

  • class balance and temporal drift tested as alternative explanations before separation was concluded
  • label structure inspected directly rather than assumed adequate
This is a per-patient failure of the representation rather than of the retrieval procedure or the store. It suggests a usable safeguard: separation between the stored classes can be measured at enrolment, before any classification is attempted, and a patient whose classes do not separate can be identified as one the method cannot serve rather than issued unreliable output. Finding 9 identifies the physiological cause and tests whether the check is predictive.

validate/diagnose_patient11.py

7Replication, restated with balanced query sets: 0.820 mean balanced accuracy, below the first databasenegative

2026-08-05 · rung 4 — replicated on a second, independent patient database

Claim

Repeating the replication with class-balanced query sets, correcting the defect that retracted finding 6: mean balanced accuracy across the same 12 patients is 0.820, against a pre-registered replication threshold of 0.90 and against 0.966 on the first database. The criterion fails, and the corrected figure is lower than the flawed one it replaces. Per-patient balanced accuracy: 1.000, 1.000, 0.990, 0.980, 0.950, 0.920, 0.890, 0.880, 0.720, 0.560, 0.510, 0.440. Onset latency replicates without qualification: median 0 windows over 14 episodes.

Evidence

Queries drawn equally from both classes, in recording order within each class, up to 100 per patient; balanced accuracy is the mean of the two class recalls and does not move with the query mix. Stores of 64 pure windows per state; representation, window length, store size and decision rule unchanged from the first database. Two distinct failure modes are visible in the per-class recalls: patient 103 classifies almost everything as AF (non-AF recall 0.040, AF recall 0.980), while patient 11 is close to inverted in both directions (0.560 and 0.320).

Scope / limits

Twelve patients from one additional database of 84 records; within-patient only; single seed. Balanced accuracy is reported because the class mix varies by patient and raw accuracy is not comparable across them.

Controls that could have killed it

  • class-balanced query sets, the absence of which invalidated finding 6
  • balanced accuracy reported rather than raw accuracy, so that a patient with a skewed rhythm mix cannot inflate or deflate the figure
  • per-class recall reported for every patient, which is what makes the two distinct failure modes visible
  • no parameter adjusted for this database
The method does not replicate on this database at the level measured on the first one. That is the finding. Three patients fall at or below 0.560, and the mechanism differs between them, so a single explanation should not be assumed. Finding 8 reports the diagnosis for one of them. The audit that produced this correction is itself a result: a protocol can pass on one database and be invalid on another purely because of how the rhythm is distributed within recordings, and the check for that is cheap and was not run until a below-chance figure forced it.

validate/afib_replication_ltafdb.py · supersedes finding 6

6Replication on an independent database: holds for 11 of 12 patients, fails below chance for oneretracted

2026-08-05 · rung 4 — replicated on a second, independent patient database

Claim

ORIGINAL WORDING, RETAINED AND RETRACTED — this is the claim as first published, kept visible so the correction can be read against it; it is superseded by finding 7 and must not be cited as a result. The finding 5 protocol was repeated without modification on the Long Term AF Database — different patients, different recordings, longer durations, 128 Hz rather than 250 Hz. Mean accuracy across 12 patients was 0.893, below the pre-registered replication threshold of 0.90, and the criterion is recorded as failed. The mean is not representative of the distribution: 11 of the 12 patients scored between 0.660 and 1.000 with a mean of 0.942, and a single patient scored 0.350 — below the 0.500 chance level for a two-class problem, indicating a systematic rather than random failure for that recording. Onset latency replicated without qualification: median 0 windows across the episodes measured.

Evidence

Per-patient accuracy: 1.000, 1.000, 1.000, 1.000, 0.990, 0.990, 0.970, 0.900, 0.850, 0.660, 0.350 and 1.000. Up to 100 windows per patient in recording order with no exclusions, stores of 64 pure windows per state, and the representation, window length, store size and decision rule fixed on the first database with no adjustment for this one. Transition windows were classified at 0.931 against 0.893 for pure windows, the reverse of the ordering observed on the first database.

Scope / limits

Twelve patients from one additional database; the database contains 84 records, so this is a subset and not the full set. Within-patient only. The below-chance patient has not yet been diagnosed, so whether it reflects a data property, a labelling property, or a failure mode of the method is unknown.

Controls that could have killed it

  • no parameter was adjusted for the second database — a replication that permits retuning tests the tuner rather than the method
  • the replication threshold was set below the original result before running, since a replication that only counts on an exact match is not a replication test
  • per-patient accuracy reported in full rather than as a mean, which is what makes the single failure visible

Why this was wrong

The per-patient figures in this finding are not accuracy. The query sets were taken in recording order, and this database contains long uninterrupted rhythm blocks, so for most patients every queried window carried the same label. A subsequent audit of both databases under the published protocol found single-class query sets for 42 of 56 evaluable patients here — and, separately, for 0 of 9 patients in the first database, so finding 5 is unaffected. Where a query set holds one class, the reported figure is that class's recall alone and carries no information about the other class. Restated with class-balanced query sets in finding 7, where the replication figure falls from 0.893 to 0.820. The original wording is retained below.

A below-chance result on a two-class problem is more informative than a merely poor one: it indicates the classifier is systematically inverted for that recording rather than uninformed. Identifying its cause is the next measurement, and until it is identified the possibility that the same failure mode is present and undetected in other patients cannot be excluded. The pre-registered criterion failed and is recorded as failed; reporting the 11-patient mean of 0.942 as the result would be selecting the sample after seeing it.

validate/afib_replication_ltafdb.py · superseded by finding 7

5Continuous recording with no exclusions: 0.966 accuracy; AF onset detected in the first window of every episodeactive

2026-08-05 · rung 3 — measured on real patient data, single database

Claim

Findings 2 and 4 excluded windows spanning a rhythm transition, which are the windows containing episode onset and offset. Scoring every window with no exclusions, mixed windows assigned by majority class, accuracy was 0.966 across nine patients. Transition windows were classified less accurately than pure windows (0.902 against 0.969) without moving the overall figure outside the published range. In 14 AF episodes of at least three windows, the first AF classification occurred in the first window of the episode in every case (median lag 0 windows, 90th percentile 0).

Evidence

Within-patient stores of 64 pure windows per state; queries comprise the remainder of that patient's recording in recording order with no filtering, to 150 windows per patient. Per-patient accuracy ranged from 0.873 to 1.000; the lowest-scoring patient contained the largest proportion of transition windows (28 of 150).

Scope / limits

Within-patient only; cross-patient generalisation not tested. Single database, single seed, single window length, majority-label assignment for mixed windows. Published detectors differ in episode-level scoring convention, so this is a comparison under a comparable rather than identical protocol and supports a claim of comparable performance only. Fourteen episodes is a small sample for the onset result.

Controls that could have killed it

  • no exclusions applied, removing the exclusion that limited comparability of findings 2 and 4
  • transition and pure windows scored separately as well as jointly
  • queries evaluated in recording order rather than shuffled
Not yet measured: generalisation to a patient absent from the store, recording durations beyond those in this database, episodes shorter than three windows, and any comparison against a deployed clinical device. Replication on a second database is reported in finding 6.

validate/afib_transitions.py

4Accuracy is limited by store size, not by hyperparameters: 0.983 at 64 stored windows per stateactive

2026-08-05 · rung 3 — measured on real patient data, single database

Claim

Two experiments locate the source of the deficit reported in finding 3. A hyperparameter sweep over window length, sub-window length and bin count, tuned on five patients and evaluated on five patients excluded from the sweep, produced no change in held-out accuracy (0.940 for both the sweep-selected and default configurations, while development-set accuracy rose from 0.925 to 0.945). Increasing store size produced 0.935, 0.967 and 0.983 accuracy at 16, 32 and 64 windows per state respectively, still increasing, with the Euclidean control lower at every level.

Evidence

Coverage extension across nine patients, 40 queries each, within-patient stores. Eleven configurations were evaluated on the development set; the verdict was measured only on patients excluded from tuning. Sixty-four windows per state corresponds to approximately one hour of that patient's labelled rhythm.

Scope / limits

This measurement excludes windows spanning a rhythm transition; finding 5 removes that exclusion and reports the figure appropriate for comparison. Within-patient only, single database, single seed.

Controls that could have killed it

  • tuning evaluated only on patients excluded from the sweep, which identified the development-set gain as overfitting
  • Euclidean control carried at every coverage level, so the increase is not attributable to store size alone
  • default configuration retained as a comparison arm
The published comparison in finding 3 was between tuned detectors trained on substantially more data and an untuned method given 16 examples per state. Accuracy increasing monotonically with stored examples, without any retraining step, is the behaviour predicted for a memory-based classifier.

validate/afib_tune_holdout.py

3Comparison to published detectors, and to a population reference store, at equal store sizenegative

2026-08-05 · rung 3 — measured on real patient data, single database

Claim

Neither pre-registered comparison was met. Published interval-based AF detectors report 95–98% accuracy on this database; the untuned method reached 93.5%. With store size held equal, a store composed of the patient's own windows exceeded a store composed of other patients' windows by 2.7 points accuracy and 3.7 points specificity across ten patients, against 10-point thresholds.

Evidence

Sixteen windows per class in both arms, with identical queries and splits per patient, isolating store composition from store size. Mean differences: accuracy +0.027, specificity +0.037, sensitivity −0.003. Four of ten patients showed no difference, the population store having reached 1.000 on them; three showed small negative differences. Published figures are taken from the literature on the same database and were not re-measured.

Scope / limits

Single database, single window length, single representation, single seed. The accuracy comparison is superseded by finding 4; the store-composition comparison stands.

Controls that could have killed it

  • equal store size in both arms, without which store composition and store size are confounded
  • population store balanced by class and drawn from all other patients
  • specificity reported separately from accuracy, since the documented limitation of deployed monitors is false-positive burden
Post-hoc and not pre-registered: the difference between store compositions was not uniform across patients. It correlated negatively with population-store performance (r = −0.86 accuracy, r = −0.87 specificity). For the three patients where the population store performed below 0.90, mean differences were +0.100 accuracy and +0.189 specificity; in the weakest case specificity increased from 0.387 to 0.871. This is a hypothesis requiring a pre-registered test on held-out patients and is not claimed here.

validate/afib_personal_vs_population.py

2Rhythm-level classification: per-patient AF detection reaches 0.935 at 16 stored windows per stateactive

2026-08-05 · rung 3 — measured on real patient data, single database

Claim

Classification of atrial fibrillation from inter-beat interval dynamics, against the same patient's own non-AF rhythm, reached 0.935 accuracy at 16 stored windows per state (chance 0.500). Reconstruction accuracy was 0.89–0.92 at every coverage level tested, in contrast to finding 1 where it did not increase.

Evidence

Ten patients from the MIT-BIH Atrial Fibrillation Database, each recording containing both AF and non-AF periods for that patient, permitting a within-patient store. Windows of 64 intervals; store, reference and query sets window-disjoint; 60 queries per patient. The information-geometric distance exceeded a Euclidean control on identical windows at all four coverage levels (+3.0, +5.5, +4.3, +3.7 points).

Scope / limits

Within-patient classification only. Cross-patient generalisation was not tested. Windows spanning a rhythm transition were excluded at this stage; finding 5 removes that exclusion. Two classes, chance 0.500, single seed.

Controls that could have killed it

  • Euclidean control computed on identical windows and splits, isolating the distance from the representation and retrieval procedure
  • windows with mixed labels excluded rather than assigned, an exclusion subsequently tested in finding 5
  • reference set consists of held-out windows from the same patient, with no averaged prototypes in the evaluator
Two pre-registered criteria failed as written and are retained: one required strictly monotonic improvement, against which a 0.7-point decrease occurred between the first two coverage levels; the other required a 5-point margin over the Euclidean control at the highest coverage level, where the observed margin was 3.7 points. Findings 1 and 2 differ only in the physiological question posed of the same patients, method and representation family.

validate/coverage_law_afib.py

1Single-beat morphology: classification does not reach the pre-registered thresholdnegative

2026-08-05 · rung 3 — measured on real patient data, single database

Claim

Classification of individual heartbeats by waveform morphology (five rhythm classes, single patient, ECG5000) did not meet its pre-registered criteria. Recognition accuracy increased with the number of stored examples (0.370, 0.428, 0.517, 0.517 for stores of 1, 2, 4 and 8 examples per class; chance 0.200) but plateaued at approximately half the 0.85 threshold. Reconstruction accuracy did not increase across the same range (0.407, 0.450, 0.417, 0.467).

Evidence

Three seeds per coverage level. Store, query and reference sets were beat-disjoint. Classification used a nearest-neighbour reference set with no averaged prototypes. Protocol and thresholds were identical to those used for the non-clinical validation of the same method. Both decision rules (weighted vote and class prototype) tracked within 0.03 at every level.

Scope / limits

Single public database, single patient, single representation. Applies to beat morphology only; rhythm-level classification is addressed in finding 2.

Controls that could have killed it

  • pre-registered thresholds frozen before execution, identical to those used in the method's non-clinical validation
  • chance floor reported alongside accuracy
  • both decision rules reported at every coverage level
The underlying distance compares processes by their temporal evolution. The identity of an isolated heartbeat is carried predominantly by waveform shape rather than by evolution over time, which is consistent with the observed null. This delimits the applicable question type for the method in cardiac signals.

validate/coverage_law_ecg.py

Every equation, with an honest label on each

No new mathematics is introduced by this record. The distance, the alignment and the geodesic operators are defined in the companion papers. The representation below is the only component specific to the cardiac application.

A window of heartbeats is expressed as a sequence of inter-beat intervals. Consecutive differences are binned into a magnitude-weighted distribution per sub-window, producing a curve of distributions over the window.

§1 Rhythm representation

APPLICATION-SPECIFIC — representation choice, not new mathematics

window → Δ(interval) → magnitude-weighted histogram per sub-window → curve of distributions

Plain: Beat-to-beat change in interval length is summarised as a distribution over short spans; the sequence of those distributions represents the rhythm.

Provenance: The comparison operating on this representation is defined in the companion papers and cited there. Specific to this record is the physiological quantity supplied to it: beat-to-beat change rather than waveform morphology, on the grounds that irregularity over time distinguishes the rhythms under classification. Findings 1 and 2 are the measured consequences of the two alternatives.

The one-paragraph honest summary

This record contributes no mathematics. It reports which physiological question the existing method is asked, the consequence of asking the alternative, and the behaviour of the resulting classifier under protocols relevant to clinical evaluation.

Evaluation protocol

Every finding states its criteria before execution. Where a criterion subsequently failed, the failure is reported and the criterion is not amended: findings 2, 3 and 4 each carry criteria that failed as written. Amending a threshold after seeing the result would make the threshold uninformative.

Data partitioning

Store, reference and query sets are disjoint at the level of the recording segment. Within a patient, no window used to classify is also available to be retrieved. Where a comparison concerns store composition rather than store size, both arms hold the same number of windows, without which the two are confounded.

Controls

Each finding names the controls that could have refuted it. A Euclidean control is computed on identical windows and splits wherever a claim is made about the distance, so that an effect attributable to the representation or the retrieval procedure cannot be credited to the distance. Hyperparameter selection, where performed, is evaluated only on patients excluded from selection.

Averaged references are not used in evaluation

Classification is scored against held-out individual windows rather than against averaged class prototypes. An averaged reference constructed from multiple patients does not lie on any single patient's distribution, and scoring against one depresses measured accuracy in a manner unrelated to the classifier under test.

Exclusions are reported and then tested

Findings 2 and 4 excluded windows spanning a rhythm transition. Because those windows contain episode onset and offset, their exclusion limits comparability with detectors evaluated on continuous recordings. Finding 5 repeats the measurement with no exclusions and reports the resulting figure separately for transition and non-transition windows.

Comparison to published detectors

Published figures quoted in finding 3 are taken from the literature on the same database and were not re-measured here. Episode-level scoring conventions differ between published detectors, so the comparison in finding 5 is conducted under a comparable rather than an identical protocol and supports a statement of comparable performance only.

Position

A classifier for cardiac rhythm can be constructed without a training procedure, by storing labelled episodes from the individual patient and classifying by resemblance to them. On the database examined, within-patient accuracy increases monotonically with the number of stored episodes and reaches the range reported for published detectors, with no parameter fitting at any stage.

Why this is proposed for cardiac rhythm specifically

The distance underlying the classifier compares processes by their evolution over time. Atrial fibrillation is defined by irregularity of rhythm rather than by the morphology of any individual complex, which places it within the class of questions the method addresses. Finding 1 reports the corresponding null for beat morphology and delimits the applicable question type.

Traceability

Each classification is produced by a set of stored episodes from the same patient, and those episodes are reported with the classification, together with their distances. No component of the decision is distributed across parameters that cannot be inspected individually.

What is not established

Generalisation to a patient absent from the store is untested. All results are within-patient, on a single public database, at a single window length. No prospective evaluation has been conducted, and no comparison against a deployed clinical device has been performed. Onset latency is reported over fourteen episodes, which is a small sample. The store-composition comparison in finding 3 did not meet its threshold, and the pattern noted alongside it is post-hoc and untested.

Regulatory status

Not cleared or approved by any regulator. No clinical claim is made and this is not intended for diagnosis or for any clinical decision. No clinical claim is made anywhere in this record.