0

我有一个关于为具有多个预测变量的逻辑回归模型绘制概率曲线的问题。我在 SO 上发布了这个,因为我想知道 ggplot2 特定的解决方案,并从 ggplot2 中的 logit 模型创建有用的图形。

所以这是一个例子=

library(car)
mtcars
log <- glm(vs ~ mpg + am, data=mtcars, family=binomial)
summary(log)

这提供了 logit coefs(对数赔率),但我想知道如何继续预测 mpg 的所有“级别”的 Y = 1,并且在 ggplot2 中。基本上,我如何使用 ggplot2 创建有助于解释 logit 模型结果的图?当有多个预测变量时,我特别想知道解决方案。

编辑:

我专门询问如何使用预测值或优势比生成图表。

4

3 回答 3

5

这个怎么样:

library(car)
mtcars
#Change your model name because log is also a function
logodds <- glm(vs ~ mpg + am, data=mtcars, family=binomial)
summary(logodds)

library(ggplot2)
new.data = with(mtcars, expand.grid(am = unique(am),
                                    mpg = seq(min(mpg), max(mpg))))

new.data$vs <- predict.glm(logodds, newdata = new.data, type = "response")

ggplot(new.data, aes(mpg, vs, colour = am)) + geom_line(aes(group = am))

在此处输入图像描述

于 2012-07-06T19:22:06.820 回答
4

不确定您是在寻找不同的 mpg 和 am 值的预测 Y,还是只是想解释系数?

如果您试图解释系数,我是系数图的忠实粉丝。

require(coefplot)
coefplot(log)

这让你: 在此处输入图像描述

编辑: 也许是这样。

preds <- with(mtcars, expand.grid(mpg, am))
names(preds) <- c("mpg", "am")
preds$Score <- predict(object=logMod, newdata=preds, type="response")
ggplot(preds, aes(x=mpg, y=Score, group=am, colour=factor(am))) + geom_line(linetype=2) + scale_color_discrete("am")

在此处输入图像描述

于 2012-07-06T19:10:24.237 回答
2

您的另一个选择 - 虽然尚未使用 ggplot2 - 是在 Frank Harrell 的 rms 包中找到的绘图方法。我希望 Harrell 很快会切换到 ggplot2 来绘制他的图表,但是方法集、诊断图、概率图、系数图等非常有用。

于 2012-07-07T23:37:47.840 回答