Я использую rlm в пакете R MASS для регрессии многомерной линейной модели. Это хорошо работает для ряда образцов, но я получаю квазинулевые коэффициенты для конкретной модели:
Call: rlm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, maxit = 50, na.action = na.omit)
Residuals:
Min 1Q Median 3Q Max
-7.981e+01 -6.022e-03 -1.696e-04 8.458e-03 7.706e+01
Coefficients:
Value Std. Error t value
(Intercept) 0.0002 0.0001 1.8418
X1 0.0004 0.0000 13.4478
X2 -0.0004 0.0000 -23.1100
X3 -0.0001 0.0002 -0.5511
X4 0.0006 0.0001 8.1489
Residual standard error: 0.01086 on 49052 degrees of freedom
(83 observations deleted due to missingness)
Для сравнения это коэффициенты, рассчитанные с помощью lm ():
Call:
lm(formula = Y ~ X1 + X2 + X3 + X4, data = mymodel, na.action = na.omit)
Residuals:
Min 1Q Median 3Q Max
-76.784 -0.459 0.017 0.538 78.665
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.016633 0.011622 -1.431 0.152
X1 0.046897 0.004172 11.240 < 2e-16 ***
X2 -0.054944 0.002184 -25.155 < 2e-16 ***
X3 0.022627 0.019496 1.161 0.246
X4 0.051336 0.009952 5.159 2.5e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.574 on 49052 degrees of freedom
(83 observations deleted due to missingness)
Multiple R-squared: 0.0182, Adjusted R-squared: 0.01812
F-statistic: 227.3 on 4 and 49052 DF, p-value: < 2.2e-16
График lm не показывает какой-либо особенно высокий выброс, измеренный расстоянием Кука:
РЕДАКТИРОВАТЬ
Для справки и после подтверждения результатов, основанных на ответе, предоставленном макросом, команда R для установки параметра настройки k
в оценке Хьюбера имеет значение ( k=100
в данном случае):
rlm(y ~ x, psi = psi.huber, k = 100)
r
multiple-regression
robust
Роберт Кубрик
источник
источник
rlm
весовая функция отбрасывает почти все наблюдения. Вы уверены, что это один и тот же Y в двух регрессиях? (Просто проверяю ...) Попробуйтеmethod="MM"
в вашемrlm
вызове, затем попробуйте (если это не удастся)psi=psi.huber(k=2.5)
(2.5 - произвольно, только больше, чем по умолчанию 1.345), что расширяет область,lm
подобную весовой функции.Ответы:
Разница в том, чтоM
rlm()
подходит для моделей, использующих выбранный вами ряд различных оценщиков, в то время как используются обычные наименьшие квадраты.lm()
В целом оценщик для коэффициента регрессии минимизируетM
как функция , где - это -й ответ, а - предикторы для индивидуума . Наименьшие квадраты - это частный случай этого случая, где Тем не менее, по умолчанию для параметра , который вы, похоже, используете, используется метод оценки Huber , который используетY i i X i i ρ ( x ) = x 2 Mβ Yя я Икся я
rlm()
где является константой. По умолчанию в это . Эти две оценки минимизируют разные критерии, поэтому неудивительно, что оценки разные.k = 1,345К к = 1,345
rlm()
Изменить: Из графика QQ, показанного выше, похоже, что у вас очень длинное хвостовое распределение ошибок. Это та ситуация, для которой предназначен М-оценщик Хубера, и в этой ситуации она может давать совершенно разные оценки:
Когда ошибки распределены нормально, то оценки будут очень похожи , так как, при нормальном распределении, большинство Huber функции будут подпадать под ситуации, которая эквивалентна наименьших квадратов. В ситуации длинного хвоста многие попадают в ситуацию , которая является отклонением от OLS, что объясняет расхождение.ρ | х | <к | х | >к
источник
psi.huber
lm
rlm