プロが教えるわが家の防犯対策術!

最小2乗法で固定点を通過するプログラム
もしくは考え方等を知っている方がお見えなら,教えて下さい.
お願いします.

A 回答 (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]をうんと大きくしておけば良い。
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございます.
大まかな流れがわかりました.
また,わからないことを質問させて頂くかと思いますが
よろしくお願いします.

お礼日時:2001/06/27 23:03

実験結果のグラフを最小2乗法処理する場合、sma4winの最小2乗で特定点通過オプションを使えば可能です。

この回答への補足

回答ありがとうございます.

しかし今回は,研究でプログラムの作成を行う必要があるので
プログラムもしくは考え方を質問したわけであります.

お知りなら回答をよろしくお願いします.

補足日時:2001/06/27 21:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A