R语言可视化探索BRFSS数据并逻辑回归Logistic回归预测中风

news2024/12/26 22:37:46

第1部分:关于数据

行为风险因素监视系统(BRFSS)是美国的年度电话调查。最近我们被客户要求撰写关于BRFSS的研究报告,包括一些图形和统计输出。BRFSS旨在识别成年人口中的危险因素并报告新兴趋势。例如,询问受访者饮食和每周的体育锻炼,艾滋病毒/艾滋病状况,可能的烟草使用,免疫接种,健康状况,健康天数-与健康相关的生活质量,获得医疗保健,睡眠不足,高血压意识,胆固醇意识,慢性健康状况,饮酒,水果和蔬菜消费,关节炎负担和安全带使用。

 

相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

逻辑回归Logistic模型原理和R语言分类预测冠心病风险实例

,时长06:48

加载包

library(ggplot2)

载入资料

load("brfss2013.RData")

数据采集​​:

数据收集过程在brfss_codebook中进行了说明。通过进行座机电话调查和基于蜂窝电话的调查,从美国所有50个州,哥伦比亚特区,波多黎各,关岛和美属萨摩亚,密克罗尼西亚联邦和帕劳收集了数据。固定电话样本已使用了不成比例的分层抽样(DSS),并且随机选择了蜂窝电话受访者,每个受访者具有相同的选择概率。我们正在处理的数据集包含330个变量,2013年共进行491、775次观测。缺失值用“ NA”表示。

推广性:

样本数据应使我们能够推广到感兴趣的人群。它是对491,775名18岁以上美国成年人的调查。它基于大量分层的随机样本。潜在偏见与无回应,不完整的访谈,价值观缺失和便利偏见有关。

因果关系:

BRFSS是一项观察研究,只能建立变量之间的相关性/关联性,因此无法建立因果关系。

第2部分:研究问题

研究问题1:

在过去30天内,身心健康状况不佳的天数分布是否因性别而异?

研究问题2:

受访者接受采访的月份与受访者自我报告的健康感知之间是否存在关联?

研究问题3:

收入和医疗保险之间有关联吗?

研究问题4:

吸烟,饮酒,胆固醇,血压,体重和中风之间是否有任何关系?最终,我想看看是否可以通过上述变量预测中风。

第3部分:探索性数据分析

研究问题1:

ggplot(aes(x=physhlth, fill=sex), data = brfss2013[!is.na(brfss2013$sex), ]) +
  geom_histogram(bins=30, position = position_dodge()) + ggtitle('Number of Days Physical Health not Good in the Past 30 Days')

ggplot(aes(x=menthlth, fill=sex), data=brfss2013[!is.na(brfss2013$sex), ]) +
  geom_histogram(bins=30, position = position_dodge()) + ggtitle('Number of Days Mental Health not Good in the Past 30 Days')

ggplot(aes(x=poorhlth, fill=sex), data=brfss2013[!is.na(brfss2013$sex), ]) +
  geom_histogram(bins=30, position = position_dodge()) + ggtitle('Number of Days with Poor Physical Or Mental Health in the Past 30 Days')

summary(brfss2013$sex)
##  Male  Female   NA's 
##201313 290455      7 

以上三个数字显示了过去30天内男性和女性对身体,精神和健康状况不佳的天数做出反应的数据分布。我们可以看到,女性受访者比男性受访者要多得多。

研究问题2:
brfss-4 

我试图找出人们在不同月份对健康状况的反应是否不同。例如,人们是否更有可能说自己在春季或夏季身体健康?

研究问题3:  

一般而言,高收入受访者比低收入受访者更有可能获得医疗保健。

研究问题4:

为了回答这个问题,我将使用以下变量:

  • smoke100:抽至少100支香烟

  • avedrnk2:过去30天每天平均含酒精饮料

  • bphigh4:曾经血压过高

  • tellhi2:高胆固醇血症

  • weight2:报告的磅数

  • cvdstrk3:曾经被诊断为中风

首先,将上述变量转换为数字,并查看这些数字变量之间的相关性。


corr.matrix <- cor(selected_brfss)
corrplot(corr.matrix, main="\n\nCorrelation Plot of Smoke, Alcohol, Blood pressure, Cholesterol, and Weight", method="number")

似乎没有任何两个数字变量具有很强的相关性。

Logistic回归预测中风

