Anpheros Research · 健康模式引擎

健康是一条时间序列。
我们用您可以验证的规则来解读它。

病历通常是一次读一个数值。最重要的东西,比如缓慢的下降、与其他周不同的一周、或反复出现的症状,只有在几个月的跨度里才能看出来。Anpheros 用固定、带版本的统计方法找出它们,每一项发现都附带它所依据的数据。

图 0 · 合成患者,180 天的收缩压。点:每日数值。线:Theil–Sen 趋势。

01 · 问题

快照会掩盖变化。

病历通常显示的内容

128 mmHg

最近一次收缩压。看起来正常,却无法说明它的走向。

引擎报告的内容

−7.7 mmHg / 6 个月

一位合成患者,在六个月内被植入了 8 mmHg 的下降。斜率被重新找出,并附带其时间段、不确定性以及所依据的测量值。

如今,人们让 AI 模型去阅读病历。只给几个数字,模型只能猜测趋势。我们认为趋势应该被计算出来,而不是被猜出来,然后连同证据一起交给模型。

02 · 方法

四个问题,四种方法。

每个问题只有一种统计方法,专为少量、不规则、个人化的数据而选。每种方法都有版本号,因此结果可以复现。

trend · 1.1.0

是在上升还是下降?

对每天一个数值使用 Theil–Sen 斜率和 Mann–Kendall 检验。手表的密集数据会先归并为每周中位数。当相邻日子彼此相似时,检验会进行校正(Yue–Wang)。

baseline_deviation · 1.1.0

这一周对这个人来说是否异常?

将最近 7 天与第 8–60 天比较,使用 Mann–Whitney 检验,或经 AR(1) 自相关校正的均值差。比较的对象是此人自己的常态,而不是人群平均值。

event_rate_change

某个症状是否记录得更频繁?

有症状的天数除以此人有任何记录的天数:最近 30 天对比之前的 90 天,使用精确检验。没有任何记录的一天不算作没有症状的一天。

recurrence

它是否按某种节律复发?

将各次发作开始之间的间隔,与随机放置发作的蒙特卡洛模拟进行比较。模拟以数据自身的指纹作为种子,因此同一份病历总是得出相同的 p 值。

“有统计支持”的规则

q < 0.05 且 |变化| ≥ 阈值

一次运行中的所有检验会一起用 Benjamini–Hochberg 方法校正。只有当校正后的 q 值很小,且变化大到对该测量项有意义时,发现才具有统计支持。其余内容均作为描述报告,并标记为弱或未检验。

03 · 验证

生来保持沉默。

一个在每个人身上都能找到点什么的模式引擎,比没有还糟。我们在没有植入任何模式的合成患者上测试了它,也在植入了已知大小的已知模式的患者上测试了它。

0%

的运行(共 600 次,基于没有任何模式的合成病历)产生了有统计支持的发现。目标:不超过 5%。

0%

是我们第一个基线偏离检验在手表数据上的误报率。相邻的日子彼此相似,而检验并不知道这一点。在任何发布之前,我们都已校正了自相关。

0 ms

即可完成一个人一年典型病历的完整运行。五年的大型病历需要 236 ms。

图 1 · 灵敏度:在效应为阈值两倍时,植入的模式被判定为有统计支持的比例

每周复发的症状100%
静息心率跃升84%
血压斜率67%
症状频率 ×324%

症状频率检测器是最弱的:大约每四次才能发现一次三倍增长。引擎会把漏检报告为“弱”或“未检验”,绝不会报告为“无变化”。

04 · 局限

它拒绝说的话。

  • 诊断发现只描述病历。它们从不说出疾病名称,也从不建议更改治疗。
  • 原因服用新药之后出现的变化并不能证明是药物导致的,每项发现都会说明这一点。
  • AI 的看法没有任何 AI 模型分析这些数据。每个数字都来自固定的统计规则。
  • 临床审核有意义变化的阈值是在 AI 辅助下设定的,尚未经过医生审核。每项发现都会在单独的字段中说明这一点。
  • 一天中的时间病历中还没有此人的本地时间,因此不计算与一天中时间相关的模式。

05 · 可复现性

相同的数据。相同的答案。相同的 id。

一项发现的 id 来自其数据、方法版本和配置。如果病历发生变化,id 也会改变,旧的 id 会返回数据已更改。发现按需重新计算,从不存储,并且每项都链接到它所依据的测量值。

"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 }

图 2 · 来自一位合成患者的简化发现。数值仅作示意。

06 · 与我们合作

三个入口。

Health Pattern Engine 0.2.1 · 测试版。真实病历只有在每位患者单独同意后才会被分析。