deepblueインターン生の中山です。久しぶりの更新となってしまったのですが、今回は抵抗直線のあてはめという手法について説明したいと思います。
対象の読者
- 抵抗直線について知らない方
- 統計学の初心者の方
抵抗直線のあてはめ とは
抵抗直線のあてはめとは、文献がかなり少ないため、多くの方がご存じでないと思います。自分が不勉強なのもありますが、文献をあまり見かけないです。google scholarで検索しても、電気や力学などの物理における抵抗などがヒットしがちです...
抵抗直線のあてはめとは、一言でまとめると『ロバストな単回帰』です。通常の単回帰では、外れ値のような大きなノイズとなるデータに対して、外れ値の除去をしないと、良い回帰式を得ることが難しいです。
一方で、「どんなデータでも外れ値を除去すれば良いのか」というと、そうもいかないです。外れ値は、何か理由があって発生することがあるためです。ゆえに、外れ値は機械的に除去をすれば良いというわけではありません。そこで、データの誤差や品質の悪さに比較的鈍感な抵抗直線が存在します。
通常の単回帰についてはこちらをご覧ください。
抵抗直線のあてはめは、残差に線形性が見られるときに、残差を目的変数として単回帰のような計算を繰り返し行うという特徴があります。
計算手順
抵抗直線のあてはめの計算プロセスを下記に示します。
データの分割
まず、計算するにあたり想定するデータを以下に示します。
x | x_1 | x_2 | x_3 | x_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_1<x_2<\cdots<x_9 であるとします( yの大小については不問)。 そして、データを3つのサブパッチI, I\hspace{-.3em}I , I\hspace{-.3em}I\hspace{-.3em}I に分割します。 次に、各サブパッチにおける x と y の中央値を (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 } )とします。 すなわち、データは以下のようになります。
サブパッチ | I | I\hspace{-.3em}I | I\hspace{-.3em}I\hspace{-.3em}I |
x | x_1,x_2,x_3 | x_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}Iをk+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):『探索的データ解析入門』,朝倉書店.