使用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))=β+β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.372549 | 0.840708 | 0.7719298 |
病情重 | 0.1086957 | 0.5882353 | 0.5375 |
从上面直观的看出,药物乙对于病情轻和病情重都有较高的有效率。
本文分析结束。
原文地址:https://blog.csdn.net/2301_78852561/article/details/136260811
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!