ステップ変化検出


8

分析関数をいくつかの実験データに合わせるために、非線形最小二乗法を使用しています。私はアルゴリズムにいくつかの初期推定値を提供する必要があるので、これを自動的に行う方法を見つけようとしています(これは私が行っている目視ではなく)。

これは、正規分布されたランダムノイズを分析関数に追加することによって作成された、いくつかのシミュレーションデータです。

これは、正規分布されたランダムノイズを分析関数に追加することによって作成された、いくつかのシミュレーションデータです。

データのこのステップ変化の位置を確実に検出しようとしています。データポイントの平均分散を計算し、この値と大幅に異なるデータのポイントを探すことで、ある程度の成功を収めましたが、このアプローチはS / N比によって非常に制限されているようです。

統計があまりわからないので、問題を解決するために何を調べなければならないかについて、何らかの方向性を示したいと思っています。

ありがとうございました!

-xyデータへのビンのリンクの貼り付けを編集

http://pastebin.com/QTawFex3


おそらく、変化点の検出手法を検討することは有用でしょう。循環バイナリセグメンテーションは、まさに必要なものかもしれません。
Mur1lo

ChenとLiu 1993は、時系列のレベルシフトを検出する方法について説明しています。それらのアルゴリズムは、tsoutliers Rパッケージに実装されています。
pionpi_

1
新しい強力な変化検出技術城、Doornik、ヘンドリー・アンド・カンパニーの作品にインパルス・インジケータの飽和とステップ・インジケータ飽和である(より見つけるには、Googleのキーワード。)
リチャード・ハーディ

私が見つけることができる最高の返信はそこにあり、私の場合には非常にうまく機能し、あなたのデータを見るとそれもうまくいくはずです。stackoverflow.com/questions/48000663/...
フランソワ・ザビエルのsireta

回答:


3

これにはもっと洗練された方法があるかもしれませんが、これが私の最初の考えです。

基本的には関数の導関数を取り、それが最大の場所を見つけたいと思います。数値的には、データポイント間の差異を取得して、どの2つのポイントが最大の差異を持つかを見つけることができます。次に、これら2つのポイントのx値の中点が、最も大きな変化のある場所です。

この単純な方法は、ノイズの影響を受けやすくなっています。そのため、最初に、データを右または左にシフトしないフィルターを使用してデータをフィルターに掛けることができます。単純なFIRフィルターを使用する場合は、前から後ろにフィルターし、結果を後ろから前にフィルターします。結果は、二重にフィルターされ、NONシフトされたデータセットです。次に、上記の手順に従って、値の差が最も大きい点を見つけます。

また、2点の差を超える高度な数値微分計算を使用することもできます。


答えてくれてありがとう。これは個別のデータであるという事実に夢中になり、単に区別することを考えていませんでした。これが機能するかどうかを確認するために、いくつかの小さなピークでFIRフィルターを使用する方法を調べます
jm22b

1
私はあなたのアイデアを実装しました、そしてそれは魅力のように機能します、本当にありがとう!
jm22b

それは聞いて素晴らしいです。お知らせいただきありがとうございます。
jason

4

データは、新しいレベルへの漸近的な(段階的な)変化を視覚的に示しています。時系列メソッドは、データが時系列でなくても、これらの種類の構造を検出するためによく使用されます。あなたのデータを投稿してください。私が自由に使える「おもちゃ」を使ってこれを実演できるかもしれません。データが時系列の場合、@ jasonが反映されるため、構造を正しく「見る」には、ノイズモデルを効果的に処理する必要があります。

データの受領時に編集:

モデリングは、多くの場合、有用なモデルへの貴重な手がかりを提供する暫定的なステップを伴う反復的なアプローチです。私はあなたのデータを取り、それをAUTOBOX(私のおもちゃの1つ)に導入しました。最初のグラフここに画像の説明を入力してくださいは、Xシリーズが固定間隔で報告される縦(時系列)データセットを強く示唆しています。AUTOBOXは、非定常Xを差分演算子に置き換える標準のARIMAモデル(介入検出あり)を自動的に提案しました。これが実際/適合/予測グラフと推奨モデルです。ここに画像の説明を入力してください ここに画像の説明を入力してください

