こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

最小二乗法における誤差の求め方

こんばんは。
皆様よろしくお願いいたします。

あるデータにフィットさせる関数の係数を
最小二乗法を用いて、自分でプログラムを作って
見つけようと考えているのですが、
係数の誤差をどのように求めればいいかが
わかりません。方法を探しても、直線の
場合はきれいに連立方程式が解けて、
誤差の伝播から計算するべき式が求まりますが、
一般の曲線の場合は解けないと思います。
gnuplotなどでフィッティングするとerrorが
出てきますが、あれはどのようにして
計算しているのでしょうか。
よろしくお願いいたします。

投稿日時 - 2020-04-07 20:37:03

QNo.9732429

困ってます

質問者が選んだベストアンサー

「誤差の求め方」ではなく
「誤差をむ含むデータから係数の求め方」ですね。

大昔に、二次関数・三次関数の最小二乗法のプログラムを
作って使ったことがあります。

↓私が勉強したことと同じことが書かれているサイト
https://batapara.com/archives/least-squares-method-2.html/


理論式が一次関数(直線)の場合
2点の計測値で直線が求まるので、理論上3点以上あれば
誤差を最小にする最小二乗法が使えます。


理論式が二次関数の場合
3点の計測値で直線が求まるので、理論上4点以上あれば
誤差を最小にする最小二乗法が使えます。

理論式が一次関数の場合は、(xi,yi)の N個の組について
Σxi,Σxi^2,Σyi,Σxiyi と N から連立方程式で求めます。
理論式が二次関数の場合は、(xi,yi)の N個の組について
Σxi,Σxi^2,Σxi^3,Σxi^4, Σyi,Σxiyi, xi^2yi, N
から連立方程式で求めます。
y= ax^2 + bx + c の理論式では、連立方程式は、
aΣxi^4 + bΣxi^3 + cΣxi^2 = Σxi^2yi
aΣxi^3 + bΣxi^2 + cΣxi  = Σxiyi
aΣxi^2 + bΣxi  + c N   = Σyi

投稿日時 - 2020-04-09 07:00:00

お礼

さっそくの回答ありがとうございます!

投稿日時 - 2020-04-09 07:35:16

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

一言でいえば、原理は同じです。
ある理論曲線を仮定して(たとえば指数関数など)、その予測値と、実測値のずれを見ます。ずれが極力小さくなるように、理論曲線のパラメーター(指数関数なら、y = a*exp(b*x)のa,b)を動かす、ということで、理屈はあなたの行っている直線の場合と同じです。もちろん、計算を速く・精度よくするためにアルゴリズムはいろいろ工夫しないといけないでしょうが。

投稿日時 - 2020-04-08 09:01:55

お礼

さっそくの回答ありがとうございます!

投稿日時 - 2020-04-08 12:29:22

あなたにオススメの質問