ロバスト標準誤差(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 = 1〜3、 四半期データ →L = 4〜8 らしいです)- 時系列データですが、パネルデータ(社会調査のパネル)は2.クラスタロバストを使用してください。

