buat laporan R disesuaikan R kuadrat dan uji-F dalam output dengan kesalahan standar yang kuat

Aug 18 2020

Saya telah memperkirakan model regresi linier menggunakan lm(x~y1 + y1 + ... + yn)dan untuk melawan heteroskedastisitas saat ini, saya memiliki R memperkirakan kesalahan standar yang kuat

coeftest(model, vcov = vcovHC(model, type = "HC0"))

Saya tahu bahwa (kuat) R kuadrat dan statistik F dari model "normal" masih valid, tetapi bagaimana cara membuat R melaporkannya di keluaran? Saya ingin memadukan beberapa keluaran regresi dari spesifikasi yang berbeda bersama-sama stargazerdan akan menjadi sangat kacau jika saya harus memasukkan model yang tidak kuat hanya untuk mendapatkan statistik ini. Idealnya saya ingin memasukkan keluaran regresi stargazeryang berisi statistik ini, sehingga mengimpornya ke kerangka kerja mereka.

Terima kasih sebelumnya atas semua jawaban

Jawaban

2 Petr Aug 18 2020 at 20:44

Beginilah cara melakukannya. Anda perlu menggunakan objek model yang didukung oleh stargazer sebagai templat dan kemudian Anda dapat memberikan daftar dengan kesalahan standar yang akan digunakan:

library(dplyr)
library(lmtest)
library(stargazer)


# Basic Model ---------------------------------------------------------------------------------

model1 <- lm(hp ~ factor(gear) + qsec + cyl + factor(am), data = mtcars)
summary(model1)


# Robust standard Errors ----------------------------------------------------------------------

model_robust <- coeftest(model1, vcov = vcovHC(model1, type = "HC0"))

# Get robust standard Errors (sqrt of diagonal element of variance-covariance matrix)
se = vcovHC(model1, type = "HC0") %>% diag() %>% sqrt()

stargazer(model1, model1, 
          se = list(NULL, se), type = 'text')

Dengan menggunakan pendekatan ini, Anda dapat menggunakan stargazer bahkan untuk objek model yang tidak didukung. Anda hanya membutuhkan koefisien, kesalahan standar, dan nilai p sebagai vektor. Kemudian Anda dapat 'memasukkan secara mekanis' bahkan model yang tidak didukung.

Satu Catatan terakhir. Anda benar bahwa setelah terjadi heteroskedastisitas, Rsquared masih dapat digunakan. Namun, uji-F secara keseluruhan serta uji-t TIDAK berlaku lagi.

1 Vincent Aug 18 2020 at 07:26

Saya tidak memiliki solusi dengan stargarzer, tetapi saya memiliki beberapa alternatif yang layak untuk tabel regresi dengan kesalahan standar yang kuat:

Pilihan 1

Gunakan modelsummarypaket untuk membuat tabel Anda.

ini memiliki statistic_overrideargumen yang memungkinkan Anda untuk menyediakan fungsi yang menghitung matriks kovarians varian yang kuat (misalnya sandwich::vcovHC,.

library(modelsummary)
library(sandwich)

mod1 <- lm(drat ~ mpg, mtcars)
mod2 <- lm(drat ~ mpg + vs, mtcars)
mod3 <- lm(drat ~ mpg + vs + hp, mtcars)
models <- list(mod1, mod2, mod3)

modelsummary(models, statistic_override = vcovHC)

Catatan 1: Tangkapan layar di atas berasal dari tabel HTML, tetapi modelsummarypaket juga dapat menyimpan tabel Word, LaTeX, atau penurunan harga.

Catatan 2: Saya penulis paket ini, jadi perlakukan ini sebagai tampilan yang berpotensi bias.

pilihan 2

Gunakan estimatr::lm_robustfungsi yang secara otomatis menyertakan kesalahan standar yang kuat. Saya percaya itu estimatrdidukung oleh stargazer, tetapi saya tahu itu didukung oleh modelsummary.

library(estimatr)

mod1 <- lm_robust(drat ~ mpg, mtcars)
mod2 <- lm_robust(drat ~ mpg + vs, mtcars)
mod3 <- lm_robust(drat ~ mpg + vs + hp, mtcars)
models <- list(mod1, mod2, mod3)

modelsummary(models)