• ベストアンサー

ばらつきのあるデータにおける最大値

ばらつきのあるデータがあり、それを直線で結ぶと 小さくぎざぎざになります。全体としては、 曲線になり、ピークをもちます。そのピークの値を求めたい。 数学的に何かよい方法がありますか? いままでは、グラフを書いて、目で見てピークを決定している のですが。

質問者が選んだベストアンサー

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

カーブフィッティングを行うのが常套手段です。もしカーブ全体の形が理論的に式で表され、その式の中に未知の定数が幾つか入っている、という状況であるなら、この理論式を当て嵌めてやります。 そんな式はない、という場合、データのピークがどんな格好をしているかによって、局所的な近似式をでっちあげて使います。なだらかで左右対称に近い形なら、たとえば放物線 y=A(x^2)+Bx+C をピークの前後大体数点~数十点のサンプルデータに最小二乗法で当て嵌めてA,B,Cを求め、この放物線の頂点をピークの位置とすれば良いでしょう。 サンプルを<t[j],f[j]> (j=1,2,.....) とし、当て嵌めの対象にする(ピーク近辺の)サンプルがj=K,K+1,.....,K+Nであるとします。 このとき、 ε[j] = A(t[j]^2)+Bt[j]+C - f[j] と置いて、 S=Σ(ε[j] ^2)   (Σはj=K,K+1,.....,K+Nについての和) とする。Sが最小になるようにA,B,Cを決めてやることは線形最小二乗法です。具体的には連立方程式 A Σ(t[j]^4)+ BΣ(t[j]^3)+ CΣ(t[j]^2) = Σ(t[j]^2)(f[j]) A Σ(t[j]^3)+ BΣ(t[j]^2)+ CΣ(t[j]) = Σ(t[j])(f[j]) A Σ(t[j]^2)+ BΣ(t[j])+ CN = Σ(f[j]) を解けば良い。ここにΣはいずれも(j=K,K+1,.....,K+N)についての和です。

hgdream
質問者

お礼

カーブフィッティングという言葉をはじめて聞きました。 放物線の最小二乗法にあてはめるのをやってみたいと思います。 詳しい説明ありがとうございました。

その他の回答 (2)

回答No.2

ピークが何を差しているのかが、完全には分かりませんが 信号処理であれば、質問で上げられている曲線を最小自乗法等で 求めて、この曲線との差の2乗が最大の部位をピークとすれば 良いのでは?

noname#211914
noname#211914
回答No.1

自信がありませんが、「ピークをもつ」と言うことは、例えば上に凸の曲線になるのでしょうか・・・? 近似曲線を求めて、表示させてピークを求めては如何でしょうか・・・? 補足お願いします。

hgdream
質問者

補足

説明がうまくないのですみません。 そのとおり、凸の曲線になる。

関連するQ&A

専門家に質問してみよう