2017-03-31 54 views
0

按ex18q1我试图找到数据的最佳模式:绘制LM曲线不显示在“R数据科学”使用ggplot

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

你可以欺骗,只是使用'+ geom_smooth(方法=“LM”)'而不是'geom_abline' – Phil

+0

@Phil谢谢,我注意到,当谷歌搜索,这是一个很好的解决方案。尽管我的理解力很强,但考虑到我对r很新,我想了解我的错误在哪里,为什么这不起作用 – User632716

+1

问题出在您的模型上。试一试'sim1a_mod < - lm(y〜x,data = sim1a)' – Phil

回答

3

打字的模型函数的公式一样lm()glm()lmer()等R中的命名始终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)) 

enter image description here