「认识你自己」:一个「量化青年」的2016健康生活自我量化
(本文参与 少数派2016年度征文)
我自认为是个「量化青年」。2016年已经结束,但自我量化的工作看起来做的并不够合格,这岂不是枉费了自己的统计学专业。那么接下来,我将通过对于自己Fitbit所导出的健康数据的分析,来回顾自己自2016年8月以来的生活状态。
数据获取
想要量化,当然得先有数据。我在2016年8月入手一块Fitbit Blaze智能手表。关于Fitbit Blaze的评测在互联网上已经有很多,在此不多赘述。主要功能简而言之包括了计步、卡路里估计、睡眠时间检测以及静息心率和运动心率检测。使用Fitbit Blaze时需要下载其应用程序(支持Android与iOS平台)并且创建账号,此后可以从Fitbit网站上看到自己的每日数据,而高级用户则有将自己的数据导出的选项。于是自己在2016年末开启了免费试用一周高级会员的功能,并且将所有可以导出的数据导出为csv文件。导出的数据包括了以下类别:
- 体质数据:每日的体重、身体重量指数(BMI)、体脂率
- 饮食数据:每日的卡路里摄入
- 运动数据:每日的卡路里消耗、步数、运动距离、爬楼层数、久坐时间、低强度运动时间、中强度运动时间、高强度运动时间、运动消耗卡路里
- 睡眠数据:每日的睡眠时长、清醒时间、醒来次数、在床上的时间
- 食物记录:每日所记录的食物的列表,以及每日的各种营养元素摄入总计,包括了卡路里、脂肪、膳食纤维、碳水化合物、钠、蛋白质、水。
在这些数据中,由于我并未能够每日称重和记录饮食(而且亚洲人的饮食方式使得精确记录所摄入的食物种类和分量极其困难),体质、饮食和食物数据对自己的意义并不大。于是我将自己的运动和睡眠数据拼接起来,并且删去没有佩戴Blaze的两天的数据,得到了最终包含127个数据点,13个变量的数据集。这之中每个数据点由13个数组成,代表着某一天的卡路里消耗、步数、运动距离、爬楼层数、久坐时间、低强度运动时间、中强度运动时间、高强度运动时间、运动消耗卡路里、睡眠时长、清醒时间、醒来次数、在床上的时间这13个量,时间跨度从2016年8月18日到2016年12月25日。
这样一个小小的数据集带给自己怎样的新的认知呢?我首先想到的是,自己觉得自己平时算还爱运动,那么数据也是这样认为的么?以及自己睡眠时长跟别人相比呢?
数据初步看
想回答上面的问题,我算出自己这127天的平均运动步数为8283步,远高于日前 QQ大数据所发布的《2016中国人运动报告》 中5112步的均值,也高于18-27岁年龄段的5261均值。由此看来我还算没有盲目自信。但对于我所参照的这个报告,其调查的人群——也即使用QQ运动的人群,是并不能全方位的代表全国民众的,因为使用QQ运动的人群可能年龄普遍偏低。因此取18-27岁年龄段的结果与之比较更有意义。
那么,我的睡眠状况怎样呢?同样,做一个简单的平均,自己的平均睡眠时间为7小时34分钟,处在推荐的7到8小时之内。作为对比,根据Sleep Cycle发布的一份时间跨度从 2014 年 6 月到 2015 年 3 月 31 日的 睡眠报告 显示,中国人的平均睡眠时长为6小时43分钟,美国人的平均睡眠时长为7小时6分钟。那看起来自己睡觉还算可以。(同样的,这份报告的代表性也有待商榷。这些数据由Sleep Cycle这个应用的使用者得出,而这些使用者往往对于自己的睡眠状况有相当的关注,加之这还是一个付费应用,这可能会使得最后得到的数据并不具备代表性)
另一个让我感兴趣的问题是,在这四个月里,自己的运动水平和睡眠时间有没有随时间变化的一些规律呢?会不会随着买到手表之后新鲜感褪去导致运动量下降呢?下面两张图展示了每日步数与每日睡眠时间随日期的变化的趋势:
图一:步数随日期的变化。横轴:购入Fitbit的天数。纵轴:步数。 图二:睡眠时间随日期的变化。横轴:购入Fitbit的天数。纵轴:睡眠时长(分钟)。在第一张图中,可以看到我步数的趋势大致是先下降再上升再下降。第一段下降应该是新鲜劲下降之后每天的运动量恢复先前常态。至于之后的上升,我查看了一下自己在那段时期附近的日历,发现是在十月底的时候我加入到一个网球俱乐部,会时不时地在周六打三至四个小时网球,直接拉高了运动量的趋势;而随着寒假来临,网球俱乐部在此期间不再举办活动,导致最后一段运动量又低了下来。第二张图中的睡眠时间情况则显得比较平稳,只有开头一段时期的下降。这也似乎是由于对手表的新鲜感降低而不再特别注意睡眠时间是否达标。由此看来自己还需要长期保持一个稳定的运动量和作息习惯。
在这些初步的分析之后,还有些看起来更加复杂的问题能否得到答案呢?譬如,我想知道自己在每周七天里一般哪天运动的多,哪天睡得多?又或是周中和周末自己的状态又是否有区别呢?以及再进一步,白天的运动对自己的睡眠质量有帮助么?想要回答这些问题,我们需要进阶的数据挖掘。
进阶数据分析
我们来挨个回答这些问题。
1. 每周七天的运动睡眠状况有何不同呢?
为了回答这个问题,我把自己的步数记录按照周一到周日进行分组,并画出分布图,下图中的每一个竖状的盒型代表了所有每周的这一天的步数分布情况,盒型越长则分布越分散,盒中横线代表中位数。由下图可见我的情况是周末的步数变化极大,要么待在家里不动,要么运动很多。而我想了想,这跟自己周末时不时打网球是吻合的。若是某个周末网球协会有活动,则会一下子运动很多,不然大多数情况就待在家里不怎么动了。
每周步数统计对于睡眠状况,我同样作了一张图:
每周睡眠统计由图可见,自己一周里每天的睡眠时间相差不大,但我们也可以明显地看到,周末三天(五六日)睡眠时间波动较周中更大,这是因为周末的作息并不像周中那么规律。这提醒我需要在周末更加注意保持作息规律,不用睡得过多,也不要熬夜睡得少。
2. 走的步数多,真的就睡得好么?
首先,我们需要得定义什么叫睡得好。我试图在搜索引擎查找关于睡眠质量的定义,但并没能找到一个学界通用的定义。睡得多就睡得好么?似乎未必。于是我自己结合Fitbit提供的睡眠时长、醒来次数、醒来时间以及入睡时间(由在床上时间减去睡眠时长和醒来时间得到)给一个我的计算方式。
睡眠质量定义我把睡眠质量分为四部分,每部分占比如上图所示。具体到每个部分的得分,对于睡眠时间来讲,越接近7小时20分钟至8小时这个区间则得分越高;醒来时间、入睡时间、醒来次数都是越少分数越高。这样,比如一次时长7.5小时没有醒来并且躺下即刻入睡的睡眠则可以得到100分的满分。
现在我们就可以利用统计方法来检测睡眠质量与步数之间的相关性了。利用统计中的F检验,我得到(对于我个人而言)睡眠质量与步数之间并没有统计意义上显著的相关性。自己的睡眠情况可能更大程度上受第二天是否有活动要参加,或是睡觉这天是否恰好喝了杯咖啡的影响。
总结
通过这样的一番量化分析,我对自己的接近半年的运动睡眠状况有了一个更好的了解。我知道自己运动量高过了全国均值,自己的睡眠时间平均而言也还可以。简而言之,活得还算健康。更进一步的是,我发现了自己在周末的时候比周中更为「松散」,运动和睡眠规律性都变差了。最后,增加白天的运动量对于自己的睡眠情况并无补益。这些量化的结果和发现都会指导自己未来的生活方式。
美中不足的是,尽管Fitbit的数据已经比较丰富,但我还是有未尽其用的地方。譬如虽然自己家中的确有一个可以测体脂率的体重秤,但由于自己没有每天都进行测量,我并不能做一个运动量与体重相关性的分析,也无法看到自己体重的变化趋势。又如由于Fitbit本身的限制,自己并没有选项可以导出每天入睡和起床的时间,不然还可以分析自己是否在周末会睡懒觉这样的有趣的问题。另外很重要的一点,Fitbit赖以为傲的心率追踪技术并不支持用户自行分析心率数据,也无法得到自己所记录的(或是Blaze自己记录的)每次运动对应的心率数据,这无疑是量化青年的一份遗憾。
值得一提的是我一直在用每天的步数来作为自己一天运动量的衡量,然而更为精确计算还要考虑运动强度的影响。Fitbit的确有提供每天卡路里消耗的推测值,但由于不知道其算法,自己还是保守地使用了步数来作为衡量标准。
在现今的数据横飞的时代,可能一个人手里拿着的、身上带着的、耳朵里塞着的、书包里背着的,都包括了一个又一个的传感器。这些传感器无时无刻不在产生着大量的数据。如何能安全地存储这些数据并且加以利用,是科学界和每个用户都面临的问题。对于一个个体而言,只有更好地通过这些数据了解自己,回答那个两千年前苏格拉底「认识你自己」的问题,才算是有了意义。
2017,新的一年,愿自己动好睡好,吃嘛嘛香!