回归模型大杂烩-神包autoReg直接整理好二分类logistic回归模型单因素和多因素结果(三线表+森林图均可输出)

学术   2024-09-01 10:26   陕西  

目录:

1二分类logistic回归模型

2.手动计算OR值

3.基于autoReg包快速整理结果

         

 

目的:以性别、年龄、省份、城乡、婚姻、文化程度、个人年收入为自变量;分别以MS和MS聚集为因变量。采用相应的模型分析影响因素。

变量赋值表

变量

变量类型

赋值

属于

性别

2分类

1=男;2=女

自变量

年龄

连续

                   

 

省份

无序多分类

21/23/32/37/41/42/43/45/52

城乡

2分类

1=城市,2=农村

婚姻

无序多分类

1~5

文化程度

有序多分类

1~5

个人年收入

连续

                   

 

MS(含义代谢综合征)

2分类

0=无;

1=有;

因变量,用于

二分类logistic回归

1二分类logistic回归模型:    

#导入数据和数据处理

.libPaths()#查看R包位置.libPaths("D:/Program File/R/R-4.3.2/library")#定义包安装位置setwd("E:/02学习/经验/01医学统计/回归模型大荟萃-多重线性回归")#设置工作空间getwd()#加载工作空间library(readxl)mydata<-read_excel("多重线性回归.xlsx")#分类变量因子化a<-c("性别","省份","城乡","婚姻")#填入需要转化的变量mydata[,a]<-lapply(mydata[,a],as.factor)#转因子#设置分类变量的参照组mydata$性别<-relevel(mydata$性别, ref="1")mydata$省份<-relevel(mydata$省份, ref="21")mydata$城乡<-relevel(mydata$城乡, ref="1")mydata$婚姻<-relevel(mydata$婚姻, ref="1")

#二分类logistic回归模型

fit<- glm(MS~性别+年龄+省份+城乡+婚姻+文化程度+个人年收入,          data=mydata,family=binomial(link = "logit"))summary(fit)    

解释:上述模型结果无logistic模型的OR值及置信区间,需要自己手动整理计算

2手动计算OR值:

fitsum<-summary(fit)#计算回归系数的OR值,注意这里是fitsumOR<-exp(fitsum$coef[,'Estimate'])#OR值的置信区间,注意这里是fitOR_CI<-exp(confint(fit))#paste函数合并OR和置信区间    paste(OR,"(",OR_CI[,1],"~",OR_CI[,2],")")

解释:手动整理计算的OR值还得自己再整理,不是特别方便。

3基于autoReg快速整理结果

# https://cloud.tencent.com/developer/article/2146471

#install.packages("autoReg")

library(autoReg)

#autoReg函数功能介绍

autoReg(fit,#代表模型

        uni=TRUE,#代表显示单因素分析结果

        threshold=0.1#代表进入多因素分析的p阈值=0.1,当设定为1时代表所有变量均进入多因素模型

        )

#功能1:三线表输出

result<-autoReg(fit, uni=TRUE) %>% myft()    result#下载输出三线表的包#install.packages("rrtable")library(rrtable)table2pptx(result) #保存结果至ppttable2docx(result) #保存结果至word

解释:可以看出上面的表格基本就和我们的表格2很类似的,既有各分组的基本描述、还有单因素和多因素的结果。美中不足的是小数位好像无法调整。基本描述保留1位小数、OR值是2位小数,P值是3位小数。

#功能2:森林图输出

#modelPlot函数功能介绍

modelPlot(fit,#模型

          uni=TRUE,#是否展示单因素

          threshold=1,#进入多因素的阈值

          show.ref=FALSE)#是否展示参照

#森林图导出

p1=modelPlot(fit,uni=F)rrtable::plot2pptx(print(p1))#将森林图导出至ppt编辑rrtable::plot2docx(print(p1))#保存结果至word

解释:森林图导出至ppt可以进行编辑。有个缺点就是同时显示单因素的结果貌似会重叠,大家可以自己尝试一下。

         

 

   

流病统计与科研学习笔记
流行病与卫生统计学专业主要分享基于SAS、R以及其他统计软件实现各种统计学方法和结果绘图,提高自己的学习能力
 最新文章