• ベストアンサー

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

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

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

  • ベストアンサー
  • lupin__X
  • ベストアンサー率82% (298/362)
回答No.2

「誤差の求め方」ではなく 「誤差をむ含むデータから係数の求め方」ですね。 大昔に、二次関数・三次関数の最小二乗法のプログラムを 作って使ったことがあります。 ↓私が勉強したことと同じことが書かれているサイト 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

UniversalWill
質問者

お礼

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

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • phosphole
  • ベストアンサー率55% (467/834)
回答No.1

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

UniversalWill
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A