文章目录

  • 前言
  • 一、多因素logistic回归分析
    • 1. 数据准备
    • 2. 回归分析

前言

logistic回归分析是医学统计分析过程中常用的一种影响因素分析的方法,最常用的是二元logistic回归分析,即以二分类数据为因变量的logistic回归分析。上次已经和大家分享了批量进行logistic回归分析的代码,接下来将分享多因素logistic回归分析的代码。


一、多因素logistic回归分析

多因素logistic回归分析一般的分析思路其实就是把单因素分析过程中发现的有意义的变量同时纳入logistic回归模型,除了纳入有意义的变量之外,还可以通过强制纳入其他变量构建不同的模型。
多因素回归分析还包括逐步回归分析,以后有时间会进行整理分析,本文仅介绍全部纳入的代码。

1. 数据准备

首先,我们构建一个数据集供我们进行分析,同时方便大家复制学习:

set.seed(1234)#设置随机种子,保证生成数据一致log_data<- data.frame(Y = sample(0:1, 600, replace = T),sex=sample(1:2, 600, replace = T),edu=sample(1:4, 600, replace = T),BMI=rnorm(600, mean = 22, sd = 3),白蛋白=rnorm(600, mean = 35, sd = 6),随机血糖=rnorm(600, mean = 4.75, sd = 1.2))

Y为我们要研究的二分类因变量,sex、edu、BMI、白蛋白和随机血糖为自变量数据。

使用summary()函数查看一下数据特征:

> summary(log_data)Y               sex             edu            BMI            白蛋白         随机血糖    Min.   :0.0000   Min.   :1.000   Min.   :1.00   Min.   :13.21   Min.   :16.27   Min.   :1.036  1st Qu.:0.0000   1st Qu.:1.000   1st Qu.:2.00   1st Qu.:20.18   1st Qu.:30.94   1st Qu.:3.956  Median :1.0000   Median :1.000   Median :3.00   Median :22.17   Median :34.78   Median :4.816  Mean   :0.5017   Mean   :1.467   Mean   :2.57   Mean   :22.05   Mean   :35.04   Mean   :4.778  3rd Qu.:1.0000   3rd Qu.:2.000   3rd Qu.:4.00   3rd Qu.:23.98   3rd Qu.:39.19   3rd Qu.:5.579  Max.   :1.0000   Max.   :2.000   Max.   :4.00   Max.   :30.07   Max.   :54.01   Max.   :8.377

此处我们可以看到Y、sex、edu在本数据中被标记为计量资料了,所以我们需要利用as.factor()函数对数据进行因子化,当变量数较多时可以结合for循环可以批量处理:

#因子化
VarsC<-c("Y","sex","edu")#分类变量for(i in VarsC){log_data[,i] <- as.factor(log_data[,i])
}#利用循环因子化

然后再使用summary()函数查看一下数据特征:

summary(log_data)
Y       sex     edu          BMI            白蛋白         随机血糖    0:299   1:320   1:145   Min.   :13.21   Min.   :16.27   Min.   :1.036  1:301   2:280   2:142   1st Qu.:20.18   1st Qu.:30.94   1st Qu.:3.956  3:139   Median :22.17   Median :34.78   Median :4.816  4:174   Mean   :22.05   Mean   :35.04   Mean   :4.778  3rd Qu.:23.98   3rd Qu.:39.19   3rd Qu.:5.579  Max.   :30.07   Max.   :54.01   Max.   :8.377

此时,分类变量已被标记为因子,可以作为分类变量进行后续的回归分析。

2. 回归分析

代码如下:

#多因素logistic回归
varsMul<-c("sex","edu","BMI","白蛋白")#需要进行多因素分析的变量,随机生成的数据单因素无意义,故强制纳入
dataAM<-data.frame(subset(log_data,select=c("Y",varsMul[1:length(varsMul)])))#将因变量和要分析的自变量单独建库
fitMul<-glm(Y~.,data=dataAM,family=binomial())#行多因素logistic回归分析
fitSum<-summary(fitMul)
ResultMul<-c()#准备空向量,用来储存结果
ResultMul<-rbind(ResultMul,fitSum$coef)
OR<-exp(fitSum$coef[,'Estimate'])
ResultMul<-cbind(ResultMul,cbind(OR,exp(confint(fitMul))))

查看一下结果

> ResultMulEstimate Std. Error    z value  Pr(>|z|)        OR     2.5 %   97.5 %
(Intercept) -0.746063145 0.78794724 -0.9468440 0.3437183 0.4742299 0.1005306 2.216905
sex2         0.087257938 0.16446588  0.5305534 0.5957283 1.0911781 0.7904863 1.506749
edu2         0.157835294 0.23672211  0.6667535 0.5049296 1.1709733 0.7364382 1.864612
edu3        -0.158957902 0.23887554 -0.6654424 0.5057676 0.8530323 0.5333995 1.362035
edu4         0.151528355 0.22543231  0.6721679 0.5014768 1.1636113 0.7481041 1.811931
BMI          0.024530343 0.02876339  0.8528322 0.3937523 1.0248337 0.9687230 1.084545
白蛋白       0.003616099 0.01319647  0.2740201 0.7840692 1.0036226 0.9779787 1.029981

