Anpheros Research · Motor de Padrões de Saúde

A saúde é uma série temporal.
Nós lemo-la com regras verificáveis.

Um registo de saúde é normalmente lido valor a valor. As coisas mais importantes, como um declínio lento, uma semana diferente das outras ou um sintoma que regressa, só aparecem ao longo de meses. O Anpheros deteta-as com estatísticas fixas e versionadas, e cada descoberta traz consigo os dados que a suportam.

Fig. 0 · Paciente sintético, 180 dias de pressão arterial sistólica. Pontos: valores diários. Linha: tendência Theil–Sen.

01 · O problema

Um instantâneo esconde a mudança.

O que um registo mostra normalmente

128 mmHg

Última leitura sistólica. Parece normal, mas não diz nada sobre para onde se dirige.

O que o motor reporta

−7.7 mmHg / 6 meses

Paciente sintético com um declínio de 8 mmHg simulado ao longo de seis meses. A inclinação é recuperada com o seu período, a sua incerteza e as leituras em que se baseia.

Modelos de IA são agora solicitados a ler registos de saúde. Dada uma mão-cheia de números, um modelo adivinha a tendência. Achamos que a tendência deve ser calculada, não adivinhada, e depois entregue ao modelo com as suas evidências.

02 · Método

Quatro perguntas, quatro métodos.

Cada pergunta tem um método estatístico, escolhido para dados pequenos, irregulares e pessoais. Cada método tem um número de versão, para que os seus resultados possam ser reproduzidos.

trend · 1.1.0

Está a subir ou a descer?

Inclinação Theil–Sen com um teste Mann–Kendall num valor por dia. Dados de monitorização densos são reduzidos a medianas semanais. O teste é corrigido quando dias vizinhos se assemelham (Yue–Wang).

baseline_deviation · 1.1.0

Esta semana é invulgar para esta pessoa?

Os últimos 7 dias são comparados com os dias 8–60, usando Mann–Whitney ou uma diferença de médias ajustada para autocorrelação AR(1). A comparação é feita contra o normal da própria pessoa, não contra uma média populacional.

event_rate_change

Um sintoma é registado com mais frequência?

Dias com sintoma sobre os dias em que a pessoa registou algo: os últimos 30 dias contra os 90 anteriores, com um teste exato. Um dia sem registo não é contado como um dia sem o sintoma.

recurrence

Regressa num ritmo?

Os intervalos entre o início dos episódios são testados contra uma simulação de Monte Carlo de episódios colocados aleatoriamente. A simulação é iniciada a partir da própria impressão digital dos dados, pelo que o mesmo registo dá sempre o mesmo valor p.

A regra para "suportado"

q < 0.05 e |mudança| ≥ limiar

Todos os testes numa execução são corrigidos em conjunto com Benjamini–Hochberg. Uma descoberta é estatisticamente suportada apenas quando o valor q corrigido é pequeno e a mudança é suficientemente grande para importar para essa medição. Todo o resto é reportado como uma descrição, rotulado como fraco ou não testado.

03 · Validação

Construído para se manter silencioso.

Um motor de padrões que encontra algo em toda a gente é pior do que nada. Testámo-lo em pacientes sintéticos sem nada plantado, e noutros com padrões conhecidos de tamanho conhecido.

0%

de 600 execuções em registos sintéticos com nenhum padrão produziu qualquer achado suportado. Meta: no máximo 5%.

0%

foi a taxa de falsos alarmes do nosso primeiro teste de base em dados de monitorização. Dias vizinhos assemelham-se, e o teste não sabia disso. Corrigimos a autocorrelação antes de qualquer coisa ser enviada.

0 ms

para uma execução completa num ano típico do registo de uma pessoa. Um registo pesado de cinco anos leva 236 ms.

Fig. 1 · Sensibilidade: percentagem de padrões plantados encontrados como suportados, efeito a duas vezes o limiar

Recorrência semanal de sintomas100%
Passo da frequência cardíaca em repouso84%
Inclinação da pressão arterial67%
Frequência de sintomas ×324%

O detetor de frequência de sintomas é o mais fraco: deteta uma triplicação cerca de uma vez em quatro. O motor reporta uma falha como "fraca" ou "não testada", nunca como "sem mudança".

04 · Limites

O que se recusa a dizer.

  • um diagnósticoAs descobertas descrevem o registo. Nunca nomeiam uma condição nem sugerem uma alteração de tratamento.
  • uma causaUma mudança após uma nova medicação não é prova de que a medicação a causou, e cada descoberta diz isso.
  • a opinião de uma IANenhum modelo de IA analisa os dados. Cada número vem de regras estatísticas fixas.
  • revisado clinicamenteOs limiares para uma mudança significativa foram definidos com assistência de IA e ainda não foram revistos por um clínico. Cada descoberta diz isto num campo próprio.
  • a hora do diaOs dias seguem a hora local da pessoa apenas onde o registo a contém, e padrões de hora do dia ainda não são calculados.

05 · Reprodutibilidade

Mesmos dados. Mesma resposta. Mesmo ID.

O ID de uma descoberta vem dos seus dados, da versão do seu método e da sua configuração. Se o registo mudar, o ID muda, e o ID antigo responde que os dados mudaram. Uma descoberta é recalculada a pedido, nunca armazenada, e cada uma liga-se às leituras em que se baseia.

"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.5.0",
"review": { "thresholds_reviewed_by_clinician": false },
"safety": { "not_a_diagnosis": true, "causal_claim": false }

Fig. 2 · Descoberta abreviada de um paciente sintético. Os valores são ilustrativos.

06 · Trabalhe connosco

Três formas de entrar.

Motor de Padrões de Saúde · beta. Registos reais são analisados apenas com o consentimento separado de cada paciente.