我想绘制属于glm模型的每个变量,其中y轴是预测概率,x轴是变量水平或值。 这是我尝试的代码:
数据:
dat <- read.table(text = "target apcalc admit num
0 0 0 21
0 0 1 24
0 1 0 55
0 1 1 72
1 0 0 5
1 0 1 31
1 1 0 11
1 1 1 3", header = TRUE)
glm模型:
f<-glm(target ~ apcalc + admit +num, data = dat,family=binomial(link='logit'))
提供所需图表的循环:
for(i in 1:length(f$var.names)){
plot(predict(f,i.var.names=i,newdata=dat,type='response'))
}
我得到一个奇怪的情节作为输出(x轴上的“索引”和y轴中的“预测(f,i.var.names = i,newdata = dat,type ='response')”。我可以修复我的代码以获得所需的结果吗? (为了在这里提出,我还没有声誉)
答案 0 :(得分:1)
下图用预测的概率绘制所有变量,
f<-glm(target ~ apcalc + admit +num, data=dat,family=binomial(link="logit"))
PredProb=predict(f,type='response') #predicting probabilities
par(mfrow=c(2,2))
for(i in names(dat)){
plot(dat[,i],PredProb,xlab=i)
}
答案 1 :(得分:0)
在运行f&lt; -glm(.....)部分时,f $ var.names给出NULL作为输出。那里肯定有一些错误。
f<-glm(target ~ apcalc + admit +num, data=dat,family=binomial("logit"))
f
Call: glm(formula = target ~ apcalc + admit + num, family = binomial("logit"),
data = dat)
Coefficients:
(Intercept) apcalc admit num
2.2690 3.1742 2.4406 -0.1721
Degrees of Freedom: 7 Total (i.e. Null); 4 Residual
Null Deviance: 11.09
Residual Deviance: 5.172 AIC: 13.17
f$var.names
NULL