• 締切済み

logの入った最小二乗法について

Y=ln(x-b)-ln(x-c) といったように、xが二つに分かれてしまっていて、さらに式にあるようにbやcが入っているときの最小二乗法のやり方を教えてください。お願いします。

みんなの回答

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.4

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.3

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)
回答No.2

●正攻法だと非線形最小二乗法を使います。過去の質問から「最小二乗法」を検索すれば、参考資料等いろいろ分かるはず。 ●最小二乗法の一般的注意事項として、何を最小にするかをはっきりさせる必要があります。モデル 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)
回答No.1

(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 についてガウス分布することとは違うのですが, 通常余り気にしません.

seamonky2
質問者

補足

 丁寧に答えていただき、ありがとうございます。 教えていただいた方法で解いてみようと思ったのですが、 問題のタイプが少し違うようでした。  私がいま直面している問題は     lnY(lnA) = aln(x-b) - bln(x-c) (Aは定数です。) という形だたのですが、私が勝手に簡略化してしまっていました。 すいません。 これをどうしてもよい形にもっていくことができません。 もしよい方法をご存知でしたら、お教え頂きたいと思います。 よろしくお願いします。       

関連するQ&A

  • 最小二乗法について

     y=ax+b+c/x という式での最小二乗法の求め方を 教えてください。

  • 最小二乗法の応用について

    実験により、xに対するyの値をxの値をかえながら、N回測定した。測定したxに対するyの関係をグラフに描くと、次の二次関数で表現するのが適当であることがわかった。 y=ax*x+bx+c この時、最小二乗法によりパラメータa、b、cの値を求める式を導出せよ。という問題なのですが、どのようにしたら最小二乗法で求めることができるのですか? どうか教えてください

  • 3次元の最小二乗法

    A(x1,y1,z1)とB(x2,y2,z2)とC(x3,y3,z3)とD(x4,y4,z4)の点で 最小2乗法ほうを使い直線近似したいのですが、どのような式になりますかご存知の方教えていただけますか?

  • 最小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=a/(x-b)+cの最小二乗法

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

  • 複雑な最小二乗法

    いま、最小二乗法で困っています。 ln{1/L*ln(1/(1-P))} = aln((X-c)/d)-bln((e-X)/f) という式で、Lは定数で、Pは確率(おそらく0~1なのかとおもいます)です。 aからfがパラメータなのですが、cとeはとりあえず定数としても かまわないそうです。 私には複雑すぎてどうしていいのかわかりません。 もしおわかりになる方がいらっしゃったら宜しくお願いいたします。

  • 最小二乗法

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

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

    変数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つになると、わからなくなります。ご指導お願いいたします。

  • 最小二乗法

    円x^2+y^2=1上の点Pにおけるこの円の接線とx軸、y軸との交点をそれぞれA,Bとして、 Pが第一象限を動くとき、線分ABの長さLを求めよ。 なお、Lの最小値の存在理由も述べよ。 というもんだいなのですが、 線分ABはy=txとなるので、このtを最小二乗法でもとめるんだと思うのですが、 最小二乗法の理論値、実測値などが、まだ良くわかりません。 と言いますか、傾きが最小ならLは最小で合ってますでしょうか? 傾きが45°のときが怪しくなってきたのですが・・・ また、最小値の存在理由ってどうやったら説明できるのですか? よかったら、教えてください。