r - 带有 $\lambda = 0$ 的 LASSO 和 OLS 在 R glmnet 中产生不同的结果

标签 r least-squares lasso-regression lm

我希望没有惩罚 ($\lambda=0$) 的 LASSO 产生与 OLS 拟合相同(或非常相似)的系数估计值。但是,我在 R 中得到了不同的系数估计,将相同的数据 (x,y) 放入

  • glmnet(x, y , alpha=1, lambda=0)用于无惩罚的 LASSO 拟合和
  • lm(y ~ x)适合OLS。

  • 为什么?

    最佳答案

    您使用的功能错误。 x应该是模型矩阵。不是原始预测值。当你这样做时,你会得到完全相同的结果:

    x <- rnorm(500)
    y <- rnorm(500)
    mod1 <- lm(y ~ x) 
    
    xmm <- model.matrix(mod1)
    mod2 <- glmnet(xmm, y, alpha=1, lambda=0)
    
    coef(mod1)
    coef(mod2)
    

    关于r - 带有 $\lambda = 0$ 的 LASSO 和 OLS 在 R glmnet 中产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38378118/

    相关文章:

    从 Shiny 中的 RadioButton 返回整数值

    r - 一张图中多个标签的多个箱线图

    python - NumPy ValueError : The truth value of an array with more than one element is ambiguous. 使用 a.any() 或 a.all() lesssq

    Python 学习。为什么我只在第一次收到警告?

    python - 在python中使用cvxpy包构建融合套索惩罚

    r - 如何让R崩溃?

    MATLAB 曲线拟合 - 最小二乘法 - 使用高次错误 "fit"

    python - 使用 Python SciPy 量化曲线拟合的质量

    r - 我们如何为 glmnet 指定自定义 lambda 序列

    r - "Error in library(rjson): There is no package called rjson"