• 締切済み
  • 困ってます

最小二乗法

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

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

みんなの回答

  • 回答No.3

特定点を通る場合のフィッティングは求めるパラメータが一つなので下記のようにできます。 (xi - Xo)・a = yi - Yo   (i = 1,2,...,n) を最小自乗法の正規方程式の形に変形して Σ(xi - Xo)^2・a = Σ{(xi - Xo)・(yi - Yo)} これから a = Σ{(xi - Xo)・(yi - Yo)}/Σ(xi - Xo)^2 この結果から直線の方程式は下記のように求まります。 y - Yo = a・(x - Xo) ⇔ y = a・x - a・Xo + Yo ⇔ y = a・x + b ここに b = Yo - a・Xo 

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

  • 回答No.2
noname#210617
noname#210617

x,yを(X0, Y0)を原点とするX,Yに変換し、原点を通る直線にフィッティングする。

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

質問者からのお礼

返信ありがとうございます。 Σ(i=1..n)xi=sx Σ(i=1..n)yi=sy Σ(i=1..n)xi*yi=sxy Σ(i=1..n)xi^2=sxx    とおくとします。 特定点を通らずにフィッティングした結果 a=(n*sxy-sxsy)/(n*sxx-sx^2) b=(sy*sxx-sx*sxy)/(n*sxx-sx^2) となりました。 ここで Y0 = aX0 + bから a=Y0-b/X0 , b=Y0-aX0を求め これからを上式のa,bに代入し、a,bを求めるやりかたではできないでしょうか?? ためにそれでやって、プログラムをたてたところ答えと違ったので違うと思うのですが・・・。

  • 回答No.1

>特定点(X0, Y0) を通る直線 y = ax+b どうしても2つの定数a,bでフィッティングしたければ a(x-X0)+b(y-Y0)=0 とおくしかないですね。 ひとつの定数aでよければ y=a(x-X0)+Y0 ただし、この式ではx=X0の直線は表せませんのでx=X0はフィッティング対象から除かれます。

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

