Оценки коэффициента хребта не соответствуют оценкам OLS, когда лямбда = 0 - PullRequest
1 голос
/ 04 августа 2020

Я пытаюсь понять, почему оценки коэффициента регрессии гребня (с помощью пакета glmnet в R) не совпадают с обычными оценками методом наименьших квадратов (OLS) в случае, когда лямбда = 0. Я видел пару других сообщения об этом топе c, но ни один из них не ответил на мой вопрос.

Вот минимальное представление:

library(glmnet)
set.seed(1)

X <- matrix(rnorm(90), ncol = 9, nrow = 10, byrow = TRUE)
y <- matrix(rnorm(10), nrow = 10, ncol = 1)
X_scaled <- scale(X)

ridge1 <- glmnet(X_scaled, y, alpha = 0, lambda = 0)
lm1 <- lm(y~X_scaled)

Это приводит к:

> coef(lm1)
(Intercept)   X_scaled1   X_scaled2   X_scaled3   X_scaled4   X_scaled5   X_scaled6   X_scaled7   X_scaled8   X_scaled9 
  0.1123413   4.4105824  -4.1680260   4.9959933   2.2281174   3.0542372   3.8673192  -2.5323069   0.4444550   5.0073531
 
> coef(ridge1)
10 x 1 sparse Matrix of class "dgCMatrix"
                    s0
(Intercept)  0.1123413
V1           4.1667913
V2          -3.9353740
V3           4.7692778
V4           2.1239412
V5           2.8683159
V6           3.6622262
V7          -2.3987696
V8           0.4305574
V9           4.7282300

Оценки коэффициентов из регрессии гребня должны совпадать с коэффициентами OLS, когда лямбда = 0, однако они не совпадают (за исключением точки пересечения). Что здесь происходит?

1 Ответ

1 голос
/ 05 августа 2020

Хотя их цель такая же, glmnet использует координатный спуск для поиска параметров, lm использует QR-разложение .

Если вы уменьшите порог сходимости glmnet, вы получите аналогичные ответы.

ridge1 <- glmnet(X_scaled, y, alpha = 0, lambda = 0, standardize = F, thresh = 1E-100)

                    s0
(Intercept)  0.1123413
V1           4.4105824
V2          -4.1680260
V3           4.9959933
V4           2.2281174
V5           3.0542372
V6           3.8673192
V7          -2.5323069
V8           0.4444550
V9           5.0073531
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...