ロバスト標準誤差(Robust Standard Errors)の考え方

回帰分析では、残差(誤差)の分散が「どの観測でも同じである(等分散)」という前提を置いています。
しかし、実際のデータではこの前提が崩れていることが多く、異分散や相関した誤差が存在します。
そのまま分析を行うと、標準誤差(SE)やp値が正しくなくなることがあります。

このような問題に対処するために使うのが
ロバスト標準誤差(Robust Standard Errors) です。

ロバスト標準誤差は、

  • 回帰係数そのもの(βの値)を変えるわけではなく、
  • 標準誤差・t値・p値を修正することで、推定結果を信頼できるものにします。
  • データの性質(独立・クラスタ・時系列)に応じて、
    HC3/クラスタ・ロバスト/Newey–Westを使い分けてください。

回帰分析がキメラと呼ばれる所以であり、各分野のお作法があるかと思いますので、指導教員にご確認ください。

Rでの実装方法

1. 異分散に強い:HC3(クロスセクションデータ向け)

library(sandwich)  
library(lmtest)   

m1 <- lm(y ~ x1 + x2, data = dataset)
coeftest(m1, vcov = vcovHC(m1, type = "HC3"))

ポイント

  • HC3 は「異分散(観測ごとのばらつきの違い)」に強く、ロバストSEのデフォルトというイメージです。

2. グループごとに誤差が似る場合:クラスタ・ロバストSE

社会調査や組織データでは、同じ学校・企業・地域に属する人たちが似た傾向を持つことがある。
誤差がグループ内で相関するので「独立」という前提が崩れます。
このような場合に用いるのはマルチレベル分析です。が、クラスタ・ロバスト標準誤差を活用することもできます。

# 例:group_id がグループを表す変数(学校、企業、地域など)
coeftest(m1, vcov = vcovCL(m1, cluster = ~ group_id))


# 例:パネル調査の場合
library(sandwich)  
library(lmtest)   

m1 <- lm(y ~ x1 + x2, data = dataset)
coeftest(m1, vcov. = vcovCL, cluster = ~ hq0_4)

※この例では、panel3というdfで、個人を表すID的なものはhp0_4であるという想定です。

ポイント

  • 各クラスタ(グループ)内の誤差相関を考慮するときに活用する。
  • 社会調査(パネル調査)のときも、個体(id)内の相関と異分散をケアはこちらを選択する。
    coeftest(m1, vcov. = vcovCL, cluster = ~ hq0_4)

3. 時系列データの場合:Newey–West(自己相関に対応)

時系列データ(売上・気温・GDPなど)では、誤差が時間を通じて関連している(自己相関)ことがよくあります。
異分散と自己相関の両方に対応できるのが、Newey–West標準誤差です。

library(sandwich)
library(lmtest)

# lag = L は「どのくらい過去の誤差まで相関があるか」を指定します
coeftest(m1, vcov = NeweyWest(m1, lag = L))

ポイント

  • L(ラグ)はデータの頻度で調整する(月次データ → L = 13、 四半期データ → L = 48 らしいです)
  • 時系列データですが、パネルデータ(社会調査のパネル)は2.クラスタロバストを使用してください。