回帰診断法:1点で傾きが半分になる仕組みと、てこ比の正体【第17回】

はじめに

第17章は回帰診断法です。前回(第16回・重回帰分析)で「最小二乗法は射影である」「偏回帰係数の正体は残差回帰である」といった話を扱いました。あの回はモデルを作って係数を解釈する話でした。

今回は逆向きです。そのモデルの前提が本当に成り立っているのかを確かめる回です。

前回の最後にガウス・マルコフの定理が出てきました。「誤差が期待値ゼロ・等分散・無相関なら、最小二乗推定量は不偏推定量の中で最も分散が小さい」という定理です。よく考えるとこれは条件付きの保証で、条件が崩れたら何が起きるかは何も言っていません。今回はその「崩れたとき」を全部見ていきます。

そして今回、私の中でいちばん大きかった疑問はこれでした。

最小二乗法は全部の点の残差を2乗して足して最小化するのに、なぜ1点だけが結果を支配できるのか。 平等に扱っているように見えるのに、実際には1点で傾きが半分になる。この矛盾がずっと引っかかっていました。

答えは意外なところにありました。「二乗しているから、まさにそうなる」のです。最小二乗法は平等ではありません。式の上でそれが見えます。

この記事で使う言葉

先に5つ整理します。この記事はこの5語で回ります。

てこ比(leverage)hiih_{ii} と書きます。ある観測が説明変数の空間で「みんなの中心からどれだけ離れているか」の指標。てこ(レバー)の柄の長さにあたります。重要なのはyy の値を一切見ずに計算できることです。

外れ値(outlier)yy の方向にズレている観測。てこ比とは別の概念で、こちらは残差を見て判定します。

影響力(influence):その観測が実際に結果をどれだけ動かしたか。上の2つの掛け算で決まります。代表的な指標が次のクック距離です。

クック距離(Cook's distance)DiD_i と書きます。「その1点を抜いたら予測値全体がどれだけ動くか」を測った量。影響力の指標です。

不均一分散(heteroscedasticity):誤差の分散が観測ごとに違う状態。反対語は等分散(homoscedasticity)。「hetero=異なる」「skedasis=散らばり」というギリシャ語由来で、字面のまま「散らばりが異なる」です。

略語も先に開いておきます。OLS(Ordinary Least Squares=通常の最小二乗法)WLS(Weighted Least Squares=加重最小二乗法)SE(Standard Error=標準誤差)DW(Durbin-Watson=ダービン・ワトソン比)BP検定(Breusch-Pagan test=ブロイシュ・ペーガン検定)RSS(Residual Sum of Squares=残差平方和)TSS(Total Sum of Squares=全平方和)RMSE(Root Mean Squared Error=二乗平均平方根誤差)

なお pp という記号が2つの意味で使われる問題は前回と同じです。この記事ではパラメータ数を pp、有意確率は「p値」と書き分けます。

TL;DR

  • 最小二乗法は平等ではない。 傾きは β^1=wiyi\hat\beta_1=\sum w_i y_i という yy の加重和で、重みは wi=(xixˉ)/Sxxw_i=(x_i-\bar x)/S_{xx}。実測で wiyi\sum w_i y_i と OLS の傾きが 1.07709520 で一致
  • xi=xˉx_i=\bar x の点は傾きに1票も持っていない(重み 6×1018-6\times10^{-18})。だから yy を14動かしても傾きは変化 0.000-0.000
  • 1点が回帰を壊すには「xx が遠い」と「yy がズレている」の両方が必要。 Di=ri2phii1hiiD_i=\frac{r_i^2}{p}\cdot\frac{h_{ii}}{1-h_{ii}}掛け算だから、どちらかが0なら積は0
  • xx が遠く yy もズレた1点で傾きが 1.024 → 0.350 に崩壊Di=9.115D_i=9.115R2R^2 は 0.945 → 0.181)
  • てこ比は yy を見ずに計算できるXX だけの関数)。hii=y^i/yih_{ii}=\partial\hat y_i/\partial y_i自分の予測への発言力で、5点すべてで実測の傾きが hiih_{ii}101610^{-16} 精度で一致
  • 重回帰では「単独では平凡なのに組み合わせが異常」な点が生まれる。 相関0.639のとき、重心から同じ距離3.111でも hh が 0.465 対 0.213 と2.2倍違う
  • てこ比が高い点は生の残差が小さく出るV[ei]=σ2(1hii)V[e_i]=\sigma^2(1-h_{ii}))。h=0.42h=0.42 の点の残差は 0.030 しかない
  • 外れ値は自分でものさしを伸ばして自分を隠す(マスキング)。σ^\hat\sigma が 0.925 → 2.768 と3倍に膨らみ、標準化残差は np=4.243\sqrt{n-p}=4.243 で飽和して止まる
  • だから外れ値判定には外部(スチューデント化残差)を使う。 こちらは 11.79 まで伸び、t(np1)t(n-p-1) に厳密に従う(97.5%点が実測 2.2490 対 理論 2.2622)
  • 不均一分散が壊すのは標準誤差だけ。 推定値は不偏のまま(平均 1.500377、真値 1.5)だが、SE は本当のSDの 0.944倍で被覆率 93.74%、偽陽性 6.55%
  • ただし「必ず過小評価」は誤り。 分散が中央で大きい形だと比が 2.262 で過大評価になる。鍵はてこ比との相関
  • 4/n4/n は閾値ではなく目印。 完全に正常なデータで nn=200 のとき誤検出率 100%E[Di]1/(np)E[D_i]\approx1/(n-p) なので 4/n4/n は常に上位数%の線。原因は多重比較)
  • 削除は区間を 0.721倍に縮めるが被覆率を下げる(95.73% → 91.07%、繰り返すと 80.55%)。一方で点推定のRMSEは改善する(0.102 → 0.084)
  • 捨てるより重みを下げるほうが強い。 Huber ロバスト回帰は RMSE 0.080 で削除より良く、標本を1つも捨てない。ただし守るのは yy 方向だけ(汚染点が xx=60 なら OLS と同様に壊れる)
  • DW が小さい原因は自己相関でないことがある。 誤差が完全に独立な曲線データで DW=0.368、x2x^2 を入れたら 2.092 に戻った
  • 自己相関は不均一分散よりずっと危険。 ρ\rho=0.9 で被覆率 34.03%。ただしこれも向きは xx の並びで変わる
  • アンスコムの4データは係数・R2R^2σ^\hat\sigma・残差SDが全部一致するのに中身が別物。 うち1つは hiih_{ii} がちょうど 1.000
  • おまけ:残差の平均は常に厳密にゼロなので、診断の材料にならない

なぜ二乗の最小化なのに1点が支配できるのか

順序を変えます。教科書だと診断量の定義から入りますが、最初にこの疑問を片付けたほうが後が全部楽になると気づいたので、ここから始めます。

傾きは yy の加重和だった

単回帰の傾きの式を変形します。

β^1=i(xixˉ)(yiyˉ)i(xixˉ)2=ixixˉSxxwiyi\hat\beta_1 = \frac{\sum_i (x_i-\bar x)(y_i-\bar y)}{\sum_i (x_i-\bar x)^2} = \sum_i \underbrace{\frac{x_i-\bar x}{S_{xx}}}_{w_i} \, y_i

ここで Sxx=i(xixˉ)2S_{xx}=\sum_i(x_i-\bar x)^2 です。i(xixˉ)yˉ=yˉi(xixˉ)=0\sum_i(x_i-\bar x)\bar y = \bar y\sum_i(x_i-\bar x) = 0 なので分子の yˉ\bar y が消えて、この形になります。

つまり傾きは yy のただの加重和です。重み wiw_ixx だけで決まっていて、yy を見る前に確定しています。

実際に確かめました。

iwiyi\sum_i w_i y_i1.07709520
OLS が返す傾き1.07709520
1.3×10151.3\times10^{-15}
iwi\sum_i w_i8.3×1017-8.3\times10^{-17}(ゼロ)
iwixi\sum_i w_i x_i1.00000000

下2行は重みが満たす制約です。wi=0\sum w_i=0 かつ wixi=1\sum w_i x_i=1 で、この2本が「不偏推定量になるための条件」にあたります。

そして重みの中身を見ると、疑問が一気に解けます。

最小二乗法が遠い点を優遇する仕組みを示す6枚組の図(上段(a)(b)(c)・下段(d)(e)(f))。(a)は傾きの重みw_i=(x_i−x̄)/Sxxの棒グラフで、横軸x_iの中央x̄で棒がゼロになり「ここの点は傾きに1票も入れていない」、両端で±0.035と「端の点の1票は重い」と注記されている。(b)は横軸がx̄からの距離d、縦軸が対数目盛の大きさで、回帰への効き(∝d、赤)より二乗損失の増え方(∝d²、青)が急に立ち上がり、絶対値損失なら効きは一定(灰の破線)。(c)は文字パネルで、最小二乗法がΣe_i=0とΣx_ie_i=0の2本を必ず満たすこと、実測でΣx_ie_iが10のマイナス14乗台であることを述べている。(d)は1点を(−2.2, 2.2)に置いてそのyを14下げていくと、推定される傾きが真値2.0と−1.5から離れ、クック距離(緑の破線)が10近くまで上がる図。(e)は横軸x₁・縦軸x₂のてこ比の等高線で、実データ40点を囲む黒破線の楕円の外にある置いた点がh=0.465、相関に沿う点がh=0.213。(f)は全40点のクック距離を並べた棒グラフで、置いた点だけがD=9.77と閾値1の線を突き抜けている

(a) が核心です。 棒グラフは「どの点が傾きに何票入れているか」を表しています。xi=xˉx_i=\bar x のところで棒がゼロになっているのが見えるでしょうか。実測値は 6.22×1018-6.22\times10^{-18}、つまり真ん中の点は傾きについて1票も持っていません。端の点の票は重く、xxxˉ\bar x から離れるほど比例して重くなります(端から2番目 0.03000 対 中央から2番目 0.01000 でちょうど3倍)。

(b) は「なぜ二乗なのか」の答えです。 支点から距離 dd の点を考えると、回転への効きは dd に比例する一方、二乗損失の減り方は d2d^2 に比例します。だから最小化アルゴリズムは遠い点を優先して合わせに行く。

