系列の類似性の信頼できる測定-相関関係は私にとってそれをカットしません


8

1つの特定の時系列を約10,000以上の参照時系列とプログラムで比較する方法を決定し、関心のある可能性のあるそれらの参照時系列をショートリストに入れようとしています。

私が使っていた方法はピアソン相関でした。参照時系列のそれぞれについて、それらの相関係数を計算し、相関係数に基づいて参照時系列のリスト全体を降順で並べ替えます。次に、相関係数が最も高い上位N個の時系列を視覚的に分析します。これは、特定の時系列に最も一致するはずです。

問題は、信頼できる結果が得られなかったことです。多くの場合、上位Nの範囲の系列は、与えられた時系列のようなものと視覚的に似ていませんでした。最後に、以下の完全な記事を読んだとき、私はその理由を理解しました。2つの時系列が類似しているかどうかを判断するために相関のみを使用することはできません。

アンスコムのカルテット

これは、2つの時系列間の何らかの距離を計算するすべてのマッチングアルゴリズムの問​​題です。たとえば、以下の2つの時系列のグループは同じ距離になる可能性がありますが、一方が他方よりも明らかに優れています。

A => [1, 2, 3, 4, 5, 6, 7, 8,  9]
B1 => [1, 2, 3, 4, 5, 6, 7, 8, 12]
distance = sqrt(0+0+0+0+0+0+0+0+9) = 3
B2 => [0, 3, 2, 5, 4, 7, 6, 9,  8]
distance = sqrt(1+1+1+1+1+1+1+1+1) = 3

だから私の質問は、このような状況で私によく合う数式(相関関係など)があるかどうかです。ここで述べた問題に悩まされていない人は?

さらに詳しい説明を求めるか、必要に応じて質問文を改善してください。ありがとう!=)

編集:

相関結果

@ woodchips、@ krystian:

上の行は、指定された日付で終了するUSDCHF-Dailyの最後の10バーを示しています。2行目は、相関に使用されたメソッドAの上位3つの結果を示しています(説明は後に続きます)。最後の行は、メソッドBの上位3つの結果を示しています。相関には高値-低値-終値を使用しました。各行の最後の画像は、「良い一致」と私が考えるものです。理由は、シリーズの転換点が私にとってより重要だからです。最後の行に最大の相関があったのは偶然です。しかし、最後の行で、2番目の画像が非常に弱い類似性であることがわかります。それでも、なんとかトップ3に忍び込むことができます。これが私を悩ませています。この動作のため、各相関関係に視覚的にアクセスし、それを受け入れ/破棄することを余儀なくされます。アンスコムのカルテットも、相関関係を視覚的に検査する必要があることを強調しています。そのため、相関関係から離れて、系列の類似性を評価する他の数学的概念を探索したいと考えました。

方法Aは、1つの長いシリーズにHLCデータを追加し、それを特定のシリーズと相関させます。 方法Bは、Hデータと参照Hデータ、LとL、CとCを相関させ、3つの値すべてを乗算して正味相関を計算します。明らかにそれは全体的な相関を減らしますが、結果として生じる相関を洗練する傾向があると私は感じます。

返信が遅くなりましたことをお詫び申し上げます。データとコードの相関関係を収集し、説明のためにグラフィックを作成しようとしていました。この画像は、相関がかなり適切な場合のまれなイベントの1つを示しています。結果の一致が非常に誤解を招く場合でも、相関値がかなり高い場合でも、グラフィックを作成して共有します。

@adambowen:あなたはその場にいます。実際、私は2つの異なるアルゴリズムを実装しました。系列の類似性にアクセスするための相関と動的タイムワーピングです。DTWについては、あなたが言ったようにMSEを使用する必要があります。相関関係については、MSE(この場合、ワープなしのDTWの対角経路のコストに等しい)と実際のピアソンの相関式の両方を使用できます。以下の画像は、ピアソンの相関式を使用した結果です。投稿で言及した条件を調べて、すぐに報告します。実際には、2つの別個の時系列はありません。それは、ほぼ10,000ポイント以上の1つの時系列です。幅Nのスライディングウィンドウを使用して時系列を自動相関させ、時系列が今日と同様に動作したときのイベントを特定します。良い試合が見つかれば 現在の時系列の動きは、特定された各一致後の動きに基づいて予測できるかもしれません。あなたの洞察をありがとう。


