Sağlam standart hatalarla çıktıda R raporu ayarlanmış R kare ve F testi yapın

Aug 18 2020

lm(x~y1 + y1 + ... + yn)Mevcut heteroskedisiteyi kullanarak ve buna karşı koymak için doğrusal bir regresyon modeli tahmin ettim. R'nin sağlam standart hataları tahmin etmesini istedim.

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

"Normal" modelden (sağlam) R kare ve F istatistiğinin hala geçerli olduğunu biliyorum, ancak çıktıda bunları rapor etmek için R'yi nasıl elde edebilirim? Farklı özelliklerden birkaç regresyon çıktısını birleştirmek istiyorum stargazerve sadece bu istatistikleri elde etmek için sağlam olmayan modele girmem gerekirse çok kaotik hale gelir. İdeal olarak, içine stargazerbu istatistikleri içeren bir regresyon çıktısı girmek , böylece bunu çerçevelerine aktarmak istiyorum.

Tüm cevaplar için şimdiden teşekkürler

Yanıtlar

2 Petr Aug 18 2020 at 20:44

Bu nasıl yapılacağıdır. Stargazer tarafından desteklenen model nesnesini şablon olarak kullanmanız gerekir ve ardından kullanılacak standart hataların bulunduğu bir liste sağlayabilirsiniz:

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')

Bu yaklaşımı kullanarak, desteklenmeyen model nesneler için bile stargazer'ı kullanabilirsiniz. Vektör olarak yalnızca katsayılara, standart hatalara ve p değerlerine ihtiyacınız vardır. O zaman desteklenmeyen modelleri bile 'mekanik olarak ekleyebilirsiniz'.

Son bir Not. Bir kez heteroskedastisite mevcut olduğunda, Rsquared'in hala kullanılabileceği konusunda haklısınız. Ancak genel F testi ve t testleri artık geçerli DEĞİLDİR.

1 Vincent Aug 18 2020 at 07:26

Bir çözümüm stargarzeryok, ancak sağlam standart hatalar içeren regresyon tabloları için birkaç geçerli alternatifim var:

seçenek 1

modelsummaryTablolarınızı yapmak için paketi kullanın .

statistic_overridesağlam bir varyans kovaryans matrisini hesaplayan bir fonksiyon sağlamanıza izin veren bir argümana sahiptir (örn 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)

Not 1: Yukarıdaki ekran görüntüsü bir HTML tablosundan alınmıştır, ancak modelsummarypaket Word, LaTeX veya markdown tablolarını da kaydedebilir.

Not 2: Bu paketin yazarıyım, bu nedenle lütfen bunu potansiyel olarak önyargılı bir görünüm olarak değerlendirin.

seçenek 2

estimatr::lm_robustOtomatik olarak güçlü standart hataları içeren işlevi kullanın . Ben inanıyorum estimatrtarafından desteklenmektedir stargazerama biliyorum o tarafından desteklendiğini 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)