もし損失が絶対値(ei|e_i|)なら、残差の大きさに対する効きは一定になります(yy が10ズレても100ズレても効きが同じ)。これが後で出てくるロバスト回帰の発想の源です。

ただし注意が必要で、絶対値損失にしても xx 方向のてこ比は消えません。勾配を書くと明らかです。

2iei(xixˉ)二乗損失,isign(ei)(xixˉ)絶対値損失\underbrace{-2\sum_i e_i(x_i-\bar x)}_{\text{二乗損失}}, \qquad \underbrace{-\sum_i \mathrm{sign}(e_i)(x_i-\bar x)}_{\text{絶対値損失}}

どちらにも (xixˉ)(x_i-\bar x) が残っています。 絶対値損失が一定にするのは「yy 方向のズレに対する効き」だけで、「xx の遠さに対する効き」はそのままです。この事実は後でロバスト回帰の限界として戻ってきます。

(c) は別の角度からの説明です。 最小二乗法は次の2本を必ず満たします。

iei=0(切片で微分),ixiei=0(傾きで微分)\sum_i e_i = 0 \quad \text{(切片で微分)}, \qquad \sum_i x_i e_i = 0 \quad \text{(傾きで微分)}

2本目が問題です。これは「残差を xx で重み付けした和がゼロ」という制約なので、xix_i が大きい点の残差には係数 xix_i が掛かって効きます。少し残るだけで和を崩すため、つじつまを合わせるために直線がその点へ引っぱられる。実データで確認すると、どちらのデータでも xiei\sum x_i e_i101410^{-14} 台、つまり例外なく厳密に成立していました。

ここが今回の土台です。

最小二乗法が平等なのは残差の扱いだけで、係数への寄与は最初から不平等です。 β^1=wiyi\hat\beta_1=\sum w_i y_iwi=(xixˉ)/Sxxw_i=(x_i-\bar x)/S_{xx} という式がそれを示しています。

  • xix_ixˉ\bar x に近い点 … wi0w_i\approx0yy がどれだけ暴れても傾きは動かない
  • xix_i が遠い点 … wiw_i が大きい。yy が少し動くと傾きが動く

てこ比が高い点とは「wiw_i が大きい点」=1票の重みが大きい点のことです。 そして yy 方向のズレが「その1票の中身」。影響力=票の重み × 票の中身

「二乗誤差の最小化」という手続きが、勝手にこの重み付けを作り出している。ここが腑に落ちると、以降の診断量が全部「この不平等を測る道具」として読めるようになります。

重回帰でも同じことが起きる

「単回帰の話では?」と思ったので、p=3p=3(切片+説明変数2つ)で実演しました。上の図の (d)(e)(f) です。x1x_1x2x_2 の相関は 0.639 に設定しています。

1点を (x1,x2)=(2.2, 2.2)(x_1,x_2)=(-2.2,\ 2.2) に置いて、その点の yy だけを下げていきます。

yy を下げた量β^1\hat\beta_1(真値 2.0)β^2\hat\beta_2(真値 −1.5)てこ比 hiih_{ii}クック距離
02.048−1.3860.4650.117
4.72.479−1.9100.4655.557
9.32.910−2.4340.4658.647
14.03.342−2.9570.4659.773

β^1\hat\beta_1 が 2.05 から 3.34、β^2\hat\beta_2 が −1.39 から −2.96(真値はそれぞれ 2.0 と −1.5)。1点で両方の係数が2倍近くまで動きました。 hiih_{ii} が 0.465 のまま一定なのは、てこ比が XX だけで決まるので yy をいくら動かしても変わらないためです。図(f)で全点のクック距離を並べると、この点の 9.77 が他の40点の最大 0.114 の86倍でした。

そして重回帰のほうが厄介です。 (e) を見てください。x1x_1x2x_2 に相関があると、てこ比の等高線は傾いた楕円になります。

点の位置重心からの直線距離てこ比 hh
(2.2, 2.2)(-2.2,\ 2.2)3.1110.465
(2.2, 2.2)(2.2,\ 2.2)3.111(同じ)0.213

同じ距離なのに hh が2.2倍違います。 前者は「x1x_1 が小さいのに x2x_2 が大きい」、つまり相関 0.639 という全体の傾向に逆らっている点だからです。

ここが実務で怖いところでした。x1x_1x2x_2 も単独では ±2.2\pm2.2 という値で、標準偏差1の変数ならよくある値です。単独では平凡なのに、組み合わせとして異常だから高てこ比になる。つまり1変数ずつヒストグラムを描いて外れ値チェックをしても絶対に見つかりませんhiih_{ii} を計算して初めて見えます。これが hiih_{ii} という量をわざわざ使う実用上の理由でした。

なお、てこ比が「重心からの楕円距離」であることは式でも確認できます(後で出てくる図の (d) が等高線の全体像です)。マハラノビス距離 dMd_M を使うと

hii=1n+dM2n1h_{ii} = \frac{1}{n} + \frac{d_M^2}{n-1}

で、実測との最大誤差は 2.8×10162.8\times10^{-16} でした(dMd_M は共分散行列を n1n-1 で割って測った場合。nn で割る流儀なら分母も nn になります)。楕円が傾く理由は、マハラノビス距離が共分散行列の逆行列で測る距離だからです。

1点を動かすと直線はどう動くか

ここからが今回いちばん見たかったものです。20点を固定して、21番目の点だけを動かします。動かし方を3通り変えると、まったく違う挙動になります

A:xx は真ん中のまま、yy を大きく動かす

xを平均に固定してyを14上げても傾きが動かないアニメーション

x=5x=5(ちょうど xˉ\bar x)に置いたまま、yy を14上へ動かします。右側の数値に注目してください。

yy の位置切片傾きhiih_{ii}スチューデント化残差DiD_iR2R^2
7.001.7491.0460.0480.020.0000.902
11.511.9641.0460.0485.000.2760.793
16.252.1901.0460.04810.240.4050.573
21.002.4151.0460.04815.480.4420.391

yy を14も動かしたのに、傾きは 1.046 から1ミリも動きません。 動くのは切片だけ(1.749 → 2.415)。スチューデント化残差は +15.48 という異常な値まで行き、R2R^2 は 0.902 から 0.391 へ落ちるのに、傾きだけが無傷です。

理由はもう分かります。xi=xˉx_i=\bar x の点は wi=0w_i=0、つまり傾きについて1票も持っていない。てこの支点の真上を押しても回転モーメントが生じないのと同じです。

B:yy は直線上のまま、xx を遠ざける

yを直線上に保ちながらxを遠ざけててこ比だけを上げるアニメーション

今度は yy を直線の延長上に置いたまま、xx を 9.5 から 16 へ遠ざけます。

xx の位置傾きhiih_{ii}スチューデント化残差DiD_iR2R^2
9.501.0400.182−0.190.0040.913
11.591.0350.295−0.270.0160.924
13.801.0290.414−0.330.0410.935
16.001.0240.518−0.380.0810.945

てこ比が 0.182 から 0.518 までぐんぐん上がります。危険な位置に移動しているわけです。ところが傾きの変化はごくわずか(1.040 → 1.024)、クック距離も 0.081 止まり。

しかも R2R^2 は 0.913 から 0.945 に「良くなって」しまいますxx の範囲が広がって SxxS_{xx} が増えたためで、あてはまりの指標としては改善に見える。てこ比が高いだけでは何も起きていないというのがこの図の主張です。

C:xx が遠く、yy もズレる

xを遠くに固定してyを15下げると傾きが崩壊するアニメーション

本命です。x=16x=16 に置いたまま(hii=0.518h_{ii}=0.518 に固定)、yy を15下へ動かします。

yy の位置切片傾きhiih_{ii}スチューデント化残差DiD_iR2R^2
18.001.8451.0240.518−0.380.0810.945
13.172.8140.8070.518−4.175.0280.846
8.083.8340.5790.518−8.178.0520.541
3.004.8540.3500.518−12.169.1150.181

傾きが 1.024 から 0.350 へ崩壊しました(変化 −0.696)。クック距離は 9.115 で、よく使われる閾値1をはるかに超えています。R2R^2 は 0.945 から 0.181。

Bと違うのは yy 方向にもズレたことだけ、Aと違うのは xx が遠いことだけです。

3つのアニメが言っていること。

1点が回帰を壊すには、xx が遠い」と「yy がズレている」の両方が必要です。

  • A … yy がズレているだけ → 傾きは無傷
  • B … xx が遠いだけ → 何も起きない(むしろ R2R^2 は改善)
  • C … 両方そろって初めて崩壊

式で見ると理由が明快です。

Di=ri2phii1hiiD_i = \frac{r_i^2}{p}\cdot\frac{h_{ii}}{1-h_{ii}}

yy 方向のズレ(rir_i)と xx 方向の遠さ(hiih_{ii})の掛け算になっています。 掛け算だから、どちらかが0なら積は0。これがCだけが壊れる理由です。

外れ値・てこ比・影響力を2×2で整理する

この3つが別物だという話を、同じデータで並べます。21番目の点の置き場所を4通り変えただけです(hiih_{ii} の下限が 1/21=0.0481/21=0.048 になっているのがその証拠です)。

大事な工夫が1つあります。yy の位置を「その点を除いた直線」からの上下で指定しました。こうしないとてこ比だけを孤立させられません(最初は「真の直線」から指定して失敗しました。それだと③に残差が残ってしまい、影響力がゼロになりません)。

外れ値・てこ比・影響力を4ケースで比較した2×2の図

灰色の破線が「問題の点を入れない直線」、赤が「入れた直線」です。2本が重なっていれば影響ゼロと読めます。

ケースxx の位置yy の位置てこ比 hiih_{ii}スチューデント化残差クック距離 DiD_i傾きの変化切片の変化
① ふつうの点xˉ\bar x の上直線上0.048−0.000.000−0.000+0.000
外れ値xˉ\bar x の上+9 ズレ0.048+9.400.395−0.000+0.429
高てこ比x=17x=17(遠い)直線上0.560−0.000.000+0.000−0.000
高影響点x=17x=17(遠い)−12 ズレ0.560−8.539.681−0.538+2.425