関連するQ&A

  • 最小二乗法において

    y=ax^2+bx=c とおいたとき、最小自乗法から a,b,cの値を求めるには?という問題で、 S=Σ(yi-(axi^2 + bxi + c))^2 とおき、 ∂S/∂a=-2Σxi^2(yi-(axi^2 + bxi + c)) ∂S/∂b=-2Σxi(yi-(axi^2 + bxi + c)) ∂S/∂c=-2Σ(yi-(axi^2 + bxi + 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Σ = Σyi というとこまでは出来たのですが、ここから先と誤差の求め方がわかりません。 初心者なので出来ればわかりやすく教えて下さい。

  • 最小2乗

    (1) (x,y)=(-3,4),(-2,1),(-1,0),(0,-1),(1,1),(2,2),(3,3)を 方程式 y = ax^2 + bx + c で最小2乗法に当てはめたときの a,b,cを求める (2) 要素(x,y,z)=(1,3,2),(2,1,1),(3,2,4),(4,5,3),(5,4,5)が z = ax + by + p とモデル化されるとき、残差の2乗Σp^2 が 最小になるように定式化して、最小となるa,bを求める という問題です。 これらを行列を用いて解きたいのですが、どのようにすればよいか分かりません。よろしくお願いします。

  • 東工大 物理問題 教えて 最小二乗法

    y=ax xを変えながら測定を行い、N組の測定値xi,yiを得た 最小二乗法を用いてaの最確値を表す式を求めよ x、yの各測定における測定誤差は等しいとする

  • 多変数の最小二乗法

    Y=AX+Bという形で(Y,X)の組から係数A,Bを推定する方法が最小二乗法かと思います。(そのような整理が妥当であるか、意味があるか、についてはデータの分布形状や変動係数などで別途検証する必要がありますがここでは不問として) さて、その次ですが、YY=AX+BY+CZという関数で表示しようと考えたとします。(YY,X,Y,Z)というデータ系列があり、係数(A,B,C)を求めるというような解析です。(前述のようにそれが妥当かどうかは不問として。)係数A,B,Cを最小二乗法のようにできるだけ妥当に求める方法を教えていただきたいのですが。 1)たとえば、YY=AX+CCとして最小二乗法でAを求めたあと、残差CCについてCC=BY+CZとおいて再度最小二乗法でBを求めるというような手法を何度も行うとか? これだと解く順番に依存するようなので全部の順番でやって平均値を取るとか? 下手な考え休むに似たりのようですが。 2)カルマンフィルタ、ニューラルネットワークの手法で解析するということもあるでしょうか。その場合、YY=AX+BY+CZという枠組みではなくなりますが、それでもよいと言えばよいです。 このような問題を解く方法について解説されている本とか分野の名称(数理統計学とか?)などを教えて頂けると探索する手がかりとなります。今は手がかりすらはっきりしていないのです。 最小二乗法についてはその程度だったら専門分野ではなく、各分野で個別に解説されているようで込み入った問題になったときにどこを捜索したらよいかわからないもので質問しました。よろしくお願いします。

  • 最小自乗法で求められた傾きの誤差

    データ列(x,y)がn個あって、それを最小自乗法でフィッティングして y=ax+bにおける傾きaが得られました。 そこで、yの測定誤差が例えば±10%あったとき、 傾きaの誤差δaはどのように求められるのでしょうか? データ数nが多いほどδaは小さくなるとは思いますが・・・。 よろしくお願いいたしますm(_ _)m

  • 最小二乗法の分散の求め方

    http://oshiete1.goo.ne.jp/qa3077638.htmlに関連しての質問です。 例えば、y=Xβ+εに関して最小二乗解を求めると b = [ nΣ(xi yi) - (Σxi) (Σyi)]/[ nΣ(xi^2) - (Σxi)^2 ] となります。ここから分散を求めるためにはどうすればよいのでしょうか?教科書を引っ張ってみると求め方の行列の式しか書いていなくいまいちピンときません(確かに計算すれば正しい結果を得られるようですが)。具体的にこの式だけを使って分散を求めるということはできないのですか?

  • 最小二乗平面

    ある複数の空間座標(x1,y1,z1)~(xn,yn,zn)(nは3以上)から、平面近似式である最小二乗平面の方程式を求める関数を作ろうと考えています。 平面方程式はz=ax+by+c(a,b,cが定数)であらわされ、引数を座標と座標個数n、戻り値をa,b,cにします。 ここ(http://oshiete1.goo.ne.jp/qa2802443.html)を参考に 最小二乗平面の連立方程式を解くコードを書いたのですが、 どうも答えが合いません。どなたかご教授願えないでしょうか? 開発環境はC++Builder2007です。 ↓の数式をコードにしましたが、コードが間違っているのか、 数式自体がダメなのかさっぱりわかりません。 //与えられるn個の3次元座標(xi,yi,zi)から平面方程式を求める //平面方程式:z = ax + by + c //最小二乗平面を求める連立方程式は下記のようになる。 // aΣxi^2 + bΣxiyi + cΣxi = Σxizi // aΣxiyi + bΣyi^2 + cΣyi = Σyizi // aΣxi + bΣyi + cn = Σzi //これを行列で解く // |Σxi^2 Σxiyi Σxi | |a| = |Σxizi| // |Σxiyi Σyi^2 Σyi | |b| = |Σyizi| // |Σxi Σyi n | |c| = |Σzi | //ここで // |Σxi^2 Σxiyi Σxi | // A = |Σxiyi Σyi^2 Σyi | // |Σxi Σyi n | // // |Σxizi| // B = |Σyizi| // |Σzi | // // |a| // C = |b| // |c| // //とすると // // C = B・A^-1 // //で求めることができる

  • 最小二乗法とデータのばらつきを除去

    実験データに最小二乗法を適用して近似関数(y=ax+b)を求めたいです。 しかし,実験データにはばらついた値があり,得られた近似関数も それらの値によって,おおきくずれてしまいます。 そこで,何らかの方法でばらついた値を排除していき, 信頼できる近似関数を求めたいと思います。 聞いたところ,正規分布か何らかの方法で, 信頼区間(95%)以外のデータを除去すれば良いと のことですが,具体的な方法が分かりません。 実験データyi,xiと最小二乗法でy(=a*xi+b)から どのような処理をすればよいのか教えてください。 よろしくお願いします。

  • Rを使った非線形最小二乗について

    はじめまして。 Rを使った非線形最小二乗のフィッティングについて、ご教授お願いします。 (カテゴリーが違うようでしたらご指摘お願いします) 二つのデータの組Y=(y1,y2,y3,・・・)、Z=(z1,z2,z3,・・・)について、これらをf(x) = α / { 1 + β exp(-γx) }の関数でフィッティングしたいと考えています。 ここで、f(x)の未知パラメータα、βはYとZで同じ値を持ち、γはYとZに固有のパラメータとして、フィッティングしようとしています。 以上のことをRのnls関数を用いて行いたいが、どのようにすればよいか。 以下の流れでフィッティングしてみましたが、上手くいきませんでした。 (1) Yをf(x)でフィッティングして、α、β、γを求める。 (2) (1)のα、βを用いてZをf(x)でフィッティングする。 そもそも、αとβを共通の値と考えること自体が間違いというご指摘があるかもしれませんが、 あくまでもαとβが共通の値と考えたとき、YとZをf(x)で最も上手くフィッティング(Yの残差とZの残差の和が最小になる)したいと考えています。 よろしくお願いいたします。

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

    変数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の誤差を求めたいのです。 よろしくお願いします。