Próbowałem zreplikować wyniki opcji Stata robust
w R. Użyłem rlm
polecenia z pakietu MASS, a także polecenia lmrob
z pakietu „robustbase”. W obu przypadkach wyniki są zupełnie inne niż „solidna” opcja w Stacie. Czy ktoś może zasugerować coś w tym kontekście?
Oto wyniki, które uzyskałem, gdy uruchomiłem solidną opcję w 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
I to właśnie uzyskałem w R z opcją 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
użytkownik56579
źródło
źródło
lmrob
to, że to nie to samo coreg y x, robust
. Google „błędy standardowe zgodne z heteroskedastycznością R”. Otrzymasz strony pokazujące, jak korzystać z biblioteklmtest
isandwich
.Odpowiedzi:
Charles jest już prawie w swojej odpowiedzi, ale
robust
opcjaregress
polecenia (i innych poleceń szacowania regresji) w Stacie umożliwia użycie wielu typów heteroskedastyczności i autokorelacji solidnych estymatorów macierzy wariancji-kowariancji, podobnie jakcoeftest
funkcja wlmtest
pakiecie, która w turn zależy od odpowiednich macierzy wariancji-kowariancji wytwarzanych przezvcovHC
funkcję wsandwich
pakiecie.Jednak domyślna
macierz wariancji-kowariancji używana przez te dwa elementy jest inna: 1. Domyślna zwrócona macierz wariancji-kowariancji
vcocHC
to tak zwaneHC3
przyczyny opisane na stronie podręcznikavcovHC
.2.
sandwich
Opcja zastosowana przez Charlesacoeftest
wykorzystujeHC0
solidną macierz wariancji-kowariancji.3. Aby odtworzyć domyślne zachowanie Stata dotyczące korzystania z
robust
opcji w wywołaniuregress
, należy poprosićvcovHC
o użycieHC1
solidnej macierzy wariancji-kowariancji.Przeczytaj więcej na ten temat tutaj .
Poniższy przykład, który pokazuje wszystkie powyższe punkty, oparty jest na przykładzie tutaj .
Ostatni wiersz powyższego kodu odtwarza wyniki ze Staty:
źródło
Znalazłem opis na następującej stronie internetowej, który replikuje opcję „solidnej” Staty w R.
https://economictheoryblog.com/2016/08/08/robust-standard-errors-in-r
Postępując zgodnie z instrukcjami, wystarczy załadować funkcję do sesji R, a następnie ustawić parametr „solidny” w funkcji podsumowania na PRAWDA.
źródło
Według stanu na kwiecień 2018 roku uważam, że chcesz
estimatr
pakiet , który zapewnia prawie spadek w zastępstwielm
. Kilka przykładów wyciągnięto prawie z dokumentacji:car
Pakiet następnie ułatwia wykonywanie zbiorczych testy hipotez tych modeli:źródło
Zredagowałbym pytanie. Mylisz solidną regresję z solidnym poleceniem Staty. Wydaje się, że wprowadzenie tego zamieszania nie przynosi korzyści.
Myślę, że istnieje kilka podejść. Nie obejrzałem ich wszystkich i nie jestem pewien, co jest najlepsze:
Pakiet kanapkowy:
Ale z jakiegoś powodu nie daje mi to takich samych odpowiedzi, jakie otrzymuję od Staty. Nigdy nie próbowałem dowiedzieć się, dlaczego - ale powyżej w komentarzach jest sugerowana odpowiedź - po prostu nie używam tego pakietu.
Pakiet rms:
Uważam, że to trochę kłopotliwe w pracy, ale zwykle uzyskuję dobre odpowiedzi z pewnym wysiłkiem. I to jest dla mnie najbardziej przydatne.
Możesz go kodować od zera
Zobacz ten post na blogu ( http://thetarzan.wordpress.com/2011/05/28/heteroskedasticity-robust-and-clustered-standard-errors-in-r/ ). Wygląda na najbardziej bolesną opcję, ale niezwykle łatwą i ta opcja często działa najlepiej.
źródło
robust
polecenia! (Istnieje polecenie programisty_robust
, które nie ma bezpośredniego związku z tym.) Zamiast tego, aby uzyskać solidne błędy standardowe (Huber-Eicker-White-sandwich), nowoczesne podejście w Stata jest określanevce(robust)
jako opcja. Starsze podejście do określeniarobust
opcji nadal działa. Mówiąc szerzej, zamieszanie spowodowane różnicą między solidną regresją (itp.) A „solidną” SE jest niefortunne.