- 締切済み
logの入った最小二乗法について
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- stomachman
- ベストアンサー率57% (1014/1775)
No.3の補足説明です。 lnY(lnA) = aln(x-b) - dln(x-c) において (2) ln(y) = lnY(lnA) とする代わりに、 (2') y=lnY(lnA) とした方が易しいですね。こうすれば微分方程式は (4') (x-b)(x-c)(dy/dx) =((x-c)a + (x-b)d) となり、 (5') (x^2)(dy/dx) -(b+c)x(dy/dx) + bc(dy/dx) = (a+d)x - (ac+bd) 積分すると (x^2)y- 2∫xy dx -(b+c)(xy -∫y dx) + (bc)y = ((a+d)/2)(x^2)- (ac+bd)x + t より (6') (x^2)y- 2∫xy dx = (b+c)(xy -∫y dx) +((a+d)/2)(x^2)- (ac+bd)x - (bc)y + t p=b+c q=(a+d)/2 r=-(ac+bd) s=-(bc) とおいて、 P[k] = x[k]y[k] -Σ(y[j]+y[j-1])(x[j]-x[j-1])/2 Q[k] = x[k]^2 R[k] = x[k] S[k] = y[k] T[k] = (x[k]^2)y[k] - Σ(y[j]x[j]+y[j-1]x[j-1])(x[j]-x[j-1]) として (7) T[k] = pP[k]+qQ[k]+rR[k]+sS[k]+t の方が多少すっきりしてますね。いや、やってることは同じですけど。
- stomachman
- ベストアンサー率57% (1014/1775)
No.1の補足を見ると、どうやらstomachman流「超平面法」の出番のようですね。 (1) lnY(lnA) = aln(x-b) - bln(x-c) 左辺は(ln(Y))×(ln(A))の意味でしょうか、あるいはln(Y×(ln(A)))でしょうか。どちらにせよ、Aは既知らしいですから、まとめて (2) ln(y) = lnY(lnA) と書くことにしましょう。 それより、bが2箇所に現れる。分かりにくくなっちゃうので、とりあえず、 (3) ln(y) =aln(x-b) + dln(x-c)、ただしd=-b ということにしましょう。 こいつの両辺をxで微分します。ここで (d/dx)ln(y)=(dy/dx)/y (d/dx)aln(x-b)=a/(x-b) ですから、微分方程式 (4) (x-b)(x-c)(dy/dx) =((x-c)a + (x-b)d)y が得られる。x,yの項別に整理すると (5) (x^2)(dy/dx) -(b+c)x(dy/dx) + bc(dy/dx) = (a+d)xy - (ac+bd)y この両辺をxで積分するんです。部分積分を使って ∫(x^n)(dy/dx)dx = (x^n)y - n∫(x^(n-1))y dx ですから、未知の定数項tを入れて (5) (x^2)y- 2∫xy dx -(b+c)(xy -∫y dx) + (bc)y = (a+d)∫xy dx - (ac+bd)∫y dx + t となる。これを整理すると (6) (x^2)y = (b+c)(xy -∫y dx) + (a+d+2)∫xy dx - (ac+bd+b+c)∫y dx - (bc)y + t です。ここで p=(b+c) q=(a+d+2) r=-(ac+bd+b+c) s=-bc と定義すれば、p,q,r,s,tの5つのパラメータを持つ線形モデルになります。 積分はデータx[k]が得られている範囲について、数値積分でやるんです。つまり、データ(x[k],y[k]) (k=0,1,2,...,K)を、x[k]が小さい順に並ぶようにsortしておきます。 たとえば台形則で積分をやるものとすれば、 P[k] = x[k]y[k] -R[k] Q[k] = Σ(y[j]x[j]+y[j-1]x[j-1])(x[j]-x[j-1])/2 R[k] = Σ(y[j]+y[j-1])(x[j]-x[j-1])/2 S[k] = y[k] T[k] = (x[k]^2)y[k] として(Σはいずれもj=1~kについて取ります。)、モデルは (7) T[k] = pP[k]+qQ[k]+rR[k]+sS[k]+t です。p,q,r,s,tに関する線形モデルですね。 さて、このモデルをデータ(x[k],y[k])にフィッティングするとp,q,r,s,tの5個のパラメータが出てきてしまう。もともとa,b,cの3個しかパラメータがないはずなのに、これじゃ過剰です。過剰ですが、データがモデルと良く合っている(残差がごく小さくなるa,b,cが存在する)ならば、p,q,r,sのどの組み合わせを使って求めたa,b,cもほぼ同じになる筈です。 なんでこんな過剰が出たかというと、tは積分定数ですから上記の処方で出てきた余計なモノで、単に無視して良し。そしてp,q,r,sはa,b,c,dの4パラメータを含むモデルなら丁度良い訳です。 以上のようにして、a,b,cを決めたら、さらに非線形最小二乗法で改良することもできます。a,b,cが既に「正解」にごく近い近似値になっているので、ガウス・ニュートン法など、線形近似法を反復させて簡単に収束させられます。 なお、stomachmanは計算間違い、書き間違いの常習犯です。チェック宜しく。
- stomachman
- ベストアンサー率57% (1014/1775)
●正攻法だと非線形最小二乗法を使います。過去の質問から「最小二乗法」を検索すれば、参考資料等いろいろ分かるはず。 ●最小二乗法の一般的注意事項として、何を最小にするかをはっきりさせる必要があります。モデル y=ln(x-b)-ln(x-c) は exp(y) = (x-b)/(x-c) や (x-c) exp(y)=x-b と同じ意味ですけれど、 残差 ε[k] = y[k] - (ln(x[k]-b)-ln(x[k]-c)) の二乗和を最小にするb, cは、残差 δ[k] = exp(y[k]) - (x[k]-b)/(x[k]-c) の二乗和を最小にするb, cや γ[k] = (x[k]-c) exp(y[k])-(x[k]-b) の二乗和を最小にするb, cとは違いますからね。 しかし、データ(x[k],y[k]) (k=1,2,.....,K) がモデルと良く合っていて残差がごく少なくできる(そのようなb,cが存在する)場合には、どれでやってもほとんど同じb,cが得られます。そういう時は、実用上どれでやっても大差ない訳です。 ●以上をふまえた上で、ご質問の例の場合、モデルは x[k] (exp(y[k])-1)=c exp(y[k])-b と表すことができます。だから、c,bについて見ると線形最小二乗法になってます。どういうことかというと、 X[k]=exp(y[k]) Y[k]=x[k] (exp(y[k])-1) とおけば、X[k],Y[k]は共にデータ(x[k],y[k])が与えられれば値が確定する。そしてモデル Y[k]=c X[k] - b のb,cを決めろ、という問題です。これなら簡単でしょ? このやり方は、飽くまでも残差 β[k] = x[k] (exp(y[k])-1) - (c exp(y[k])-b) の二乗和を最小にするb, cを求めるのであって、ε[k]の二乗和を最小にするb, cとは完全には一致しない。これは頭に入れて置いてくださいね。 と回答しようとしたら、siegmund先生が既に......なはは。せっかく書いたからupしちゃおうっと。
- siegmund
- ベストアンサー率64% (701/1090)
(1) Y = ln{(x-b)/(x-c)} として, (2) e^Y = (x-b)/(x-c) ⇒ (x-c)e^Y = x-b ⇒ cz - b - xz + x = 0 と変形すれば(z = e^Y) ,定めるべき係数 b,c について線型になりますから 普通のよく本に載っている方法がそのまま適用できます. 細かいことを言えば,Y について 測定値がガウス分布することと, e^Y についてガウス分布することとは違うのですが, 通常余り気にしません.
関連するQ&A
- 最小二乗法の応用について
実験により、xに対するyの値をxの値をかえながら、N回測定した。測定したxに対するyの関係をグラフに描くと、次の二次関数で表現するのが適当であることがわかった。 y=ax*x+bx+c この時、最小二乗法によりパラメータa、b、cの値を求める式を導出せよ。という問題なのですが、どのようにしたら最小二乗法で求めることができるのですか? どうか教えてください
- 締切済み
- 数学・算数
- y=a/(x-b)+cの最小二乗法
y=a/(x-b)+cの最小二乗法 y=a/(x-b)+c という、反比例の式をx方向に+b、y方向に+c平行移動したような曲線の係数a,b,cを求めるための最小二乗法の方法を教えていただけないでしょうか。 工夫してみたのですが、なかなかうまくいきませんでした。 すみませんが、力を貸してください。
- ベストアンサー
- 数学・算数
- 最小二乗法の推定値の誤差
変数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の誤差を求めたいのです。 よろしくお願いします。
- ベストアンサー
- 数学・算数
- 最小二乗法。円の方程式x^2+y^2+Ax+By+C=0において、最小二乗法でA,B,Cを求める式をあらわすとどうなりますか。
円の方程式x^2+y^2+Ax+Bx+C=0において、最小二乗法でA,B,Cを求める式をあらわす場合、どうなりますか。複雑な行列式であらわさないとだめなのですか。y=ax+bの場合の最小二乗法は何とかわかるのですが、未知数がA,B,Cの3つになると、わからなくなります。ご指導お願いいたします。
- 締切済み
- 数学・算数
補足
丁寧に答えていただき、ありがとうございます。 教えていただいた方法で解いてみようと思ったのですが、 問題のタイプが少し違うようでした。 私がいま直面している問題は lnY(lnA) = aln(x-b) - bln(x-c) (Aは定数です。) という形だたのですが、私が勝手に簡略化してしまっていました。 すいません。 これをどうしてもよい形にもっていくことができません。 もしよい方法をご存知でしたら、お教え頂きたいと思います。 よろしくお願いします。