问题导读:
1、医疗领域如何运用大数据技术?
2、急性上呼吸道感染,需要哪些大数据技术?
![](static/image/hrline/4.gif)
1、背景:
急性上呼吸道感染(以下简称“上感”)是呼吸道疾病的一种,是指鼻、鼻咽及咽部的急性炎症 ,是由病毒或细菌在鼻咽部产生的。是一种常见多发性疾病,危害较大。“上感”虽因人而异,但群发性明显,是典型的“季节病”或“气象病”之 一。本作业关于其与气象的关系进行一定的统计分析。分析不同气象因子对上感发病人数的关系,并找出与之关系密切的气象因子,并作出预测。
2、思路:
将气象因子与“上感”作逐步回归分析, 得出“上感“与某些气象因子关系密切,并建立了回归预测方程,结果误差比较大,因此将数字因子化,用低中高三个水平来判断,用决策树和分类器分别来找出影响的气象因子和预测上感的发病率的高低。
3、对数据进行描述分析:
(一)
- options(max.print=100)
- b=read.csv("2.csv")
- plot(b$月,b$门诊量)
- for( i in 1:3)
- { lines(b[(1:12)+(i-1)*12,2],b[(1:12)+(i-1)*12,3],col=i,lty=i+1)
- }
- legend("topleft",legend=c("2009年","2010年","2011年"),col=1:3,lty=2:4,bty="n")
复制代码
描述性图像
进行多元线性回归
- a=read.csv("1.csv")
- b=as.data.frame(a)
- lm.sol=lm(门诊量~.,data=b[,4:20])
- summary(lm.sol)
复制代码
效果不好,进行逐步回归
- lm.step=step(lm.sol)
- summary(lm.step)
复制代码
得到与感染人群数相关的气象因子为:气压,风速,温度进行预测和比较:
画出标准化残差图
- y.fit=predict(lm.step)
- y.rst=rstandard(lm.step)
- plot(y.rst~y.fit)
复制代码
大部分点落在|r|<=2的水平带上,模型应该是合适的
但发现预测值与实际值偏差稍大
(二)
因此我们对门诊量数据进行因子化,门诊量小于50的,水平为低,说明感染数不大;门诊量大于50,小于80的,水平为中,说明上感发病率略高; 门诊量大于80,水平为高,说明发病率高
进行决策树分析
- a=read.csv("1.csv")
- library(rpart)
- library(rpart.plot)
- i=rep(0,1095)
- for(j in 1:1095){ if (a$门诊量[j]<=50) i[j]="低" else if (a$门诊量[j]>50 & a$门诊量[j]<=80) i[j]="中" else i[j]="高"}
- i=as.factor(i)
- v=a[,4:20]
- v$门诊量=i
- h=rpart(门诊量~.,data=v,method="class")
- rpart.plot(h,type=4,uniform=T,branch=1,extra=1)
复制代码
决策树结果说明 温度、相对湿度 极大风速是影响门诊量即感染人数的重要因素。
(三)
用建立分类器器的方法来判断预测”上感“发病人数的高低
用装袋方法预测:
- library(adabag)
- library(rpart)
- bag=bagging(门诊量~.,data=v[,1:17])
- pre.bag=predict(bag,v[,1:17])
- pre.bag$confusion
复制代码
准确率为:0.690411
用提升方法:
- library(mlbench)
- boosting<-boosting(门诊量~.,data=v[,1:17])
- pre.boost=predict(boosting,v[,1:17])
- pre.boost$confusion
复制代码
准确率为: 0.8347032
4、结果的分析和解读
(1)从所作图像上可以观察到此地”上感“多发月份为11、12、1月;经过多元回归分析,得到的效果并不理想,进一步进行逐步回归分析并画出残差图,我们得到了适合的模型,但此时得到的预测值与实际值偏差略大,依然不能找出关键的影响因子;
(2)为了找到有效的气象因子,我们对门诊量数据进行因子化,根据门诊量不同分为高中低三种不同的水平,经过决策树分数,我们找到影响“上感”感染人数多少的气象因子为:气温,相对湿度和极大风速;
(3)用分类器对数据分析可以得到发病人数多少的预测,分别用装袋方法和提升方法进行预测,可以看到通过提升方法得到的预测更为准确一些。
|