データのノイズ除去法 - Savitzky Golay- を表計算したいのですが

このQ&Aのポイント
  • Microsoft Excelには、時系列のデータがありますが、ノイズが多く、きれいな曲線になりません。そこで、Savitzky Golayの方法を使ってデータのスムージングを行おうとしています。特定のサイトで見つけた係数を使用して和算を行い、目的の曲線を得られましたが、この係数は本当に適切なのか疑問です。また、係数の調整方法や適切な係数の探し方についても知りたいです。
  • Microsoft Excelの時系列データにはノイズが多く、スムージング処理を行いたいと考えています。Savitzky Golayの方法を使用するために、インターネットで見つけた係数の和算を試してみました。結果として、目的の曲線が得られましたが、係数の根拠が不明確であるため、係数の信頼性に疑問があります。さらに、係数の調整方法や適切な係数の見つけ方についても知りたいです。
  • Microsoft Excelにはノイズが多い時系列データがありますが、スムージング処理を行いたいです。そのために、Savitzky Golayの方法を使用しています。インターネットで見つけた係数を使用して和算を行ったところ、目的の曲線が得られましたが、係数の根拠については不明です。また、係数の調整方法や適切な係数の見つけ方についても教えてください。
回答を見る
  • ベストアンサー

データのノイズ除去法 - Savitzky Golay- を表計算したいのですが

Microsoft Excel に、時系列のデータが入っています。 2次微分までのデータが欲しいのですが、ノイズが多く、 きれいな曲線になりませんでした。 このような事情で、Savitzky Golayの方法(名前は知っていた)で データのスムージングを行おうとしていたところ、あるサイトで、 {0, 0.0323313, 0.00850822, -0.00829007,..., 0.0859867,...,0.0323313} というような数列のようなものを見つけました。 これを係数に41項からなる和算を行ったところ、全く何も根拠のないまま、 一見したところ目的を達しているかのような曲線が得られました。 これ、全くのデタラメでもないのでしょうか? それに、もう少し項目を 減らしたり増やしたりするには、どんな係数を使えばいいのでしょうか。 そもそも、適切な係数を知るにはどこを調べればいいのでしょうか。

  • Yui-s
  • お礼率90% (45/50)

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

  • ベストアンサー
noname#259682
noname#259682
回答No.1

【原典】 Savitzky-Golay法は次の文献で発表されています。 A.Savitzky,M.J.E.Golay"Smoothing and Differention of Data bye Simplified Least Squares Procedures,"Analytical Chemistry,vol.36,no.8,pp1627-1639,1964 【方法の主眼】  等間隔で得られた観測値から雑音を除去するために最小2乗法 を用いて多項式に当てはめる。 観測点が"等間隔"言うのがミソです。 たとえば多項式を2次式として、平滑化の対象を奇数点の(-2,-1,0,2,1) という点を選んでスケール変換して計算すると、重み係数(-3,12,17,12,-3)、 正規化定数35が得られます。 【得られる情報源】  科学計測のための波形データ処理 南茂夫 CQ出版社 1986年 初版 ¥1960 この本には、具体的なデータ処理が例示されています。 問われている係数の算出方法についても式が提示されています。 原典よりも新しいですが、まだ出版されているのかな? 【展望】  観測値から雑音を除去すると言うテーマは多くの分野で あつかわれているようです。 Savitzky-Golay法は、クラシックな部類に属する手法かと思います。 しかし、科学計測の分野では根強く活躍しているようです。 数値フィルタまたはディジタルフィルタという観点から見ると、スペクトル というものの見方が欠けているのかなと思われます。 最新号のC-MAGAZINEの特集またはその参考文献がきっと 役にたつと思います。 【最後に】  ご質問のテーマは、きっと物理または化学が適切では なかったかな、と思います。

Yui-s
質問者

お礼

741さん 『科学計測のための波形データ処理』はオンラインでも入手可能の ようですので、さっそく購入することにしました。 初めは係数の算出方法を知るだけが目的でしたが、 面白そうな分野を知るいいきっかけになりました。 あまり深く理解すると、他のもっと適切な方法が見えてきて 大変になるのかも知れませんが、少しでも理解して使えるように がんばってみます。 おっしゃるとおり、質問のカテゴリーをもう少し考えるべきでした。 が、それでも論文と書籍の情報を教えていただけたことは、幸運でした。 貴重なお答え、ありがとうございました。

