Ich habe versucht, die Ergebnisse der Option Stata robust
in R zu replizieren . Ich habe den rlm
Befehl aus dem MASS-Paket und auch den Befehl lmrob
aus dem Paket "robustbase" verwendet. In beiden Fällen unterscheiden sich die Ergebnisse erheblich von der Option "robust" in Stata. Kann jemand bitte etwas in diesem Zusammenhang vorschlagen?
Hier sind die Ergebnisse, die ich erhalten habe, als ich die robuste Option in Stata ausgeführt habe:
. 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
Und das habe ich in R mit der Option lmrob erhalten:
> 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
quelle
quelle
lmrob
nicht so aus wiereg y x, robust
. Google "heteroskedasticity-konsistente Standardfehler R". Sie erhalten Seiten, die Ihnen den Umgang mit den Bibliothekenlmtest
und zeigensandwich
.Antworten:
Charles ist fast da in seiner Antwort, aber die
robust
Option desregress
Befehls (und anderer Regressionsschätzungsbefehle) in Stata ermöglicht die Verwendung mehrerer Arten von Heteroskedastizitäts- und Autokorrelations-robusten Varianz-Kovarianz-Matrixschätzern, ebenso wie diecoeftest
Funktion imlmtest
Paket, die in wiederum hängt von den jeweiligen Varianz-Kovarianz-Matrizen ab, die von dervcovHC
Funktion imsandwich
Paket erzeugt werden.Die von den beiden verwendeten Standard-Varianz-Kovarianz-Matrizen unterscheiden sich jedoch:
1. Die von zurückgegebene Standard-Varianz-Kovarianz-Matrix
vcocHC
ist die sogenannteHC3
aus Gründen, die in der Manpage für beschrieben sindvcovHC
.2. Die
sandwich
von Charlescoeftest
verwendete Option verwendet dieHC0
robuste Varianz-Kovarianz-Matrix.3. Um das Standardverhalten von Stata für die Verwendung der
robust
Option in einem Aufruf an zu reproduzieren , müssenregress
Sie dievcovHC
Verwendung derHC1
robusten Varianz-Kovarianz-Matrix anfordern .Lesen Sie hier mehr darüber .
Das folgende Beispiel, das alle oben genannten Punkte demonstriert, basiert auf dem hier gezeigten Beispiel .
Die letzte Codezeile oben gibt die Ergebnisse von Stata wieder:
quelle
Auf der folgenden Website habe ich eine Beschreibung gefunden, die die "robuste" Option von Stata in R repliziert.
https://economictheoryblog.com/2016/08/08/robust-standard-errors-in-r
Folgen Sie den Anweisungen, laden Sie einfach eine Funktion in Ihre R-Sitzung und setzen Sie den Parameter '' robust '' in Ihrer Zusammenfassungsfunktion auf TRUE.
quelle
Ab April 2018, glaube ich, möchten Sie das
estimatr
Paket , das einen beinahe Rückgang des Ersatzes für bietetlm
. Einige Beispiele fast aus der Dokumentation entnommen:Das
car
Paket macht es dann einfach, Omnibus-Hypothesentests für diese Modelle durchzuführen:quelle
Ich würde die Frage bearbeiten. Sie verwechseln die robuste Regression mit dem robusten Befehl von Stata. Es scheint keinen Nutzen zu bringen, diese Verwirrung einzuführen.
Ich denke, es gibt einige Ansätze. Ich habe sie nicht alle angeschaut und bin mir nicht sicher, welches das Beste ist:
Das Sandwich-Paket:
Aber das gibt mir nicht die gleichen Antworten, die ich aus irgendeinem Grund von Stata bekomme. Ich habe nie versucht herauszufinden, warum - aber oben in Kommentaren gibt es eine vorgeschlagene Antwort - ich benutze dieses Paket einfach nicht.
Das RMS-Paket:
Ich finde es ein bisschen mühsam, damit zu arbeiten, aber normalerweise bekomme ich mit einigem Aufwand gute Antworten. Und es ist das nützlichste für mich.
Sie können es von Grund auf neu codieren
Siehe diesen Blog-Beitrag ( http://thetarzan.wordpress.com/2011/05/28/heteroskedasticity-robust-and-clustered-standard-errors-in-r/ ). Es sieht aus wie die schmerzhafteste Option, ist aber bemerkenswert einfach und funktioniert oft am besten.
quelle
robust
Befehl hat! (Es gibt einen Befehl eines Programmierers_robust
, der hier nicht direkt relevant ist.) Um robuste (Huber-Eicker-White-Sandwich) Standardfehler zu erhalten, besteht der moderne Ansatz in Stata darin,vce(robust)
als Option anzugeben . Der ältere Ansatz zum Angeben einerrobust
Option funktioniert weiterhin. Im weiteren Sinne ist die Verwirrung, die durch den Unterschied zwischen robuster Regression (usw.) und "robusten" SEs verursacht wird, bedauerlich.