Anpheros Research · Moteur de schémas de santé

La santé est une série temporelle.
Nous la lisons avec des règles que vous pouvez vérifier.

Un dossier médical se lit en général une valeur à la fois. Ce qui compte le plus, comme une baisse lente, une semaine qui ne ressemble pas aux autres ou un symptôme qui revient sans cesse, n'apparaît qu'au fil des mois. Anpheros le trouve avec des statistiques fixes et versionnées, et chaque constat apporte les données sur lesquelles il repose.

Fig. 0 · Patient synthétique, 180 jours de pression systolique. Points : valeurs quotidiennes. Ligne : tendance de Theil–Sen.

01 · Le problème

Un instantané cache le changement.

Ce que montre d'habitude un dossier

128 mmHg

Dernière pression systolique. Elle semble normale et ne dit rien de la direction prise.

Ce que rapporte le moteur

−7.7 mmHg / 6 mois

Patient synthétique avec une baisse de 8 mmHg introduite sur six mois. La pente est retrouvée, avec sa période, son incertitude et les mesures sur lesquelles elle repose.

On demande désormais aux modèles d'IA de lire des dossiers médicaux. Avec quelques chiffres, un modèle devine la tendance. Nous pensons que la tendance doit être calculée, pas devinée, puis transmise au modèle avec ses preuves.

02 · Méthode

Quatre questions, quatre méthodes.

Chaque question a une seule méthode statistique, choisie pour des données peu nombreuses, irrégulières et personnelles. Chaque méthode a un numéro de version, ce qui rend ses résultats reproductibles.

trend · 1.1.0

Est-ce que ça monte ou ça baisse ?

Pente de Theil–Sen avec un test de Mann–Kendall sur une valeur par jour. Les données denses de la montre sont ramenées à des médianes hebdomadaires. Le test est corrigé quand les jours voisins se ressemblent (Yue–Wang).

baseline_deviation · 1.1.0

Cette semaine est-elle inhabituelle pour cette personne ?

Les 7 derniers jours sont comparés aux jours 8 à 60, par Mann–Whitney ou par une différence de moyennes ajustée pour l'autocorrélation AR(1). La comparaison se fait avec la normale de la personne, pas avec une moyenne de population.

event_rate_change

Un symptôme est-il noté plus souvent ?

Jours avec symptôme rapportés aux jours où la personne a noté quelque chose : les 30 derniers jours contre les 90 précédents, avec un test exact. Un jour sans saisie n'est pas compté comme un jour sans symptôme.

recurrence

Revient-il selon un rythme ?

Les intervalles entre les débuts d'épisodes sont testés contre une simulation de Monte-Carlo d'épisodes placés au hasard. La simulation est initialisée à partir de l'empreinte des données, si bien que le même dossier donne toujours la même valeur p.

La règle pour « étayé »

q < 0.05 et |changement| ≥ seuil

Tous les tests d'une exécution sont corrigés ensemble par Benjamini–Hochberg. Un constat n'est statistiquement étayé que si la valeur q corrigée est faible et que le changement est assez grand pour compter pour cette mesure. Le reste est rapporté comme description, marqué faible ou non testé.

03 · Validation

Conçu pour se taire.

Un moteur de schémas qui trouve quelque chose chez tout le monde est pire que rien. Nous l'avons testé sur des patients synthétiques sans rien d'introduit, et sur d'autres avec des schémas connus, de taille connue.

0%

des 600 exécutions sur des dossiers synthétiques sans schéma ont produit un constat étayé. Objectif : au plus 5%.

0%

était le taux de fausses alertes de notre premier test d'écart sur les données de montre. Les jours voisins se ressemblent, et le test l'ignorait. Nous avons corrigé l'autocorrélation avant toute mise en ligne.

0 ms

pour une exécution complète sur une année typique du dossier d'une personne. Un dossier chargé de cinq ans prend 236 ms.

Fig. 1 · Sensibilité : part des schémas introduits trouvés comme étayés, pour un effet de deux fois le seuil

Symptôme récurrent chaque semaine100%
Saut de la fréquence cardiaque au repos84%
Pente de la pression artérielle67%
Fréquence d'un symptôme ×324%

Le détecteur de fréquence des symptômes est le plus faible : il repère un triplement environ une fois sur quatre. Le moteur rapporte un raté comme « faible » ou « non testé », jamais comme « aucun changement ».

04 · Limites

Ce qu'il refuse de dire.

  • un diagnosticLes constats décrivent le dossier. Ils ne nomment jamais une maladie et ne suggèrent jamais de changer un traitement.
  • une causeUn changement après un nouveau médicament ne prouve pas que le médicament l'a provoqué, et chaque constat le dit.
  • l'avis d'une IAAucun modèle d'IA n'analyse les données. Chaque chiffre vient de règles statistiques fixes.
  • revu cliniquementLes seuils d'un changement significatif ont été fixés avec l'aide de l'IA et n'ont pas encore été revus par un médecin. Chaque constat le dit dans un champ dédié.
  • l'heure de la journéeL'heure locale de la personne n'est pas encore dans le dossier, donc les schémas liés à l'heure de la journée ne sont pas calculés.

05 · Reproductibilité

Mêmes données. Même réponse. Même identifiant.

L'identifiant d'un constat découle de ses données, de la version de la méthode et de la configuration. Si le dossier change, l'identifiant change, et l'ancien répond que les données ont changé. Un constat est recalculé à la demande, jamais stocké, et chacun renvoie aux mesures sur lesquelles il repose.

"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 · Constat abrégé d'un patient synthétique. Les valeurs sont illustratives.

06 · Travailler avec nous

Trois portes d'entrée.

Health Pattern Engine 0.2.1 · bêta. Les dossiers réels ne sont analysés qu'avec le consentement distinct de chaque patient.