将答案“是,但女性仅在怀孕期间告知”和“告诉临界点或高血压前”回答为“是”。

将“ NA”值替换为“否”。

stroke$bphigh4 <- replace(stroke$bphigh4, which(is.na(stroke$bphigh4)), "No")
stroke$toldhi2 <- replace(stroke$toldhi2, which(is.na(stroke$toldhi2)), "No")
stroke$cvdstrk3 <- replace(stroke$cvdstrk3, which(is.na(stroke$cvdstrk3)), "No")
stroke$smoke100 <- replace(stroke$smoke100, which(is.na(stroke$smoke100)), 'No')

平均替换“ NA”值。

mean(stroke$avedrnk2,na.rm = T)
##[1] 2.209905
stroke$avedrnk2 <- replace(stroke$avedrnk2, which(is.na(stroke$avedrnk2)), 2)

看一下将用于建模的数据。

head(stroke)
summary(stroke)
##   bphigh4 toldhi2 cvdstrk3 weight2 smoke100 avedrnk2
##1     Yes     Yes       No     154      Yes        2
##2      No      No       No      30       No        2
##3      No      No       No      63      Yes        4
##4      No     Yes       No      31       No        2
##5     Yes      No       No     169      Yes        2
##6     Yes     Yes       No     128       No        2
##  bphigh4      toldhi2      cvdstrk3        weight2       smoke100    
## No :284107   Yes:183501   Yes: 20391   Min.   :  1.00   Yes:215201  
## Yes:207668   No :308274   No :471384   1st Qu.: 43.00   No :276574  
##                                        Median : 73.00               
##                                        Mean   : 80.22               
##                                        3rd Qu.:103.00               
##                                        Max.   :570.00               
##    avedrnk2     
## Min.   : 1.000  
## 1st Qu.: 2.000  
## Median : 2.000  
## Mean   : 2.099  
## 3rd Qu.: 2.000  
## Max.   :76.000  

二进制结果。
在整理和清理数据之后,现在我们可以拟合模型。

Logistic回归模型拟合


summary(model)
##Call:
##glm(formula = cvdstrk3 ~ ., family = binomial(link = "logit"), 
##    data = train)

##Deviance Residuals: 
##    Min       1Q   Median       3Q      Max  
##-0.5057  -0.3672  -0.2109  -0.1630   3.2363  

##Coefficients:
##              Estimate Std. Error  z value Pr(>|z|)    
##(Intercept) -3.2690106  0.0268240 -121.869  < 2e-16 ***
##bphigh4Yes   1.3051850  0.0193447   67.470  < 2e-16 ***
##toldhi2No   -0.5678048  0.0171500  -33.108  < 2e-16 ***
##weight2     -0.0009628  0.0001487   -6.476 9.41e-11 ***
##smoke100No  -0.3990598  0.0163896  -24.348  < 2e-16 ***
##avedrnk2    -0.0274511  0.0065099   -4.217 2.48e-05 ***
##---
##Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##(Dispersion parameter for binomial family taken to be 1)

##    Null deviance: 136364  on 389999  degrees of freedom
##Residual deviance: 126648  on 389994  degrees of freedom
##AIC: 126660

##Number of Fisher Scoring iterations: 6

解释我的逻辑回归模型的结果:

所有变量均具有统计学意义。

  • 所有其他变量都相等,被告知血压升高,更可能发生中风。

  • 预测变量的负系数-tellhi2No表示,所有其他变量相等,没有被告知血液中胆固醇水平较高,则发生中风的可能性较小。

  • 每单位重量改变,具有冲程(相对于无冲程)的对数几率降低0.00096。

  • 至少抽100支香烟不抽烟,中风的可能性较小。

  • 在过去30天内,每天平均含酒精饮料增加1个单位,中风的对数几率降低0.027。

anova(model, test="Chisq")
##Analysis of Deviance Table

##Model: binomial, link: logit

##Response: cvdstrk3

##Terms added sequentially (first to last)


##         Df Deviance Resid. Df Resid. Dev  Pr(>Chi)    
##NULL                    389999     136364              
##bphigh4   1   7848.6    389998     128516 < 2.2e-16 ***
##toldhi2   1   1230.1    389997     127285 < 2.2e-16 ***
##weight2   1     33.2    389996     127252 8.453e-09 ***
##smoke100  1    584.5    389995     126668 < 2.2e-16 ***
##avedrnk2  1     19.9    389994     126648 7.958e-06 ***
##---
##Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