②と③が対比のポイントです。

② は残差が +9.40 という明確な外れ値なのに、傾きの変化は −0.000。動いたのは切片だけ(+0.429)です。クック距離 0.395 は「中くらい」で、閾値1には届きません。

③ はてこ比 0.560 という危険な位置にいるのに、クック距離が 0.000、傾きの変化も +0.000。図でも2本の線が完全に重なっています。

④ は③と同じ位置から yy を12下げただけで、クック距離が 9.681、傾きが 1.123 から 0.585 へ半減しました。

3つの言葉の定義(これで区別が付きます)。

  • 外れ値yy 方向にズレている。残差を見て判定する。データを取ったあとで初めて分かる
  • てこ比xx 方向に遠い。yy を一切見ずに計算できるhiih_{ii}XX だけの関数)。つまり「まだ何も起きていないが、起きたら大きい」という潜在的な危険度
  • 影響力 … 実際に結果を動かした量。上の2つの掛け算

たとえで言うと、てこ比はハンマーの柄の長さ、外れ値は振り下ろす力、影響力は実際に開いた穴です。 柄が長くても振らなければ穴は開かない(③)。思い切り振っても柄が短ければ穴は小さい(②)。

てこ比が「yy を見ずに計算できる」というのは、実験計画の話とも繋がります。どこで観測するかを自分で決められる場合、てこ比はデータを取る前に設計できるのです。前回、説明変数がよく散らばっていると標準誤差が下がるという話をしましたが(単回帰なら SE(β^1)=σ^/Sxx\mathrm{SE}(\hat\beta_1)=\hat\sigma/\sqrt{S_{xx}} で、分母が「てこの長さ」にあたります)、あれは「てこ比の高い点をあえて作ると精度が上がる」という意味でもありました。精度を上げる工夫と、1点に支配されるリスクは同じ源から来ているわけです。

てこ比とハット行列の幾何

てこ比の意味をもう少し掘ります。名前の由来から入ります。

ハット行列とてこ比の性質を示す6枚組の図(上段(a)(b)(c)・下段(d)(e)(f))。(a)はハット行列が射影であることの模式図で、実データyから、Xの列が張る平面(作れる予測値の全体)へ残差e=(I−H)yが垂直に降り、平面上の点がŷ=Hyになる。(b)は横軸x_i・縦軸h_iiのU字の曲線で、Hの対角成分と1/n+(x_i−x̄)²/Sxxの×印が完全に重なり、下限は1/n=0.067、目安2p/n=0.267の線が引かれ、合計はtrace(H)=p=2.000。(c)はy_iに足した量を横軸、ŷ_iの変化を縦軸に取った5本の直線で、傾きがそれぞれのh_ii(0.242、0.124、0.067)に一致し、傾き1の破線(完全に自分で決める場合)と比べられる。(d)は横軸x₁・縦軸x₂の平面に0.05から0.60までのてこ比の等高線を描いた図で、相関があるため楕円が傾き、重心から楕円の外に出た点ほど色が濃い。(e)は横軸h_ii・縦軸残差の大きさで、生の残差(青丸)はてこ比0.36や0.42の点で小さくなるのに、標準化した残差(赤三角)ではそれが補正される。(f)は横軸h_ii・縦軸残差のSDで、生の残差のSDは理論値σ√(1−h_ii)の破線に沿って右下がりになり、標準化残差のSDはほぼ1で平らになる

(a) ハット行列という名前の由来。 H=X(XX)1XH = X(X^\top X)^{-1}X^\top を使うと y^=Hy\hat y = Hy と書けます。yy に帽子(hat)をかぶせる行列なのでハット行列です。やっていることは射影、つまり影を落とす操作だけです。XX の列が張る平面が「作れる予測値の全体」で、HHyy をそこに垂直に落とす。落とした先が y^\hat y、落ちた差が残差 e=(IH)ye=(I-H)y です。

n=3n=3 の実例で確認しました。y=(2,1,5)y=(2,1,5) に対して y^=(1.1429, 2.2857, 4.5714)\hat y=(1.1429,\ 2.2857,\ 4.5714)、残差 (0.8571, 1.2857, 0.4286)(0.8571,\ -1.2857,\ 0.4286)

y2=y^2+e230.0000=27.4286+2.5714\|y\|^2 = \|\hat y\|^2 + \|e\|^2 \quad\Longrightarrow\quad 30.0000 = 27.4286 + 2.5714

ピタゴラスの定理が成立しています。残差と列空間の直交も e1=1.6×1015e^\top\mathbf{1}=1.6\times10^{-15}ex=2.9×1015e^\top x=2.9\times10^{-15} で確認できました。前回の「最小二乗法は射影」がそのまま再登場した形です。

(b) てこ比は xˉ\bar x からの距離で決まる。 単回帰なら閉じた式が書けます。

hii=1n+(xixˉ)2Sxxh_{ii} = \frac{1}{n} + \frac{(x_i-\bar x)^2}{S_{xx}}

図の×印がこの式の値で、実測との最大誤差は 1.9×10161.9\times10^{-16} でした。ここから3つの性質が読めます。

性質内容実測
下限xi=xˉx_i=\bar x のとき最小値 1/n1/n切片があるとき。なければ下限は0)0.0667(nn=15)
上限hii1h_{ii}\le1後述のアンスコムで 1.000 を実現
合計ihii=tr(H)=p\sum_i h_{ii} = \mathrm{tr}(H) = p2.000000(pp=2)

合計が pp になるのは前回の tr(IH)=np\mathrm{tr}(I-H)=n-p と同じ話です。だから平均は p/np/n で、目安の 2p/n2p/n3p/n3p/n は「平均の2〜3倍」という発想から来ています。

(c) ここがてこ比の意味そのものです。 yiy_i を1だけ動かすと y^i\hat y_i はどれだけ動くか、を実験しました。

観測実測の傾きhiih_{ii}
i=1i=10.2416670.2416675.6×10175.6\times10^{-17}
i=4i=40.1238100.1238101.8×10161.8\times10^{-16}
i=8i=80.0666670.0666674.9×10164.9\times10^{-16}
i=12i=120.1238100.1238101.4×10171.4\times10^{-17}
i=15i=150.2416670.2416671.9×10161.9\times10^{-16}

完全に一致しました。つまり

hii=y^iyih_{ii} = \frac{\partial \hat y_i}{\partial y_i}

で、自分の予測値を自分でどれだけ決めているかの割合です。hii=1h_{ii}=1 なら回帰線はその点を必ず通る(他の点の意見が一切入らない)。hii=1/nh_{ii}=1/n なら、他の点と平等に 1/n1/n しか発言していない。これが「てこ比」という訳語の意味でした。

(e)(f) 実務上の落とし穴。 残差の分散は一定ではありません。

V[ei]=σ2(1hii)V[e_i] = \sigma^2(1-h_{ii})

6000回のシミュレーションで、生の残差の実測SDが理論の σ1hii\sigma\sqrt{1-h_{ii}} と一致することを確認しました(最大誤差 0.0166)。標準化すると 0.986〜1.018 で平らになります。

これが意味するのは、てこ比が高い点は生の残差が小さく出るということです。実測では h=0.425h=0.425 の点の残差が 0.030 しかありませんでした。1/1h=1.3181/\sqrt{1-h}=1.318 倍に補正して初めて他の点と比較できます。

生の残差プロットだけを見ていると、いちばん危険な点が「よくあてはまっている」ように見える。 これがてこ比を別途チェックすべき理由です。

3つの残差と、クック距離の定義

診断量の定義をまとめます。前提として ei=yiy^ie_i=y_i-\hat y_i(生の残差)、pp はパラメータ数、σ^2=RSS/(np)\hat\sigma^2=\mathrm{RSS}/(n-p) です。

① てこ比

hii=[X(XX)1X]ii=xi(XX)1xih_{ii} = \left[X(X^\top X)^{-1}X^\top\right]_{ii} = x_i^\top (X^\top X)^{-1} x_i

yy を使わないのが特徴です。目安は 2p/n2p/n(甘め)または 3p/n3p/n(厳しめ)。

② 標準化残差(内部スチューデント化残差)

ri=eiσ^1hiir_i = \frac{e_i}{\hat\sigma\sqrt{1-h_{ii}}}

V[ei]=σ2(1hii)V[e_i]=\sigma^2(1-h_{ii}) で割って点どうしを比較できるようにしたものです。tt 分布には従いません。分母の σ^\hat\sigma の中に分子の eie_i 自身が入っているので、分子と分母が独立でないためです。

では何に従うかというと、ri2/(np)r_i^2/(n-p)Beta(12,np12)\mathrm{Beta}\left(\frac12, \frac{n-p-1}{2}\right) に従います。ベータ分布は [0,1][0,1] に台を持つので、ri2npr_i^2 \le n-p、つまり rinp|r_i|\le\sqrt{n-p} という上限がここから出ますnn=12、pp=2 で6万回まわしたときの maxri\max|r_i| は 3.0723 で、上限 3.1623 に届きませんでした。

③ スチューデント化残差(外部・削除残差)

ti=eiσ^(i)1hii=rinp1npri2t_i = \frac{e_i}{\hat\sigma_{(i)}\sqrt{1-h_{ii}}} = r_i\sqrt{\frac{n-p-1}{n-p-r_i^2}}

σ^(i)\hat\sigma_{(i)}その点 ii を抜いて計算した誤差の標準偏差です。こうすると分子と分母が独立になり、ちょうど t(np1)t(n-p-1) に従います。だから「この点は外れ値か」を検定できます。

右側の等式が実用上ありがたいところで、nn 回の再フィットをしなくても rir_i から変換できることを意味します。

④ クック距離

Di=j(y^jy^j(i))2pσ^2=ri2phii1hiiD_i = \frac{\sum_j (\hat y_j - \hat y_{j(i)})^2}{p\,\hat\sigma^2} = \frac{r_i^2}{p} \cdot \frac{h_{ii}}{1-h_{ii}}

左が定義(y^j(i)\hat y_{j(i)} は点 ii を抜いて再推定した予測値)、右が計算式です。「その1点を抜いたら、全部の予測値がどれだけ動くか」σ^2\hat\sigma^2 で割って無次元化したものです。

