【发布时间】:2019-09-19 12:32:57
【问题描述】:
我有数据(如下),并进行了线性回归、岭回归和套索回归。对于套索和岭回归,我使用交叉验证找到了最佳 lambda。我现在想将拟合模型叠加到原始数据的 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")
【问题讨论】:
-
只需重新阅读您的问题并意识到您想要超级强加每个配合,而不仅仅是查看脊和套索配合的诊断。添加了我的答案
标签: r graph regression glmnet