検討すると、インジケータ変数のラグ構造を組み込んだ別の可能なモデルが示唆されました。元のYとユーザーが提案したXの関係を処理するために、期間76(動的予測子は50期間の可能な最大の遅延効果を明示的に許可する)(遷移の開始)でパルスを導入しました。 Xの合計設定を受け入れるよりも、Xの影響を完全に調査します。

以下は、ここに画像の説明を入力してくださいそのアプローチの実際の適合予測グラフと、特定されたロバスト伝達関数モデルです。ここにここに画像の説明を入力してください残差プロットここに画像の説明を入力してくださいと残差acfここに画像の説明を入力してください

最終的なモデルは、Dynamic Predictorのいくつかのラグといくつかのパルスと合理的なメモリ構造のダイナミクスをキャプチャします。

最も強力な分析パッケージでさえ、創造的な人間の心に匹敵するものはないため、このような複雑な実世界のデータセットを扱う場合、いくつかのガイダンスが必要になることがよくあります。


私は気になります... 1)分析関数は何でしたか、2)エラーシリーズ(正規分布のランダムノイズ)の分散は何でしたか:AUTOBOXが配信されました:分散= SOS /(n)。 SOS /(nm).443625E-04標準偏差RMSE = SQRT(Adj Var).666052E-02
IrishStat

私の分析関数は ここで、はフィットするパラメーターです。私の元の投稿のプロットの画像は、この関数+正規分布でしたstdevが0.1のランダムノイズ(私はそう思います)。私があなたと共有したデータは本当のデータでした、そして私はそれが何であるかについて最もはっきりしていません!T(λ)=C1+C2[erfc(λ0λ2σ)Exp(λ0λτ+σ22τ2)erfc(λ0λ2σ+σ2τ)]C1,C2,λ0,σ,τ
jm22b

3

1つの手法は、x変数のすべての値をその前後のデータの標準偏差についてテストすることです。真のステップ関数の場合、これらの2つの合計はステップ位置で最小になり、最小は非線形関数の適切な開始パラメーターになります。

これは、元のデータ(黒)、xの前の標準偏差(青)、xの後の赤(赤)、最後の2つのデータの合計(緑)のプロットです。

ここに画像の説明を入力してください


2

この質問は古いことを認識しています。しかし、私は別の方法をそこに捨てたかったのです。Cannyは論文(エッジ検出への計算アプローチ)を書いており、画像のエッジ検出の2次元のケースでこの問題を解決しました。必要に応じて紙を読むこともできますが、次のようにすると、変化点を非常によく近似できます。

  1. ガウスの導関数で信号のたたみ込みを実行します。

f(x)=xχ2ex2σ2

ここで、はスケーリング係数です。χ

  1. 応答のピークは、変化点が発生する場所です。

ここに画像の説明を入力してください

この方法での経験から、正しいスケーリングパラメータを選択するのは難しいことがわかりました。しかし、私が気付いていない、これに関するさらなる作業があるかもしれません。

Cannyの論文をまとめ、ここに例を示しました


こんにちは、私は提示された応答と興味深い方法に感謝します。興味深いブログ投稿も!この質問を生成したプロジェクトにはいくつかの画像処理が含まれていたので、そのときは、細いエッジの検出について少し読んでいました。
jm22b 2017年

0

短期間タイプhaar / db4を使用して、ウェーブレット変換された時系列を調査できます。ポインターはありませんが、いくつかの検索語句しかありません。「ウェーブレット変化点検出」を試してください。

ウェーブレットにはいくつかのRパッケージがあります。時系列タスクビューを参照してください:https : //cran.r-project.org/web/views/TimeSeries.html

いくつかの例については、こちらをご覧ください:http : //it.mathworks.com/help/wavelet/examples/detecting-discontinuities-and-breakdown-points.html?requestedDomain=www.mathworks.com

理論については、Mallat et Hwangの論文「ウェーブレットを使用した特異点の検出と処理」を参照してください。

関連回答を参照してください:時系列ベースの異常検出アルゴリズムへのウェーブレットの適用

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.