Anpheros Research · Motore di schemi di salute

La salute è una serie temporale.
La leggiamo con regole che puoi verificare.

Una cartella clinica di solito si legge un valore alla volta. Le cose che contano di più, come un calo lento, una settimana diversa dalle altre o un sintomo che continua a tornare, emergono solo nell'arco di mesi. Anpheros le trova con statistiche fisse e versionate, e ogni risultato porta con sé i dati su cui si basa.

Fig. 0 · Paziente sintetico, 180 giorni di pressione sistolica. Punti: valori giornalieri. Linea: tendenza di Theil–Sen.

01 · Il problema

Un'istantanea nasconde il cambiamento.

Cosa mostra di solito una cartella

128 mmHg

Ultima pressione sistolica. Sembra normale e non dice nulla sulla direzione in cui va.

Cosa riporta il motore

−7.7 mmHg / 6 mesi

Paziente sintetico con un calo di 8 mmHg inserito nell'arco di sei mesi. La pendenza viene ritrovata, con il suo periodo, la sua incertezza e le misurazioni su cui si basa.

Oggi ai modelli di IA si chiede di leggere cartelle cliniche. Con pochi numeri, un modello indovina la tendenza. Crediamo che la tendenza vada calcolata, non indovinata, e poi passata al modello con le sue prove.

02 · Metodo

Quattro domande, quattro metodi.

Ogni domanda ha un solo metodo statistico, scelto per dati scarsi, irregolari e personali. Ogni metodo ha un numero di versione, così i suoi risultati sono riproducibili.

trend · 1.1.0

Sale o scende?

Pendenza di Theil–Sen con il test di Mann–Kendall su un valore al giorno. I dati densi dello smartwatch sono ridotti a mediane settimanali. Il test viene corretto quando i giorni vicini si somigliano (Yue–Wang).

baseline_deviation · 1.1.0

Questa settimana è insolita per questa persona?

Gli ultimi 7 giorni sono confrontati con i giorni 8–60, con Mann–Whitney o con una differenza di medie corretta per l'autocorrelazione AR(1). Il confronto è con la normalità della persona, non con una media di popolazione.

event_rate_change

Un sintomo viene registrato più spesso?

Giorni con il sintomo rispetto ai giorni in cui la persona ha registrato qualcosa: gli ultimi 30 giorni contro i 90 precedenti, con un test esatto. Un giorno senza registrazioni non conta come giorno senza sintomo.

recurrence

Ritorna con un ritmo?

Gli intervalli tra gli inizi degli episodi sono confrontati con una simulazione Monte Carlo di episodi collocati a caso. La simulazione parte dall'impronta dei dati stessi, quindi la stessa cartella dà sempre lo stesso valore p.

La regola per «supportato»

q < 0.05 e |variazione| ≥ soglia

Tutti i test di un'esecuzione sono corretti insieme con Benjamini–Hochberg. Un risultato è statisticamente supportato solo se il valore q corretto è piccolo e la variazione è abbastanza grande da contare per quella misurazione. Tutto il resto è riportato come descrizione, segnato come debole o non testato.

03 · Validazione

Fatto per stare in silenzio.

Un motore di schemi che trova qualcosa in chiunque è peggio di nessuno. Lo abbiamo testato su pazienti sintetici senza nulla di inserito, e su altri con schemi noti di grandezza nota.

0%

delle 600 esecuzioni su cartelle sintetiche senza schemi ha prodotto un risultato supportato. Obiettivo: al massimo il 5%.

0%

era il tasso di falsi allarmi del nostro primo test di scostamento sui dati dello smartwatch. I giorni vicini si somigliano, e il test non lo sapeva. Abbiamo corretto l'autocorrelazione prima di pubblicare qualsiasi cosa.

0 ms

per un'esecuzione completa su un anno tipico della cartella di una persona. Una cartella corposa di cinque anni richiede 236 ms.

Fig. 1 · Sensibilità: quota di schemi inseriti trovati come supportati, con un effetto pari al doppio della soglia

Sintomo ricorrente ogni settimana100%
Salto della frequenza cardiaca a riposo84%
Pendenza della pressione arteriosa67%
Frequenza di un sintomo ×324%

Il rilevatore di frequenza dei sintomi è il più debole: coglie una triplicazione circa una volta su quattro. Il motore riporta un mancato rilevamento come «debole» o «non testato», mai come «nessuna variazione».

04 · Limiti

Cosa si rifiuta di dire.

  • una diagnosiI risultati descrivono la cartella. Non nominano mai una patologia e non suggeriscono mai di cambiare una terapia.
  • una causaUn cambiamento dopo un nuovo farmaco non prova che sia stato il farmaco a causarlo, e ogni risultato lo dice.
  • l'opinione di un'IANessun modello di IA analizza i dati. Ogni numero viene da regole statistiche fisse.
  • rivisto clinicamenteLe soglie per una variazione significativa sono state fissate con l'aiuto dell'IA e non sono ancora state riviste da un medico. Ogni risultato lo dice in un campo apposito.
  • l'ora del giornoL'ora locale della persona non è ancora nella cartella, quindi gli schemi legati all'ora del giorno non vengono calcolati.

05 · Riproducibilità

Stessi dati. Stessa risposta. Stesso id.

L'id di un risultato deriva dai suoi dati, dalla versione del metodo e dalla configurazione. Se la cartella cambia, cambia l'id, e il vecchio id risponde che i dati sono cambiati. Un risultato viene ricalcolato su richiesta, mai salvato, e ognuno rimanda alle misurazioni su cui si basa.

"type": "trend",
"summary_text": "Systolic blood pressure fell by about 7.7 mmHg over 180 days.",
"strength": "moderate",
"statistics": { "p_value": 0.0004, "q_value": 0.0031 },
"evidence_total": 58,
"method": { "name": "trend", "version": "1.1.0" },
"engine_version": "0.2.1",
"review": { "thresholds_reviewed_by_clinician": false },
"safety": { "not_a_diagnosis": true, "causal_claim": false }

Fig. 2 · Risultato abbreviato di un paziente sintetico. I valori sono illustrativi.

06 · Lavora con noi

Tre porte d'ingresso.

Health Pattern Engine 0.2.1 · beta. Le cartelle reali vengono analizzate solo con il consenso separato di ciascun paziente.