首页 > 其他分享 >R语言逻辑回归、随机森林、SVM支持向量机预测Framingham心脏病风险和模型诊断可视化

R语言逻辑回归、随机森林、SVM支持向量机预测Framingham心脏病风险和模型诊断可视化

时间:2024-02-03 21:00:59浏览次数:26  
标签:SVM 变量 模型 回归 ggplot geom Framingham 可视化 boxplot

原文链接:http://tecdat.cn/?p=24973 

原文出处:拓端数据部落公众号

简介

世界卫生组织估计全世界每年有 1200 万人死于心脏病。在美国和其他发达国家,一半的死亡是由于心血管疾病。心血管疾病的早期预后可以帮助决定改变高危患者的生活方式,从而减少并发症。本研究旨在查明心脏病最相关/风险因素,并使用机器学习预测总体风险。

数据准备 

来源

该数据集来自对居民正在进行的心血管研究。分类目标是预测患者未来是否有 10 年患冠心病 (CHD) 的风险。数据集提供了患者的信息。它包括超过 4,000 条记录和 15 个属性。

变量

每个属性都是一个潜在的风险因素。有人口、行为和医疗风险因素。

 人口统计:
• 性别:男性或女性(标量)
• 年龄:患者年龄;(连续 - 尽管记录的年龄已被截断为整数,但年龄的概念是连续的)
行为
• 当前吸烟者:患者是否是当前吸烟者(标量)
• 每天吸烟数:此人一天内平均吸烟的香烟数量。(可以认为是连续的,因为一个人可以拥有任意数量的香烟,甚至半支香烟。)
• BP Meds:患者是否服用降压药(标量)
•中风:患者之前是否有中风(标量)
•  Hyp:患者是否患有高血压(标量)
• 糖尿病:患者是否患有糖尿病(标量)
• Tot Chol:总胆固醇水平(连续)
• Sys BP:收缩压(连续)
• Dia BP:舒张压(连续)
• BMI:体重指数(连续)
• 心率:心率(连续 - 在医学研究中,心率等变量虽然实际上是离散的,但由于存在大量可能值而被认为是连续的。)
• 葡萄糖:葡萄糖水平(连续)
预测变量(预期目标)
• 10 年患冠心病 CHD 的风险(二进制:“1”表示“是”,“0”表示“否”)

心脏病预测

   
# 获取数据
rdaa <- read.csv(路径)
   
# 这边可以考虑增加变量收缩压与舒张压之差、描述收缩压、舒张压与高血压等级的变量

# 看数据结构
str(ata)

   
# 考虑增加变量bplevel
raw_data <- sqldf

# 对变量类别进行区分

ra_da <- map
str(ra_da )

数据预处理

查看和处理缺失值

   
# 这里我们使用mice包进行缺失值处理
aggr

   
matplot

由上图可以看出,除了glucose变量,其它变量的缺失比例都低于5%,而glucose变量缺失率超过了10%。对此的处理策略是保留glucose变量的缺失值,直接删除其它变量的缺失值。 现在处理glucose的缺失值,

   
# 处理glucose列
lee_a <- subset & !is.na & !is.na & !is.na & !is.na & !is.na
# 查看glce与其它变量的线性相关性确定mice的填充策略
gcog = glm(lcse ~ .)
smry(glseg)

 

填充,排除不重要的变量。至于为什么不选diaBP,主要是后面的相关性分析中,这两个变量会造成多重共线性。

   
mice%in%  m=5,  "pmm", mai = 50, sd=2333, pint= FALSE)
#查看填充结果
smr(mc_od)

   
# 查看原始数据和插补后的数据分布情况
epot(mi_md)

   
sipt(mcod, pch=12)

   
# 填充数据
mi_t <- complete
fir_aa$loe <- miout$guose
sum(is.na(flda))

