2016-10-10 112 views
-1

我是R新手,我正在使用多項式線性迴歸。我有係數或權重的向量,我們可以說(爲簡單起見)如何繪製我的多項式迴歸曲線?

w <- c(1:9) 

我需要通過X^j,其中Ĵ從0到8分別乘以各系數和它們求和後,得到一個函數來繪製例如:(1 * x^0 + 2 * x^1 + 3 * x^2 ...)。我知道我可以手動輸入這些信息,但是如果線性組合很大,它會變得單調乏味,我也知道我可以用loes做迴歸,但是對於這個練習,我需要自己做。那麼是否有一種非手動方式將這些係數和函數粘貼在一起,以便稍後使用curve()?我在想:

curve(1*x^0 + 2*x^1 + 3*x^2...) 

成爲

curve(function(x)) 

其中函數(X)含有功能通緝?

在此先感謝。

回答

2

這應該工作

w <- c(1:9) 

f <- function(x, coef){ 
    n <- length(coef) 
    deg <- 0:(n-1) 
    sapply(x, function(x)sum(coef * x^deg)) 
} 

curve(f(x, coef = w)) 

使用sapply,我們允許函數採取任何長度的向量。這允許將該功能傳遞給curve