- 締切済み
複雑な最小二乗法
いま、最小二乗法で困っています。 ln{1/L*ln(1/(1-P))} = aln((X-c)/d)-bln((e-X)/f) という式で、Lは定数で、Pは確率(おそらく0~1なのかとおもいます)です。 aからfがパラメータなのですが、cとeはとりあえず定数としても かまわないそうです。 私には複雑すぎてどうしていいのかわかりません。 もしおわかりになる方がいらっしゃったら宜しくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- stomachman
- ベストアンサー率57% (1014/1775)
> Pは、その負荷で繊維が切れてしまう確立です。 なるほど。そういうことでしたら、ご紹介したURLのやり方よりも、まじめに非線形最小二乗法をやる方が良さそうです。 ●c<X<eである。ln(X-c)とln(e-X)が両方定義できるためにはこれは必要十分ですね。 切れない確率をQ=1-Pとするとき ln(Q) =-L {((X-c)/d)^a ((e-X)/f)^-b} つまり Q=exp[-KL] これはなんとなく納得できます。深さがある分布に従うランダムな傷があって、或る程度以上のがLに含まれない確率。で係数Kが K={((X-c)/d)^a} / {((e-X)/f)^b} = g {(X-c)^a} / {(e-X)^b} でやんすか。(ここにg=(f^b)/(d^a)としました。既に申し上げたように、このモデルからはf,dをそれぞれ幾らと決めることはできない。) そうして、c<X<eである。このc,eは定数。つまりP(あるいはQ)とは関係なくc,eが分かっているんでないと、なんだか話がおかしいっすよね。 しかし、X→eになったらK→∞だからQ→0つまり絶対切れる。X→cになったらK→0、つまりQ→1ですから、断じても切れない。だからXは強度と言うより「弱度」あるいは負荷っすね。 ●さて、これはPが確率ですから、一個のサンプル(X[k],P[k])を取るだけでも何度も実験を繰り返さないといけません。従って沢山のサンプルが期待できるものではない。そうなると、ご紹介したURLのように「データが非常によくモデルと合っていて、しかも沢山ある」という条件を前提にしたやり方は適当でないでしょう。 だからむしろ非線形最小二乗法をやる方が良さそうです。(教科書はいつも「最小二乗法による実験データ解析」(東京大学出版会)をお勧めしています。)しかし、非線形最小二乗法の場合、パラメータの大体の推定値が予め得られていることが必要です。 ●この問題の場合、c,eを既知の定数とした時には、めちゃ簡単っす。 C=-a(ln d)+b(ln f) として ln{1/L*ln(1/(1-P))} = aln(X-c)-bln(e-X) +C ここで負荷X[k]を与えたときの切れる確率をP[k]と書くとき、 y[k] = ln{1/L*ln(1/(1-P[k]))} u[k] = ln(X[k]-c) v[k] = -ln(e-X[k]) と定義すれば、 y[k] = a u[k] + b v[k] + C ですからパラメータa,b,Cを含む単なる線形最小二乗法の問題。 ●これでa,b,Cを決めれば、c,e はだいたいは分かっているんですから、 y[k] = aln(X[k]-c)-bln(e-X[k]) +C という非線形最小二乗法を正攻法でやっつける時の初期値が決まったことになります。
- stomachman
- ベストアンサー率57% (1014/1775)
もし差し支えなければ、ですけれど。どんな実験で出てくるモデルなのか、それぞれの変数・定数が何を意味するのか、ちょっとご紹介願えないでしょうか。
- stomachman
- ベストアンサー率57% (1014/1775)
> 丁寧に答えて頂き、本当にありがとうございます。 きついなあ~。手抜きですいませんねえ。 ええとですね。(x,y)の観測値=サンプルが沢山得られているからこそ最小二乗法の対象になるわけですが、このご質問の場合の観測値(x,y)は式のどの部分に該当するんでしょうか。さらにどれが定数なのか。Pも定数?それともこれがy?どうもはっきりしません。 仮にLとPが定数だとすれば、これはxに関する方程式ですから最小二乗法とは縁もゆかりもない。ですからPが実はサンプル? という訳で、どの変数についてサンプルが得られるのかを明記して戴かないと詳細なことは申し上げられません。 aln((x-b)/c) - dln((x-e)/f)=aln((x-b)) - dln((x-e)) +(-alnc+dlnf) と書けますから、xで微分すると定数項(-alnc+dlnf)が消滅します。消滅しちゃって構いません。で、ご紹介したURLの方法でa,b,d,eが決定できてから、それを元の式 ln{1/L*ln(1/(1-P))} = aln((x-b)) - dln((x-e)) +(-alnc+dlnf) に入れてみれば、未知数なのは(-alnc+dlnf)だけ。つまり線形最小二乗法で(-alnc+dlnf)が決定できますね。 これとは別の話として、cとfがそれぞれ幾らであるかは決められません、どんな方法を使おうとも。(-alnc+dlnf)が幾らであるか、だけしか決まらない。なぜなら、a,d,(-alnc+dlnf)=vが決まっているときcに好きな正の数を代入すれば、f = exp[(v+alnc)/d] と決まる。つまりcとfの一方は好きな値にできるからです。 > xで微分をして、その後にxで積分していますが、 これはどのような意味なのでしょうか? 原理的には微分しただけでも構わないんですが、それだと数値微分を計算しなくてはなりません。数値微分はサンプルのでこぼこの影響を受けやすくて、実用上は無理がある。そこで積分して滑らかになるようにしているんです。 この方式はstomachmanが開発し勝手に「超平面法」と称しているもので、一般的に良く知られた方法という訳ではありませんから、もしご質問の目的がレポートだったりする場合には、先生が目を白黒させるかも。 そのうち論文にしたろか、とも思うんですが、どういう場合には手が出ないのかなど、理論の方がまだ纏まりません。 過去のQ/Aから「最小二乗法」を検索なされば、バリエーションが幾つか見つかります。
補足
本当にありがとうございます。 ln{1/L*ln(1/(1-P))} = aln((X-c)/d)-bln((e-X)/f) この式で(x,y)にあたるのはXとPなんです。 Pは確率で、0~1の間で変化するんだろうと思います。 これはレポートではないんです。 私は学生で、行なっている実験の解析にこの最小二乗法が必要なんです。 でも、手も足もでませんでした。 それにしても、stomachmanさんがどんなことをやってらっしゃるひとなのか 存じませんが、すごいですね。本当にすごいです。
- stomachman
- ベストアンサー率57% (1014/1775)
下記URLとほとんど同じ内容です。同級生?
補足
丁寧に答えて頂き、本当にありがとうございます。 教えていただいた方法で解こうとしたのですが, 下の形だと、微分したときにln中の分母のcやfが消えてしまうのですが、 どのようにしたらよいのでしょうか? lnY((1/L)lnA) = aln((x-b)/c) - dln((x-e)/f) (Aは定数です。) あと、解いて中でxで微分をして、その後にxで積分していますが、 これはどのような意味なのでしょうか? また、最小二乗法をもっと勉強してみたいので、なにか良い参考書やURLを ご存知でしたら教えていただきたいと思います。 大変自分勝手に質問してしまって申し訳ありません。 もしお時間がありましたらご返事を頂きたいとおもいます。
補足
はい。 私は今、繊維一本(ガラス繊維や炭素繊維など)の強度について 色々と研究しています。 繊維は長くなるほど、その強度は小さくなっていき、 この式はその長さと強さの関係を表している式なんです。 ln{1/L*ln(1/(1-P))} = aln((X-c)/d)-bln((e-X)/f) Lは繊維の長さ、Xが実験での強度が入ります。 c,eがそれぞれある範囲での強度の最小値と最大値です。 このc,eは定数とみてもいいそうです。 a,bはshape parameterとなっており、形状母数にあたると思います。 d,fはscaling parameterとなっており、尺度母数にあたると思います。 Pは、その負荷で繊維が切れてしまう確立です。 この式から実験を使って、長さと強度の関係のグラフを求めたいのですが、 まだまだ勉強不足でわかりません。 もしお時間がありましたら、アドバイスを頂きたいと思います。 よろしくお願いいたします。