関連するQ&A

  • Excelで、Savitzky Golay- データのノイズ除去 - を行うには?

    データのノイズが大きく微分を取ることが難しいケースで、 エクセルを使ってスムージングを行う方法を探しています。 Savitzky-Golay の方法をやるには、計算に必要な係数などは どうやって決めたらいいのでしょうか。 数学カテゴリーにも本質的に同じ質問をしたのですが、 回答がなく、重複してしまいすみません。

  • EXCELでSavitzky-Golay法

    EXCELでSavitzky-Golay法 仮にノイズを含むデータがEXELのA列に時系列で出力されているとします. これにSavitzky-Golay法を用いてスムージングを行いノイズを低減したいのですが,EXCELの機能で簡単にできないものかと考えています.ですが上記の式などを見ているとVBAでプログラムを組まないとできそうにない気もするのですが,EXCELの機能だけでSavitzky-Golay法を適用することはできるでしょうか? どなたか経験のある方回答をお願いします.

  • 合成関数のn回微分の公式?

    実関数の微分に対して、ライプニッツの公式は、 (fg)^(n)=Σ[k=0,n]C(n,k)f^(k)*g^(n-k) です。 ところで、合成関数のn回微分の公式って考えれないのでしょうか? 一般化は難しそうなのでたとえば、 y=f(x)^a のn回微分を書き表す方法はあるのでしょうか? ライプニッツの公式は、係数に二項係数が使われましたが、合成関数のn回微分には、なんらかの数列が関係していたりするのでしょうか?

  • フーリエ級数でホワイトノイズを表現する

    フーリエ変換では例えば時系列をcos, sinで分解してその係数をa0,a1,a2...., b1,b2,......を求めることになると思います.cosの方の係数がa, sinの方の係数がbです.(このあたりは十分説明し切れていませんが,標準テキストの表現と同じなので知っている方にはおなじみのことです.) さて,質問ですが,ホワイトノイズは各周波数成分(n)のパワーが均等になっているものだと思います. すなわちan^2+bn^2=1 という関係が全部のnで成り立つということですね.ただし,an, bnの値はこれでは決まらないので(0,1)の乱数を発生させてanを決め,それに応じたbnを決めました.位相のランダム性ということですが.そしてそれをフーリエ級数の時系列を表現する式に代入してプログラムでホワイトノイズ波形を作成しようとしたのですが,おかしいのです.ここまでの考え方で何か間違っているでしょうか. 自分としては以下の点を疑っています. 1.an, bnは正負の符号はどうなっていたでしょうか.この考え方では両方共正の値となっています.乱数を発生させても正・負は決めることができません.平方根をとる時に正の値だけになってしまいます. 2.時系列を表現する式というのはフーリエ逆変換と同じですが,FFTなどの方式は使わず,単純に和を取りました.Σan cos(theta)+bn sin(theta) というような式で初項はa0/2としました.最終項もちょっと違いますが,普通のテキストに載っている式です.フーリエ成分の重ねあわせと時間方向の進行があるので2重ループとなりますが. 3.乱数の発生のさせ方がまずい.Fortranのサイトから持ってきたものです.時間で発生させるものとか整数を与えて発生させるものなどいろいろです. 以上です.発生させた波形がどうおかしいのか言っていませんが,最初の数項だけはこうなっています. 0 128.288 1 128.345 2 0.443 3 42.991 4 0.497 5 26.035 6 0.667 7 18.964 ホワイトノイズ波形などそもそも作れるのかなと思いますが.どうでしょうか.よろしくお願いします.

  • 円の最小二乗法の公式

    いくつかのデータから最小二乗法で近似曲線を求めたいのですが、よくわかりません。そのデータ集の近似曲線は円になります。 最小二乗法を調べ、1次、2次関数についてはわかりました。ある点の座標を(x1,y1), (x2,y2)…、近似曲線上の座標を(x1,y’1),(x2,y’2)… とした時、 (y’1-y1)^2 + (y’2-y2)^2 … が最小となるような係数a,b などを偏微分 → 連立方程式で求めるという方法でした。 円についても、同様の方法で r^2 = (x-a)^2 + (y-b)^2 のような近似曲線の式が求められるのでしょうか?1次関数などのように、y’1-y1を求めようとすると、±√ が出てきてしまい、ややこしくなる気がしますが、これを解くしかないのでしょうか?もしくは別の解法があるのでしょうか?詳しく教えていただけたらと思います。よろしくお願いします。

  • グラフ上でデータの変更ができるEXCEL以外のソフトを探しています

    お世話になります。 仕事柄、データをEXCELで整理する必要があるのですが、その際にグラフ上のデータ系列をドラッグしてセルの値を変更する作業を行っていました。 EXCEL2003までは問題なかったのですが、EXCEL2007になってからこの「グラフ上の系列をドラッグする」機能が失われてしまい、困っています。 会社の都合上、EXCEL2003がインストールされたパソコンがなくなってしまい、また、ソフトもない状況なので、EXCELの2003と2007を共存させることもできない状況です。 (今月からすべてのPCが新しいものに入れ替わってしまった状況なのです) そこで、上記のような「グラフ上で値を変更できる」ようなEXCEL以外のソフトを探しているのですが、何か良いものはございますでしょうか。 有償・無償は問いません。 データをグラフにして評価する際は、散布図を主に使っています。 データー数は1アイテムで約100~200個程度です。 アイテムによって傾向が違うため、近似曲線を用いることもできません。 誠に恐れ入りますが、ご教授いただきたくよろしくお願いいたします。

  • データのカーブフィッティングについて

    (x,y)の組み合わせのデータが数多くあり、y=a+bx+cx^2..という曲線をフィットさせることを考えます。係数a, b, cを求めるということです。エクセルとか科学ソフトに入っているものと思います。 この係数の決め方は、実際にはどのような方針なのしょうか。例えば、最小二乗法のように誤差を調べて、その誤差の式をa, b, cで偏微分して0として3つの式を立て、それを解いてa, b, cを求めるというようなことでしょうか。それはダメなんじゃないかと思うのですが。 y(x,z)=a+bx+czで、x, zが独立ならそれがやれるのであり、この場合、z=x^2なのでzのxに対する独立性に問題があるからなのですが。どうでしょうか。 試しにy=1.5x^2 でxに乱数を与えて計算して(x, y)の組み合わせを数多く作成し、模擬データとしてy=a+bx+cx^2のa, b, cを推定してa=b=0, c=1.5がしっかり算出されるものでしょうか。y=1.5x^2 で乱数で発生したデータであっても低次のy=a + bxという式で最小二乗法を使えばa, b(いずれも非0)の結果が出ますね。そこでもう1つ高次の項 cx^2を付けて推定したら先のa, bが変更を受けてa, bが0でc=1.5となる結果が出てくるものでしょうか。 よろしくお願いします。

  • 自己相関関数

    生物系の学生です。今、時系列解析をかじっておりまして自己相関関数に手を焼いています。 (1)自己相関関数でノイズが除去できるのは何故ですか?この変換後の関数がノイズ除去後の姿と言い切れる根拠は何ですか? (2)式の形から、フーリエ係数の求め方に似ているので関数の直交性を利用してもとめた関数だと思うのですが、背景にはどのようなモデルがあるのですか?例えば、フーリエ級数では周期関数は三角関数の和で示せ、三角関数は互いに独立だから内積とれば、知りたい周波数の寄与(係数)が求められるという考え方がありましたが。

  • 一般2次曲線の放物線型

    4x^2-4xy+y^2-10x-20y=0・・・(1)を標準形になおす問題で、計算手順がわからないので質問します。 (xyの係数)^2-4(x^2の係数)*(y^2の係数)=16-16=0で(1)は放物線であることはわかるのですが、(1)をxについて偏微分したものの方程式=0と、yについて偏微分したものの方程式=0を連立方程式として解こうとすると、 (xyの係数)^2-4(x^2の係数)*(y^2の係数)=0・・・(2)より連立方程式が解を持たないので、(1)の原点を平行移動した方程式が求まりません。 楕円型などでは、(xyの係数)^2-4(x^2の係数)*(y^2の係数)≠0より、与えられた方程式を平行移動した式が求まり、そこから、tan2θ=(xyの係数)/{(x^2の係数)-(y^2の係数)}・・・(3)を満たすθだけ、座標軸の回転(tanθ=1/2のとき、sinθ=1/√5,cosθ=2/√5より原点を平行移動した座標軸をX,Yとし、さらに座標軸をθ回転した座標軸をX',Y'とすると、X=(1/√5)*(2X'-Y')とY=(1/√5)*(X'+2Y')を原点を平行移動した方程式に代入すると、xyを含む項が消える。)した式を求めて答えの方程式をもとめています。 また(1)の座標軸を回転移動した軸をX,Yとすると、(2)より回転移動後のX^2かY^2の係数は0になるということで、(1)における(3)を求めて、tanθ=-1/2よってsinθ=-1/√5,cosθ=2/√5まで求めたのですが、tanθ=-1/2でX^2の項が消えるか、Y^2の項が消えるかどちらかわからないので、計算しようがないです。 どなたか、一般2次曲線の放物線型において、座標軸を平行移動した方程式と、座標軸を回転移動する式を代入する方程式、の求め方を教えてください。お願いします。

  • ノイズを綺麗に除去する

    頼まれて、ピアノ曲を作曲しています。 なんとか出来上がり、パソコンに録音してメールで送りたいのですが、もちろんのこと、録音するとノイズが入ります。 ぽけっとれこーだーでマイクを使って録音、まではしたのですが、編集が出来ません。 私はAudacityというフリーソフトを使っていますが、ノイズを除去するとピアノの音がとても変な音になってしまいます。 綺麗にノイズだけを除去し、ピアノの音はそのまま残したいのですが、どうすればよいのでしょう? 作曲ソフトで作曲をするという手もあるのですが、今はもう時間が無いので出来ません。 後3日以内で完成させなければなりません。 早めに回答をください。よろしくお願いします。