• ベストアンサー
  • 困ってます

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

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数161
  • ありがとう数3

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

  • ベストアンサー
  • 回答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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

その他の回答 (1)

  • 回答No.1

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • 最小二乗法について

    最小二乗法では二乗和の誤差 Σ[i=1~n]{Yi-(α+βXi )}^2 (iは添え字です) を最小化するα,βを推定することを考えますが、 これは単純にα,βで偏微分してそれを0とおいて 連立方程式を解くだけでよいのですか? といいますのも、2変数関数の極値を求める場合、 Hessianを計算して判別しますよね? ただ一階偏導関数が0になるからといって、 そこで極値をとるとは限らない気がしたので… それとも最小二乗法の場合は必ずとるようになっているのでしょうか? 手元の本には、 「この二乗和は非負値なので、αとβで偏微分したものを0とするα,βが上式を最小にする値である」 とあるのですが、一般に非負値だとこの ようなことが言えるのでしょうか?

  • 最小二乗法

    こんばんは 最小二乗法についてなのですが Q(a,b)=Σ{Yi-(a+bXi)}(Σの上にはn下には1)とおき、Q(a,b)をaで微分したものとbで微分してそれぞれを =0としたときに a,bについての連立方程式を解くのですが 数学が苦手なのでさっぱりです Σが入った微分なんてやったことがないので・・・ どなたか助けてください お願いします

  • 円の最小二乗法の公式

    いくつかのデータから最小二乗法で近似曲線を求めたいのですが、よくわかりません。そのデータ集の近似曲線は円になります。 最小二乗法を調べ、1次、2次関数についてはわかりました。ある点の座標を(x1,y1), (x2,y2)…、近似曲線上の座標を(x1,y’1),(x2,y’2)… とした時、 (y’1-y1)^2 + (y’2-y2)^2 … が最小となるような係数a,b などを偏微分 → 連立方程式で求めるという方法でした。 円についても、同様の方法で r^2 = (x-a)^2 + (y-b)^2 のような近似曲線の式が求められるのでしょうか?1次関数などのように、y’1-y1を求めようとすると、±√ が出てきてしまい、ややこしくなる気がしますが、これを解くしかないのでしょうか?もしくは別の解法があるのでしょうか?詳しく教えていただけたらと思います。よろしくお願いします。

  • 誤差と最小二乗法

    単振り子の振れの大きさを小さくし、 振り子の長さLと周期Tを5通りほど計測しました。 そこでT=2π√(L/g)⇔g=4π^2L/T^2から 重力加速度を5通り求めました。 結果、どれも相対誤差0.3%以内で、 どれもマイナスの誤差になりました。 次にT=2π√(L/g)⇔T=(2π/√g)*√Lとし、 √Lをx軸に、Tをy軸にとり、(2π/√g)を傾きとするグラフを描きました。 ここで、最小二乗法よりグラフの傾きを求め、 そこから重力加速度gを求めたところ、 相対誤差が3%になり、さらにそれはプラスの誤差でした。 そこで質問です。 最小二乗法を用いるのは今回が初めてなんですが、 このように測定値を単体で考えたときと、 測定値をまとめて最小二乗法で考えたときとで、 こんなにも誤差が変わるのはよくあることですか? それとも計算に誤りがあるのでしょうか。 よろしくお願いします。

  • 最小二乗法の推定値の誤差

    変数xを変化させたときの測定値yを最小二乗法で二次式y=a*x^2 + b*x +c にフィッティングさせ推定値a, b, cを求めるとき、 測定値yの誤差がδyであるときの推定値a, b, cの誤差を求めたいのです。 具体的には、(x,y)=(-1,2), (0,0), (1,1.5), (2,5) の4つのデータを 二次式にフィッティングさせたときのa,b,cはa=1.375, b=-0.325, c=0.225ですが、 測定値yの測定誤差が0.1のときのa,b,cの誤差を求めたいのです。 よろしくお願いします。

  • mathematicaを用いた最小二乗法について

    mathematicaを用いて2変数の方程式を最小二乗法で,あるグラフにフィッティングしたいと考えてます.しかし,どのようにやっていいのかいまいちわかりません. 詳しい方がいましたら,ぜひとも教えていただきたいです. よろしくお願いします.

  • 最小二乗法

    n組のデータ (xi, yi) を,特定点(X0, Y0) を通る直線 y = ax+b でフィッティングしたい。最小二乗法で係数a,bを求めるため の式を導きなさい。 という問題で 各データの残差を二乗した和が最小になるときのa,bを求めるのですが 特定点(X0,Y0)を通るにはどうすればよいでしょうか? ただ単に、特定点を通らずフィッティングするやりかたはわかるのですが・・・。 よろしくお願いします。

  • 誤差を考慮した最小二乗法

    誤差を考慮した最小二乗法 実験で「誤差を考慮した最小二乗法で計算せよ。尚、誤差を考慮しない場合は減点する。この場合の誤差とは標準偏差の事である。」という課題何ですが誤差を考慮した最小二乗法とはどうゆう事なのでしょうか? http://www.dotup.org/uploda/www.dotup.org828193.xls.html のデータにて http://www.akita-nct.ac.jp/~yamamoto/lecture/2007/5E_comp_app/interpolation/interpolation_html/node4.html のサイト様を参考にして一次関数の最小二乗法で計算しようと思ったのですが標準偏差はどこに入れればいいのでしょうか?グラフを作った後に誤差棒として標準偏差を入れるという事なのでしょうか?

  • 最小二乗法?

    i 個の測定点 (x[i],y[i]) を,最小二乗法などを用いて下記の式にフィッティングさせようと考えています。Visual Basic で作成した測定プログラムの中で使用したいのですが,具体的にどのようなアルゴリズムでフィッティングを行えばいいのか分かりません。 Y = A * sin(X - C)^2 + B 実測する x[i] の範囲は狭く,例えば -15°~ +15°まで 0.2°毎の計 151 プロット,といった感じです。そして定数 A,B,C の内,最も高い精度で求めたい定数は C です。測定の段階で x の範囲を狭めているのは,正確な C (通常 1°未満)を求めるためです。 この測定は x[i] にはほとんど誤差が含まれませんが y[i] には誤差があります。y[i] の含まれている誤差は試料によってまちまちなので,一概には言えません。目視ではほとんど誤差が分からない綺麗なカーブの場合,逆に目視で辛うじて下に凸の曲線が分かる程度の場合,どちらもあり得ます。 考え方だけでも構いませんので,どうかご教授下さい。よろしくお願いいたします。

  • y=a/(x-b)+cの最小二乗法

    y=a/(x-b)+cの最小二乗法 y=a/(x-b)+c という、反比例の式をx方向に+b、y方向に+c平行移動したような曲線の係数a,b,cを求めるための最小二乗法の方法を教えていただけないでしょうか。 工夫してみたのですが、なかなかうまくいきませんでした。 すみませんが、力を貸してください。