自作モジュールで両者が一致することを確認しました(最大誤差 1.2×10151.2\times10^{-15})。定義どおり nn 回再フィットした結果と、右の式が完全に同じ値になります。

4つの関係を1行で。

hiih_{ii}xx だけの量、tit_iyy のズレを tt 分布に載せた量、DiD_i はその2つの掛け算rir_itit_i を計算する途中に出てくる中間量、という位置づけです。

なぜ「自分を抜く」というひと手間が必要なのか

定義だけ見ると③の σ^(i)\hat\sigma_{(i)} は面倒に思えます。実験して理由を確かめました。

内部と外部の残差の違いを示す6枚組の図(上段(a)(b)(c)・下段(d)(e)(f))。(a)は1点を上にずらした量を横軸にして、標準化残差(内部、青)が上限√(n−p)=4.24の破線に張り付いて止まる一方、スチューデント化残差(外部、赤)はほぼ直線で12近くまで伸びることを示す。(b)は同じ横軸で誤差の標準偏差の推定値を描き、その点も入れたσ̂(青)が0.94から2.78へ3倍近く伸びるのに、その点を抜いたσ̂_(i)(赤)は0.94で一定であることから、外れ値が自分でものさしを伸ばして自分を隠すと注記されている。(c)はn=12・p=2で20000回のヒストグラムで、外部のスチューデント化残差(ピンク)だけがt(9)の密度曲線と重なり、内部の標準化残差(青い階段)は裾が短い。(d)は横軸に標準化残差の大きさ、縦軸にてこ比を取った等高線図で、クック距離の対数を色で示し、D=1の実線とD=4/nの破線が引かれ、四隅に①から④の場合が対応づけられている。(e)は横軸てこ比・縦軸倍率で、h/(1−h)がh=0.5で1.0、0.8で4.0、0.9で9.0と非線形に跳ね上がる曲線。(f)は観測番号1から25について、てこ比・スチューデント化残差の絶対値・クック距離をそれぞれの最大値で割って並べた棒グラフで、最大になる点がi=25、i=6、i=23とばらばらであることを示している

(a) 1点を上へずらしていくと、内部と外部で挙動が正反対になります。

ずらした量標準化残差 rir_i(内部)スチューデント化残差 tit_i(外部)σ^\hat\sigma(全部)σ^(i)\hat\sigma_{(i)}(自分抜き)
0.00−0.658−0.6470.9250.940
4.903.1064.4301.3410.940
8.573.7948.2382.0410.940
12.004.00511.7922.7680.940

青(内部)は 4.005 で飽和して止まります。この実験は nn=20・pp=2 なので、理論上限 np=4.243\sqrt{n-p}=4.243 を超えられないためです(上限は nn で変わります。次の (c) は nn=12 なので 3.162 が壁になります)。赤(外部)は 11.79 までまっすぐ伸びます。

(b) 原因はこれです。 σ^\hat\sigma が 0.925 から 2.768 へ、つまり3倍に膨らんでいます。一方 σ^(i)\hat\sigma_{(i)} は 0.940 のまま不動。

つまり外れ値は自分自身でものさしを伸ばして、自分を平凡に見せてしまう。これをマスキング(自己隠蔽)と呼びます。分子(残差)が伸びても分母(ものさし)が同じ倍率で伸びるので、比が伸びないわけです。

(c) 分布も確認しました。 n=12n=12p=2p=2 で2万回まわして分位点を照合します。

分位点外部の実測t(9)t(9) の理論値
5%−1.8440−1.8331−0.0108
25%−0.6860−0.7027+0.0167
75%+0.7046+0.7027+0.0019
95%+1.8244+1.8331−0.0087
97.5%+2.2490+2.2622−0.0131
99%+2.8025+2.8214−0.0190

外部は t(9)t(9) にきれいに従っています。内部の実測範囲は [2.895, 3.020][-2.895,\ 3.020] で、np=3.162\sqrt{n-p}=3.162 の壁で切られていて裾が足りません

マスキングが実務で意味すること。

rir_i には np\sqrt{n-p} という上限があるので、nn が小さいほど天井が低いnn=12、pp=2 なら ri|r_i|3.162 を絶対に超えないので、 「r>3|r|>3 を外れ値とする」という基準はこのサイズだとほぼ機能しません。

外れ値の判定には必ず外部(スチューデント化残差)を使う。 これが「自分を抜く」ひと手間を払う理由です。

(d)(e) クック距離の2つの因子。 等高線で見ると、①〜④が前半の2×2にそのまま対応します。そして h/(1h)h/(1-h) という形が非線形であることが効いてきます。

てこ比 hhh/(1h)h/(1-h)
0.100.111
0.200.250
0.501.000
0.804.000
0.909.000
0.9519.000
0.9999.000

h=0.5h=0.5 で1倍、0.9 で9倍、0.99 で99倍h1h\to1 で発散します。だからてこ比が 0.8 を超えたあたりから急に危険になるわけです。

(f) そして3つの指標は別の点を指しました。 これが「3つとも見る必要がある」ことの実演です。

iixix_iてこ比 hiih_{ii}スチューデント化残差 tit_iクック距離 DiD_iこの点の正体
61.430.0643.900.324xx が中央の外れ値tit_i は最大だが DiD_i は中くらい
2311.000.206−3.090.906高影響点hhtt も単独では1位でないのに DiD_i が最大
2513.000.3161.660.591高てこ比xx は最も遠いが直線に近いので tit_i は小さい

hh 最大は ii=25、ti|t_i| 最大は ii=6、DiD_i 最大は ii=23。3つとも違う点です。 どれか1つだけ見ていると取りこぼします。

回帰の4つの仮定と、確認する方法

ここから後半です。診断の対象になる仮定を先に並べます。

