在串联中使用GGPLOT和RETHFFECT 我正在尝试获取一个图形,该图在X轴上显示连续变量。以及Y轴的概率。如果我使用GLM型号,我可以轻松地为数据做到这一点,然后使用绘图(Galfects(Glm ...

问题描述 投票:0回答:1

但是,这个情节看起来很糟糕(我必须将其格式化,好像是一张纸)。 我希望使用ggplot来使这个剧情有点漂亮,但我不知道该怎么做。 我知道我可以用

allEffects(glm)
提取一些效果值,但是我不确定如何正确使用它。 我尝试在GGPLOT函数中使用这些提取的效果,但是正如预期的那样,由于数据未正确格式,因此这不起作用。 我的问题:如何与GGPLOT同时使用Releffect功能。或者,我如何使用ggplot显示y轴的概率 enter image description here
您根本不需要使用
allEffects
。您可以直接绘制
glm

问题中没有示例数据,所以让我们做一些吧:

r ggplot2
1个回答
4
投票

现在是一个逻辑回归模型,在我们选择绘制此绘制的许多方式中,我们可以选择用

set.seed(69)

x  <- sample(1:100, 100, prob = (100:1), replace = TRUE)
y  <- rbinom(200, 1, (100 - x)/100)

df <- data.frame(x, y)

model1 <- glm(y ~ x, data = df, family = binomial)
绘制它,这当然很容易:
model1

wo,为了获得对图的外观的更多控制,我们可以在GGPLOT中使用

allEffects
显示等效图。在这里,我选择了一些黑白出版物 - 类型设置,但显然您需要根据您的口味和日记的要求来更改这些设置:

plot(allEffects(model1))


您会注意到这条线不是笔直的 - 那是因为我们有一个固定的概率轴,我认为这是展示这种模型的更好方法。

由Reprex软件包(v0.3.0)在2020-07-15创建
    

geom_smooth

返回列表。如果列表中只有一个元素,您可以做这样的事情:

ggplot(df, aes(x, y)) + 
  geom_smooth(method = "glm", formula = y ~ x, colour = "black",
              linetype = 2, fill = "gray80", alpha = 0.2,
              method.args = list(family = binomial)) +
  geom_rug(sides = "b") +
  theme_bw() +
  labs(y = "Probability", x = "Continuous variable", 
       title = "Logistic regression model") +
  theme(text = element_text(size = 16),
        plot.margin = margin(50, 50, 50, 50),
        axis.title.x = element_text(vjust = -8),
        axis.title.y = element_text(vjust = 10),
        plot.title = element_text(vjust = 8))

在这一点上,您有一个数据框,可以以正常方式绘制点。
fwiw在某些情况下似乎可以更灵活,并为您提供相同的数据框架。
    

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.