0

在使用二元预测器运行逻辑回归后,当我尝试使用 visreg 和 ggplot 绘制结果时,图例表明颜色已按组更改,但它们在图中没有更改。

这是使用 mtcars 数据的问题说明。

data(mtcars)
head(mtcars, 10)

仅有的两个二元变量是 vs 和 am,但需要将它们从数值转换为因子才能使此插图起作用。

mtcars$vs <- as.factor(mtcars$vs)
mtcars$am <- as.factor(mtcars$am)

运行模型。

logit1 <- glm(vs ~ am, data = mtcars, family = "binomial")

现在尝试使用 visreg 以及其他 ggplot 函数来自定义颜色和标签来绘制结果。

visreg(logit1, "am", scale = "response", gg = TRUE, rug = FALSE, by = "am", overlay=TRUE) + 
  scale_color_manual(values=c("#1b9e77", "#d95f02"), 
                     breaks=c(0, 1), 
                     labels=c("Zeros", "Ones"))

对于 am = 1 组,我希望线条和阴影区域都应该是橙色(#d95f02),对于 am = 0 组,线条和阴影区域都应该是绿色(#1b9e77)。如您所见,这不是代码产生的。在此处输入图像描述

4

1 回答 1

1

没有任何功能visreg可以让您立即执行此类操作。您当然可以更改颜色,例如:

visreg(logit1, "am", scale = "response", gg = TRUE, rug = FALSE, by = "am", overlay=TRUE,
       fill.par=list(fill="#1b9e77"), line.par=list(col='#d95f02'))

但是您所描述的是构建一个完全不同的图:其中的值am映射到不同的颜色。这将涉及aes构建情节的完全不同的对象。除非有一些ggplot2我不知道的惊人技巧,否则如果不从头开始重建情节,就没有办法做到这一点。

于 2019-04-30T20:31:05.907 回答