Rレポートを調整済みR2乗にし、堅牢な標準誤差を使用して出力のF検定を行います
lm(x~y1 + y1 + ... + yn)
現在の不均一分散を使用して線形回帰モデルを推定し、Rにロバストな標準誤差を推定させました。
coeftest(model, vcov = vcovHC(model, type = "HC0"))
「正規」モデルの(ロバストな)決定係数と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値のみです。次に、サポートされていないモデルでも「機械的に挿入」できます。
最後にもう1つ注意してください。不均一分散が存在する場合でも、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)