睡了一百天数据很好看:长期佩戴与床感设备的读数为什么会漂
连续用上几个月、每天给出一份整齐曲线的消费健康设备,最容易让人产生的判断是”越用越懂我”。但从测量工程的角度看,这种体验还有另一个解释:读数在变,只是没有人换过参考去对照。这类设备的核心风险不是不准,而是它一直给出一个自洽、平滑、好看的数——肉眼无法判断这个数是否还能和上个月的那个数放在一起比。
漂移不是单一现象。它可以来自器件本身,也可以来自传感器与身体之间的耦合条件,还可以来自算法与你这个个体之间的分布差。三者的排查方式和处置成本完全不同。下面把它们分开讲,最后给一份”上线后 90 天该怎么维护这套读数”的清单。

一、”读数不准”其实是三个不同的问题
器件漂移与老化。 手腕上的光学心率靠光源照射与探测器读反射光,光电器件的工作点会动:光源输出随时间与温度衰减,探测器暗电流漂移,而皮肤下的直流分量随血管张力、体温和组织灌注变化。加速度计的零偏随温度与时间改变,标度因数也会小幅漂移。压力与湿度类敏感元件的高分子介质会老化。这些是真正”器件级”的漂移,速度慢,但会一路累积。
耦合条件变化。 实际数据里最大的偏移往往来自这里,而且它的变化速度比器件快得多。佩戴侧:位置是否同一只手腕、腕带松紧、睡眠时手臂被压在身下导致灌注下降、汗液与皮肤温度、纹身与体毛对光路的遮挡、表带与皮肤之间漏进环境光。床感侧:传感元件是垫在床垫下还是嵌在床架里,床垫与床架之间的力学耦合会随着床垫自身软化而变化,被褥层数与材质改变会重新分配压力,同床者的体重与体动直接进入同一个信号,元件横向挪几厘米就换了一个空间采样位置。这类变化在数据上表现为”某天起整体形态不一样”,而设备与固件都没动。
算法的个体标定与分布差。 训练数据多来自实验室里的参考设备与相对年轻、健康、体重与肤色分布有限的一批受试者。家庭场景的噪声结构完全不同:不同的床垫、鼾声、饮酒与用药、夜间片段化觉醒、极端体重。关键问题是模型在分布之外不会报错,它仍然输出一个置信度很高的数字。所谓”个体标定”,在很多产品里其实只是”用了几天之后统计上看起来稳了”,而不是真的把个人参数辨识出来。
二、七种漂移形态与各自的处置
| 漂移形态 | 典型现象 | 排查动作 | 处置办法 |
|---|---|---|---|
| 零点漂移 | 静息心率整月缓慢上移;无体动的时段也报出活动 | 与一台独立参考设备同步测量同一时段;把设备静置在同一位置看输出是否走偏 | 分段重建基线,用相对量而不是绝对值做决策 |
| 灵敏度漂移 | 同一强度动作的响应幅度逐渐变小,夜间心率区间变窄 | 做一组固定强度的重复动作(同一台阶、同一翻身幅度),看响应是否同比缩小 | 重估标定系数;标定关系要随版本留存 |
| 尾部饱和与削顶 | 高心率或大幅体动时读数被”压平”,峰值不可信 | 制造可控峰值(上楼、快速翻身)观察是否可达上限 | 依赖峰值的规则不要用这条通道,或改事件判定 |
| 迟滞与蠕变 | 同一姿势两次读数不同;长时间受压后基线持续走 | 卸载后观察回零时间与残余偏移 | 在数据里记录加载历史,长时受压段单独处理 |
| 温漂 | 季节变化后同一读数含义不同;被窝内外差异明显 | 用温度通道做残差回归,看残差是否随温度成趋势 | 温度补偿写进固件并带版本号,缺温度通道就标注不确定度 |
| 耦合突变 | 换了床品、床垫或佩戴位置后形态整体改变,而设备未动 | 先核对物理条件再怀疑固件;把改动日期记进日志 | 把”条件变更”作为可比性窗口切分点,跨窗口不直接比较 |
| 时基漂移 | 夜间时段边界与真实觉醒时刻越对越偏 | 与网络时间定期比对累计偏差 | 同时保留采集时刻与写入时刻,避免用事后时间倒推 |
时基这一条容易被低估。一颗几十 ppm 量级的时钟,每天累积约一到两秒偏差看起来无害,但连续记录一百天就是几分钟量级;如果设备只在联网时才校正,那些”凌晨三点醒了一次”的对齐就会错到别的时段里去。而分期和事件判定都是按时间窗做的。
三、趋势比绝对值可信,但趋势也需要基线管理
绝对值不可信的原因在上面三类里都能找到,而趋势(同一台设备、同一套条件下的相对变化)通常稳健得多。但”看趋势”这四个字有前置条件,缺了它,趋势只是另一种自欺。
需要区分三种可比性。同设备跨周次可比,前提是条件窗口一致——同样的佩戴习惯、同样的床品与床垫、同样的固件与算法版本。同设备跨版本默认不可比,除非厂商明确说明并允许历史数据重算。跨设备不可比,两台同型号设备的差异可以大于你关心的变化量,任何”和家人比”的展示都在诱导错误结论。
缺失数据是漂移的隐藏来源。一段没有采到的信号,被算法填补成”安静”还是被标成”无数据”,出来的曲线完全不同:前者会让整夜看起来完整且睡得很好。导出与展示要能区分三种状态——采到了、采到了但质量不够被拒绝、压根没有信号。只有汇总分数而没有原始波形的导出,无法复核任何一件事。
最后,趋势本身混着行为变化。开始认真记录的头几周,人的作息、运动与注意力都在变;把第一个月与第三个月的均值差当作设备的功劳或生理改善,是把均值回归与观察效应当成了效果。要判断”变化是否真实”,需要至少一段条件不变的对照期,或者一次独立的参考测量做锚点。
四、模型推断被当成事实输出,是这类产品最大的陷阱
睡眠分期不是测量,是分类。它的判定粒度是 30 秒一个片段,判读依据是规则或模型而不是某个生理量的自然边界,即便是实验室级的多导记录,分期判读之间也存在有限但不可忽视的一致性上限。消费设备只用一到两路信号,在这个基础上给出”深睡 78 分钟”这样的数字,就把一个分类结果包装成了有分钟级精度的测量值。用户在第二天因为少了二十分钟而调整行为,产品就制造了一个焦虑式指标:数字波动本身成了刺激源,而它的置信区间远比展示精度宽。
同一类问题还包括”恢复度””压力指数””睡眠分数”这一族合成分。它们的共同特征是:公式不公开、输入通道不清楚、权重随版本变化,因此用户无法判断变化来自自己还是来自公式。可行的产品做法是给出区间或”这次数据不足以给出结论”的状态,而不是永远给出一个单点。任何”用了之后改善了”的展示,若没有对照期与不确定度,就不该被当作证据引用。
算法随固件变这件事必须留痕:改了模型就要公告生效时间,写清从哪一天起读数含义发生了变化,并明确历史数据是否重算。没有这一条,长期数据的价值在某个升级日会被静默清零。
五、评测这类设备该问的六件事
- 参考测量是什么?是实验室级设备,还是另一台同类消费设备。参考与设备的测量是否同步进行、是否在同样场景下。
- 与参考的一致程度怎么给的?相关系数好不等于准——一个恒定偏低的数也能有漂亮的相关性。要问系统偏差和一致性界限,也就是差值的范围。
- 缺失与被拒绝的数据怎么处理、怎么显示?有没有”低质量”这一档,而不是直接给数。
- 算法是否随固件变化?变化是否公告、是否给生效时间、是否允许重算历史。
- 数据能否本地导出,粒度是否到采样级或原始波形?只有分数的导出不支持任何复核。
- 云端留存的边界在哪里?保留多久、是否被用于模型训练、家人与同床者的数据如何隔离、撤回与删除的路径是否可执行。
这六问里没有一问是关于”准不准”的形容词的。长期读数系统的质量,取决于它是否允许用户自己复核。
六、洹拓视角:上线后 90 天该怎么维护这套读数
设备状态监测项目里同样有”传感器会漂”这件事,处置原则与消费健康设备完全一致,只是工业侧的参考量更好找:定期与一个已知准确的量对表、把不确定度连同数值一起写进报表、报警阈值随漂移自适应而不是设死。同一套方法跨领域复用,靠的不是模型,是这三条纪律。
一份可交接的维护清单:
- 第 7 天做一次基线确认:与参考量在同一条件下同步采一段,记录偏差与差值范围,作为可比性起点。
- 建立条件日志:佩戴位置与松紧、床品与床垫变更、传感器位置移动,任何变更都标日期,作为窗口切分依据。
- 每 30 天做一次异常样本回看:把”整夜极安静””分段数异常少””峰值集中贴上限”这三类样本挑出来人工核对,判断是真实状态还是通道失效。
- 阈值评审:随漂移重新校准报警与分档线,记录调整原因;禁止把阈值当常量长期不动。
- 固件与算法版本变更公告:生效时间、读数含义是否变化、历史数据是否重算,三者都要写明。
- 字段留痕:每条记录带固件号、算法版本、信号质量标记与数据状态(有效/低质量/缺失/填补)。
- 90 天末出一份可比性结论:这段时间内的数据能否互相比较、能比较到哪个精度、哪些区段应当放弃。
这份清单最后一条才是关键产出。任何长期读数系统的第一项交付不应该是看板,而是一句能被复核的判断:这份数据还能不能和历史放在一起比。答案是可以或不可以都行,最怕的是从来没人回答过。