#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
.