2013-10-29 23 views
3

我想要得到的梯度值對R中如何獲得abline的梯度中的R

散點圖線性模型/坡舉例來說,如果我有一個情節:

x <- 1:10 
y <- c(0, 0, 1, 0, 1, 1, 0, 1, 1, 1) 
plot(x, y) 
abline(lm(y ~ x)) 

散點圖現在有一條線,爲此我需要知道梯度。理想情況下,我想要的是可以計算各種x/y組合的漸變的函數,而不必每次繪製圖形。我可以自己創建這個函數,但是我被困在如何獲得漸變。

+1

'lm(y〜x)$係數[2]'給出了這個例子中直線的斜率。這就是你要找的所有東西嗎? –

+3

@JakeBurkhead Minor nitpick:通常'coef(lm(y〜x))[2]'是首選。 – joran

回答

5

使用您的數據和例子

x <- 1:10 
y <- c(0, 0, 1, 0, 1, 1, 0, 1, 1, 1) 
plot(x, y) 

保存你傳遞給abline線性模型,可以在在線進行

abline(mod <- lm(y ~ x)) 

然後檢查使用coef()模型mod係數功能

coef(mod) 

R> coef(mod) 
(Intercept)   x 
    0.06667  0.09697 

「斜率」是第二個係數cient。如果要提取只是一個子集由coef()返回的載體,如

coef(mod)[2] 

R> coef(mod)[2] 
     x 
0.09697 

請注意,我不建議分配給對象作爲參數的一部分,其他功能像我上面那樣。如果你的代碼或腳本變得很大,那麼這些事情可能更難以追蹤或一個一個地點。我通常更喜歡自己創建對象。對於上面的例子,那將會意味着做

mod <- lm(y ~ x) 
abline(mod) 

這不是一個主要的區別,但它更容易發現其中產生mod以及如何。

1

一個簡單的線性迴歸模型有兩個係數,您可以使用coef函數進行提取。斜率是第二個係數。

x <- 1:10 
y <- c(0, 0, 1, 0, 1, 1, 0, 1, 1, 1) 
fit.lm <-lm(y ~ x) 
slope <- coef(fit.lm)[2]