ランダムウォーク指数(Random Walk Index)の計算方法
直接の答え
ランダムウォーク指数(Random Walk Index)は、価格系列を「観測された動きが、選択した見通し期間(lookback window)においてどれくらいランダムウォークのようか」を示す標準化された指標へ変換することで計算されます。実務上は、直近のリターン列(または価格変化)から統計量を計算し、指数の定義で用いられる期待されるベースラインと比較し、その結果を指数値へ変換します。正確な式は実装によって異なるため、正しい検証には、参照元が使っている具体的な定義(ウィンドウ長、リターン定義、変換)を明示する必要があります。
メカニズムと定義(計算に必要なもの)
含意を議論する前に、データと基本となる構成要素を定義します。
1) 入力となる価格系列を選ぶ
時系列順に並んだ次の系列から始めます:
- 価格:(P_t)((t = 1,2,\dots))
- サンプリング頻度:たとえばデータセット内の各バー(分、1時間、1日ごとなど)。サンプリング規則が固定されていない限り、指数は意味を持ちません。
重要な要件は一貫性です。この計算は、系列が順序付けられていることを前提とし、さらに方法の定義と同じサンプリング間隔を使用します。
2) 「リターン」または価格変化を定義する
多くの実装では、次のいずれかから作業します:
- 単純リターン:(r_t = \frac{P_t - P_{t-1}}{P_{t-1}})
- または対数リターン:(r_t = \ln(P_t) - \ln(P_{t-1}))
リターンの代わりに、スケールされた価格変化を使うバージョンもあります。選択した定義は、再現しようとしているランダムウォーク指数(Random Walk Index)に対応するものと一致している必要があります。
3) ローリングウィンドウを選ぶ
ランダムウォーク型の指標は、通常、長さ (N) の見通し期間(lookback window)で計算されます。各時点 (t) について、直近の (N) 個のリターン(または変化)を取ります:
- (r_{t-N+1}, \dots, r_t)
(N) を変えると、指数の応答性と安定性が変わります。
4) ランダムウォーク挙動からの逸脱を測る統計量を計算する
この指数の考え方は、観測された動きの特徴を、ランダムウォーク仮定の下で期待されるものと比較することです(増分が独立で同一分布のステップのように振る舞うと仮定)。
この種の指数でよくあるパターンは次の通りです:
- (N) ステップの系列から統計量を計算する(例:正規化されたスプレッド、ばらつき、実現されたばらつきと期待されるばらつきの比)。
- その統計量を次元のないスコアへ変換する。
実装は異なるため、「ランダムウォーク指数(Random Walk Index)」という名称は、再現したい特定の定義に基づく具体的な式を必要とするものとして扱う必要があります。
5) 指数値を作るための変換を適用する
統計量を時系列間(場合によっては資産間)で比較可能にするために、指数はしばしば次のようなスケーリングや正規化ステップを使います:
- ランダムウォーク仮定から示唆されるベースライン量で割る、
- あるいは統計量を単調変換で写像する。
繰り返しになりますが、変換は定義固有です。
自己検証可能な計算ワークフローの例(明示的な前提つき)
「ランダムウォーク指数(Random Walk Index)」の厳密な式は参照元によって異なり得るため、最も安全な検証方法は、定義を固定したうえで再現可能なワークフローに従うことです。
以下は、特定のランダムウォーク指数(Random Walk Index)式を書き下した後に使える検証ワークフローです。
ステップA:定義を固定する
次を含めて、式を明示的に書き下します:
- リターンの定義(単純 vs 対数 vs 生の差分)、
- ウィンドウ長 (N)、
- 指数の内部で使われる統計量((N) 個のリターンから計算される部分)、
- 正規化または変換ステップ。
式が「ランダムウォーク仮定の下での“期待値(expected)”」に言及している場合、その期待がどの分散モデルを前提としているのかを把握する必要があります。
ステップB:指定したデータ点に対するリターンを計算する
固定したサンプリング頻度を使って、必要なすべてのタイムスタンプについて (r_t) を計算します。
次のような隠れた変更は避けてください:
- 欠損バーに対してフォワードフィル(前方補完)した価格を使うこと、
- それを明示せずにビッドからミッドへ切り替えること、
- タイムゾーンや取引セッションを混在させること。
ステップC:ウィンドウをロールさせて統計量を計算する
各 (t \ge N) について:
- ベクトル (r_{t-N+1}, \dots, r_t) を取る、
- 定義通りに統計量を正確に計算する、
- 正規化/変換を適用して時点 (t) の指数値を得る。
ステップD:指数の1点または2点を独立に再現する
タイムスタンプ (t_0) を1つ選び、元データから指数値を手計算(または小さなスクリプト)で計算します。次に、テストしている実装の出力と比較します。
結果が一致しない場合、通常は次のいずれかが原因です:
- リターン定義が異なる、
- データ開始時の (P_{t-1}) の扱いが異なる、
- ウィンドウのアラインメントが異なる(ウィンドウが包含/排他的か)、
- 正規化定数が異なる。
制限と失敗モード
ランダムウォーク型の指標は、有限サンプル上での決定論的な計算へと「ランダム性に関する仮定」を変換するため、敏感です。
1) パラメータ感度
(N) やリターン定義を変えると、指数値が大きく変わり得ます。実装を切り替えると、名称が同じでも別の対象を比較している可能性があります。
2) 非定常な挙動
市場は時間とともに統計的性質を変えることがよくあります(ボラティリティ・レジーム、ミクロ構造の影響など)。ランダムウォーク仮定は理想化です。この指数は、その仮定の下での逸脱を測るため、「シグナルの質」と無関係な理由で動くことがあります。
3) データの扱いとサンプリング効果
指数値は次に依存します:
- サンプリング頻度(イントラデイ vs デイリー)、
- 欠損データの扱い、
- 株式におけるコーポレートアクション(FXでは同じ意味ではありませんが、どのデータセットでも何らかの調整が起こり得ます)、
- 価格が何かのために調整されているかどうか。
データ前処理の小さな違いが、ローリング計算で大きな数値差を生むことがあります。
4) 有限サンプルの不安定性
短いウィンドウでは、推定量がノイズを含みやすくなります。長いウィンドウでは、指数が反応するまでに時間がかかる可能性があります。
5) 単独のシグナルとしての誤解
指数値それ自体は、将来の方向性やパフォーマンスを保証しません。これは、特定の仮定フレームワークの下での記述統計です。
検証と次の質問
ランダムウォーク指数(Random Walk Index)の計算を独立に検証するには:
- 使用している正確な式を記録する((N)、リターン定義、正規化を含む)。
- 固定した価格系列とサンプリング頻度を使う。
- 生の入力から、少なくとも1つのローリングウィンドウ結果を再計算する。
- ウィンドウのアラインメントが定義と一致しているか確認する。
次の有用なステップは、あなたの特定のランダムウォーク指数(Random Walk Index)が、関連する「ランダムウォーク」や「効率比(efficiency ratio)」のような概念とどう違うのかを明確にすることです。同名の指標でも、ワークフローの一部は共通でも、統計量やベースラインが異なることが多いためです。
必要なら、あなたが取り組んでいる正確な定義(式のテキスト)を共有してください(パラメータ名を含む)。その定義に合わせて計算手順を照合できるため、正確な再現が可能になります。
DOCUMENT END