2016-10-10 70 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