根据“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
我使用数据点创建绘图,但模型未显示。我做错了什么?
答案 0 :(得分:3)
在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))