脑卒中数据分析

首先大概介绍下需求目标。已知某地区2007年-2010年四年每天的环境数据,数据字段包括有平均(最高、最低)气温、气压,和平均湿度、最低湿度。数据文件名为data5.xls,其中文件中又有四个表,分别命名为07、08、09、10,代表着四年的环境数据,见下图:

看表格类型,第一列为日期数据,然后后面每8列都为一个月的环境数据,字段名重复。为了方便处理,先在Excel中从每个表(每年)的第三行开始抽取数据,复制到新的Excel中,另存为csv格式的文件,2007年的数据文件名记为data_07.csv , 其他年份的记名规则同上,挑07年的表上图:

目前的想法是讲四年,记四个表的数据汇总到一个表格中,其中每行的数据为每一天的环境数据,如下所示,下图是处理完成后的数据表,第一列可以不用管,是索引index,或者看成编号ID吧,第二列开始到第9列为环境数据,第10列year为年份,接着month为月份,最后一列汇总日期,日期形式为yyyy-mm-dd

在python3运行的程序如下:

接下来是处理病人数据了。病人数据的存放文件名为data1.xls、data2/3/4.xls共四个文档,下面是其中一个文档的数据,包括的字段有Sex性别、Age年龄、Occupation职业标签、还有Time of incidence发病日期、和Report time报告日期,当然在实际操作中报告日期不起作用,感觉是发病日期,因为要统计到每天/每月的发病人数,算出发病率。四个表的数据都有缺失,但缺失的数据基本都为年龄、职业,而发病日期和报告日期都没上面缺失。其中data1、data2、data4三个表的日期类型基本都为 yyyy/mm/dd,虽然都有一些肮脏数据,如08/1/1,但是比例很少,可以直接无视。但是data3.xls这个表中,日期类型格式yyyy/mm/dd占了很小一部分,反而日期类型为yyyy-mm--dd占多数。同时为了跟前面处理好的环境数据的日期类型统一标准,单独那data3出来更换数据类型。

原理不难,其实excel也能做,只是我也在python上做了,特别注意一下是,我把data3.xls数据另存为 patient_data3.csv文件了。

整理完data3.xls的数据之后,就把data1/2/4的数据也汇总在一起,这个在excel直接复制汇总即可。汇总文档名为totData.csv,然后在python统计每个月的各个指标。

现在得到每年每个月的各个指标和患病人数了,每个月的患病率定义为每各个月的患病人数/那一年的患病总人数,另外我还在excel自己写函数,计算了每个变量的变异系数。最后在SPSS中把患病率作为因变量,其他指标作为自变量,做多元逐步线性回归。

因为题目要考究环境因素对患病率的影响,事实上,我在SPSS中把原始的、题目给的8个环境因素对患病率做多因素方差分析,结果显示环境因素对患病率几乎没影响。而且即使强行用原来的变量作回归,拟合度也是抄底。

最后只能自己构造新的指标了,比如标注差、均值、还有变异系数等。考虑的问题的解释,模型就不考虑神经网络这些黑盒模型了,另外也因为变量太多了,非线性会使得模型结果更庞大。因为我这次统计是以月份为单位,4年48个月,如果采用非线性,会出现一个变量比数据样本还多,研究没意义。

最后也只能用线性模型了。另外一开始也试过统计以天为单位,但考虑到每天的患病率方差更小,偶然性和误差更多,最终没有采用以天数为单位的原因是做出来的拟合度太低。

想知道完整的题目和论文直接百度「脑卒中发病环境因素分析及干预」即可。

--------------********---------------

第一次把代码都注释了,整个流程大概花了3天。

至于代码,我是一开始用notebook上一步一步来的,架构整理得差不多再放到pycharm。

、、、

写这段代码的时候,只有上帝和我知道它是干嘛的

写完之后只有上帝知道它是干嘛的

、、、

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180708G1CEEM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券