2017-03-31 53 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