Solidne wnioskowanie o regresji i estymatory Sandwich

10

Czy możesz podać przykład użycia estymatorów wielowarstwowych w celu przeprowadzenia silnego wnioskowania o regresji?

Widzę ten przykład ?sandwich, ale nie do końca rozumiem, jak możemy przejść od lm(a ~ b, data)( zakodowany ) do oszacowania i wartości p wynikającej z modelu regresji z wykorzystaniem macierzy wariancji-kowariancji zwróconej przez funkcję sandwich.

Remi.b
źródło
czy przejrzałeś przykłady w powiązanej winiecie ?
user603
(1) Link działa dla mnie. (2) Czy to pytanie kodujące r? Jak zdobyć Huber-White SE po zamontowaniu modelu. Albo coś innego?
Charles
@charles 1) Rzeczywiście to działa! Nie wiem co się stało wcześniej. Tak, jest to pytanie kodujące R. 2) Nie wiem, jakie są standardowe błędy Hubera-White'a i nie wiem, jak je teraz obliczyć. Dzięki za pomoc!
Remi.b,
Otrzymujesz wartości p i standardowe błędy w taki sam sposób, jak zwykle, zastępując szacunkową kanapkę macierzy wariancji-kowariancji macierzą najmniejszych kwadratów.
Scortchi - Przywróć Monikę
@Scortchi Ok. A kiedy mam te szacunki (szacunki OLS lub kanapkowe), co mogę z nimi zrobić?
Remi.b,

Odpowiedzi:

9

Myślę, że istnieje kilka podejść. Nie obejrzałem ich wszystkich i nie jestem pewien, co jest najlepsze:

  1. sandwichPakiet:

    library(sandwich)    
    coeftest(model, vcov=sandwich)

Ale z jakiegoś powodu nie daje mi to takich samych odpowiedzi, jakie otrzymuję od Staty. Nigdy nie próbowałem zrozumieć, dlaczego, po prostu nie używam tego pakietu.

  1. rmsPakiet: Uważam to trochę uciążliwe, ale do pracy z reguły uzyskać dobre odpowiedzi z pewnym wysiłkiem. I to jest dla mnie najbardziej przydatne.

    model = ols(a~b, x=TRUE)    
    robcov(model)
  2. Możesz go kodować od zera (zobacz ten post na blogu ). Wygląda na najbardziej bolesną opcję, ale niezwykle łatwą i ta opcja często działa najlepiej.

Prostym / szybkim wyjaśnieniem jest to, że Huber-White lub Robust SE pochodzą z danych, a nie z modelu, a zatem są odporne na wiele założeń modelu. Ale jak zawsze, szybkie wyszukiwanie w Google przedstawi je niezwykle interesująco, jeśli jesteś zainteresowany.

Charles
źródło
Naprawdę powinieneś zobaczyć tę odpowiedź tutaj: stats.stackexchange.com/a/117066/12053
chandler
2
To tak, jak te odpowiedzi domyślnie zakładają, że coś jest nie tak z R, ponieważ otrzymujesz inne wyniki niż Stata. Dla osób, które wiedzą, jak działają estymatory kanapkowe, różnica jest oczywista i łatwa do usunięcia. Dla osób, które nie wiedzą, wystarczy przeczytać winietę (przewodnik), która jest dostarczana z
paczką
10

Można użyć alternatywnej funkcji podsumowania, aby wykonać solidną regresję.

lm.object <- lm(a~b+c)
summary(lm.object, robust=TRUE)

Aby uzyskać solidne błędy standardowe, ustaw parametr „solidny” w funkcji podsumowania na PRAWDA.

Poniższy wpis na blogu zawiera funkcję i szczegółowy opis funkcji: https://economictheoryblog.com/2016/08/08/robust-standard-errors-in-r

Daniel Kah
źródło