仮定式で書くと崩れると何が起きるか確認方法
線形性E[yx]=xβE[y\mid x]=x^\top\betaβ^\hat\beta 自体が偏る(バイアス)残差 vs 予測値・残差 vs 各説明変数
独立性Cov[εi,εj]=0\mathrm{Cov}[\varepsilon_i,\varepsilon_j]=0β^\hat\beta は不偏だがSEが壊れる残差 vs 観測順・DW
等分散性V[εi]=σ2V[\varepsilon_i]=\sigma^2ii に依らない)β^\hat\beta は不偏だがSEが壊れる残差 vs 予測値・BP検定
正規性εiN(0,σ2)\varepsilon_i\sim N(0,\sigma^2)nn が小さいときだけ区間と検定が歪む(ただし個々の yy予測区間は nn に関係なく歪む正規Q-Qプロット

この表の3列目が今回の要点です。 崩れ方が2種類に分かれます。線形性の破れは β^\hat\beta を偏らせるのでモデルを直すしかない。一方、独立性と等分散性の破れは β^\hat\beta を偏らせずSEだけを壊すので、SEの計算法を替えれば済みます。

正規性だけ性質が違って、nn が大きければ中心極限定理で救われます。第13回で検定の頑健性を扱ったときと同じ構図です。「正規性がいちばん重要そう」と思いがちですが、実は4つの中でいちばん優先度が低いというのが今回の学びでした。

残差プロットの判断表

過去問では図の読み取りが問われやすいので、6パターンを同じ形式で並べました。すべて横軸に予測値 y^\hat y、縦軸に標準化残差です。オレンジの線は移動平均で、傾向を見やすくするために引きました。

残差プロットの6パターンを並べた図。6枚とも横軸が予測値ŷ、縦軸が標準化残差で、赤い水平線が0、オレンジの線が移動平均。上段の①構造なしは水平の帯にランダムに散り移動平均も平らで対処不要。②ラッパ型・扇型は右へ行くほど縦の散らばりが広がり不均一分散を疑う(対処は対数変換・WLS・ロバスト標準誤差)。③曲線は両端が上・中央が下でオレンジ線がはっきり曲がり、線形性の破れを疑う(x²の追加やlog x)。下段の④2本の帯に分かれるは残差が上下2つの塊になり質的変数の欠落を疑う(ダミー変数を入れる)。⑤隣とくっついて蛇行するは隣の点と符号が揃ってなめらかにうねり、誤差の自己相関を疑う(ダービン・ワトソンから時系列モデルへ)。⑥1点だけ大きく外れるは他が水平帯なのに1点だけ±2の外に孤立し、外れ値を疑う(t_iで検定して原因を調べる)

パターン見え方疑うこと対処
① 構造なし水平の帯にランダム問題なしなし
② ラッパ型・扇型右(または左)へ広がる不均一分散対数変換・WLS・ロバストSE
③ 曲線(U字・逆U字)両端が上、中央が下線形性の破れ(2次項の欠落)x2x^2 を追加・logx\log x・スプライン
④ 2本の帯に分かれる残差が上下2つの塊質的変数の欠落(群構造)ダミー変数を入れる・層別
⑤ なめらかに蛇行隣の点と符号が揃う誤差の自己相関DW → HAC標準誤差・時系列モデル・一般化最小二乗法
⑥ 1点だけ飛ぶ他は水平帯、1点が孤立外れ値tit_i で検定・原因を調べる

同じデータの診断量も出しました。

パターンR2R^2DWti\lvert t_i\rvert 最大DiD_i 最大BP検定のp値
① 構造なし0.8931.932.410.0970.242
② ラッパ型0.4611.194.000.2940.0000
③ 曲線0.6410.313.050.2280.469
④ 2本の帯0.3392.201.270.0370.741
⑤ 蛇行0.9300.342.550.0670.050
⑥ 外れ値1点0.8961.967.140.3260.272

この表を作っていて2つ気づきました。

1つめ。③の R2R^2 が 0.641 でそれなりに高く、⑥の R2R^2 は 0.896 で①の 0.893 とほぼ同じです。R2R^2 という数字だけ見ていたら、③も⑥も見逃します。

2つめが自分で驚いたところで、③の DW が 0.31 になっています。③は誤差を完全に独立に生成しているのに、自己相関の指標が「強い正の自己相関」を示しました。

理由を考えると納得できます。xx でソートされたデータに曲線があると、直線をあてはめた残差は「左は正、中央は負、右は正」となめらかに変化します。すると隣同士が似るので、自己相関として検出されてしまう。実際に x2x^2 を入れて曲線を吸収したら DW が 2.09 に戻りました(後述)。

DW が小さいときは、まず線形性を疑う。 自己相関と決めつけて時系列モデルに走ると誤診します。手順は 「①残差 vs y^\hat y で曲線がないか確認 → ②なければ自己相関を疑う」。

横軸に何を取るかで見えるものが変わる

プロット何が見えるか
残差 vs 予測値 y^\hat y不均一分散・線形性の破れ。まずこれを描く
残差 vs 各説明変数 xjx_jどの変数のせいで曲がっているか。原因の特定用
残差 vs 観測順・時間自己相関。時系列やロット順のデータでは必須
正規Q-Qプロット正規性。直線から外れる=裾が重い・軽い、S字=歪み
標準化残差\sqrt{\lvert\text{標準化残差}\rvert} vs y^\hat y不均一分散の専用版。絶対値なので上下の折り返しがなく傾きが見やすい
てこ比 vs 標準化残差影響力。クック距離の等高線を重ねると2×2がそのまま読める

なぜ横軸に y^\hat y を取るのかというと、残差と予測値は直交している(前回の話)ので、仮定が正しければ無相関に見えるはずだからです。構造が見えたらそれは仮定の破れです。yy を横軸にすると残差と相関してしまうので間違いです。

不均一分散:壊れるのは推定値か標準誤差か

ここは区別が大事だと思ったので、実測で切り分けました。σ(x)=0.30x\sigma(x)=0.30x(0.3 から 3.3 まで11倍の差)というかなり強い不均一分散を作り、8000回まわします。

不均一分散で推定値は不偏だが標準誤差が壊れることを示す6枚の図

まず結論。推定値はまったく壊れていません。

手法傾きの平均(真値 1.5)偏り
OLS1.500377+0.000377+0.000377
WLS(重み既知)1.4995570.000443-0.000443

壊れているのは標準誤差です。

本当のSDとの比
傾きの本当のSD(8000回の実測)0.0926021.000
OLS が報告するSEの平均0.0874620.944(過小評価
ロバスト(HC3)SEの平均0.0954651.031

その結果どうなるか。

手法95%信頼区間の被覆率H0:β1=0H_0:\beta_1=0 の棄却率(真は0)
OLS の素のSE93.74%6.55%(名目5%の1.31倍)
OLS + ロバストSE(HC3)95.30%5.00%
WLS(重み既知)95.29%5.04%

答え:壊れるのは標準誤差です。推定値は不偏のまま。

式で追えます。β^=β+(XX)1Xε\hat\beta = \beta + (X^\top X)^{-1}X^\top\varepsilon なので、 E[ε]=0E[\varepsilon]=0 でありさえすれば分散がどうなっていようと E[β^]=βE[\hat\beta]=\beta。 不偏性は「誤差の平均がゼロ」しか使っていません。

一方 V[β^]=σ2(XX)1V[\hat\beta]=\sigma^2(X^\top X)^{-1}「全部の点で σ2\sigma^2 が同じ」を使って導いた式なので、 そこが崩れると使えません。正しくは

V[β^]=(XX)1XΩX(XX)1V[\hat\beta]=(X^\top X)^{-1}X^\top \Omega X (X^\top X)^{-1}

Ω\Omega は誤差の分散共分散行列)。この形をサンドウィッチ型と呼び、 Ω\Omega対角だけを残差の2乗で置き換えたのがロバスト標準誤差です。 逆に言えば、HC系は Ω\Omega が対角(=不均一分散だけ)を前提にしているので 自己相関には効きません(後述の自己相関には HAC=Newey-West 標準誤差を使います)。

→ 実務的には「係数の値は信じていい、p値と信頼区間は信じるな」という判断になります。

「必ず過小評価」は間違いだった

教科書でよく「不均一分散はSEを過小評価する」と書かれます。私もそう覚えていたのですが、実測すると向きが変わりました

分散の形報告SE ÷ 本当のSD結果
σx\sigma \propto x(右で大)0.918過小評価 → 偽陽性が増える
σ1/x\sigma \propto 1/x(左で大)0.712もっと過小評価
σ\sigma 一定(正常)1.013正しい
中央で大・端で小2.262過大評価 → 検定が保守的になり見逃しが増える

鍵はてこ比との相関でした。 てこ比が高い点(xx が端)の分散が大きいとSEは過小評価になり、逆にてこ比が低い点(中央)の分散が大きいと過大評価になります。

考えてみれば当然で、σ^2\hat\sigma^2 は全部の残差を平均した「代表値」です。代表値が、効きの強い点(高てこ比)の実際の分散より小さければSEは小さすぎ、大きければ大きすぎになる。「不均一分散があると危険」は正しいですが、「必ず甘くなる」は誤りでした。

3つの対処法の使い分け

対処やること効果(実測)いつ使うか
ロバスト標準誤差係数はOLSのまま、SEの計算式だけ差し替える被覆率 93.74% → 95.30%/偽陽性 6.55% → 5.00%第一選択。 分散の形を知らなくてよい。nn が小さいときは HC3
加重最小二乗法(WLS)各点を 1/σi21/\sigma_i^2 で重み付けして解く被覆率 95.29%/さらに分散が 55.5% 減る(SD 0.0926 → 0.0618)分散の形に見当がつくとき。効率が上がる
変数変換yylogy\log y にするBP検定のp値が 0.003 → 0.546(後述)誤差が乗法的なとき

WLSが効率を上げる理由は、ばらつきの小さい点(信頼できる観測)を重く、大きい点を軽く扱うからです。分散が 55.5% 減るというのは、同じ精度を得るのに必要な標本が半分以下になるということです。

ただし WLS が最良になるのは重み 1/σi21/\sigma_i^2 が(比だけでも)分かっているときです。分散の形をデータから推定して重みにすると、その推定の不確実性が入るので保証は消えます。だから第一選択がロバスト標準誤差なのでした。

ここで前回のガウス・マルコフの定理と繋がります。あの定理は「等分散のもとでOLSが最良」と言っていました。つまり裏を返せば、等分散でなければOLSより良いものがあるという宣言でもあったわけです。WLSがまさにそれでした。

対数変換すると解釈はどう変わるか

変数変換は不均一分散の対処として出てきますが、係数の意味が変わるのが厄介なところです。ここを数値で確かめました。

真のモデルを y=3.0x1.4eεy = 3.0 \cdot x^{1.4} \cdot e^{\varepsilon}、つまり誤差が掛け算で入る形にします。売上や PV のように「何割増える」という性質の量はこうなりがちです。

対数変換で等分散になる仕組みと弾性値の解釈・クック距離の閾値検証

(a)(b) 変換が効く仕組み。 生のスケールだと右へ行くほど散らばりが大きく、そのまま回帰すると BP検定のp値が 0.0029 で不均一分散が検出されます。両辺の対数を取ると

logy=log3+1.4logx+ε\log y = \log 3 + 1.4\log x + \varepsilon

で、直線かつ等分散になります。推定値は傾き 1.3976(真値 1.4)、切片 1.1191(真値 log3=1.0986\log 3 = 1.0986)、BP検定のp値は 0.546 で等分散を棄却しません。

掛け算の誤差は log\log を取ると足し算になる。 これが変換の原理でした。逆に言えば、誤差が最初から足し算で入っているデータに対数変換をしても意味がない(むしろ壊す)ことになります。

(c) 両対数の傾きは弾性値です。

xx の増加率yy の増加率(厳密)近似 β1×p\beta_1 \times pズレ
1%1.400%1.398%0.003%
5%7.057%6.988%0.069%
10%14.249%13.976%0.272%
25%36.598%34.940%1.657%
50%76.242%69.881%6.361%
100%163.466%139.762%23.704%

1%の変化なら近似がほぼ完璧ですが、100%の変化だと厳密 163.5% 対 近似 139.8% で大きく外れます。「1%増えると β1\beta_1% 増える」は小さな変化に限った近似でした。

(d) 片対数(yy だけ対数)の場合。

Δx\Delta xyy の増加率(厳密)近似 β1Δx\beta_1\Delta x
122.15%20.01%
249.20%40.01%
382.24%60.02%
5171.91%100.03%

β1=0.2001\beta_1=0.2001 なので「xx が1増えると yy が約20%増える」と読みますが、Δx=5\Delta x=5 では厳密 171.9% 対 近似 100.0% とまったく合いません。複利で効くので当然です。

4つのモデルを整理します。

モデルβ1\beta_1 の読み方厳密な式呼び名
そのままy=β0+β1xy = \beta_0+\beta_1 xxx が1単位増えると yyβ1\beta_1 単位増える
片対数(yy のみ)logy=β0+β1x\log y = \beta_0+\beta_1 xxx が1単位増えると yy が約 100β1100\beta_1 % 増える(eβ11)×100(e^{\beta_1}-1)\times100 %成長率・半弾性値
片対数(xx のみ)y=β0+β1logxy = \beta_0+\beta_1\log xxx が1%増えると yy が約 β1/100\beta_1/100 単位増えるβ1log(1+p)\beta_1\log(1+p)
両対数logy=β0+β1logx\log y = \beta_0+\beta_1\log xxx が1%増えると yy が約 β1\beta_1 % 増える[(1+p)β11]×100[(1+p)^{\beta_1}-1]\times100 %弾性値

対数変換の副作用(3つとも実務で踏みます)。

R2R^2 を変換前後で比べてはいけない。 上の例では 0.772 から 0.903 に上がりましたが、 yylogy\log y では被説明変数が別物なので TSS の意味が違います。比較は無意味です。

② 予測値を戻すときに偏りが出る。 elogy^e^{\widehat{\log y}}E[y]E[y] ではなく中央値の推定になります。 理由は2段階です。(1) exp\exp単調増加なので分位点をそのまま移すため、 logy\log y の中央値(正規なら平均と同じ)を戻すと yy の中央値になる。 (2) 一方 E[y]E[y] とは一致せず必ず下回る——ここで exp\exp が凸であることから イェンセンの不等式が効きます。平均が欲しいなら exp(μ^+σ^2/2)\exp(\hat\mu + \hat\sigma^2/2) のような補正が必要です。

③ ゼロや負の値には使えない。 log(y+1)\log(y+1) で逃げる手はありますが、 係数の解釈が「%」から崩れるので安易に使うと意味を失います。

なお Box-Cox 変換

y(λ)=yλ1λ(λ0 で logy)y^{(\lambda)} = \frac{y^\lambda-1}{\lambda} \quad (\lambda\to0 \text{ で } \log y)

という族の中から λ\lambda を最尤法で選ぶ方法です。λ=1\lambda=1 なら変換不要、0.5 なら平方根、0 なら対数、1-1 なら逆数。「どの変換がよいか」をデータに決めさせる枠組みで、λ\lambda の信頼区間が1を含むなら変換しないという判断ができます。

クック距離の閾値は 4/n か 1 か

諸説あって混乱していたので、決着をつけました。完全に仮定を満たす正常なデータを作り、誤検出率を測ります(pp=3、各条件3000回)。

nn4/n4/n の値Di>4/nD_i>4/n で誤検出Di>1D_i>1 で誤検出Di>F0.5(p,np)D_i>F_{0.5}(p,n-p) で誤検出
150.26781.3%9.6%14.7%
200.20086.7%4.1%7.1%
300.13392.6%0.7%2.0%
500.08098.3%0.1%0.3%
1000.04099.9%0.0%0.0%
2000.020100.0%0.0%0.0%

nn=200 の正常なデータで誤検出率100%。 つまり必ず誰かが引っかかります。

理由を最初は「nn が増えると 4/n4/n は0に近づくのに DiD_i の分布は縮まないから」だと考えたのですが、これは間違いでした。確かめると DiD_i の分布も同じ速さで縮んでいます。

nnE[Di]E[D_i] の実測1/(np)1/(n-p)4/n÷E[Di]4/n \div E[D_i]1点あたりの P(Di>4/n)P(D_i>4/n)引っかかる個数の平均
150.095510.083332.798.7%1.30
300.039030.037043.426.6%1.98
500.022010.021283.636.0%3.00
1000.010510.010313.815.7%5.71
2000.005120.005083.915.4%10.71

E[Di]1/(np)E[D_i]\approx1/(n-p) なので、4/n4/nnn によらず常に「平均の約4倍」=上位5〜9%あたりの位置に張り付いています。つまり 4/n4/n は絶対的な基準ではなく、最初から「上位数%を拾う線」なのです。

なお厳密には E[DiX]=1p(hii1hii)E[D_i \mid X] = \frac{1}{p}\overline{\left(\frac{h_{ii}}{1-h_{ii}}\right)} で、1/(np)1/(n-p) に一致するのは全部のてこ比が p/np/n に揃っているときだけです。h/(1h)h/(1-h) が凸関数なのでイェンセンの不等式により常に 1/(np)1/(n-p) 以上になり、nn が小さいほど上振れします(nn=15 で 1.14倍、nn=200 で 1.007倍)。

そして本当の原因は多重比較でした。1点あたり5〜9%の判定を nn 個くり返すので、少なくとも1個が引っかかる確率はほぼ 1(10.05)n1-(1-0.05)^n で、nn=200 なら実質1になります。実測でも平均10.71個が引っかかっていました。

第16回で「無意味な変数100本のうち5.55本が偽陽性になる」という話をしましたが、まったく同じ構造です。検定を nn 回くり返せば、5%水準なら 0.05n0.05n 件は必ず出ます。

逆側(本物を見逃さないか)も測りました。nn=30 で1点を汚染します。この実験では汚染点を xx 方向にも遠い位置に置いています(前半のケースCと同じ状況)。

汚染の大きさ(yy をずらした量)Di>4/nD_i>4/n で検出Di>1D_i>1 で検出
2.089.4%14.2%
4.0100.0%84.2%
6.0100.0%99.9%

置く位置を重心に変えると結果が一変します。

汚染点の位置ずらし量Di>4/nD_i>4/n で検出Di>1D_i>1 で検出
xx 方向にも遠い位置(上の表と同じ)2.089.4%14.2%
xx 方向にも遠い位置6.0100.0%99.9%
重心 (0,0)(0,0)2.00.0%0.0%
重心 (0,0)(0,0)6.099.6%0.0%

重心に置いた場合、yy を6ずらしても Di>1D_i>1 の検出率は0%です。これは欠陥ではなく仕様で、クック距離は影響力の指標なので「影響していない外れ値」は当然拾いません(前半のケースAそのものです)。4/n4/n なら 99.6% 拾えるので、目印としての 4/n4/n が役に立つ場面でもあります。いずれにせよ tit_i との併用が必要になります。

結論:4/n4/n は「閾値」ではなく「並べ替えて上位を見るための目印」です。

  • 4/n4/n … 感度は高い(小さい汚染も89%拾う)が偽陽性だらけ。 DiD_i を降順に並べて上から数点を目で見る」出発点として使う。 「4/n4/n を超えたら異常」と読んではいけない
  • Di>1D_i>1 … 超えたらほぼ確実に本物n30n\ge30 で誤検出1%未満)。ただし小さい影響は見逃す
  • 実務的な答え … 閾値で自動判定しようとしないこと。全点プロットして「他から突き抜けている点があるか」を相対的に見るのが本来の使い方

