R 回归 虚拟变量na_【R语言进阶】Logistic回归及哑变量设置
Logistic回归是最常用的多因素回归模型,在医学研究中,常用于研究疾病的危险因素,下面我们一起来看看,R语言是如何实现Logistic回归的。
1
第一步 导入数据
首先,在excel里全选数据集,右键复制。
然后,在Rstudio中,输入:
mydata "clipboard")
查看数据:
2
第二步 分类变量和等级变量转成因子型变量
mydata$sex$sex,levels=c(0,1), labels=c("Female","Male"))mydata$work$work,levels=c(0,1), labels=c("Non-work","Work"))mydata$disease$disease,levels=c(0,1), labels=c("Non-disease","Disease"))mydata$bmig$bmig,levels=c(1,2,3), labels=c("normalweight","overweight","obese"))mydata$bloodtype$bloodtype,levels=c(1,2,3,4), labels=c("O","A","B","AB"))
查看数据:
3
第三步进行单因素logistic回归
model1 <- glm(disease ~ bloodtype, data= mydata, family = binomial())
查看结果:
结果解读:
Estimate列表示回归系数,Std.Error表示标准误,z value表示统计量的值,Pr(>|z|)表示p值。我们可以看到bloodtypeA、bloodtypeB、bloodtypeC的结果,但是没看到bloodtypeO的结果。这是因为R语言logistic回归默认将分类变量的第一个factor设置为参照,通过前面的str(mydata)命令获得的数据集概况,可以看到bloodtype的levels顺序为:O、A、B、AB,所以在此回归模型中bloodtypeO当作参照。
获得OR值:
获得OR值95%可信区间:
科研论文通常需要我们提供OR值及其95%可信区间以及p值,虽然这些都得到了,但是貌似整理起来比较麻烦,别急,我们通过命令进行整理。具体而言:先通过broom包中tidy函数把model1的结果变成规范的数据框格式,提取出p值,再把OR值和OR的95%可信区间,组合到一起。
install.packages("broom")library(broom)y
zexp(coef(model1)),
结果解读:
exp.coef.model1表示OR值, X2.5和X97.5表示OR值的95%可信区间,y.p.value表示p值。Bloodtype作为无序多分类变量,需要设置为哑变量,一般哑变量的数目比分类变量的数目少一个,少掉的那个就作为参照(reference)。例如本例中,bloodtypeO就是参照,本文末尾有较为详细的说明。
4
第四步 多因素logistic回归
Model2 <- glm(disease ~sex+age+bmig+work+a+b+c+x+y, data = mydata, family = binomial())
整理成表格:
library(broom)mexp(coef(model2)),
结果输出到excel里:
write.csv(m,file="多因素logistic回归结果.csv")
在G盘的R文件夹中查看生成的多因素logistic回归结果,如图所示:
经过更改表头及简单的调整:
5
进阶:哑变量及参照的设置
Logistic回归中一个重点内容,把无序多分类变量设置为哑变量,本文的例子中bloodtype是无序多分类变量,需要设置成哑变量,一个快捷的方法是把bmig设置为因子变量,做logistic时,默认为已经设置成哑变量。
还有一个重要的问题是如何设置哑变量的参照,本例中我们是以O型为参照,其他各型与它相比。如果我们想把A型设为参照,该如何操作呢?
我们先看下bloodtype的各level名称的顺序:
把A型作为参照,只需把A调到第一个位置:
mydata$bloodtype$bloodtype,
查看是否成功:
levels(mydata$bloodtype)
运行模型
model3 <- glm(disease ~sex+age+bmi+work++bloodtype+a+b+c+x+y, data = mydata, family = binomial())
关注我的,数据分析都不求人了不信你试试
R 回归 虚拟变量na_【R语言进阶】Logistic回归及哑变量设置相关推荐
- 用R语言建立logistic回归模型
用R语言建立logistic回归模型 公式:fm<-glm(formula,family=binomial(link=logit),data=data.frame) 其中:link=logit可 ...
- R语言构建logistic回归模型:构建模型公式、拟合logistic回归模型、模型评估,通过混淆矩阵计算precision、enrichment、recall指标
R语言构建logistic回归模型:构建模型公式.拟合logistic回归模型.模型评估,通过混淆矩阵计算precision.enrichment.recall指标 目录
- R语言构建logistic回归模型:WVPlots包PRTPlot函数可视化获取logistic回归模型的最优阈值、优化(precision、enrichment)和recall之间的折衷
R语言构建logistic回归模型:WVPlots包PRTPlot函数可视化获取logistic回归模型的最佳阈值(改变阈值以优化精确度(precision.enrichment)和查全率(recal ...
- R语言构建logistic回归模型并评估模型:模型预测结果抽样、可视化模型分类预测的概率分布情况、使用WVPlots包绘制ROC曲线并计算AUC值
R语言构建logistic回归模型并评估模型:模型预测结果抽样.可视化模型分类预测的概率分布情况.使用WVPlots包绘制ROC曲线并计算AUC值 目录
- R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数、阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化、基于数据阳性样本比例选择合适的分类评估指标
R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数.阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化.基于数据阳性样本比例选择合适的分类评估指标 目录
- R语言构建logistic回归模型并评估模型:计算混淆矩阵、并基于混淆矩阵计算Accuray、Precision、Recall(sensitivity)、F1、Specificity指标
R语言构建logistic回归模型并评估模型:计算混淆矩阵.并基于混淆矩阵计算Accuray.Precision.Recall(sensitivity).F1.Specificity指标 目录
- R语言条件Logistic回归模型案例:研究饮酒与胃癌的关系
R语言条件Logistic回归模型案例:研究饮酒与胃癌的关系 目录 R语言条件Logistic回归模型案例:研究饮酒与胃癌的关系 #样例数据
- R语言基于Logistic回归绘制限制性立方样条图(Restricted Cubic Spline)
相关介绍: 在病因推断.剂量效应研究中,时常要分析自变量和因变量的数量关系.广义线性模型,如Logistic回归.Possion回归等是应用比较广泛的方法.它的一个重要假设是通过选择合适的链接函数,因 ...
- c语言变量标识符,C语言简单记-标识符,注释,数据类型,变量
"C语言简单记"基于我以前学习过程中做过的笔记.随笔,特意整理了一下,只是简单的记录了一些比较重要的知识点,不会去深入探究,面向的是一些有语言基础的人查找阅读,还请见谅,谢谢~~~ ...
- 分类型变量预测连续型变量_「JS进阶」你真的掌握变量和类型了吗
文章转载自公众号 code秘密花园 , 作者 ConardLi 一起看下面几个问题: JavaScript中的变量在内存中的具体存储形式是什么? 0.1+0.2为什么不等于0.3?发生小数计算错误的具 ...
最新文章
- 单个晶体管形成的奇怪振荡电路
- 比“敲低基因”更可怕的是这些项目,看完青少年科技创新大赛完整名单,读研的我自闭了...
- python的类型 变量 数值和字符串
- tableau必知必会之拖拽功能失效是怎么回事
- C#中通过单例模式以及Dictionary实现键值对的映射,通过key获取value
- WPF快速入门系列(2)——深入解析依赖属性
- java day21【缓冲流、转换流、序列化流】
- PHP添加网站版权信息,如何将版权和作者信息添加到用PHP创建的图像?
- 技术创造新商业:云研发时代的效能挑战 | 凌云时刻
- awvs无法启动问题
- cimiss数据_中国气象数据网
- 数据治理---Apache Atlas元数据管理
- 【机器学习基础】泛化能力、过拟合、欠拟合、不收敛、奥卡姆剃刀原则
- 递归回溯生成和解决数独问题c/c++
- c语言 快排,C语言 快排函数
- 啊哈算法—解救小哈(广度优先搜索)
- 汉字目标点选识别-ddddocr
- ubuntu idea 卸载
- Pentaho Data Integration初步安装
- 【组合数学】卡特兰数 / 大施罗德数 相关
热门文章
- SpringBoot简单实现上传图片到七牛云
- 数据分析中的统计检验方法- t检验、f检验、卡方检验、互信息
- java用jaxb三步解析xml_三步解决JAXB生成XML包含CDATA问题
- ubuntu更新时Not enough free disk space
- ajax调取mysql数据显示在html_ajax实现从后台拿数据显示在HTML前端的方法
- 2016奇虎360研发工程师内推笔试编程题 - 题解
- mysql basemapper_BaseMapper和继承
- flac编码音频转alac编码(使用ffmpeg)
- 《博德之门3》的许多设计,还不如上世纪的前作
- [RK3399][Android7.1] 调试笔记 --- HDMI输出没有音频信号