У меня есть данные (ниже), и я провел линейную регрессию, регрессию гребня и лассо. Для регрессии лассо и гребня я нашел оптимальную лямбду с помощью перекрестной проверки. Теперь я хочу наложить подогнанные модели на график y vs x моих исходных данных. У меня есть линейная модель на графике, я просто не могу понять, как заставить появиться две другие. Я пробовал это в ggplot, но ответ в базе R тоже был бы очень полезен! Даже если бы вы могли указать мне правильное направление, это было бы здорово.
У меня все модели работают нормально. У меня есть линия линейной регрессии на графике. Однако, когда я пытаюсь таким же образом построить две другие аппроксимации, это не сработает.
код для создания данных
set.seed(1)
x <- rnorm(100)
y <- 1 + .2*x+3*x^2+.6*x^3 + rnorm(100)
d <- data.frame(x=x,y=y)
d$x2 <- d$x^2
d$x3 <- d$x^3
d$x4 <-d$x^4
d$x5 <-d$x^5
линейная регрессия
f <- lm(y ~ ., data=d)
регресс гребня
library(glmnet)
x <- model.matrix(y ~ ., data=d)
y <- d$y
grid <- 0.001:50
ridge.fit <- glmnet(x,y,alpha=0, lambda = grid)
cv <- cv.glmnet(x,y)
r.fit.new <- glmnet(x,y,alpha=0, lambda = cv$lambda.min)
лассо
lasso.fit <- glmnet(x,y,alpha=1, lambda = grid)
l.fit.new <- glmnet(x,y,alpha=1, lambda = cv$lambda.min)
график
ggplot(data=d, aes(x=x, y=y)) + geom_point() + geom_line(aes(y=fitted(f)), colour="blue")