我需要在ggplot2中绘制logit回归的预测概率。基本上,我试图通过同一图表中的每个处理条件绘制一个glm图。但是,我对如何看到我的treat
变量(即我感兴趣的x)是分类的感到非常困惑。这意味着当我尝试使用ggplot绘制治疗效果图时,我得到一个一堆点在0,1和2但没有线。
我的问题是......在这种情况下,我如何绘制logit预测线?提前谢谢!
set.seed(96)
df <- data.frame(
vote = sample(0:1, 200, replace = T),
treat = sample(0:3, 200, replace = T))
glm_output <- glm(vote ~ as.factor(treat), data = df, family = binomial(link = "logit"))
predicted_vote <- predict(glm_output, newdata = df, type = "link", interval = "confidence", se = TRUE)
df <- cbind(df, data.frame(predicted_vote))
答案 0 :(得分:3)
由于解释变量treat
是分类的,因此如果您使用boxplot代替以下内容会更有意义:
ggplot(df, aes(x = treat, y = predicted_prob)) +
geom_boxplot(aes(fill = factor(treat)), alpha = .2)
如果您希望通过glm
在其他一些解释变量的不同值上看到预测的概率,您可以尝试这样做:
ggplot(df, aes(x = treat, y = predicted_prob)) +
geom_boxplot(aes(fill = factor(treat)), alpha = .2) + facet_wrap(~gender)
# create age groups
df$age_group <- cut(df$age, breaks=seq(0,100,20))
ggplot(df, aes(x = treat, y = predicted_prob)) +
geom_boxplot(aes(fill = factor(treat)), alpha = .2) + facet_grid(age_group~gender)