断断续续带了几块不同的表,数据都在苹果手机里。

五月初我把数据导出来扔给 Claude,让它跑 Python 脚本逐项分析。三件事最值得管:

  1. 阻塞性睡眠呼吸暂停(OSA),要重新用 CPAP 呼吸机
  2. HRV 偏低
  3. VO2max 这一年在跌

下面分开说。


数据怎么来#

苹果手机的「健康」app 里有「导出健康数据」按钮,生成一个 zip。解压后是一个 export.xml 文件,所有指标按时间顺序记在里面:心率、HRV、血氧、睡眠分段、呼吸频率、跑步路径、ECG 波形。戴表的每一秒它都在记。

最早一条是 2017 年。文件大,直接打开看不了,但 Python 脚本一两分钟就能跑完。

让 AI 写脚本,可以按自己想看的方式切。HRV 不看整天均值(白天工作时本来就低),只看凌晨 3-5 点睡眠最深的时段。跑步心率不看总均值,看各心率区间的占比。血压不看一两次读数,看 300 次测量里有多少次踩进高血压区。


三件事#

OSA 和 CPAP#

睡觉的时候,喉咙后面的软组织松弛塌下来,把气道堵住,呼吸短暂停。停几秒大脑缺氧自动惊醒一下,气道打开,又睡着,几分钟后再来一次。一晚循环几十上百次,自己感觉不到。

数据里能看出来。90 天里血氧有 12 次低于 92%;夜间呼吸异常事件均值 3.5 次/小时,最高 9.6 次/小时。

这事不是「打呼噜的小毛病」。每次呼吸暂停身体都进入一次窒息-惊醒应激,长年累月推高血压,加速心血管病变。我的血压 306 次测量里 62% 已经踩进 130/80 以上,多半跟 OSA 有关。

CPAP 是一台小机器,吹气进鼻子。持续正压把气道撑开,机械上不让它塌。不吃药,不开刀,靠空气压力解决问题。

我家这台 ResMed AirSense 10 几年前买的,因为面罩漏气吵到我太太,闲置半年多。五月初换了鼻枕式面罩,5/11 到货,5/13 重新开始用。

HRV 偏低#

心率变异性。两次心跳之间的间隔不是固定的,有微小变化。变化越大(HRV 高),说明自主神经系统弹性越好——副交感(休息)和交感(应激)切换自如。HRV 低意味着身体长期处在应激态。

我的总均值 31.8 ms。这个数字不能直接判断好坏,跟年龄、个体差异都有关。要跟自己比,要看时段——白天工作 HRV 本来就低,关键看睡眠深处的。

我凌晨 3-5 点的睡眠 HRV 是 47 ms,对我来说算正常偏好。但全天均值被白天的 23-25 ms 拉低了。

HRV 不用单独想着怎么提升。OSA 控制好、酒精少喝、运动结构对,HRV 自然会涨。

VO2max 下降#

最大摄氧量。运动时身体每分钟每公斤体重能消耗的氧气量。评估心肺能力最直接的指标。

轨迹:2025-09 见顶 46.39,到 2026-05 跌到 42.31,半年掉了 4 个点。

这是真的下降,还是数据假象?——一半一半。Apple Watch 的 VO2max 不是测出来的,是算出来的:用配速和心率反推。核心变量是「心率储备」(最大心率减静息心率)。我的静息心率从 53.7 涨到 62.4,半年涨 7 bpm,心率储备压缩了,算法自动把 VO2max 调低。

但 RHR 涨 7 bpm 本身就是真问题——身体应激累积的信号,跟 OSA、HRV 偏低、可能的工作压力都相关。

所以 VO2max 这事是上面两个问题的下游表现。


三件事其实是一件事#

体检报告会列「血压偏高」「HRV 偏低」「VO2max 下降」,让你「注意休息、多运动、保持心态」。这种建议没用,因为没指到根。

实际的因果链是这样:

OSA(气道塌)
   ↓
夜间反复窒息-惊醒
   ↓
长期交感神经过度激活
   ↓
RHR 上升 + HRV 下降 + 血压升高
   ↓
心率储备压缩 → Apple Watch 的 VO2max 算法估算下降
   ↓
(如果不管)心血管事件风险累积

CPAP 是这个链条的根。其他事——戒睡前酒精、加间歇训练、补镁、慢呼吸——都是辅助。先把根处理好,剩下的事杠杆才显出来。


进展#

5/13 启用 CPAP,到 5/27 戴了两周。把这两周数据切出来跟之前 30 天比,排除掉 5/17(没戴)和 5/24-26(打了带状疱疹疫苗第二针,免疫反应推高了 RHR),剩 11 个有效夜:

指标之前 30 天CPAP 11 夜变化
夜间呼吸异常事件3.21/h1.37/h降 57%
静息心率59.656.9降 2.7
HRV 整夜均值35.7 ms40.5 ms升 4.8
深睡时长0.61h0.77h升 25%
睡眠时长6.34h6.80h多睡 28 分钟
呼吸频率19.17/min17.7/min降 1.5
夜间觉醒时长8.2 min13.0 min升 4.8

唯一变差的是觉醒时间。面罩在脸上的扰动——客观身体得到的睡眠质量更高,但大脑因为脸上多了个东西每晚多醒几次。CPAP 适应期的典型情况,通常 2-6 周后主客观会汇合。

我主观感觉「睡眠变差」就是这 4.8 分钟带来的。其他所有指标都在指向正面。

VO2max 还没反弹。训练适应要 4-8 周才反映到数据里;五月才开始把跑步强度往上推(高强度时间占比从过去半年的不到 1% 升到 15.3%),还在累积期;RHR 下降才两周,还没稳定到能让算法估算抬上去。

6/8 满 4 周时再重跑完整对比。


下一步#

  • 6/8:CPAP 满 4 周,重跑完整对比
  • 这周内:读 CPAP 的 SD 卡(OSCAR 软件)看真实 AHI 和漏气率
  • 持续:每周加一次 4×4 间歇跑(基线脚本指出的训练结构问题——长期 86% 时间在 Z1+Z2,Z4-Z5 几乎是零)

九年的数据扔给 AI 跑一下,趋势就摆出来了。