ここから本文です

この知恵ノートを「知恵コレクション」に追加しました。

追加した知恵ノートはMy知恵袋の「知恵コレクション」ページで確認できます。

知恵コレクション」に登録済みです。

再登録しました。

追加に失敗しました。

ノートに戻り、もう一度やり直してください。

すでに1,000件のノートが登録されています。

新しく追加したい場合は、My知恵袋の「知恵コレクション」ページで登録されているノートを削除してください。

追加できませんでした。

ノートは削除されました。

最小二乗と最小絶対値:ロバスト回帰で外れ値分析,RとMaxima利用

ライターさん(最終更新日時:2016/8/6)投稿日:

  • ナイス!:

    0

  • 閲覧数:516

印刷用のページを表示する

 squares-absolute.gif
執筆責任:井口豊(長野県岡谷市・生物科学研究所

回帰式による直線や曲線の近似と言えば,通常は,最小二乗法(Least squares method)が使われる。Excelのグラフや関数で使われる方法でもある。これは文字通り,回帰式で残差の二乗和(平方和)が最小となるように回帰式の係数を決定する方法である。

一方で,二乗でなく絶対値の和が最小となるように係数を決定する方法も当然ある。それを最小絶対値法(Least absolute value method)と呼ぶ。意外とこれが知られておらず,回帰や近似と言えば,最小二乗が当然だと思い込んでいる人も多い。

これらの方法は,異なる回帰式をもたらす。特に,外れ値を含む回帰式には,最小二乗法よりも最小絶対値法が適すると思える場合がある。つまり,後者はロバスト回帰(Robust regression)なのである。

ここでは,以下のような外れ値を含む10ペアのxyデータに対して,実際に,最小二乗近似と最小絶対近似によって,回帰式を求めてみよう。

x: 1, 2, 3, 4, 5, 6, 7, 8, 9 10
y: 6, 7, 8, 9, 0, 11, 12, 13, 14, 15

まず,最小二乗近似による回帰直線の適合を統計ソフト R で計算する。

# データ
x<- 1:10
y<- 6:15
y[5]<- 0

# 最小二乗
f<- function(arg) {
  a<- arg[1]
  b<- arg[2]
  t<- a*x + b
  return(sum((y - t)^2))
}

# 結果
optim(c(1, 1), f)

# 同じ結果は, lm 関数で容易に得られる
lm(y~x)

# グラフ
a<- optim(c(1, 1), f)$par[1]
b<- optim(c(1, 1), f)$par[2]

plot(x, y, col="red")
curve(a*x+b, add=T, col="blue")
# 最小二乗ここまで

回帰式は,
y = 1.061 x + 3.667
となり,グラフは次のようになった。
 least-squares.gif

外れ値に引きずられ,なんとも中途半端な近似直線となっている。 なお,通常は, lm 関数で容易に同じ結果が得られる。

次に,最小絶対値近似による回帰直線の適合を示す。

# 最小絶対値
f<- function(arg) {
  a<- arg[1]
  b<- arg[2]
  t<- a*x + b
  return(sum(abs(y - t)))
}

# 結果
optim(c(1, 1), f)

# グラフ
a<- optim(c(1, 1), f)$par[1]
b<- optim(c(1, 1), f)$par[2]

plot(x, y, col="red")
curve(a*x+b, add=T, col="blue")
# 最小絶対値ここまで

回帰式は,
y = x + 5
となり,グラフは次のようになった。
  
least-absolute.gif
 
外れ値を,文字通り「外し」,残りのデータ点にピタリと一致した。最小絶対値法がロバスト回帰であると実感できる例である。

実際に,パラメータが,a = 1,  b = 5 となるのか,3次元グラフで確認してみよう。z が,二変数 a, b の関数である以下の式を考える。

 least-absolute2.gif

このz が最小となるような a, b を求めることになる。 ここでは,Maxima の lsum 関数を使って,3Dグラフを見てみる。

/* Least absolute value */
x: makelist(i, i, 1, 10)$
y: makelist(i, i, 6, 15)$
y[5]: 0$

f(a, b):= lsum(i, i, abs(a*x + b - y));

plot3d(f, [a, 0.5, 1.5], [b, 3, 7], [z, 10, 30], [plot_format,gnuplot], [grid, 50, 50]);
/* End */

グラフは以下のとおり。

 least-absolute3.gif
パラメータが,a = 1,  b = 5 のとき,z が最小となることが見て取れる。

最小絶対値法の歴史と特徴に関しては,以下の文献が参考になる。

末吉俊幸(1997)
Journal of the Operations Research Society of Japan, 40(2): 261-275.


このノートに関するQ&A

このノートに関するQ&Aは、まだありません。

このノートについて質問する

このノートについてライターの方に質問できます。

※ライターの方から必ず回答をいただけるとは限りません

※別ウィンドウで開きます

この知恵ノートのライター

グレード

グレード知恵ノートのグレード:2-3

iguchi_yuさん男性

ピックアップ

耳鼻科の先生に聞いた、しゃっ...
  皆さん、しゃっくりってわずらわしいですよね  ある時急に...
厄年について——意外と知られて...
厄年とは何か厄年とは文字どおり災厄に遭いやすいといわれる...
これが基本! 金魚すくいの金魚...
これが基本!金魚すくいの金魚の飼い方、育て方 ~失敗しない...
本文はここまでです このページの先頭へ