Rレポートを調整済みR2乗にし、堅牢な標準誤差を使用して出力のF検定を行います

Aug 18 2020

lm(x~y1 + y1 + ... + yn)現在の不均一分散を使用して線形回帰モデルを推定し、Rにロバストな標準誤差を推定させました。

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

「正規」モデルの(ロバストな)決定係数とF統計量がまだ有効であることはわかっていますが、Rに出力でそれらを報告させるにはどうすればよいですか?異なる仕様からのいくつかの回帰出力を一緒に融合したいのですstargazerが、これらの統計を取得するためだけに非ロバストモデルを入力する必要があると、非常に混乱します。理想的にstargazerは、これらの統計を含む回帰出力を入力して、フレームワークにインポートしたいと思います。

すべての回答を事前に感謝します

回答

2 Petr Aug 18 2020 at 20:44

これがその方法です。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検定は無効になりました。

1 Vincent Aug 18 2020 at 07:26

の解決策はありませんが、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)