Saya telah mencoba untuk mereplikasi hasil opsi Stata robust
di R. Saya telah menggunakan rlm
perintah dari paket MASS dan juga perintah lmrob
dari paket "robustbase". Dalam kedua kasus hasilnya sangat berbeda dari opsi "kuat" di Stata. Adakah yang bisa menyarankan sesuatu dalam konteks ini?
Berikut adalah hasil yang saya peroleh ketika saya menjalankan opsi robust di 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
Dan ini yang saya dapatkan di R dengan opsi 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
pengguna56579
sumber
sumber
lmrob
tidak sama denganreg y x, robust
. Google "kesalahan standar konsisten heteroskedastisitas R". Anda akan mendapatkan halaman yang menunjukkan kepada Anda bagaimana menggunakanlmtest
dansandwich
perpustakaan.Jawaban:
Charles hampir ada di jawabannya, tetapi
robust
opsiregress
perintah (dan perintah estimasi regresi lainnya) di Stata memungkinkan untuk menggunakan beberapa jenis heteroskedastisitas dan autokorelasi kuat varians-kovarians matriks penduga, seperti halnyacoeftest
fungsi dalamlmtest
paket, yang pada gilirannya tergantung pada masing-masing varians-kovarians matriks yang dihasilkan olehvcovHC
fungsi disandwich
paket.Namun, matriks varians-kovarians default yang digunakan oleh keduanya berbeda:
1. Matriks varians-kovarians default yang dikembalikan oleh
vcocHC
adalah apa yang disebutHC3
dengan alasan yang dijelaskan dalam halaman manualvcovHC
.2.
sandwich
Opsi yang digunakan oleh Charlescoeftest
menggunakanHC0
matriks varian-kovarian yang kuat.3. Untuk mereproduksi perilaku default Stata menggunakan
robust
opsi dalam panggilan yang harusregress
Anda mintavcovHC
untuk menggunakanHC1
matriks varians-kovarians yang kuat.Baca lebih lanjut tentang itu sini .
Contoh berikut yang menunjukkan semua poin yang dibuat di atas didasarkan pada contoh di sini .
Baris kode terakhir di atas mereproduksi hasil dari Stata:
sumber
Saya menemukan deskripsi di situs web berikut yang mereplikasi opsi '' robust '' Stata di R.
https://economictheoryblog.com/2016/08/08/robust-standard-errors-in-r
Mengikuti instruksi, yang perlu Anda lakukan adalah memuat fungsi ke dalam sesi R Anda dan kemudian mengatur parameter '' kuat '' di fungsi ringkasan Anda ke TRUE.
sumber
Pada April 2018 saya yakin Anda menginginkan
estimatr
paket itu , yang menyediakan pengganti hampir untuklm
. Beberapa contoh menarik hampir dari dokumentasi:The
car
paket kemudian memudahkan untuk melakukan tes hipotesis omnibus untuk model ini:sumber
Saya akan mengedit pertanyaan. Anda mengacaukan regresi yang kuat dengan perintah Stata yang kuat. Tampaknya tidak ada manfaatnya menimbulkan kebingungan ini.
Saya pikir ada beberapa pendekatan. Saya belum melihat semuanya dan tidak yakin mana yang terbaik:
Paket sandwich:
Tetapi ini tidak memberi saya jawaban yang sama yang saya dapatkan dari Stata karena beberapa alasan. Saya belum pernah mencoba mencari tahu mengapa - tetapi di atas dalam komentar ada jawaban yang disarankan - Saya hanya tidak menggunakan paket ini.
Paket rms:
Saya merasa ini agak merepotkan, tetapi biasanya mendapatkan jawaban yang baik dengan sedikit usaha. Dan itu yang paling bermanfaat buat saya.
Anda dapat mengkodekannya dari awal
Lihat posting blog ini ( http://thetarzan.wordpress.com/2011/05/28/heteroskedasticity-robust-and-clustered-standard-errors-in-r/ ). Sepertinya pilihan yang paling menyakitkan, tetapi sangat mudah dan opsi ini sering bekerja paling baik.
sumber
robust
perintah! (Ada perintah programmer_robust
, tidak langsung relevan di sini.) Sebaliknya, untuk mendapatkan kesalahan standar yang kuat (Huber-Eicker-White-sandwich), pendekatan modern di Stata adalah menentukanvce(robust)
sebagai opsi. Pendekatan lama untuk menentukanrobust
opsi masih berfungsi. Lebih luas lagi, kebingungan yang disebabkan oleh perbedaan antara regresi yang kuat (dll.) Dan SI yang "kuat" sangat disayangkan.