前半の重回帰の例で、1点だけが他の86倍だったように、 本物の高影響点は相対的に明らかに浮きます

表の3列目にある F0.5(p,np)F_{0.5}(p, n-p) について補足します。DiD_i は形の上では「β^\hat\beta の信頼楕円体の上をどれだけ移動したか」を測っていて、F統計量と同じスケールになります。そこから Cook 自身は「Di>F0.5D_i > F_{0.5} なら、1点抜くと β^\hat\beta が50%信頼領域の外に出る」という読み方を提案しました。実測すると F0.5(3,n3)F_{0.5}(3, n-3) は 0.835 から 0.791 と1に近い値で、誤検出率も Di>1D_i>1 とほぼ同じでした。よく使われる「Di>1D_i>1」という目安は、この F0.50.8F_{0.5}\approx0.8 を丸めたものだと理解できます。

nn が大きいときは DiD_i より DFBETAS(係数ごとの変化を標準化した量、目安 2/n2/\sqrt{n})や DFFITS(目安 2p/n2\sqrt{p/n})のほうが「どの係数が動いたか」まで分かって実用的です。

誤差の自己相関とダービン・ワトソン比

DWと自己相関の対応・自己相関の害・外れ値削除の被覆率実験

DW比の定義はこれです。

DW=i=2n(eiei1)2i=1nei22(1ρ^)DW = \frac{\sum_{i=2}^{n} (e_i-e_{i-1})^2}{\sum_{i=1}^{n} e_i^2} \approx 2(1-\hat\rho)

(a) 実測で近似式を確認しました。

ρ\rho実測 DW理論 2(1ρ)2(1-\rho)
−0.9503.77753.9000−0.1225
−0.4752.90642.9500−0.0436
0.0002.02162.0000+0.0216
+0.4751.17641.0500+0.1264
+0.9500.35400.1000+0.2540

範囲は 0〜4 で、2付近なら無相関、0に近ければ正の自己相関、4に近ければ負の自己相関

ρ\rho が大きいところで理論とズレる(ρ\rho=0.95 で実測 0.354 対 理論 0.100)理由は2つあります。1つは回帰が誤差の滑らかな成分を直線に吸収してしまうので、残差の自己相関が真の誤差より弱まること(ρ\rho=0.95 のとき真の誤差では 0.855 なのに残差では 0.791 でした)。もう1つは近似式が落としている端点項で、厳密には

DW=2(1ρ^)e12+en2iei2DW = 2(1-\hat\rho) - \frac{e_1^2+e_n^2}{\sum_i e_i^2}

です(ρ^=i=2neiei1/iei2\hat\rho = \sum_{i=2}^n e_ie_{i-1}/\sum_i e_i^2 と定義したとき厳密に成立します。実測で差は 101610^{-16} 台)。

この2つは逆向きに働きます。吸収効果は DW を上へ押し、端点項は必ず正なので下へ引く。ρ\rho=0.95 の系列で内訳を出すと、残差の自己相関 ρ^=0.791\hat\rho = 0.791 から 2(1ρ^)=0.4182(1-\hat\rho) = 0.418、そこから端点項 0.053 を引いて 0.365。上の表の 0.354 は多数回の平均なので完全一致はしませんが、理論値 0.100 との差の大半が吸収効果によるものだと分かります。正味では吸収効果が勝つので、正の自己相関のときは実測が理論値より大きく出ます。

(b)(c) 自己相関の害は不均一分散よりはるかに深刻でした。

ρ\rho報告SE本当のSD95%区間の被覆率
0.00.04370.04380.99894.87%
0.30.04510.06070.74385.90%
0.50.04890.08430.58173.93%
0.70.05640.13690.41258.57%
0.90.07480.33360.22434.03%

ρ\rho=0.9 では被覆率が 34% まで崩壊します。不均一分散が 93.7% だったのと比べると桁違いです。

理由は直感的に言えて、自己相関があると「実質的な標本サイズ」が減るからです。隣の観測がほぼ同じ情報しか持っていないなら、nn 個あっても独立な情報は nn 個ない。それなのに n\sqrt{n} で割ってしまうので過小評価になります。

ただし、ここでも「必ず過小評価」ではありませんでした。 不均一分散のときと同じ罠です。向きはxx の並び方で決まります(ρ\rho=0.7 で実測)。

xx の設計報告SE本当のSD
xx が単調増加(上の表の ρ\rho=0.7 と同じ)0.05640.13690.412(過小)
xx が 0,1,0,1,… と交替0.34640.15632.216(過大)
xx が符号交替の鋸歯0.05370.02442.198(過大)

「実質的な標本サイズが減る」が効くのは、xx 自身も滑らかに動いていて、誤差の滑らかさと噛み合うときです。xx が1つおきに反転する設計だと、正の自己相関は隣同士の差を安定させるので傾きの分散が下がり、SEは過大評価になります。

不均一分散では「てこ比との相関」で向きが決まりましたが、自己相関では「xx の変動と誤差の変動の噛み合わせ」で決まる。同じ構図でした。