分析偏差表,可以看到一次添加每个变量时偏差的下降。添加bphigh4,tellhi2,smoke100会大大减少残留偏差。尽管其他变量weight2和avedrnk2都具有较低的p值,但它们似乎对模型的改进较少。

评估模型的预测能力

##[1] "Accuracy 0.961296978629329

测试装置上的0.96精度是非常好的结果。

绘制ROC曲线并计算AUC(曲线下的面积)


auc

brfss-7

##[1] 0.7226642

最后一点,当我们分析健康状况监测数据时,我们必须意识到自我报告的患病率可能会有偏差,因为受访者可能不知道其风险状况。因此,为了获得更精确的估计,研究人员正在使用实验室测试以及自我报告的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75837.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 并发编程

一.Python 对并发编程的支持 多线程&#xff1a;threading&#xff0c;利用CPU和IO可同时执行的原理&#xff0c;让CPU不会干巴巴等待IO完成&#xff0c;而是切换到其他Task&#xff08;任务&#xff09;&#xff0c;进行多线程的执行。多进程&#xff1a;multiprocessing&…

微前端总结

微前端概述 微前端概念是从微服务概念扩展而来的&#xff0c;摒弃大型单体方式&#xff0c;将前端整体分解为小而简单的块&#xff0c;这些块可以独立开发、测试和部署&#xff0c;同时仍然聚合为一个产品出现在客户面前。可以理解微前端是一种将多个可独立交付的小型前端应用…

