trend · 1.1.0
是在上升还是下降?
对每天一个数值使用 Theil–Sen 斜率和 Mann–Kendall 检验。手表的密集数据会先归并为每周中位数。当相邻日子彼此相似时,检验会进行校正(Yue–Wang)。
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 · 灵敏度:在效应为阈值两倍时,植入的模式被判定为有统计支持的比例
症状频率检测器是最弱的:大约每四次才能发现一次三倍增长。引擎会把漏检报告为“弱”或“未检验”,绝不会报告为“无变化”。
04 · 局限
05 · 可复现性
一项发现的 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 · 与我们合作
开发者
REST 端点、供 AI 智能体使用的四个 MCP 工具、Context API 中的模式部分,以及 TypeScript 和 Dart SDK。可在免费沙盒中使用合成患者试用。
开发者指南 →研究人员
我们希望方法受到挑战。欢迎与我们讨论方法审查、验证场景、纵向基准和联合研究。
开始交流 →临床医生
每个测量项都有一个值得提及的变化阈值,目前还没有一个经过临床审核。我们正在寻找愿意逐项审核的临床医生。
提供审核 →Health Pattern Engine 0.2.1 · 测试版。真实病历只有在每位患者单独同意后才会被分析。