饮食偏好对老年人的身体健康有什么影响?
这次学习的背景
2021年年末,99岁高龄的爷爷摔伤到现在还无法起床,73岁的父亲在老家照顾爷爷,这让我感到悲伤的同时,深刻认识到了中国人口老龄化这一不争的事实。我有了想更多了解中国老龄人口状态的想法,不是那种老龄人口占比之类的宏观数据了解,是希望通过微观数据了解更具生活气息的状态。从哪里入手呢?
数据获取
一顿网络搜索,发现这样的微观数据,尤其是社会学方面的微观数据,因涉及隐私,导致公布数量少,即算有也严格的权限申请流程。经过一番比较,北京大学开放研究数据平台是一个不错的选择,平台上的中国老年健康与家庭幸福调查(CLHLS-HF)栏目下,中国老年健康影响因素跟踪调查(CLHLS)项目数据集是我可以尝试探索的入口。该调查项目,最近的一次跟踪调查(2017-2018年)共访问15,874 名65+岁老年人,收集了2014-2018年期间死亡的2,226位老年人的信息。填申请表,等待…获批,下载数据。
数据加工
- 数据初探
这是一套通过广泛面访获得的非常全面的数据集,涵盖了全国22个省市自治区500多样本点地区,近16000名65岁及以上各年龄段的老年调查对象。数据文件格式采用的IBM SPSS专业统计软件输出的.sav格式,对于我这样的数据小白来说,完全没有接触过,无法直接使用。一番折腾,通过在R Console安装haven包读取.sav数据文件。library(haven) dataget <- read_sav("xxx.sav",encoding = "UTF-8") dim(dataget)
[1] 15874 761
15,874条观测数据,每条数据761个变量! - 问题提出
我还是个小白,这么多变量,怎么研究呢?通过阅读调查问卷和数据编码本,了解到项目问卷从老人的基本状况、自身对现状的评价、生活方式等7个大的方面进行调研的。民以食为天,我还是从简单、直接的入手,选择生活方式板块的饮食习惯数据,确定目标问题:老年人的饮食习惯与偏好,跟他们的身体健康状态有直接的关系吗?这种关系能用数据说话吗? - 数据剪辑和处理
- 在R Console内从原始数据集中提取22个变量,将这部分提取数据写入csv文件,放到Excel中进行再处理。(这么做的原因是自己还不会在R中处理,觉得在Excel中写个公式来得更快…)
write.csv(subdata,file="subdata.csv",fileEncoding = "UTF-8")
- 通过Excel打开subdata.csv文件,对照数据编码本,使用一系列的公式对数据进行“数值-字符”转换,以及条件判断后的字符串连接操作。形成格式如这样的数据文件datasets.csv
- 回到R Console加载data.table包读取以上datasets.csv文件,并对第3列的字符串按","分隔创建新的list格式数据
library(data.table) ds <- fread("datasets.csv") ds$lsets <- strsplit(as.character(ds$sets),",")
- 在R Console内从原始数据集中提取22个变量,将这部分提取数据写入csv文件,放到Excel中进行再处理。(这么做的原因是自己还不会在R中处理,觉得在Excel中写个公式来得更快…)
数据可视化
好了,到目前为止,我完成了数据采集和格式转换工作,接下来就是可视化的工作了。这里我尝试学习How to Make UpSet Plots in R, with ggplot2 and ggupset,这是我第一次接触Upset plots这种类型的图标,很新颖,它是维恩图的上佳替代品,它比维恩图能更好的展现多数据集,更易读懂。数据可视化的步骤在这份学习文档中已经详细的说明了,我这里就不再重复代码,直接将最后图标结果输出。
观点形成
从以上Upset plots中可以很容易的看出:
- 日常饮食习惯同样是经常吃蔬菜、肉类、蛋类、豆制品、鱼这5种食物,有70人评价自己身体不太好,又有34人评价自己身体好得很。
- 评价自己身体好得很的老人中,经常吃蔬菜、肉类、蛋类、豆制品、鱼这5种食物,还有经常吃蔬菜、肉类、蛋类、豆制品、鱼、水果这6种食物,以及只经常吃蔬菜1种食物的人数最多,分别是34/33/33人。其他食物组合偏好的人数逐步减少。
- 评价自己身体不太好的老人中,经常吃蔬菜、肉类、蛋类、豆制品、鱼这5种食物,还有只经常吃蔬菜、肉类这2种食物,以及经常吃蔬菜、肉类、蛋类、豆制品、鱼、蒜类这6种食物的人数最多,分别是70/67/52人。排名第四是只经常吃蔬菜的老人数,50人。
小结:常见饮食种类的选择习惯与偏好,对老年人身体健康的影响并不构成直接因果关系。(似乎白忙活了…)