Я пытался повторить результаты опции Stata robust
в R. Я использовал rlm
команду из пакета MASS, а также команду lmrob
из пакета "robustbase". В обоих случаях результаты сильно отличаются от «надежного» параметра в Stata. Кто-нибудь может предложить что-то в этом контексте?
Вот результаты, которые я получил, запустив надежную опцию в Stata:
. reg yb7 buildsqb7 no_bed no_bath rain_harv swim_pl pr_terrace, robust
Linear regression Number of obs = 4451
F( 6, 4444) = 101.12
Prob > F = 0.0000
R-squared = 0.3682
Root MSE = .5721
------------------------------------------------------------------------------
| Robust
yb7 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
buildsqb7 | .0046285 .0026486 1.75 0.081 -.0005639 .009821
no_bed | .3633841 .0684804 5.31 0.000 .2291284 .4976398
no_bath | .0832654 .0706737 1.18 0.239 -.0552904 .2218211
rain_harv | .3337906 .0395113 8.45 0.000 .2563289 .4112524
swim_pl | .1627587 .0601765 2.70 0.007 .0447829 .2807346
pr_terrace | .0032754 .0178881 0.18 0.855 -.0317941 .0383449
_cons | 13.68136 .0827174 165.40 0.000 13.51919 13.84353
И это то, что я получил в R с опцией lmrob:
> modelb7<-lmrob(yb7~Buildsqb7+No_Bed+Rain_Harv+Swim_Pl+Gym+Pr_Terrace, data<-bang7)
> summary(modelb7)
Call:
lmrob(formula = yb7 ~ Buildsqb7 + No_Bed + Rain_Harv + Swim_Pl + Gym + Pr_Terrace,
data = data <- bang7)
\--> method = "MM"
Residuals:
Min 1Q Median 3Q Max
-51.03802 -0.12240 0.02088 0.18199 8.96699
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 12.648261 0.055078 229.641 <2e-16 ***
Buildsqb7 0.060857 0.002050 29.693 <2e-16 ***
No_Bed 0.005629 0.019797 0.284 0.7762
Rain_Harv 0.230816 0.018290 12.620 <2e-16 ***
Swim_Pl 0.065199 0.028121 2.319 0.0205 *
Gym 0.023024 0.014655 1.571 0.1162
Pr_Terrace 0.015045 0.013951 1.078 0.2809
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Robust residual standard error: 0.1678
Multiple R-squared: 0.8062, Adjusted R-squared: 0.8059
r
stata
robust
robust-standard-error
user56579
источник
источник
lmrob
не то же самое что иreg y x, robust
. Гугл "Гетероскедастичность - стандартные ошибки R". Вы получите страницы , показывая вам , как использоватьlmtest
иsandwich
библиотеку.Ответы:
Чарльз почти в своем ответе, но
robust
опцияregress
команды (и других команд оценки регрессии) в Stata позволяет использовать несколько типов гетероскедастичности и автокорреляционных робастных оценок дисперсионно-ковариационной матрицы, как иcoeftest
функция вlmtest
пакете, которая в Поворот зависит от соответствующих дисперсионно-ковариационных матриц, создаваемыхvcovHC
функцией вsandwich
пакете.Тем не менее, матрицы дисперсии-ковариации по умолчанию, используемые этими двумя, отличаются:
1. Матрица дисперсии-ковариации по умолчанию, возвращаемая,
vcocHC
является так называемойHC3
по причинам, описанным в справочной странице дляvcovHC
.2.
sandwich
Опция, используемая Чарльзом,coeftest
используетHC0
надежную матрицу дисперсии-ковариации.3. Для того, чтобы воспроизвести поведение Stata по умолчанию с помощью
robust
параметра в вызовеregress
Вам нужно запросить ,vcovHC
чтобы использоватьHC1
надежную матрицу ковариационной.Подробнее об этом читайте здесь .
Следующий пример, который демонстрирует все пункты, сделанные выше, основан на примере здесь .
Последняя строка кода выше воспроизводит результаты из Stata:
источник
На следующем веб-сайте я нашел описание, которое повторяет «надежный» параметр Stata в R.
https://economictheoryblog.com/2016/08/08/robust-standard-errors-in-r
Следуя инструкциям, все, что вам нужно сделать, это загрузить функцию в сеанс R, а затем установить для параметра сводной функции '' здравый '' значение TRUE.
источник
По состоянию на апрель 2018 года, я полагаю, вы хотите
estimatr
пакет , который обеспечивает почти полное снижение заменыlm
. Несколько примеров, взятых чуть ли не из документации:car
Пакет затем позволяет легко выполнять Omnibus тестов гипотез для этих моделей:источник
Я бы отредактировал вопрос. Вы путаете здравую регрессию с сильной командой Статы. Кажется, нет смысла вводить эту путаницу.
Я думаю, что есть несколько подходов. Я не смотрел на них всех и не уверен, что является лучшим:
Пакет сэндвичей:
Но это не дает мне те же ответы, которые я получаю от Stata по какой-то причине. Я никогда не пытался понять, почему - но выше в комментариях есть предложенный ответ - я просто не использую этот пакет.
Пакет RMS:
Я нахожу это немного трудным, но обычно получаю хорошие ответы с некоторыми усилиями. И это самое полезное для меня.
Вы можете кодировать это с нуля
Смотрите это сообщение в блоге ( http://thetarzan.wordpress.com/2011/05/28/heteroskedasticity-robust-and-clustered-standard-errors-in-r/ ). Это выглядит как наиболее болезненный вариант, но удивительно прост, и этот вариант часто работает лучше всего.
источник
robust
команды! (Существует команда программиста_robust
, которая здесь не имеет прямого отношения.) Скорее, чтобы получить устойчивые (Huber-Eicker-White-sandwich) стандартные ошибки, современный подход в Stata заключается в указанииvce(robust)
в качестве опции. Более старый подход к указаниюrobust
опции все еще работает. В более широком смысле, путаница, вызванная различием между устойчивой регрессией (и т. Д.) И «надежными» SE, вызывает сожаление.