Robuste Regressionsinferenz und Sandwich-Schätzer

10

Können Sie mir ein Beispiel für die Verwendung von Sandwich-Schätzern geben, um eine robuste Regressionsinferenz durchzuführen?

Ich kann das Beispiel in sehen ?sandwich, aber ich verstehe nicht ganz, wie wir von lm(a ~ b, data)( codiert) zu einer Schätzung und einem p- Wert übergehen können, die aus einem Regressionsmodell unter Verwendung der von der Funktion zurückgegebenen Varianz-Kovarianz-Matrix resultieren sandwich.

Remi.b
quelle
Haben Sie die Beispiele in der zugehörigen Vignette durchgesehen ?
user603
(1) Link funktioniert bei mir. (2) Ist dies eine Kodierungsfrage? So erhalten Sie die Huber-White SE nach dem Einbau eines Modells. Oder etwas anderes?
Charles
@charles 1) In der Tat funktioniert es! Ich weiß nicht, was vorher passiert ist. Ja, es ist eine R-Codierungsfrage. 2) Ich weiß nicht, was der Huber-White-Standardfehler ist, und weiß derzeit nicht, wie ich sie berechnen soll. Danke für Ihre Hilfe!
Remi.b
Sie erhalten p-Werte und Standardfehler auf die gleiche Weise wie üblich, indem Sie die Sandwich-Schätzung der Varianz-Kovarianz-Matrix durch die kleinste Quadrate ersetzen.
Scortchi - Monica wieder einsetzen
@ Scortchi Ok. Und wenn ich diese Schätzungen habe (OLS- oder Sandwich-Schätzungen), was kann ich damit machen?
Remi.b

Antworten:

9

Ich denke, es gibt einige Ansätze. Ich habe sie nicht alle angeschaut und bin mir nicht sicher, welches das Beste ist:

  1. Das sandwichPaket:

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

Aber das gibt mir nicht die gleichen Antworten, die ich aus irgendeinem Grund von Stata bekomme. Ich habe nie versucht herauszufinden, warum, ich benutze dieses Paket einfach nicht.

  1. Das rmsPaket: Ich finde es etwas mühsam, damit zu arbeiten, bekomme aber normalerweise mit etwas Mühe gute Antworten. Und es ist das nützlichste für mich.

    model = ols(a~b, x=TRUE)    
    robcov(model)
    
  2. Sie können es von Grund auf neu codieren (siehe diesen Blog-Beitrag ). Es sieht aus wie die schmerzhafteste Option, ist aber bemerkenswert einfach und diese Option funktioniert oft am besten.

Eine einfache / schnelle Erklärung ist, dass Huber-White oder Robust SE eher aus den Daten als aus dem Modell abgeleitet werden und daher für viele Modellannahmen robust sind. Aber wie immer wird eine schnelle Google-Suche dies bei Interesse bis ins kleinste Detail darstellen.

Charles
quelle
Sie sollten diese Antwort hier wirklich sehen: stats.stackexchange.com/a/117066/12053
Chandler
2
Es ist so, als würde diese Antwort implizit davon ausgehen, dass etwas mit R nicht stimmt, weil Sie andere Ergebnisse als Stata erhalten. Für Leute, die wissen, wie die Sandwich-Schätzer funktionieren, ist der Unterschied offensichtlich und leicht zu beheben. Für Leute, die es nicht wissen, lesen Sie bitte die Vignette (Anleitung), die mit dem Paket
geliefert wird
10

Man kann eine alternative Zusammenfassungsfunktion verwenden, um eine robuste Regression durchzuführen.

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

Um robuste Standardfehler zu erhalten, setzen Sie den Parameter '' robust '' in Ihrer Zusammenfassungsfunktion auf TRUE.

Der folgende Blogeintrag enthält die Funktion und eine detaillierte Beschreibung der Funktion: https://economictheoryblog.com/2016/08/08/robust-standard-errors-in-r

Daniel Kah
quelle