どせいたんさき。

ナスダヨー

特異な値に影響されにくいフィッティング方法について

目的

単調なオフセット(定数や低次の多項式)の上に一部分だけ特異なフィーチャーが乗っかっているようなデータを考える.このときにオフセットの値を適切に(適当な関数で)フィッティングしたい.オフセットの値やフィチャーがどこに現れるのかといった情報は事前にわからないとする.何も考えずに最小二乗法でフィットしてしまうとフィーチャーの値に引きづられて値がずれてしまう.


たとえば以下のようなデータがある.定数のオフセット(今回は $0$)の上に適当な幅のフィーチャーが載っている.このオフセット値を推定したい.単純に最小二乗法を用いると赤い線を得る.本当に得たいのは緑色の線である.フィーチャーをマスクすれば問題なくフィットできるが,フィーチャーの位置が事前にわからない場合には目で見て確認しなければならず少々めんどくさい.

f:id:xr0038:20140715201116p:plain

解決方法

最小二乗法とは最尤推定法において誤差に Gaussian のノイズ $\exp\left(-\Delta x^2/2\right)$ を仮定した場合だと解釈できる.値の大きな外れ値に引っ張られてしまうのは,誤差の大きなところでより大きなペナルティが科せられるためである.

あるいは最小二乗法としてデータがバネで引っ張り合っている様子をイメージしてもいい.個々のデータがバネ的な力によって推定値を引っ張り合った結果,均衡状態に達した場所が最小二乗法による推定値である.誤差の大きさ $\Delta x$ に比例する力で外れ値に引っ張られるため推定値がずれる.ある程度伸びたらヘタるようなバネに取り替えてあげれば外れ値の影響を受けにくい推定ができそうである.

バネがある程度伸びた場合にはバネ定数が弱い状態へと遷移してほしい.そこで誤差 $\Delta x$ が次のような分布に従うと勝手に仮定する.

\[\Delta x \sim \exp\left(-\frac{\Delta x^2}{2}\right) + R\exp\left(-\frac{\Delta x^2}{2D^2}\right) \]

$R$, $D({>}0)$ は適当なパラメタである.これを元に最尤推定法からパラメタを推定する.推定値は次の式を最小化することで得られる.

\[-\sum_i\log\left[\exp\left(-\frac{\Delta x_i^2}{2}\right) + R\exp\left(-\frac{\Delta x_i^2}{2D^2}\right)\right] \]

こうやって求めた推定値が最初の図の緑色の線である.同様のデータを 1000 回分作成して推定値の分布をシミュレートした.ヒストグラムを以下の図に示す.青い線が今回の手法で推定したオフセット量で,緑色の線が通常の最小二乗法で推定したものである.分布の中心は $0$ からずれており,フィーチャーに依る影響を除去できたとは言えないが,最小二乗法よりは幾分マシな推定になっている.

f:id:xr0038:20140715203847p:plain


Octave を用いたヒストグラム計算のサンプルは以下のとおり.

参考資料