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のスライディングウィンドウを使用して時系列を自動相関させ、時系列が今日と同様に動作したときのイベントを特定します。良い試合が見つかれば 現在の時系列の動きは、特定された各一致後の動きに基づいて予測できるかもしれません。あなたの洞察をありがとう。