使用多个预测变量绘制逻辑回归?

时间:2020-10-06 09:28:14

标签: r logistic-regression data-analysis

我进行了以下逻辑回归:

model<-glm(Choice~Cat+Dog+Rabbit+Cow,data=database,family=binomial(link="logit"))
summary(model)

现在,我想用所有四个预测变量来可视化此回归。谢谢!!

1 个答案:

答案 0 :(得分:2)

您具有多元回归,因此您需要改变一个变量并使其他变量保持不变,这称为边际效应。您可以从头开始对其进行编码以使其形象化,我认为这里有一些有用的软件包,例如ggeffectssjplot。在使用示例数据集并绘制效果之前,

library(ggeffects)
dat = iris
dat$Species = as.numeric(dat$Species=="versicolor")
mdl = glm(Species ~ .,data=dat,family="binomial")

summary(mdl)

Call:
glm(formula = Species ~ ., family = "binomial", data = dat)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.1280  -0.7668  -0.3818   0.7866   2.1202  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)    7.3785     2.4993   2.952 0.003155 ** 
Sepal.Length  -0.2454     0.6496  -0.378 0.705634    
Sepal.Width   -2.7966     0.7835  -3.569 0.000358 ***
Petal.Length   1.3136     0.6838   1.921 0.054713 .  
Petal.Width   -2.7783     1.1731  -2.368 0.017868 * 

要可视化一个:

plot(ggpredict(mdl,"Petal.Width"))

enter image description here

为所有变量绘制这些图:

library(patchwork)

plts = lapply(names(coefficients(mdl))[-1],function(i){
       return(plot(ggpredict(mdl,i)))
       })

wrap_plots(plts)

enter image description here

如前所述,这些图是通过边际效应获得的,即使其他图保持其平均值。您还可以通过将另一个变量设置为不同的值来进行探索,例如:

plot(ggpredict(mdl,c("Petal.Width","Petal.Length")))

enter image description here