gl mnet: извлечение стандартизированных коэффициентов - PullRequest
1 голос
/ 21 февраля 2020

Я использую регрессионные модели с функцией cv.glmnet(). Аргумент standardize = TRUE стандартизирует все x переменных (предикторов) до подгонки модели. Однако коэффициенты всегда возвращаются в исходном масштабе для вывода / результата. Есть ли способ получения стандартизированных коэффициентов (бета-весов) для выхода, чтобы коэффициенты были сопоставимы?

1 Ответ

2 голосов
/ 21 февраля 2020

Когда вы стандартизируете или масштабируете, вы делаете (x - среднее (x)) / sd (x). Когда выполняется регрессия, центрирующая часть (- среднее (x)) переходит в точку пересечения, поэтому только стандартное отклонение влияет на ваш коэффициент.

К go от немасштабированных коэффициентов до масштабированных, вы можно умножить на стандартное отклонение.

Мы можем проверить это, сначала регрессия по масштабированным переменным x:

scaled_mt = mtcars
scaled_mt[,-1] = scale(scaled_mt[,-1])
fit_scaled = lm(mpg ~ .,data=scaled_mt)

Регрессия на оригинале:

fit = lm(mpg ~ .,data=mtcars)

gl mnet, где я установил очень низкую лямбду, чтобы включить все термины:

fit_lasso = cv.glmnet(y=as.matrix(mtcars[,1]),x=as.matrix(mtcars)[,-1],lambda=c(0.0001,0.00001))

Стандартное отклонение для всех переменных x:

AllSD = apply(mtcars[,-1],2,sd)

Чтобы показать, что преобразование в порядке:

cbind(scaled=coefficients(fit_scaled)[-1],
from_lm = coefficients(fit)[-1]*allSD,
from_glmnet = coefficients(fit_lasso)[-1]*allSD)

         scaled    from_lm from_glmnet
cyl  -0.1990240 -0.1990240  -0.1762826
disp  1.6527522  1.6527522   1.6167872
hp   -1.4728757 -1.4728757  -1.4677513
drat  0.4208515  0.4208515   0.4268243
wt   -3.6352668 -3.6352668  -3.6071975
qsec  1.4671532  1.4671532   1.4601126
vs    0.1601576  0.1601576   0.1615794
am    1.2575703  1.2575703   1.2563485
gear  0.4835664  0.4835664   0.4922507
carb -0.3221020 -0.3221020  -0.3412025

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

...