首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >logistic回归geom_abline (ggplot2)

logistic回归geom_abline (ggplot2)
EN

Stack Overflow用户
提问于 2015-08-26 11:19:18
回答 1查看 2.1K关注 0票数 1

很抱歉,这个问题很简单,但我却找不到解决问题的办法。我想用ggplot2绘制逻辑回归线。问题是我不能使用geom_abline,因为我没有原始模型,只是每个回归线的斜率和截距。我已经将这种方法用于线性回归,这在geom_abline中很好,因为您只需给出多个斜率并截取函数。

Geom_abline(数据=估计,aes(截距=内部,斜率=斜率)

其中interslo是具有多个值的向量。

如果我用logistic回归中的系数来尝试同样的方法,我会得到错误的回归线(线性)。我试图使用geom_line,但是,我不能使用函数predict来生成预测值,因为我没有原始的模型objetc。

有什么建议吗?

谢谢你,古斯塔沃

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-26 11:43:35

如果模型有logit链接,那么您可以只使用截距(coefs[1])和斜率(coefs[2])绘制预测图,如下所示:

代码语言:javascript
复制
library(ggplot2)

n <- 100L
x <- rnorm(n, 2.0, 0.5)
y <- factor(rbinom(n, 1L, plogis(-0.6 + 1.0 * x)))

mod <- glm(y ~ x, binomial("logit"))
coefs <- coef(mod)

x_plot <- seq(-5.0, 5.0, by = 0.1)
y_plot <- plogis(coefs[1] + coefs[2] * x_plot)

plot_data <- data.frame(x_plot, y_plot)

ggplot(plot_data) + geom_line(aes(x_plot, y_plot), col = "red") + 
        xlab("x") + ylab("p(y | x)") +
        scale_y_continuous(limits = c(0, 1)) + theme_bw()

编辑

在这里,绘制k预测的概率线的一种方法是按照前面的代码绘制相同的图形:

代码语言:javascript
复制
library(reshape2)

k <- 5L

intercepts <- rnorm(k, coefs[1], 0.5)
slopes <- rnorm(k, coefs[2], 0.5)

x_plot <- seq(-5.0, 5.0, by = 0.1)
model_predictions <- sapply(1:k, function(idx) {
            plogis(intercepts[idx] + slopes[idx] * x_plot)
        })

colnames(model_predictions) <- 1:k
plot_data <- as.data.frame(cbind(x_plot, model_predictions))
plot_data_melted <- melt(plot_data, id.vars = "x_plot", variable.name = "model", 
        value.name = "y_plot")

ggplot(plot_data_melted) + geom_line(aes(x_plot, y_plot, col = model)) + 
        xlab("x") + ylab("p(y | x)") +
        scale_y_continuous(limits = c(0, 1)) + theme_bw()

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32225223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档