使用极限学习机进行股市预测(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 极限学习机&#xff08;Extreme Learning Machine,ELM&#xff09;作为前馈神经网络学习中一种全新的训练框架,在行为识别、情…

EPICS -- 使用asynPortDriver类编写示一个示例程序

本示例展示了如何使用asynPortDriver类编写一个EPICS端口驱动程序的示例。 这个驱动程序参数库中一个有5个参数&#xff0c;分别支持5个EPICS记录。 如下是具体步骤&#xff1a; 1&#xff09; 用makeBaseApp.pl脚本建立这个IOC应用程序的框架&#xff1a; [blctrlmain-mach…

IDEA中如何实现git的cherry-pick可视化操作?

目录 问题现象&#xff1a; 问题分析&#xff1a; 解决方法&#xff1a; 拓展&#xff1a;如何回退提交记录&#xff1f; 问题现象&#xff1a; 今天在学习了git的cherry-pick功能&#xff0c;于是引出了一个问题&#xff1a; IDEA中如何实现git的cherry-pick可视化操作&am…

【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

在上一篇中&#xff0c;我们使用docker commit 命令&#xff0c;创建了一个带有vim的Ubuntu镜像。那么怎么将这个镜像分享出去呢&#xff1f;本文就来讲解如何将本地的docker镜像发布到阿里云上。 本文主要内容&#xff1a; 1&#xff1a;本地镜像发布到阿里云流程 2&#xf…

Linux网络原理与编程(4)——第十四节 传输层协议

目录 前置知识 再谈端口号 几个函数 netstat telnet UDP报文 UDP协议端格式 UDP首部&#xff1a; UDP的特点 UDP的缓冲区 TCP报文详解 Tcp报头详解 传输层是在应用层的下面一层&#xff0c;我们在讲解传输层协议之前&#xff0c;先来说一说一些前置知识即命令函数等…

看完就会flink基础API

文章目录一、执行环境&#xff08;Execution Environment&#xff09;1、创建执行环境2、执行模式(Execution Mode)3、触发程序执行二、源算子&#xff08;Source&#xff09;1、数据源类准备2、从集合中读取数据3、从文件中读取数据4、从Socket中读取数据5、从Kafka中读取数据…

ISCSLP 2022 Program|希尔贝壳邀您参加第十三届中文口语语言处理国际会议

第十三届中文口语语言处理国际会议将于2022年12月11-14日&#xff08;本周日~下周三&#xff09;正式开启&#xff0c;本次会议中的部分Session将通过语音之家视频号进行线上直播&#xff0c;欢迎大家参加&#xff01; 官网&#xff1a;www.iscslp2022.org 大会简介 中文口语…

ABAP学习笔记之——第十二章:SALV

一、概要 在Net Weaver 2004 平台上集合了利用函数和 GRID 的功能发布的 SALV 包程序 (SALV也称为 New ALV)。SALV 可以像利用函数生成 ALV 的不用创建屏幕就可以调用的全屏式ALV&#xff0c;还可以利用控制器在屏幕的控制器中显示 ALV。利用GRID 的ALV 虽然不能注册成 Batch …

速卖通知识产权规则介绍,如何才能规避侵权的问题?

最近有商家咨询到我&#xff0c;关于速卖通对商品知识产权是怎么评判的&#xff0c;今天就来给大家科普一下平台关于知识产权的规则介绍 速卖通平台严禁用户未经授权发布、销售涉嫌侵犯第三方知识产权的商品或发布涉嫌侵犯第三方知识产权的信息。 若卖家发布涉嫌侵犯第三方知…

从股票市场选择配对的股票:距离计算方法

我们来看看如何定义距离的计算方法。 回想一下&#xff0c;在共同趋势模型中&#xff0c;协整的必要条件是从共同趋势得到的新息序列必须完全相关。APT中的共同因子回报就理解成是从共同趋势得到的新息序列&#xff0c;因此&#xff0c;新息序列之间的相关系数就是共同因子回报…

网关性能大PK,Spring Cloud Gateway让人大失所望

现在的架构基本都是使用微服务的&#xff0c;而网关作为微服务的统一门户在架构模式中用得越来越多&#xff0c;API网关是所有客户端的单一入口点。 API网关模式是微服务体系结构的一个很好的起点&#xff0c;因为它能够将特定的请求路由到我们从整体上分离的不同服务。事实上…

嘿嘿嘿,10个我经常逛的“小网站”,不骗人

反思一下&#xff0c;为什么你会点进来~ 咳咳&#xff0c;步入正题。 工欲善其事必先利其器&#xff0c;你们的收藏夹里收藏了多少“小网站”&#xff1f;今天和大家分享10个我压箱底的效率工具/平台&#xff0c;现在用不上不要紧&#xff0c;赶紧收藏最关键&#xff01; 1.G…

【产品设计】APP常见的6种图片浏览模式

六种是指比较常见的图片浏览模式&#xff0c;是在这四种的基础上加上手势来实现另一种读图方式&#xff0c;这里不绝对说就这么几种&#xff0c;那么就谈谈个人对每种图片浏览模式说说自己在实际使用和工作中的一些理解&#xff0c;以及这些模式在实际设计中&#xff0c;哪一种…

智能聊天机器人––ChatGPT初体验

最近几天&#xff0c;由OpenAI公司发布的ChatGPT聊天机器人火了&#xff0c;小杨也怀着对新鲜事物的好奇&#xff0c;亲自体验了一下这个火爆全网&#xff0c;让人沉迷其中无法自拔的ChatGPT聊天机器人&#xff0c;经过体验&#xff0c;我只想用一个字来表达我的感受&#xff0…

【LeetCode每日一题】——142.环形链表 II

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【题目进阶】九【时间频度】十【代码实现】十一【提交结果】一【题目类别】 链表 二【题目难度】 中等 三【题目编号】 142.环形链表 II 四【题目描述】 …

Java百度地图全套教程(地图找房、轻骑小程序、金运物流等)

课程简介&#xff1a; 本课程基于百度地图技术&#xff0c;将企业项目中地图相关常见应用场景的落地实战&#xff0c;包括有地图找房、轻骑小程序、金运物流等。同时还讲了基于Netty实现高性能的web服务&#xff0c;来处理高并发的问题。 学完本课程能够收获&#xff1a;百度…

支持本地挂载的网盘文件列表工具AList

什么是 Alist&#xff1f; AList 是一个支持多存储的文件列表程序&#xff0c;使用 Gin 框架和 Solidjs 库。可以将常见的 18 种网盘整合在一起&#xff0c;并支持 WebDAV 客户端访问。 之前老苏写过一篇 Alist&#xff0c; 但此 Alist 非彼 Alist&#xff0c;之前的 A 应该是 …

React基础知识(React基本使用、JSX语法、React模块化与组件化)(一)

系列文章目录 文章目录系列文章目录一、React简介1.1 React的特点1.2 React高效的原因二、React基本使用2.1 引入react相关js库2.2 创建虚拟DOM的两种方法2.3 虚拟DOM和真实DOM三、JSX基本使用3.1 jsx使用四、React模块化与组件化4.1 函数式组件4.2 类式组件一、React简介 1.英…