わかりました皆さん...この質問を見てくれてありがとう。大学で以下のことをしたことを覚えていますが、正確な解決策を忘れていました。正しい方向に舵を切るテイカー。
N のデータの時系列 (3 つを使用します) があります。データ系列は時間順に連続しています (たとえば、obsOne[1] は obsTwo[1] および obsThree[1] と共に発生しました)。
obsOne[47, 136, -108, -15, 22, ...], obsTwo[448, 321, 122, -207, 269, ...], obsThree[381, 283, 429, -393, 242, ...]
ステップ 2. データ シリーズから、データ シリーズごとに幅 Z の一連の X レンジ ビンを作成します。(観測 obsOne の例: bin1 = [<-108, -108] bin2 = [-108, -26] bin3 = [-26, 55] ... binX = [136, > 136]
ステップ 3. 次に、データ系列のすべての可能な組み合わせを含むテーブルを作成します。したがって、4 つのビンと 3 つのデータ系列がある場合、すべての組み合わせは合計 4x4x4 = 64 の可能な結果になります。(たとえば、row1 = obsOne bin1 + obsTwo bin1 + obsThree bin1、row2 = obsOne bin1 + obsTwo bin1 + obsThree bin2、... row5 = obsOne bin1 + obsTwo bin1 + obsThree binX、row6 = obsOne bin1 + obsTwo bin2 + obsThree bin1、row7 = obsOne bin1 + obsTwo bin1 + obsThree bin2、row9 = obsOne bin1 + obsTwo bin2 + obsThree binX、...)
ステップ 4. データ系列に戻り、データ系列の各行がテーブルのどこに該当するかを調べ、観測が何回該当するかを数えます。(例: obsOne[2] obsTwo[2] obsThree[2] = テーブルの行 30、obsOne[X] obsTwo[X] obsThree[X] = テーブルの行 52。
ステップ 5.次に、テーブルで正の一致がある行のみを取得し、その行に含まれる観測値の数を数え、データ系列の観測値の総数で割ります。これにより、観測されたデータのその範囲の確率が得られます。
数学の専門家ではなく、この基本的な質問で申し訳ありません。私は何年も前にこれを行いました。どの方法を使用したか忘れましたが、この長い (古代の「手動」) 方法よりもはるかに高速でした。当時、私は python を使用していませんでした。それは、C++ の他の独自のパッケージでした。この問題を Python (現在は Python ショップ) で解決できる何かが存在するかどうかを確認したいのですが、いつでも拡張できるので、それはソフトな制約です。