Расчет регрессионного решения гребня вручную (матричная форма) [r] - PullRequest
1 голос
/ 23 апреля 2020

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

Хотя я могу рассчитать регрессию OLS вручную (coeff такие же, как с использованием функции lm), у меня проблемы с ridge регрессия.

Я хотел бы спросить, где я делаю ошибку

library(glmnet)
library(tidyverse)

y = mtcars$hp %>% as.matrix()
X = model.matrix(hp ~ factor(gear) + qsec + wt, mtcars) %>% as.matrix()


# OLS model
solve(t(X) %*% X) %*%t(X) %*%y
lm(hp ~ factor(gear) + qsec + wt, mtcars) %>% coef()


# Ridge regression
glmnet(X, y, lambda = 30) %>% 
  broom::tidy()

solve(t(X) %*% X + 30*diag(5)) %*%t(X) %*%y

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...