--.--
--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

08.17
Fri
たとえばある測定されたデータがこんな以下のような感じであったとします

(x1 , y1) , (x2 , y2) , (x3 , y3) ...... (xi , yi)

よくある例でいうなら、人の身長と体重のデータの組み、みたいなものです

これらのデータをグラフに点として入れていったときに、

以下のような感じになったとします

least_sq.png


このような散布図を適当な関数(モデル)で近似するときにつかう手法が最小二乗法です

考え方としては、例えばこの散布図に対してある一次の関数が以下のようにある時

各点からその直線までの距離の和が最小になるような時、

その一次関数はこの散布図のいいかんじな近似になるはずです。

こんな感じ

least_sq_dotd.png

一次関数の形は

linearf.png

なので、aとbが求まればいいのです


i個の点があるとして、まず各点から直線までの距離は、

dis_linear.png

ここでyiが各点の値でyが求めるべき関数です。んで絶対値が面倒なので二乗して

dis-sq.png

この距離の和なのでシグマをつけて

sum-dis.png


f(xk) が axk + b なのでそれに置き換え二乗を展開して各項にシグマを分配すると

sumexp.png

ここで各シグマの式は計算すると定数になるはずなので

c1~c6に分かりやすいように置き換えて

(iはc6に置きました)

twovar.png

ということでこの二変数の関数を最小にする時のa,bが求まればいいというわけで

それが傾きと切片になります

funct.png


でこの関数を微分して傾きが0になるとこを調べます。

twodiff1.png


twodiff2.png


equ-2.png

これをa,bについてといて

slvans1.png


slvans2.png


最後に置き換えていた、c1~c6をもどして


realansa.png


realansb.png


これで一次式で散布図を近似するときの傾きと切片がでました


では試してみます

点はA(2,3)B(5,6)C(6,3)です

めんどい計算なので省きますが

a = 3/13
b = 3

になりました。グラフを書いてみると

linear_func.png

いいのかな....w

てきとなこーど
スポンサーサイト

comment 0 trackback 0
トラックバックURL
http://telracsmoratori.blog.fc2.com/tb.php/128-af61ef50
トラックバック
コメント
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。