統計学における抵抗直線

抵抗直線

 deepblueインターン生の中山です. 久しぶりの更新となってしまったのですが,今回はTukeyの抵抗直線という手法について説明したいと思います.

対象の読者

  • 抵抗直線について知らない人
  • 統計学の初心者の方

抵抗直線(resistant line)とは

 抵抗直線については,文献がかなり少ないため,多くの方がご存じでないと思います.自分が不勉強なのもありますが,文献をあまり見かけないです.また,google scholarで検索しても電気や力学などの物理における抵抗などがヒットしがちです...

 一言でいうと,抵抗直線とは『ロバストな単回帰』です.通常の単回帰では,外れ値のような大きなノイズとなるデータに対して,外れ値の除去をしない場合は,良い回帰式を得ることが難しいです.また,「外れ値を除去すれば良いのでは?」と思う方もいらっしゃると思いますが,外れ値は何かしらの理由があって見つかることもあるので,一概に除去すれば良いというわけではありません.そこで,データの誤差や品質の悪さに比較的鈍感な抵抗直線が存在します.
 単回帰についてはこちらをご覧ください.

 抵抗直線は,残差に線形性が見られるときに,残差を目的変数として単回帰のような計算を繰り返し行うという特徴があります.このことによって,抵抗直線は計算がなされていきます.

計算手順

データの分割

 まず,計算するにあたり想定するデータを以下に示します.

xx_1x_2 x_3x_4x_5 x_6 x_7 x_8 x_9
y y_1 y_2 y_3 y_4 y_5 y_6 y_7 y_8 y_9

 また,この与えられたデータの xx_1<x_2<\cdots<x_9 であるとします( yの大小については不問).
 そして,データを3つのサブパッチI, I\hspace{-.3em}I , I\hspace{-.3em}I\hspace{-.3em}I に分割します.
 次に,各サブパッチにおける xy の中央値を (x_I, y_I ),~ (x_{ I\hspace{-.3em}I}, y_{ I\hspace{-.3em}I } ),~(x_{ I\hspace{-.3em}I\hspace{-.3em}I }, y_{ I\hspace{-.3em}I\hspace{-.3em}I } )とします.
 すなわち,データは以下のようになります.

サブパッチII\hspace{-.3em}I I\hspace{-.3em}I\hspace{-.3em}I
x x_1,x_2,x_3x_4,x_5,x_6 x_7,x_8,x_9
y y_1,y_2,y_3 y_4,y_5,y_6 y_7,y_8,y_9
xの中央値x_I x_{ I\hspace{-.3em}I} x_{ I\hspace{-.3em}I\hspace{-.3em}I }
yの中央値y_I y_{ I\hspace{-.3em}I } y_{ I\hspace{-.3em}I\hspace{-.3em}I }

 今回はサンプルサイズが3の倍数を仮定しているので,3等分にすることができます.ただし,実際には3の倍数でないこともあります.その時は次のように分かれます.
   サンプルサイズが3k:すべてのサブパッチがk個ずつ
   サンプルサイズが3k+1:サブパッチI\hspace{-.3em}Ik+1
   サンプルサイズが3k+2:サブパッチI, I\hspace{-.3em}I\hspace{-.3em}I k+1

1回目の直線あてはめ

 切片の推定値を \hat{a}, 傾きの推定値を \hat{b}と定義します.
 この時,傾きの推定値を, \hat{b}=\frac{(y_{I\hspace{-.3em}I\hspace{-.3em}I }- y_I)}{(x_{I\hspace{-.3em}I\hspace{-.3em}I}- x_I) }とします.次に,切片の推定値を,\hat{a}_I=y_I-\hat{b}x_I,~~\hat{a}_{I\hspace{-.3em}I}=y_{I \hspace{-.3em}I }-\hat{b}x_{I \hspace{-.3em}I },~~\hat{a}_{I \hspace{-.3em}I \hspace{-.3em}I }=y_{I \hspace{-.3em}I \hspace{-.3em}I }-\hat{b}x_{I \hspace{-.3em}I \hspace{-.3em}I }と3つ計算し,その平均値を, \hat{a}=\frac{( \hat{a}_I+ \hat{a}_{I\hspace{-.3em}I} + \hat{a}_{I \hspace{-.3em}I \hspace{-.3em}I })} {3}と計算します.このようにして,あてはめられる直線は, \hat{Y}= \hat{a}+ \hat{b}X と求められます.

あてはめを繰り返す

 前の手順によって,1回目の抵抗直線のあてはめができました.ただし,1回目の計算が最適な式とはなっていないため,計算を繰り返し行う必要があります.1回目は目的変数Yについて計算を行いましたが,2回目以降は残差Zについて計算を行います.
 まず,残差を,z_i=y_i - \hat{y}_i ~~~ (i=1,2, \cdots ,9) と求めます.この結果をもとに,残差 Z に線形のパターンがあるとき(傾きの推定値\hat{b}\neq0)は,1回目のあてはめと同じような計算を行い,Z=a' + b'Xのあてはめについて考えます.その後,あてはめる直線を,\hat{Y}=(\hat{a}+\hat{a}') + (\hat{b}+\hat{b}')X と更新します.
 上記の手順を残差に線形パターンがなくなる時まで計算を行い,最終的な抵抗直線の算出を行います.

まとめ

 以上で抵抗直線についての説明は終わりです.通常の単回帰よりも外れ値に強い回帰式を得ることができます.また,抵抗直線は説明変数が1次元の時限定ですが,説明変数がいくつかあるデータに対して抵抗直線の考え方を拡張した多重単回帰(Multiple Single Regression)という手法もあります.

参考文献

渡部洋,鈴木規夫,山田文康,大塚雄作(1985):『探索的データ解析入門』,朝倉書店.