将结果输出为csv文件,方便制作三线表。

write.csv(ResultMul,file="Mul_log.csv")

输出的csv文件如下:

【R语言】logistic回归(二)多因素logistic回归相关推荐

  1. 数据分享|R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化...

    全文链接:http://tecdat.cn/?p=22262 在讨论分类时,我们经常分析二维数据(一个自变量,一个因变量)(点击文末"阅读原文"获取完整代码数据). 但在实际生活中 ...

  2. R语言中使用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据

    原文链接:http://tecdat.cn/?p=20828 本文使用lasso或非凸惩罚拟合线性回归,GLM和Cox回归模型的正则化,特别是_最小_最_大凹_度_惩罚_函数_(MCP)_和光滑切片绝 ...

  3. R语言White’s检验实战:检验回归模型中是否存在异方差性(heteroscedasticity)、发生了异常差(heteroscedasticity)问题如何解决

    R语言White's检验实战:检验回归模型中是否存在异方差性(heteroscedasticity).发生了异常差(heteroscedasticity)问题如何解决 目录

  4. R语言使用glm函数构建拟泊松回归模型(quasi-Poisson regression)、family参数设置为quasipoisson、summary函数获取拟泊松回归模型汇总统计信息

    R语言使用glm函数构建拟泊松回归模型(quasi-Poisson regression).family参数设置为quasipoisson.summary函数获取拟泊松回归模型汇总统计信息 目录

  5. R语言入门(二)正态性检验与假设检验

    R语言入门(二)正态性检验与假设检验 value1 <- c(20.51, 25.56, 20.78, 37.27, 36.26, 25.97, 24.62 )value2 <- c(32 ...

  6. R语言使用cox函数构建生存分析回归模型、使用subgroupAnalysis进行亚组分析并可视化森林图

    R语言使用cox函数构建生存分析回归模型.使用subgroupAnalysis进行亚组分析并可视化森林图 目录

  7. R语言survival包coxph函数构建cox回归模型、ggrisk包ggrisk函数可视化Cox回归的风险评分图、使用风险得分的中位数计算最佳截断值cutoff(基于LIRI基因数据集)

    R语言survival包coxph函数构建cox回归模型.ggrisk包ggrisk函数可视化Cox回归的风险评分图.使用风险得分的中位数计算最佳截断值cutoff(基于LIRI基因数据集) 目录

  8. R语言学习笔记 07 Probit、Logistic回归

    R语言学习笔记 文章目录 R语言学习笔记 probit回归 factor()和as.factor() relevel() 案例11.4复刻 glm函数 整理变量 回归:Logistic和Probit- ...

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

    第1部分:关于数据 行为风险因素监视系统(BRFSS)是美国的年度电话调查.最近我们被客户要求撰写关于BRFSS的研究报告,包括一些图形和统计输出.BRFSS旨在识别成年人口中的危险因素并报告新兴趋势 ...

  10. matlab逻辑回归工具箱,matlab-逻辑回归二分类(Logistic Regression)

    逻辑回归二分类 用到的预测函数为 其中,h为预测函数(大于0.5为一类,小于等于0.5为另一类).θ为各个特征的参数.θ=[θ1,θ2,θ3...]T 损失函数J(θ)为 利用梯度下降算法进行参数的更 ...

最新文章

  1. Windows MobileCE 开发书籍大全
  2. Opium推出针对跨链资产桥安全性的保险服务Bridge Protection
  3. 有什么激励你一辈子的句子?
  4. js返回上级页面的方法(亲测)
  5. android http 302重定向 实现,Android httpClient自动处理302重定向
  6. 干货培训 | 使用OBS进行直播导播和推流(下篇)
  7. excel教程自学网_企业Office办公软件自学视频教程word/excel/ppt 2003 2013 2016全套
  8. 量化新手初识基金绩效分析
  9. wex5 mysql服务器_将WeX5部署到自己的Tomcat服务器上
  10. windows11截屏快捷键失效
  11. 今天教你5种爆款标题,自媒体短视频标题写得好,月入过万少不了
  12. python爬取网易云音乐 专辑图片+歌词
  13. YOLOX源码解读系列
  14. 代理服务器介绍及种类划分
  15. Reverse Vowels
  16. C#图形教程画笔画刷等
  17. JS实现将汉字转成拼音实例
  18. 从EJB3中访问资源的5种方式
  19. 对一阶二阶低通滤波器推导,并用IMU数据验证算法效果
  20. 干货分享:百度品牌展现权限的开通方法

热门文章

  1. MySQL经典练习50题
  2. twitter最多关注者_Twitter的10个最具创意的用途
  3. 智能合约语言 Solidity 教程系列3 - 函数类型
  4. AdaDelta算法
  5. STM32F103C8T6 硬件SPI+DMA 控制WS2811
  6. vs2008破解方法(试用期过了,可以破解继续使用)
  7. filenet java配置_连接到filenet的外部java应用程序服务器
  8. 《穿越计算机的迷雾》
  9. 逻辑函数的化简方法——数电第二章学习
  10. ADS(Advanced Design system)仿真对电路进行阻抗匹配