강력한 표준 오차를 사용하여 R 보고서 조정 R 제곱 및 출력에서 F- 검정
나는 lm(x~y1 + y1 + ... + yn)
현재 이분산성을 사용하여 선형 회귀 모델을 추정했으며 R은 강력한 표준 오류를 다음과 같이 추정했습니다.
coeftest(model, vcov = vcovHC(model, type = "HC0"))
"정상"모델의 (강력한) R 제곱 및 F 통계가 여전히 유효하다는 것을 알고 있지만 R이 출력에보고하도록하려면 어떻게해야합니까? 다른 사양의 여러 회귀 출력을 함께 융합하고 싶습니다 stargazer
. 이러한 통계를 얻기 위해 견고하지 않은 모델을 입력해야한다면 매우 혼란 스러울 것입니다. 이상적으로 stargazer
는 이러한 통계를 포함 하는 회귀 출력을 입력하여 프레임 워크로 가져오고 싶습니다 .
모든 답변에 미리 감사드립니다.
답변
이것은 그것에 대해가는 방법입니다. stargazer에서 지원하는 모델 객체를 템플릿으로 사용해야하며 사용할 표준 오류 목록을 제공 할 수 있습니다.
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')
이 접근 방식을 사용하면 지원되지 않는 모델 개체에도 Stargazer를 사용할 수 있습니다. 계수, 표준 오차 및 p- 값만 벡터로 필요합니다. 그러면 지원되지 않는 모델도 '기계적으로 삽입'할 수 있습니다.
마지막 메모입니다. 이분산성이 존재하면 Rsquared를 계속 사용할 수 있다는 것이 맞습니다. 그러나 전체 F- 검정과 t- 검정은 더 이상 유효하지 않습니다.
에 대한 솔루션은 stargarzer
없지만 강력한 표준 오류가있는 회귀 테이블에 대한 몇 가지 실행 가능한 대안이 있습니다.
옵션 1
사용 modelsummary
테이블을 만들기 위해 패키지를.
statistic_override
강력한 분산 공분산 행렬을 계산하는 함수를 제공 할 수 있는 인수가 있습니다 (예 : 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)
참고 1 : 위의 스크린 샷은 HTML 테이블에서 가져온 것이지만 modelsummary
패키지는 Word, LaTeX 또는 마크 다운 테이블도 저장할 수 있습니다.
참고 2 : 나는이 패키지의 작성자이므로 잠재적으로 편향된보기로 취급하십시오.
옵션 2
estimatr::lm_robust
강력한 표준 오류를 자동으로 포함 하는 기능을 사용하십시오 . 에서 estimatr
지원 한다고 생각 stargazer
하지만에서 지원한다는 것을 알고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)