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

任意の形の波形を関数でフィッティングするためにはどうしたら良いですか?

ある実験より得られた波形があります。

その波形が多項式によってフィッティング可能であると仮定してフィッティングを行いたいのですが、
どうすれば良いのでしょうか?

例えば、その波形が10乗までの関数で表されると考えたとしても
y=A + Bx^1 + Cx^2....Kx^10


とフィッティングパラメータが11個もあるわけですよね?
そうすると、フィッティングをかけたとしても、一通りだけでなく幾通りも解が出てきてしまうのではないでしょうか?

昔、電子工学の授業でこういう任意の波形のフィッティング式の作り方に関して
習ったことがあるのですが、完全に忘れてしまいました。
どなたかご存じでしたら、参考書などを教えて頂けますでしょうか?

A 回答 (3件)

実用的には,先の二人の回答者が考えてみえるパラメトリック回帰ではなく,ノンパラメトリック回帰になるんでしょうね.


例えば,RBFとかKrigingとか.
設計最適化における応答曲面近似においては,一般的に利用されています.
一方,化学の世界の機器分析では,ニューラル・ネットワークのような学習的手法が利用されます.
イオンクロマト分析のスペクトル解析などに使われています.これは,ピークの出る位置が先験的に分かっていて,繰り返し出てくる場合などに応用できます.

その先には,EMアルゴリズムとかベイジアン・ネットワークとかがあるようですが,
私は詳しくないので,他の方に説明はお任せします.

参考書:洋書ですが,David Ruppert,M.P.Wand,R.J.Carroll(2003):Semiparametric Regression,Cambridge University Press (ペーパーバックで8000円くらい)
    • good
    • 0
この回答へのお礼

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

線形最小二乗法のことはもちろん知っているのですが、
一から自分でプログラムのではなく、Excelのソルバー機能を使えば良いと考えております。

問題は解が一つではない場合どのようにして解を選定すれば良いのか、ということなのですが・・・

一次式であれば、解は一つしかないでしょうが、
次数が上がるに従って、解の数が異様に多くなってしまうと思うのですが・・・

お礼日時:2010/06/20 16:59

この形ならデータが11組以上あれば一意的に決まります。



測定値が(xi,yi) (i=1~N)として、一行が

1 xi xi^2 ・・・・xi^10

であるN行11列の行列をX、11個のパラメータA~Kを並べた列ベクトルをa、yiをN並べた列ベクトルをy、Xの転置行列をXtとして

Xt・X・a=Xt・y (正規方程式)

という方程式を、Xt・Xの逆行列を求めてときます。

a = (Xt・X)^(-1)・Xt・y

実際に計算する祭には、両辺のXtを除いた

Xa=y

をQR分解などを利用してaを決めるほうが、逆行列を求めるより有利だといわれています。

なぜこうなるのかは、線形最小二乗法で検索してください。1次式まではたくさんありますが、2次以上まで書いてあるところはだいぶ少ないようですが、いくつかはあります。
    • good
    • 0

最小二乗法を用います。

詳しくは本やネットで調べてください。
基本的な考え方は曲線とデータとの距離が最小になるように係数を決めるというものです。
    • good
    • 0

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