根据"R for Data Science“中的ex18q1,我试图为数据找到最好的模型:
sim1a <- tibble(
x = rep(1:10, each = 3),
y = x * 1.5 + 6 + rt(length(x), df = 2)
)
我已经应用了线性模型,并试图用ggplot绘制图形上的结果:
sim1a_mod <- lm(x ~ y, data = sim1a)
ggplot(sim1a, aes(x, y)) +
geom_point(size = 2, colour= "gray") +
geom_abline(intercept = coef(sim1a_mod)[[1]], slope = coef(sim1a_mod)[[2]], colour = "red")
coef(sim1a_mod)[[1]]
打印-1.14403
coef(sim1a_mod)[[2]]
打印0.4384473
我用数据点创建图表,但模型没有显示。我做错了什么?
发布于 2017-03-31 07:40:35
在R中为模型函数(如lm()
、glm()
、lmer()
等)键入公式的术语总是DV ~ IV1 + IV2 + ... + IVn
,其中DV
是您的因变量,IVn
是您的自变量列表。我们通常绘制y轴上的因变量图和x轴上的自变量图,因此在您的情况下,您需要将sim1a_mod
模型更改为lm(y ~ x, data = sim1a)
。
在您的原始代码中,因为您运行的是不同的模型,所以您的行正在绘制,但它不在您的视图范围之内。如果您试图用下面的代码再次用原始模型绘制图表,那么您将看到您的回归线:
ggplot(sim1a, aes(x, y)) +
geom_point(size = 2, colour= "gray") +
geom_abline(intercept = coef(sim1a_mod)[[1]], slope = coef(sim1a_mod)[[2]], colour = "red") +
scale_x_continuous(limits = c(-30, 30)) + scale_y_continuous(limits = c(-30, 30))
https://stackoverflow.com/questions/43143897
复制相似问题