自学内容网 自学内容网

使用R语言进行logistic回归分析(1)

一、问题及数据集描述

三种药物对于不同病情的某病的治疗效果
 病情 有效(1) 无效(0)
甲药(0)轻(1) 38 64
 重(0) 10 82
      
乙药(1)轻(1) 95 18
 重(0) 50 35
      
丙药(2)轻(1) 88 26
 重(0) 43 37

某研究者欲比较3种不同的药物治疗病情不同的某病的效果,研究数据见上表,试对数据进行logistic回归,并进行统计推断。

二、定义变量,分析思路

本例中某种药物有效为1,无效为0,即某种药物的治疗效果y取值为1或0,p为某种药物有效的概率,E(y)=p即是变量y的期望。自变量为病情的轻重,轻为1,重为0,本例已给出病情轻重的样本数据,本例回归模型即是f(E(y))=β_{0}^{_{1}}x。

因此定义y1,y2,y3分别为某种药物的治疗的效果,取值为1或0,有效为1,无效为0,定义x1,x2,x3分别为每种药物下实验下病情轻重样本数据,也用1和0表示。x为0代表为轻症状,x为1为中症状。

根据本例的数据可以得到:

x1<-rep(c(1,0,c(102,92))

x2<-rep(c(1,0),c(113,85))

x3<-rep(c(1,0),c(114,80))

y1<-rep(c(1,0,1,0),c(38,64,10,82))

y2<-rep(c(1,0,1,0),c(95,18,50,35))

y3<-rep(c(1,0,1,0),c(88,26,43,37))

现分别对上面定义的变量进行logistic回归分析。

三、logistic回归分析

对甲药物:

df1<-data.frame(y1,x1)
log.reg1<-glm(y1~x1,family = binomial,data=df1)
summary(log.reg1)

运行得到:

从回归结果来看,回归方程系数显著。

于是得到的logistic回归模型为:

p1=exp(-2.1041+1.5828x1)/(1+exp(-2.1041+1.5828x1))

即是logit(p1)=-2.1041+1.5828x1

使用同样的方法,对乙药物丙药物也做logistic回归,分别得到下面的回归方程,回归系数都显著。

p2=exp(0.3567+1.3068x2)/(1+exp(0.3567+1.3068x2))

p3=exp(0.1503+1.069x3)/(1+exp(0.1503+1.069x3))

四、统计推断

对于甲药物,当x1=1时,求病情较轻时药物的有效的概率,使用如下命令:

log.pre1<-predict(log.reg1,data.frame(x1=1))
p1<-exp(log.pre1)/(1+exp(log.pre1))
p1

运行得到

当x1=0时,求病情较重时药物的有效的概率,使用如下命令:

log.pre1<-predict(log.reg1,data.frame(x1=0))
p1<-exp(log.pre1)/(1+exp(log.pre1))
p1

对乙药物和丙药物分别重复上面的过程得到下表:

药物有效的概率
药物甲药物乙药物丙药物
病情轻0.3725490.8407080.7719298
病情重0.10869570.58823530.5375

从上面直观的看出,药物乙对于病情轻和病情重都有较高的有效率。

本文分析结束。


原文地址:https://blog.csdn.net/2301_78852561/article/details/136260811

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!