(d) 予告した罠の実演です。 誤差を完全に独立に生成した曲線データで DW = 0.368。x2x^2 を入れて曲線を吸収したら DW = 2.092 に戻りました。DW が小さい原因は自己相関でなく線形性の破れだったわけです。

DW を使うときの注意点。

  • 観測に意味のある順序がなければ計算しても無意味。 DW は「隣」を使うので、 並び順を変えると値が変わります。時系列・空間・ロット順など順序が実在するときだけ意味がある
  • xx でソートしたデータでは曲線が自己相関に化ける(上の (d))
  • 検定表は dLd_LdUd_U の2つの臨界値を持ち、間に入ると「判定不能」になります。 これは分布が XX に依存して正確な臨界値が計算できないという事情から来ています
  • 1次の自己相関しか見ません。季節性などはブロイシュ・ゴッドフレイ検定や Ljung-Box 検定を使います
  • 見つかったときの対処は HAC(Newey-West)標準誤差が手軽です。不均一分散のロバストSEと同じ発想で、Ω\Omega の非対角成分まで拾います。構造をモデル化したいなら時系列モデルや一般化最小二乗法へ

外れ値は削除していいのか

いちばん実務的な問いです。数値で答えを出しました。t(3)t(3) という重い裾の誤差(外れ値が自然に発生する)で nn=30、4000回の実験です。真のモデルは正常で、外れ値は分布の性質として出ているだけという設定です。

手続き95%区間の被覆率区間幅の平均
削除しない95.73%0.3972
ti>2\lvert t_i\rvert>2 を1回削除91.07%0.2863
ti>2\lvert t_i\rvert>2 を繰り返し削除80.55%

削除すると区間幅は 0.721倍に縮むので「精度が上がった」ように見えます。 ところが実際に当たる率は 95.73% から 91.07% へ下がり、繰り返すと 80.55% まで落ちます。

理由は同じデータで「外れ値を選ぶ」と「推定する」の両方をやっていることです。残差が大きい点を捨てる操作は σ^\hat\sigma を人為的に小さくするので、自分で自分のものさしを縮めていることになります。そしてこの選択の不確実性は、最後に報告するSEにまったく反映されません

第16回で「有意でない変数を消す」という手順が偽陽性を生む話をしましたが、構造が同じです。同じデータで選抜と推定を繰り返すと、報告される不確実性が嘘になります。

ただし点推定の精度は改善する

ここは意外でした。同じ実験で β^1\hat\beta_1 の精度を見ると、削除は有効なのです。

手法β^1\hat\beta_1 の平均(真値 1.0)SDRMSE
OLS(そのまま)1.004080.101840.10190
削除して OLS1.002480.084210.08423
Huber ロバスト回帰1.003020.079950.08000

つまり「削除すると係数の当たりは良くなるが、その係数に付ける誤差の見積もりが嘘になる」。この2つを分けて理解する必要がありました。

そしてHuber ロバスト回帰は削除よりRMSEが小さく、しかも標本を1つも捨てていません。やることは重み付けで、まず残差を頑健なスケール ssMAD/0.6745\mathrm{MAD}/0.6745、MADは中央絶対偏差)で割って ui=ei/su_i = e_i/s を作り、uik|u_i|\le k なら重み1、超えたら k/uik/|u_i| に下げます(k=1.345k=1.345 は誤差が正規のとき効率95%になる定数)。

これは冒頭の (b) の図に戻る話です。Huber は残差が小さいうちは二乗、大きくなったら絶対値に切り替える損失を使うので、yy 方向に大きくズレた点の効きが一定で打ち止めになります。

捨てるより重みを下げるほうが強い。 削除は「重み1か0」という極端なロバスト化で、境界のすぐ内外で扱いが不連続に変わります。 Huber はなめらかに下げるので情報を捨てすぎません。

ただし Huber は yy 方向しか守らない

さきほどの勾配の話がここで効いてきます。絶対値損失でも (xixˉ)(x_i-\bar x) は残るので、てこ比が高い点に対しては無力です。前半のケースCと同じデータ(20点+汚染1点、真の傾き 1.0、yy は15下)で、汚染点の xx だけを動かしました。

汚染点の xxOLSHuber絶対値損失(LAD)
16(ケースCと同じ)0.3500.9060.820
300.5080.6210.688
600.7400.7350.730

xx=16 なら Huber は 0.906 でかなり守り切りますが(OLS は 0.350 まで崩壊)、xx=60 まで遠ざけると OLS の 0.740 と Huber の 0.735 がほぼ同じになりますxx 方向の破断点は0、つまり1点でも十分遠ければロバスト回帰も壊れるわけです。

記事の中心命題「壊れるには xx 遠と yy ズレの両方が必要」に照らすと、Huber は後者だけを守る道具でした。xx 方向の外れにも対処するには、てこ比も見る手法(MM推定、最小刈り込み二乗法=LTS)が必要です。

削除を判断する手順

  1. まず原因を調べる。 入力ミス・単位の誤り・測定機器の故障・対象の取り違えなど、「そのデータが母集団の話ではない」証拠が取れたときだけ削除できます。これはデータ品質の問題で、統計の問題ではありません
  2. 証拠がなければ削除しない。 「残差が大きい」は削除の理由になりません。重い裾の分布なら、大きい残差は出るべきものが出ているだけです
  3. 影響力を確認する。 クック距離や DFBETAS で「この点があると結論が変わるか」を見る。変わらないなら悩む必要すらありません
  4. 結論が変わるなら両方を報告する。 「この1点を含めると β^=1.02\hat\beta=1.02、除くと 0.35」と感度分析として書くのが正しい対処です。隠して一方だけ出すのが最も悪い
  5. 手法で対応する。 ロバスト回帰、順位に基づく方法(第15回のノンパラメトリック法)、対数変換で裾を圧縮する。削除は最後の手段です

要約統計量が全部一致するのに中身が別物な例

最後に、診断が必要な理由をこれ以上ないほど明確に示す例を置きます。アンスコムの4つ組(Anscombe's quartet)です。

アンスコムの4データ・上段は元データ、下段は残差プロット

データ切片傾き残差の平均RSSσ^\hat\sigmaR2R^2残差のSD
1: 素直な直線3.0000.5001.5×1014-1.5\times10^{-14}13.76271.23660.66651.1731
2: 曲線3.0010.5007.5×1015-7.5\times10^{-15}13.77631.23720.66621.1737
3: 外れ値1点3.0020.5007.7×1015-7.7\times10^{-15}13.75621.23630.66631.1729
4: xx が1点だけ違う3.0020.5009.7×1015-9.7\times10^{-15}13.74251.23570.66671.1723

回帰の出力表を見るかぎり、この4つは区別が付きません。 係数も R2R^2σ^\hat\sigma も残差のSDも一致しています。区別が付くのは残差を1点ずつ見たときだけです。

ここで残差の平均について1つ整理しておきます。上の表で4つとも 101410^{-14} 台になっているのは偶然ではありません。切片がある最小二乗法では

iei=0eˉ=0\sum_i e_i = 0 \quad\Longrightarrow\quad \bar e = 0

常に厳密に成立します。でたらめな乱数で試しても 101610^{-16} 台になりました。切片の役目は「残差の平均をゼロにすること」だと言ってもよく、だから残差の平均を見ても何も分かりません。見るべきは散らばり方と並び方です。

診断量で見ると、ちゃんと差が出ます。

データDWBP検定のp値ti\lvert t_i\rvert 最大DiD_i 最大hiih_{ii} 最大読み取れること
13.2120.4182.080.4890.318特に問題なし
22.1881.0002.240.8080.318数値には出にくい。図でしか見えない
32.1440.0991203.541.3930.318外れ値が明確に検出される
41.6620.277定義できない1.000てこ比が上限の1

極端な2つの数字を確かめました。

データ3の ti=1203.54|t_i|=1203.54 その1点を抜くと残りがほぼ完全な直線になります(抜いた後の RSS が 7.6×1057.6\times10^{-5}σ^(i)=0.0031\hat\sigma_{(i)}=0.0031)。スチューデント化残差の分母がほぼゼロになるので値が爆発する。「自分を抜いたものさしで測る」ことの威力が極端な形で出た例です。

データ4の hii=1.000h_{ii}=1.000 これがてこ比の理論上の上限です。h=1h=1 だと回帰直線は必ずその点を通り、実際に残差が 2.3×1014-2.3\times10^{-14} でした。理由は明白で、x=19x=19 の観測はこの1点しかないので傾きの情報をこの点が独占しています。実際この点を抜くと XXX^\top X の行列式が厳密にゼロになり、傾きが定義できなくなりました。残り10点の hh はきれいに 1/10=0.11/10=0.1 ずつで、合計すると 1.0+10×0.1=2=p1.0+10\times0.1=2=p になります。

ここで表の DiD_i を「定義できない」と書いた理由も説明しておきます。Di=ri2phii1hiiD_i = \frac{r_i^2}{p}\cdot\frac{h_{ii}}{1-h_{ii}}hii=1h_{ii}=1 を入れると、ei=0e_i=0 かつ 1hii=01-h_{ii}=0 なので0/0 になります。計算機に投げると丸め誤差の比が返るだけで、私の環境では 1574.10 という数字が出ましたが、yy10810^{-8} 足すだけで 37.3 に変わるので意味のある値ではありません

そしてここに重要な含意があります。hii=1h_{ii}=1 の点はクック距離では検出できないtit_i も同様に無意味な値になる)。いちばん危険な点が、影響力の指標に映らないわけです。hiih_{ii} を単独で見るべき理由がここにあります。

この1例に「hiih_{ii} は自分の予測への発言力」「hii=p\sum h_{ii}=p」「hii1h_{ii}\le1」の3つが全部入っています。

実務でどこまで診断するのが現実的か

最小構成(これだけは毎回やる・3分)

  1. 残差 vs 予測値の散布図を1枚描く。ラッパ型・曲線・二重帯がないか目で見る
  2. クック距離を全点プロットして、突き抜けている点がないか見る(閾値ではなく相対で)
  3. 順序のあるデータなら DW を確認する

