Как построить мою полиномиальную регрессионную кривую?

#r #regression

#r #регрессия

Вопрос:

Я новичок в R, и я работаю с полиномиальной линейной регрессией. У меня есть вектор коэффициентов или весов, и мы можем сказать (для простоты)

 w <- c(1:9) 
  

Мне нужно умножить каждый коэффициент соответственно на x ^ j, где j от 0 до 8, и суммировать их, чтобы получить функцию для последующего построения, например: (1 * x ^ 0 2 * x ^ 1 3 * x ^ 2 …). Я знаю, что могу ввести их вручную, но еслилинейная комбинация велика, она становится утомительной, я также знаю, что я могу использовать loe для выполнения регрессии, но для этого упражнения мне нужно сделать это самому. Итак, есть ли не ручной способ объединить эти коэффициенты и функции для последующего использования с curve()? Я думал:

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

становится

 curve(function(x))
  

где функция (x) содержит нужную функцию?

Заранее спасибо.

Ответ №1:

Это должно сработать

 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 .