【发布时间】:2018-05-28 15:48:34
【问题描述】:
我尝试在我的 ggplot 上添加我的(多条)线性回归线。 我早上有两个假人(早晚)。假人。 该图是正确的,但是当我想添加回归线时它给了我一个错误。 代码如下:
regression_1 <- lm(weight ~ morning.dummy + dayNumber + (morning.dummy*dayNumber) +
I(dayNumber^2) + (I(dayNumber^2)*morning.dummy),
data=weight_data)
summary(regression_1)
#plot
plot2 <- ggplot(data=weight_data,aes(x=dayNumber, y=weight, color=morning.dummy)) +
geom_point()+
stat_smooth(method = "lm", formula = weight ~ morning.dummy + dayNumber + (morning.dummy*dayNumber) +I(dayNumber^2) + (I(dayNumber^2)*morning.dummy), size = 1) +
labs(y = "Weight in kg", x = "Day Number of weight measurment", subtitle = "Day 0 = 3 October 2010")
plot2
这是错误:
Error in grid.Call.graphics(C_setviewport, vp, TRUE) :
non-finite location and/or size for viewport
In addition: Warning message:
Computation failed in `stat_smooth()`:
object 'dayNumber' not found
有人知道我哪里做错了吗?
【问题讨论】:
-
您只能在 ggplot2 中绘制具有一个 DV 的回归模型。但是,
stat_smooth(method = "lm", formula = weight ~ poly(daynumber, degree = 2), size = 1)应该给出与您的模型相同的预测。 -
谢谢,我试过了,但仍然收到错误'dayNumber not found。但它是我的数据集中变量的名称之一。那么这可能是什么问题?
-
是的,我忘了。它必须是
stat_smooth(method = "lm", formula = y ~ poly(x, degree = 2), size = 1)。见这里:stackoverflow.com/a/25031125/1412059 -
Roland,为什么将 dayNumber 与 weight 的关系建模为二次方会产生与包含morning.dummy 和交互效应的模型相同的结果?
-
@tifu 是的,如果与本示例中的每个多项式系数存在交互,则来自
y ~ poly(x1, degree = 2) * x2的预测应该与来自每个因子水平的单独多项式拟合的预测相同,因为 ggplot2 将适合。但当然,也可以轻松地计算 ggplot2 之外的预测并将其传递给 ggplot。
标签: r ggplot2 linear-regression