满分的一天,代表不了一个人
设想这样一个示例:某用户在28天里有一天得了96分(满分100),系统当天给她出了一份漂亮的报告。翻开其余27天,得分集中在40到70之间,中间夹着两次聚餐和一次出差,还有6天几乎没有记录。另一位用户没有一天超过78分,最低也有60分,每天吃得平平。下面是这两位设定用户的对照:
| 指标(设定数字) | 用户甲 | 用户乙 |
|---|---|---|
| 最高的一天 | 96分 | 78分 |
| 28天平均 | 62分 | 72分 |
| 最低的一天 | 31分 | 60分 |
| 得分在65分以上的天数 | 9天 | 21天 |
| 缺记天数 | 6天 | 1天 |
只看“最好的一天”,甲更漂亮;看28天结构,乙才是更稳定的那个。营养推荐要判断的是结构,而不是给最好的一天颁奖。
周内节律比想象的更强
长期结构里最先要还原的是周内差异。工作日在食堂和外卖之间循环,早餐时间固定;周末睡到很晚,两顿并成一顿,晚上还有聚餐。系统如果只算日均,工作日的规律与周末的失衡会互相抵消,得出一个哪一天都不像的“平均日”。更合理的做法是把工作日和周末分成两个分布分别描述,再看两者的距离有多大。
季节、出差和节假日属于更长周期的扰动。出差一周,意味着食物来源、进餐时间和活动量全部改变,这一周的数据不该被当成“她的常态”,而应打上事件标记,在长期画像里降权处理。
用窗口和分布代替单日均值
滚动窗口是最基本的工具。7天窗口刚好覆盖一个完整的周内循环,适合看节律,比如蛋白质是否总集中在晚餐;28天窗口覆盖四个循环,能压低偶发事件的影响,适合看结构。两个窗口并列输出,短窗口回答“最近怎么样”,长窗口回答“通常怎么样”。
只给窗口均值还不够,还要同时给出分布:中位数、四分位间距、低于某个阈值的天数占比。设定中的用户甲,平均分62看起来还行,但四分位间距很宽,说明她的饮食忽高忽低,这个信息在均值里是看不见的。
多样性、蛋白分布和餐次规律,比总量更耐看
单日总量容易达标,长期结构却很难靠一天的努力凑出来。有三类指标在28天窗口里特别有信息量。
- 食物多样性:28天里出现过多少类不同的蔬菜、豆类和全谷物。一天吃得再健康,如果四周都是同样的三样东西,结构依然单薄。
- 蛋白质分布:总量相同的情况下,蛋白质集中在晚餐,与均匀分布在三餐,对应的是完全不同的饮食节奏。
- 餐次规律:进餐时刻的波动幅度,直接反映作息是否稳定。
这三项和年龄、运动、饮食与生活方式进入推荐模型的方式是一体两面:特征怎么构造,决定了长期画像能看清什么。
缺失的天数不是零分
数据缺失是长期画像最大的干扰。漏记的那天不能记成零,否则会把均值无故拉低;也不能直接剔除后当作没发生,因为漏记往往集中在聚餐、出差这些最不规律的日子,剔除等于系统性地美化了结构。
比较稳妥的做法是保留缺记标记,输出时同时给出“有效记录天数”,并在有效天数不足时收窄结论,比如28天里只有15天有记录,就只描述这15天,不外推整体。2026年《Frontiers in Digital Health》一篇关于测量误差的论文指出,自报饮食存在系统性低报。缺失与低报叠加,会让长期画像的偏差方向更难判断,所以长期画像必须和营养数据质量一起看。
从趋势到干预评估
评估一次调整是否有效,比较的对象应该是两个长窗口,而不是两个单日。假设用户从第5周开始把早餐蛋白质从偏低调整到较合理的水平,一周之后看到的改善可能只是巧合;四周之后,两个28天窗口的分布整体右移,这个判断才有分量。系统在提示“你已经进步了”之前,最好同时检查有效记录天数和窗口内的波动幅度。
要点:一个人的饮食是否健康,取决于反复出现的日子是什么样,而不是最好的一天有多好。看窗口、看分布、看缺失,是把单日快照变成长期结构的最低要求。
在使用中怎样落地
纵横国际在思路上把长期饮食结构拆成7天节律与28天结构两层来呈现。用户在记录饮食、运动和营养目标时多补一句份量和配料,长期画像就会更可信。画像还应该随新数据更新,而不是一次生成后固定不变,更多相关入口可以到个性化营养栏目查看。