删除重复行

   
# 查看有无重复行并删除重复行
sum(duplicated

   
comd_ata <- comdta[!duplicated(), ]

查看离群点

   
#查看异常值
gplot(coedta)+geom_boxplot(ae(ftr(1),age))

   
ggplot(copd_dta)+geom_boxplot(aes(factor(1cigDy))

   
ggplot(coea)+geom_boxplot(aes(factor(1),ttl))

   
ggplot(colt_ta)+geom_boxplot(aes(factor(1),syBP))

   
ggplot(comeaa)+geom_boxplot(aes(factor(1),daP))

   
ggplot()+gem_boxplot(aes(factor(1),BMI))

   
# 查看cigsPerDay
cigs_sub <- comled_dta
# 查看totChol,删除异常点
# 查看sysBP, 删除异常点
# 查看BMI

totChol: 总胆固醇水平大于240mg/dl已属于非常高,故删去水平值为600mg/dl的记录。 sysBP: 去掉收缩压为295mg/dl的记录

   
# 删除各变量离群点
competedata 
   
# 分类型变量列联分析
ggplot+geom_boxplot

   
ggplot+geom_boxplot(aes,totChol,fill=TenYerCHD))

   
cometddata %>% fitr %>% 
ggplot

由图像知,glucose和hearRate变量有不显着的风险

   
table1=table
chisq.test

   
table1

   
table2=table
chisq.test

   
table3=table
chisq.test

   
chisq.test

   
ggpairs

diaBP和sysBP有多重共线性的问题。 

currentSmoker变量可能不显着,下面进入模型部分。

模型

   
# 划分数据集

split = sample.split

train = subset

逻辑回归

   
# 逻辑回归模型 - 使用所有变量
fultaog = glm
summary(fulog)

 

   
fldaog = glm
summary(fuatLg)

   
prdts = predict
glm_le <- table
   
ACCU

随机森林

   
rfoel <- randomForest
# 获得重要性
imprace

   
# 选择重要的因素
rfmdel <- randomForest
# 误差
plot

   

# 获取重要性
ggplot +
   geom_bar
   geom_text

这里有患病风险的误差不降反升,需要探究其中原因

   
# 绘制分类图像
pred<-predict
pdou_1<-predict  #输出概率
table <- table
sum(diag/sum #预测准确率

   
plot(margin

SVM支持向量机

   
# 先进行模型调优
tud <- tune.svm
summary(tud )

   
# 使用turning函数得到最佳参数设置支持向量机
mel.nd <- svm
cost=tuned$
summary(modted)

   
# 调用predict函数基于刚配置好的SVM模型进行类标号的预测:
sm.ne.ed <- predict
sv.tuedtble <- table
sm.ue.tbe

   
acy.s.vm <- sum(diag)/sum

模型诊断

根据上面三个模型的结果,可以看出预测结果的类别数量分布非常不均衡

   
sum

   
sum(TeYaHD == 0)

针对这一现象,需要采取方法平衡数据集。


最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言混合效应逻辑回归Logistic模型分析肺癌

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

8.python用线性回归预测股票价格

9.R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

标签:SVM,变量,模型,回归,ggplot,geom,Framingham,可视化,boxplot
From: https://www.cnblogs.com/tecdat/p/18005196

相关文章

  • R语言用决策树的酒店收入和产量预测可视化研究
    全文链接:https://tecdat.cn/?p=35130原文出处:拓端数据部落公众号现代社会经济的发展,促进了酒店业的投资热潮, 投资者投资一个酒店,必须在投资前对若干经营数据进行科学预测与分析,对酒店可能形成的收入成本水平进行估算,从而对投资的风险进行有效预测。酒店管理者在借鉴西方发达国......
  • Python随机波动模型Stochastic volatility,SV随机变分推断SVI分析标普500指数股票价格
    全文链接:https://tecdat.cn/?p=33809原文出处:拓端数据部落公众号随机波动模型(Stochasticvolatilitymodels)经常被客户用来对股票价格随时间的变动性进行建模。波动性(volatility)是随时间的对数收益的标准差。与假设波动性恒定不变不同,随机波动模型具有隐变量参数,可以在每个时刻......
  • R语言结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例|附代
    原文链接:http://tecdat.cn/?p=25044原文出处:拓端数据部落公众号最近我们被客户要求撰写关于结构方程模型的研究报告,包括一些图形和统计输出。1简介在本文,我们将考虑观察/显示所有变量的模型,以及具有潜在变量的模型。第一种有时称为“路径分析”,而后者有时称为“测量模型”。......
  • 数据可视化中常见的图表
    数据可视化是将数据信息通过图形的方式展示出来,以便更直观地理解和分析数据。以下是一些常用的数据可视化图表类型:柱状图(BarChart)-用于展示不同类别的数据量对比。折线图(LineChart)-展示数据随时间或其他变量变化的趋势。饼图(PieChart)-显示各部分占整体的比......
  • R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化|附代码数据
    全文链接:http://tecdat.cn/?p=22350 最近我们被客户要求撰写关于时变向量自回归(TV-VAR)模型的研究报告,包括一些图形和统计输出。在心理学研究中,个人主体的模型正变得越来越流行。原因之一是很难从人之间的数据推断出个人过程另一个原因是,由于移动设备无处不在,从个人获得的时间......
  • R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度
    原文链接:http://tecdat.cn/?p=23836原文出处:拓端数据部落公众号我们使用R中的igraph包,产生了网络的图形。但是很难将这些图表放到演讲和文章中,因为图表很难根据需要定制。使用igraph中的绘图功能可以得到你想要的结果,但用ggplot对工作更有帮助。所以本文探索了一种在ggplot中创......
  • 开启古董背后的故事:古董展览可视化大屏的互动体验
    在我们的生活中,科技与传统的交融已经变得无处不在。走进古董的世界,仿佛打开了时光的闸门,每一件古董都承载着千年的故事与历史。然而,传统的古董展览方式,往往受限于空间和展示手段,难以让每一位观众深入地感受到古董背后的历史与文化。此时,古董展览可视化大屏的出现,为这一难题提供了......
  • 借助可视化表单搭建企业级低代码平台,实现流程化办公!
    实现高效率的流程化办公,利用低代码技术平台可以为企业带来高效益的办公目的。可视化表单是较为流行的办公利器,流辰信息经验足、产品丰富、服务品质好,可以为更多的企业搭建专属于企业的低代码技术平台,创造高效益的办公。1、低代码技术平台的市场价值什么是低代码平台?它究竟有什么......
  • 探索军事基地可视化的奥秘:从数据采集到实战应用
    随着科技的飞速发展,军事领域也在经历着前所未有的变革。军事基地可视化系统通过运用先进的大数据、物联网、云计算等技术,将复杂的战场信息以直观、立体的方式呈现出来。这种技术为军事指挥官提供了更加精准的决策依据,让他们能够更好地掌握战场态势,迅速作出判断和指挥。 ↑图为......
  • R语言GAMLSS模型对艾滋病病例、降雪量数据拟合、预测、置信区间实例可视化
    全文链接:http://tecdat.cn/?p=31996原文出处:拓端数据部落公众号GAMLSS模型是一种半参数回归模型,参数性体现在需要对响应变量作参数化分布的假设,非参数性体现在模型中解释变量的函数可以涉及非参数平滑函数,非参数平滑函数不预先设定函数关系,各个解释变量的非线性影响结果完全取决......