如何在 R 中使用 log-link 进行岭回归

how to do ridge regression with log-link in R

我想在 R 中使用 glmnetlm.ridge 进行岭回归。

我需要用 log(Y)

做这个回归
cost ~ size + weight ⇒ log(cost) ~ size + weight

但是,我发现glmnetlm.ridge没有像glm这样的link。

对这个问题有什么想法吗?

?glmnet 函数使用 alpha 输入参数(值为 0)。正如文档所说:

alpha=1 is the lasso penalty, and alpha=0 the ridge penalty.

尝试如下操作:

glmnet(x=cbind(size, weight), y=log(cost), alpha=0, family='gaussian')

或者可能与泊松回归

glmnet(x=cbind(size, weight), y=cost, alpha=0, family='poission')

如果你的输入数据不是太大,你可以直接使用公式solve(t(X)%*%X + λ*I)%*%(t(X)%*%y)从训练数据中通过岭回归计算学习到的权重,其中X是您的输入变量矩阵,y 是响应变量,I 是单位矩阵,您可以使用 [= 了解 lambda 参数的最佳值23=]来自 held-out 数据集的交叉验证。