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

Plotting logistic regression with multiple predictors?

我运行以下逻辑回归:

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

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

你有一个多元回归,所以你需要改变一个变量并保持其他变量不变,这称为边际效应。您可以从头开始编写代码以将其可视化,我认为有一些有用的包,例如 ggeffects or sjplot。在我使用示例数据集并绘制效果之前:

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"))

为所有变量绘制这些图:

library(patchwork)

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

wrap_plots(plts)

如前所述,这些地块是通过边际效应获得的,即将其他地块保持在平均值。您还可以通过将另一个变量保持在不同的值来探索它,例如:

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