3
この質問は、math.stackexchange.comよりも適しているかもしれません。

1
または、おそらく相互検証済み
David Z

2
あなたはあなたの目でより良い一致をもたらすものを正確に定義する必要があります。何が良いかを定量化するときだけ、それを予測するための数学的スキームを考案することができます。それ以外の場合、「見たときに知っている」は、ローブを着ている古いオナラのグループにのみ適用されます。

質問の編集を参照してください.. =)
AweSIM、2012年

回答:


5

(私の経験では)信号を比較する最も一般的な2つの方法は、相関と平均二乗誤差です。非公式に、信号をN次元空間の点として想像する場合(これを3D点として想像する方が簡単になる傾向があります)、相関は点が同じ方向(「原点」から)であるかどうかを測定し、平均二乗誤差は、ポイントが同じ場所にあるかどうかを測定します(両方の信号の原点が同じである限り、原点とは無関係です)。どちらが適切に機能するかは、システムの信号とノイズのタイプによって多少異なります。

MSEはあなたの例とほぼ同じように見えます:

mse = 0;
for( int i=0; i<N; ++i )
    mse += (x[i]-y[i])*(x[i]-y[i]);
mse /= N;

ただし、これは実際にはピアソン相関ではないことに注意してください。

xx = 0;
xy = 0;
yy = 0;

for( int i=0; i<N; ++i )
{
    xx += (x[i]-x_mean)*(x[i]-x_mean);
    xy += (x[i]-x_mean)*(y[i]-y_mean);
    yy += (y[i]-y_mean)*(y[i]-y_mean);
}

ppmcc = xy/std::sqrt(xx*yy);

与えられた信号はx_meanとy_meanを意味します。これは、純粋な相関関係にかなり近いです。

corr = 0;
for( int i=0; i<N; ++i )
    corr += x[i]*y[i];

ただし、信号が強いDC成分を持ち(平均が差し引かれるため)、正規化されている場合、ピアソン相関はより堅牢になると思います。したがって、信号の1つをスケーリングしても、相関の比例的な増加は発生しません。

最後に、質問の特定の例が問題である場合は、平均絶対誤差(L1ノルム)も考慮することができます。

mae = 0;
for( int i=0; i<N; ++i )
    mae += std::abs(x[i]-y[i]);
mae /= N;

さまざまな信号および画像処理アプリケーションで3つのアプローチが使用されていることは知っていますが、特定のアプリケーションについて詳しく知らないと、何が最も効果的に機能するかはわかりません。MAEとMSEは、データが正確にどのように提示されるかにそれほど影響を受けないことに注意しますが、平均誤差が実際に関心のあるメトリックでない場合、それらはあなたが探している結果を提供しませんために。相関アプローチは、実際の値よりも信号の「方向」に関心がある場合に適していますが、データがどのように提示されるかに敏感であり、ほとんどの場合、結果を得るにはいくつかのセンタリングと正規化が必要です。期待する。

位相相関相互相関正規化相関、および一致フィルターを調べたい場合があります。これらのほとんどは、いくつかの未知のタイムラグを持つ大きな信号の一部のサブ信号を一致させるために使用されますが、2つの信号の間にラグがないことがわかっている場合は、ゼロタイムラグにそれらが与える値を使用できます。


質問の編集をご覧ください.. =)
AweSIM

1

これが正しい方法かどうかはわかりません。しかし、データのスケーリングは役立ちますか?値を0から1の間にしてみてください。これでうまくいくと思います。


そのちょっとすでに平均0、分散にデータをスケーリング私の仕事イムのために...確実に動作しますが、ない...イムはまだ探しているイム何..偽陽性(視覚的にすべての入力シリーズに似ていけない相関の高いシリーズ)を取得これは.. よいビジュアルマッチを得るために他にどのような数学的概念を使用できます ..シリーズ類似性の相関の代わりはありますか?
AweSIM 2012年

1
@AweSIM:「ビジュアルマッチが良い」と思われるものについて、もう少し手がかりを教えていただけますか?たとえば、2番目の信号が1ユニット遅れている場合でも、視覚的な一致は良好ですか?

ちょっと..はい、少し
間もなく

@krystian ..質問の編集をご覧ください.. =)
AweSIM、

@AweSIM私は、トップの回答が正解だと思います:)
viki.omega9
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.