我有一个数据框,其中包含一个连续预测变量和一个二分响应变量。
> head(df)
position response
1 0 1
2 3 1
3 -4 0
4 -1 0
5 -2 1
6 0 0
我可以很容易地通过glm()
函数计算逻辑回归,目前没有问题。
接下来,我想使用ggplot
创建一个图表,其中包含每个11个预测变量的经验概率和拟合回归线。
我使用cast()
计算了概率,并将其保存在另一个数据框中。
> probs
position prob
1 -5 0.0500
2 -4 0.0000
3 -3 0.0000
4 -2 0.2000
5 -1 0.1500
6 0 0.3684
7 1 0.4500
8 2 0.6500
9 3 0.7500
10 4 0.8500
11 5 1.0000
我绘制了概率图:
p <- ggplot(probs, aes(x=position, y=prob)) + geom_point()
但是当我尝试添加拟合的回归线时
p <- p + stat_smooth(method="glm", family="binomial", se=F)
它返回一个警告:二项式glm中的非整数#成功次数!
。我知道为了正确绘制stat_smooth
,我必须在具有二元变量的原始df
数据上调用它。但是,如果我在ggplot()
中使用df
数据,则看不到绘制概率的方法。
如何将概率和回归线合并到一个图中,以ggplot2的方式呈现,即不会出现任何警告或错误消息?
+stat_smooth
,然后使用以下代码添加所需概率的线图:+geom_line(aes(x=position, y=prob), data=probs)
。在没有数据示例的情况下未经测试。 - IRTFM