重み付き回帰分析というものがある。それぞれのデータに重みを設定し、信頼度の低いデータが回帰の結果に影響を及ぼさないようにする方法である。
存在は知っていたが計算方法を具体的に知らなかったので、勉強してみることにした。
データの準備
とりあえず以前から使用しているデータに適当に重みを設定して、以下のデータとする。
(説明変数) |
1 | 2 | 3 | 4 | 5 |
(被説明変数) |
2 | 6 | 6 | 9 | 6 |
(重み) |
1 | 0.5 | 1 | 0.5 | 1 |
ちなみに普通に回帰分析した時の結果はこちら。
計算式
通常の線形回帰は、残差の二乗和が最小になるよう傾きを求めるが、重み付き回帰分析では、それぞれの残差の二乗に重みを掛けることになる。
残差の二乗和
通常の回帰:
重み付き回帰:
図にするとこんな感じ。の残差が重みを反映してだけ小さくなっている。
そして、が最小になるためには、、を満たすとを求めればよい。
詳細な導出については参考サイトを見てもらうとして、解くべき連立方程式は下記のようになる。
通常の回帰:
重み付き回帰:
これを切片、傾きについて解くと下記のようになる。
なんだかややこしく見えるけど、やってることはただ連立方程式を解いているだけなので気楽に読み飛ばしてもらえればいいです。
通常の回帰
傾き:
切片:
重み付き回帰
傾き:
切片:
各成分に重みを掛けてた式になっている。ぱっと見面倒くさそうな式に見えるが、ここからはデータをコツコツ入れればいいだけなのでもうひと頑張りしよう。
実データでの計算
通常の回帰は以前の記事を見てほしい。式変形が進んでいて今回のものと形は違うがやっていることは同じである。
傾き:
切片
グラフにプロットするとこのようになる。X=2,4の点の寄与が減ったことにより、回帰分析が元の線よりやや下にシフトしていることが分かる。
データの重みを加えることがで外れ値の影響を減らすごとができ便利に見えるが、重みを自分で指定する必要があり、実際に使用しようと思うとなかなか難しい。次回はこの重みの設定についていくつか紹介したい。
参考
重み付き回帰分析の傾きと切片: