2. 临床预测模型——Logistic回归

本文介绍了如何在R语言中使用glm和lrm函数进行二分类Logistic回归分析,以探讨人群未来10年冠心病风险与人口学资料的关系。通过实例展示了变量因子化和OR值计算的方法,包括手动提取系数和置信区间。
摘要由CSDN通过智能技术生成

基本原理

详见7.常用统计分析方法——Logistic回归_logistic回归模型怎么建立-CSDN博客

二分类Logistic回归

1. glm()函数

案例:探讨人群未来10年冠心病发生风险与人口学资料以及临床症状和体征之间的关系。

load("framingham.Rdata")
str(framingham)

因变量十年的冠心病风险为二分类资料,采用二分类logistic回归

对分类变量因子化:

framingham$male<-factor(framingham$male,
                        levels = c(0,1),
                        labels = c("女性","男性"))
framingham$education<-factor(framingham$education,
                             levels = c(1,2,3,4),
                             labels = c("高中以下","高中","大学","大学以上"))
framingham$currentSmoker<-factor(framingham$currentSmoker,
                                 levels = c(0,1),
                                 labels = c("不吸烟","吸烟"))
framingham$BPMeds<-factor(framingham$BPMeds,
                          levels = c(0,1),
                          labels = c("不服用","服用"))
framingham$prevalentStroke<-factor(framingham$prevalentStroke,
                                   levels = c(0,1),
                                   labels = c("无脑卒中家族史","有脑卒中家族史"))
framingham$prevalentHyp<-factor(framingham$prevalentHyp,
                                levels = c(0,1),
                                labels = c("无高血压家族史","有高血压家族史"))
framingham$diabetes<-factor(framingham$diabetes,
                            levels = c(0,1),
                            labels = c("不患糖尿病","患糖尿病"))
framingham$TenYearCHD<-factor(framingham$TenYearCHD,
                              levels = c(0,1),
                              labels = c("未来10年无冠心病风险","未来10年有冠心病风险"))
str(framingham)

二分类的logistic回归可以使用rms包中的lrm()函数或者基础包中的glm()函数,但是某些绘图中只能使用lrm函数绘制,所以推荐lrm函数。

framinghamLog <- glm(formula=TenYearCHD ~., data = framingham, family = binomial)
summary(framinghamLog)

用“.”表示除了TenYearCHD变量之外的所有变量,纳入方程。

family指定因变量TenYearCHD是二分类变量(binomial),如果不指定默认未Logit链接函数。

注意:如果glm()函数不指定family的类型,则会默认为正态分布,这时拟合就不再是Ligstic回归模型。

上述结果只提供了偏回顾i系数没有提供OR值。

方法一:

coef<-coef(framinghamLog)
coef_CI<-confint(framinghamLog)
OR_Results<-exp(cbind("OR"=coef,"LL"=coef_CI[,1],"UL"=coef_CI[,2]))
round(OR_Results,3)

利用coef()函数提取各自变量的偏回归系数。confint()函数提取各自变量的偏回归系数的95%置信区间。利用exp计算OR值。

解释:比如性别,以女性作为参考水平,男性未来10年冠心病的风险是女性的1.707倍,或者描述为男性未来10年冠心病的风险比女性高70.7%。

方法二:

epiDisplay包中的logistic.display()函数

library(epiDisplay)
logistic.display(framinghamLog,
                 crude=TRUE,
                 crude.p.value=TRUE,
                 simplified=FALSE) 

crude设置为TRUE,将显示自变量单因素分析的OR及95%CI,crude.p.value则显示分析结果的p值,simplified=F表示不显示简化结果。

同时展现单因素和多因素的结果。

2.rms包lrm()函数

案例:探究低出生体重的危险因素,因变量low为二分类变量。

data("birthwt")
str(birthwt)

birthwt$white<-ifelse(birthwt$race==1,1,0)
birthwt$black<-ifelse(birthwt$race==2,1,0)

race有三个水平,表示母亲的种族,1表示白人,2表示黑人,3表示其他

二分类变量本身为哑变量,无须处理,需要处理多分类变量race

在数据集birthwt中生成white和black列,其中0,1分别表示否,是

这里没有将race=3设置为哑变量,在回归时race=3将作为参照水平。三分类变量处理成2个哑变量,以此类推,四分类处理为3个哑变量,五分类处理为4个哑变量。

library(rms) 
birthwtLog <- lrm(formula=low~age+lwt+smoke+ptl+ht+ui+ftv+white+black,data =birthwt)
birthwtLog

同样没有显示OR值

coef<-coef(birthwtLog)
se<-c(1.1046,0.0370,0.0069,0.4022,0.3454,0.6975,0.4593,0.1724,0.4408,0.5376)
coef_CI<-cbind(coef-1.96*se,coef+1.96*se)
OR_Results<-exp(cbind("OR"=coef,"LL"=coef_CI[,1],"UL"=coef_CI[,2]))
round(OR_Results,3)

需要手动提取出coefficient的标准误se,然后利用近似正态法计算偏回归系数的95%CI。

其他Logistic回归

参考7.常用统计分析方法——Logistic回归_logistic回归模型怎么建立-CSDN博客

 

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
R语言中的预测模型逻辑回归是一种常用的统计模型,用于拟合回归曲线。当目标变量为分类变量时,逻辑回归模型可以用来进行分类预测。逻辑回归的基本原理是通过对自变量与因变量之间的关系进行建模,来预测目标变量的概率。逻辑回归模型可以用于分析多种类型的预测因子,包括连续变量、分类变量或两者的混合。 在R语言中,可以使用glm()函数来拟合逻辑回归模型。与线性回归类似,拟合的过程也是通过最小化损失函数来求解模型的参数。使用glm()函数可以指定预测变量和目标变量,并选择适当的链接函数和误差分布。 对于临床预测模型,可以使用基于逻辑回归的方法来构建预测模型。这种方法会首先自动提取具有显著性的单因素变量,然后将这些变量带入到多因素回归中进行建模。接下来,会再次自动提取具有显著性的多因素变量,并构建最终的预测模型。这种全流程的R语言代码可以帮助简化模型的构建过程,提高预测模型的准确性和可解释性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [在R语言中实现Logistic逻辑回归](https://blog.csdn.net/tecdat/article/details/127631141)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [临床预测模型 基于Logistic回归临床预测模型全流程R语言代码 包含以下特色: 1自动提取单因素有意义...](https://download.csdn.net/download/2301_79097066/88046613)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值