あると良い(10分)

  1. 正規Q-Qプロットnn が小さいときの区間・検定に効きます(nn が大きければ中心極限定理で救われる)
  2. 説明変数ごとの残差プロット。曲線が見えたときに原因の変数を特定する
  3. ロバスト標準誤差を併記。素のSEと大きく違えば不均一分散のサイン。計算コストがほぼゼロなので最初からこれを常用してもよい

やらなくてよいこと

正規性の検定(シャピロ・ウィルクなど)を機械的にやること。 nn が大きいと些細なズレで有意になり、nn が小さいと検出力がありません。しかもnn が大きいときこそ正規性は要らないという逆転があります。図を見るほうが有益です。

等分散の検定をしてから使う手法を選ぶこと。 第13回で「F検定 → t検定」の多段階手順が有意水準を壊すのを見たのと同じ理屈で、最初からロバストSEを使うほうが素直です。

診断の目的を1行で。

β^\hat\beta と SE のうちどちらが壊れているかを切り分けること

  • 線形性の破れ・欠落変数β^\hat\beta を壊す(バイアス)→ モデルを直すしかない
  • 不均一分散・自己相関β^\hat\beta は無傷でSEだけ壊す → SEの計算法を替えれば済む
  • 外れ値・高影響点 … どちらも壊しうる → まず原因を調べる

この3分類ができれば、診断の結果から次の行動が決まります。

自分が間違えていたこと

「最小二乗法は全部の点を平等に扱っている」と思っていた。 残差の扱いは平等ですが、係数への寄与は最初から不平等です。β^1=wiyi\hat\beta_1=\sum w_i y_i の重み wi=(xixˉ)/Sxxw_i=(x_i-\bar x)/S_{xx} が全部を決めていて、xˉ\bar x の点は1票も持っていません。

「不均一分散はSEを過小評価する」と覚えていた。 分散が中央で大きい形だと過大評価になります(比 2.262)。向きはてこ比との相関で決まります。

4/n4/n を超えたら影響が大きい」と読んでいた。 正常なデータで nn=200 なら100%引っかかります。あれは閾値ではなく、降順に並べる目印でした。

r>3|r|>3 なら外れ値」という基準を信じていた。 nn=12、pp=2 では ri|r_i|3.162 を絶対に超えないので、この基準は機能しません。マスキングのせいで、大きい外れ値ほど内部残差では見つけにくくなります。

DW が小さければ自己相関だと思っていた。 誤差が完全に独立でも、xx でソートされた曲線データなら DW=0.368 になります。まず線形性を疑うべきでした。

残差の平均に意味があると思っていた。 常に厳密にゼロなので、診断の材料になりません。

削除すれば良くなると思っていた。 点推定のRMSEは改善しますが(0.102 → 0.084)、被覆率が下がります(95.73% → 91.07%、繰り返すと 80.55%)。「係数は良くなるが誤差の見積もりが嘘になる」という分離が必要でした。

4/n4/n が誤検出だらけになる理由を取り違えていた。 最初は「nn が増えても DiD_i の分布は縮まないから」だと思ったのですが、実測すると E[Di]1/(np)E[D_i]\approx1/(n-p)同じ速さで縮んでいました4/n4/n は常に上位数%の位置にあり、本当の原因はその判定を nn 回くり返す多重比較でした。

「絶対値損失なら遠い点の特別扱いが起きない」と書きかけた。 勾配を見ると絶対値損失でも (xixˉ)(x_i-\bar x) は残るので、xx 方向のてこ比は消えません。実際 Huber は汚染点を xx=60 に置くと OLS と同じように壊れました(0.735 対 0.740)。ロバスト回帰が守るのは yy 方向だけです。

「不均一分散では向きが変わる」と書いたのに、自己相関では同じ罠を踏んでいた。 自己相関でも xx の並びによって過大評価になります(交替する設計で比 2.216)。同じ構図を2回見落としたのが今回いちばん反省した点です。

クック距離が hii=1h_{ii}=1 の点を検出できないことに気づいていなかった。 DiD_i の式が 0/0 になるので、いちばん危険な点が影響力の指標に映りません。

この記事の要点

  • 最小二乗法は平等ではない。 β^1=wiyi\hat\beta_1=\sum w_i y_iwi=(xixˉ)/Sxxw_i=(x_i-\bar x)/S_{xx}。実測で 1.07709520 が一致し、xˉ\bar x の点の重みは 6×1018-6\times10^{-18}
  • 二乗損失は遠い点を優遇する。 効きは dd に比例、損失の減りは d2d^2 に比例。絶対値損失ならyy 方向の効きは一定(→ ロバスト回帰)。ただし (xixˉ)(x_i-\bar x) は残るので xx 方向のてこ比は消えない
  • xiei=0\sum x_i e_i=0 という制約が直線を遠い点へ引っぱる(実測はどちらのデータでも 101410^{-14} 台)
  • 1点が壊すには「xx が遠い」と「yy がズレ」の両方が必要。 Di=ri2phii1hiiD_i=\frac{r_i^2}{p}\cdot\frac{h_{ii}}{1-h_{ii}} が掛け算だから
  • yy を14動かしても傾きは不動x=xˉx=\bar x)。xx を遠ざけるだけでも何も起きないR2R^2 は 0.913→0.945 に改善)。両方そろうと 1.024→0.350 に崩壊DiD_i=9.115)
  • てこ比は yy を見ずに計算できるXX だけの関数)=潜在的な危険度。外れ値は残差で判定=実際に起きたズレ。影響力はその積
  • hii=y^i/yih_{ii}=\partial\hat y_i/\partial y_i(5点すべて 101610^{-16} 精度で一致)=自分の予測への発言力
  • 1/nhii11/n \le h_{ii} \le 1hii=p\sum h_{ii}=p 単回帰なら 1n+(xixˉ)2Sxx\frac1n+\frac{(x_i-\bar x)^2}{S_{xx}}(誤差 101610^{-16}
  • 重回帰では「単独では平凡なのに組み合わせが異常」な点が生まれる。 同じ距離3.111で hh が 0.465 対 0.213。1変数ずつのヒストグラムでは見つからない
  • V[ei]=σ2(1hii)V[e_i]=\sigma^2(1-h_{ii}) なので高てこ比の点は残差が小さく出るhh=0.425 で残差 0.030)
  • マスキング:外れ値は σ^\hat\sigma を3倍に膨らませて自分を隠す。 内部残差は np\sqrt{n-p} で飽和、外部は t(np1)t(n-p-1) に厳密に従う(97.5%点 2.2490 対 2.2622)
  • 不均一分散が壊すのはSEだけ。 推定値は不偏(1.500377 対 真値1.5)、SEは 0.944倍、被覆率 93.74%、偽陽性 6.55%
  • 不偏性は E[ε]=0E[\varepsilon]=0 しか使わない。 V[β^]=σ2(XX)1V[\hat\beta]=\sigma^2(X^\top X)^{-1} は等分散を使って導いた式だから崩れる(正しくはサンドウィッチ型)
  • 「必ず過小評価」は誤り。 中央で分散が大きいと比 2.262 で過大評価。鍵はてこ比との相関
  • WLS は分散を 55.5% 削る(SD 0.0926→0.0618)。ガウス・マルコフの「等分散のもとで最良」の裏の意味
  • 掛け算の誤差は log\log で足し算になる(BP検定 0.0029→0.546、傾き 1.3976 対 真値1.4)
  • 弾性値は小さな変化の近似。 1%なら 1.400% 対 1.398% だが、100%なら 163.5% 対 139.8%
  • R2R^2 を変換前後で比べてはいけない(被説明変数が別物)。逆変換は中央値の推定になる
  • 4/n4/n は閾値でなく目印。 正常データで nn=200 なら誤検出 100%。ただし理由は「DiD_i が縮まないから」ではなく多重比較E[Di]1/(np)E[D_i]\approx1/(n-p)4/n4/n は常に上位数%、nn=200 で平均10.71個)
  • Di>1D_i>1n30n\ge30 で誤検出1%未満だが小さい影響を見逃し、重心にある外れ値はどれだけ大きくても検出しない(0%)
  • h/(1h)h/(1-h) は非線形。 0.5で1倍、0.9で9倍、0.99で99倍
  • hii=1h_{ii}=1 の点はクック距離で検出できないDiD_i が 0/0 になる)
  • 自己相関は不均一分散よりずっと危険。 ρ\rho=0.9 で被覆率 34.03%。ただしこれも向きが変わるxx が交替する設計だと比 2.216 で過大評価)
  • HC系のロバストSEは自己相関には効かないΩ\Omega の対角しか置き換えないから)。HAC が必要
  • DW が小さい原因は線形性の破れかもしれない。 独立な誤差でも 0.368、x2x^2 を入れたら 2.092。厳密には DW=2(1ρ^)e12+en2ei2DW=2(1-\hat\rho)-\frac{e_1^2+e_n^2}{\sum e_i^2}
  • 削除は区間を縮めるが当たらなくする(0.721倍・95.73%→91.07%→80.55%)。選択の不確実性がSEに入らない
  • 点推定のRMSEは削除で改善する(0.102→0.084)が、Huber は 0.080 でさらに良く標本を捨てない
  • ただし Huber が守るのは yy 方向だけ。 汚染点を xx=60 に置くと OLS と同じく壊れる(0.735 対 0.740)
  • アンスコムの4データは係数・R2R^2σ^\hat\sigma・残差SDが全部一致。うち1つは hiih_{ii}1.000(抜くと XXX^\top X の行列式が0)
  • 残差の平均は常に厳密にゼロ(切片があるから)。診断の材料にならない
  • 診断の目的は「β^\hat\beta と SE のどちらが壊れているか」の切り分け

次回は第18章の質的回帰です。ここまでの回帰は yy が連続量でしたが、yy が「買った・買わなかった」のような 0/1 のとき何が起きるか。0/1 を普通に線形回帰すると予測値が1を超えたりマイナスになったりしますが、困るのはそれだけではありません。今回見た不均一分散が、実は 0/1 データでは構造的に必ず発生します(V[y]=π(1π)V[y]=\pi(1-\pi)π\pi に依存するため)。その解決としてロジスティック回帰が出てきます。