- ベストアンサー
固定点を通過する場合の最小2乗法
最小2乗法で固定点を通過するプログラム もしくは考え方等を知っている方がお見えなら,教えて下さい. お願いします.
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
最小二乗法とは、モデルf(p,x[k])の、パラメータのベクトルpを適当に調節して、実測値y(x[k])とのズレ(残差)ε(k): (1) ε(k)=y(x[k])-f(p,x[k]) (k=1,2,.....,K) の重み付き二乗和S (2) S=Σ(W[k]ε(k)^2) (k=1,2,.....,K) が最小になるようにすることで、ベクトルpを決定する問題です。ここにW[k]は重み係数で、予め与えられている。 さて、これに制約条件として、「f(p,x[k])がpの値に関わらず固定点(xc,yc)を通ること」を加えます。つまり (3) f(p,xc)=yc である。 これは、パラメータのベクトルpの要素を一つ減らすことに相当します。 簡単な例はf(p,x)が定数項および既知の関数列g(j,x) (j=1,....,n) の重み付き合計であって、その重みがパラメータpで指定されている場合(定数項のある線形最小二乗法): (4) f(p,x) = p[0]+p[1]g(1,x)+p[2]g(2,x)+.....+p[n]g(n,x) でしょう。このとき、(3)を要請するとは、 (5) p[0]+p[1]g(1,xc)+p[2]g(2,xc)+.....+p[n]g(n,xc) = yc という事ですから、自動的に定数項p[0]が決まってしまいます。すなわち (6) p[0]= yc-(p[1]g(1,xc)+p[2]g(2,xc)+.....+p[n]g(n,xc)) 従って、モデルfの代わりにモデルh(p,x[k])を用いれば良い。ここに (7) h(p,x[k]) = C+p[1]g(1,xc)+p[2]g(2,xc)+.....+p[n]g(n,xc) ただし (8) C=yc-(p[1]g(1,xc)+p[2]g(2,xc)+.....+p[n]g(n,xc)) です。 このように陽にパラメータを減らすのが難しい場合には、ラグランジュの未定乗数法を用いることができます。「未定乗数法」で検索すれば過去の詳しい解説が見つかる筈。 さらに手抜きをする方法としては、人工的にサンプルを追加し、 x[k]=xc, y(x[k])=yc (k=K+1,K+2,..........,K+R) というデータを与えてやることです。 勿論、重み付き最小二乗法の場合には1個だけサンプル x[K+1]=xc, y(x[K+1])=yc を追加し、その重みW[k+1]をうんと大きくしておけば良い。
その他の回答 (1)
- denden_kei
- ベストアンサー率23% (542/2278)
実験結果のグラフを最小2乗法処理する場合、sma4winの最小2乗で特定点通過オプションを使えば可能です。
補足
回答ありがとうございます. しかし今回は,研究でプログラムの作成を行う必要があるので プログラムもしくは考え方を質問したわけであります. お知りなら回答をよろしくお願いします.
お礼
丁寧な回答ありがとうございます. 大まかな流れがわかりました. また,わからないことを質問させて頂くかと思いますが よろしくお願いします.