我有二次回归模型。我想添加模型 将回归线拟合到散点图。我的偏好是使用ggplot2。 我可以绘制散点图,但是当我使用“stat_smooth()”时 为了指定公式,我得到以下警告和拟合 未在散点图上绘制线条。
警告讯息:
1:'newdata'有80行,但找到的变量有24行
2:stat_smooth()
中的计算失败:
参数意味着不同的行数:80,24
我的代码如下。有人可以指导我该怎么办 不同以便我可以在散点图中得到拟合的回归线 使用ggplot绘图。
代码:
library(gamair)
library(ggplot2)
data(hubble)
names(hubble)[names(hubble) == "y"] <- c("velocity")
names(hubble)[names(hubble) == "x"] <- c("distance")
hubble$distance.sqr <- hubble$distance^2
model2.formula <- hubble$velocity ~ hubble$distance +
hubble$distance.sqr - 1
model2.hbl <- lm(model2.formula, data = hubble)
summary(model2.hbl)
model2.sp <- ggplot(hubble, aes(x = distance, y = velocity)) +
geom_point() + labs(title = "Scatter Plot between Distance & Velocity",
x = "Distance", y = "Velocity")
model2.sp + stat_smooth(method = "lm", formula = hubble$velocity ~
hubble$distance + hubble$distance.sqr - 1)
答案 0 :(得分:1)
我认为这里的问题是如何指定二次公式。对于平方术语,您可以使用I(x^2)
或poly(x, 2)
。例如:
ggplot(hubble, aes(x, y)) +
geom_point() +
stat_smooth(method = "lm",
formula = y ~ x + poly(x, 2) - 1) +
labs(x = "Distance", y = "Velocity")
答案 1 :(得分:0)
这是一个基于“mpg”数据集的MWE:
library(ggplot2)
ggplot(mpg, aes(x = hwy, y = displ)) +
geom_point(shape = 1) +
geom_smooth(method = lm, se = FALSE)