Slide 1

Slide 1 text

金融時系列のための データ拡張入門 tonic 2024/3/28

Slide 2

Slide 2 text

1. 自己紹介 tonic(@tonic3561) ・フリーランスDS ・Kaggler

Slide 3

Slide 3 text

目次 1. データ拡張、mixupとは? 2. テーブルデータとデータ拡張 3. 金融時系列でのmixup検証 a. 問題設計(Optiver vs Jquants API) b. 結果・考察 4. まとめ

Slide 4

Slide 4 text

1. データ拡張、mixupとは? ◼ データ拡張(Data Augmentation) • 学習データにある変換をかけ、データ量を増やす手法 • 画像や文章をNeural Networkで扱う場合に広く用いられる Flip Crop Rotate

Slide 5

Slide 5 text

1. データ拡張、mixupとは? ◼ mixup … 2つのデータを適当な割合で合成するデータ拡張の手法 • 特徴量、ラベルの両方を混ぜ合わせるのがポイント 𝑦1 = [1, 0] 𝑦2 = [0, 1] 𝑦 = [0.7, 0.3]

Slide 6

Slide 6 text

2. テーブルデータとデータ拡張 ◼ (金融時系列を含む)テーブルデータでは、データ拡張の有効性は不明瞭 • ラベル情報を保存する変換が自明ではない • 「ミニバッチごとに拡張データを生成」というフローがGBDTと相性悪い … etc ◼ ただし夢はある • 金融時系列のデータ不足問題を解消? • ノイズを乗り越えた汎化性向上? ? 金融時系列のmixupは いいぞ… 某マケデコAMAにて

Slide 7

Slide 7 text

3.金融時系列でのmixup検証 ◼ そこで、以下の2つの問題設計でmixupの効果を検証 1. 板情報データから1分後のリターンを予測 2. Jquants API データから日次リターンを予測 ? データ拡張はロバストな 問題設計なら効くぞ… 某マケデコ Discord chにて ← ロバスト ← 非ロバスト

Slide 8

Slide 8 text

3.a. 問題設計 ◼ 分次リターン予測(Optiver) • Kaggle で最近開催された金融コンペの問題設計を利用 • データ範囲: 匿名の200銘柄 * (480日 * 55 snapshot) • 評価指標: MAE • 目的変数: 各銘柄の60秒後のスペシフィックリターン • 特徴量: NasdaqでのClosing Auction板の集約情報 例) インバランスサイズ、ベスト価格・サイズ、WA …

Slide 9

Slide 9 text

3.a. 問題設計 ◼ 日次リターン予測(Jquants API) • Jquants API ライトプランで取得可能な日次データ(4本値、財務情報)を利用 • データ範囲: 198銘柄(N225から抽出)* 5年分 • 評価指標: 相関係数 • 目的変数: 各銘柄の日次相対リターン • 特徴量: ファクター別指数ランキングから10個程度ピックアップ 例) ROE、時価総額、移動平均乖離…

Slide 10

Slide 10 text

3.a. 問題設計 ◼ モデル・評価方法 • Optiverの解法で用いたNeural Networkのアーキテクチャを使用 • mixupの有無、適用率(※)による精度の違いを調べる • 特徴量集合に対して、ミニバッチごとにランダムに拡張を行う • mixupのPytorchでの実装はこちら(2023マケデコアドベントカレンダー) ※適用率 … ミニバッチ内でmixupを適用するデータの割合

Slide 11

Slide 11 text

3.b. 結果・考察 ◼ 分次リターン予測 … mixupの効果あり • リーダーボードなら、tonicの位置(89位)から -50~+40位くらい ◼ 日次リターン予測 … mixupでむしろ悪化 • ただし、適用率は大きいほど精度が上がる傾向 適用率 相関係数 MAE 0.0 0.2107 6.2440 0.7 0.2122 6.2402 適用率 相関係数 標準誤差 0.0 0.0346 0.0031 0.5 0.0278 0.0044 0.7 0.0280 0.0049 1.0 0.0290 0.0047 分次リターン 日次リターン

Slide 12

Slide 12 text

4. まとめ ◼ 金融時系列におけるデータ拡張(mixup)の有効性を検証 ◼ ロバストな問題設計では効果あり! • 汎用かつ手軽にデータを増やせるのでぜひお試しあれ • データ不足で解けなかったタスクも解けるかも? ◼ 非ロバストな問題では工夫が必要かも • 今回は特徴量集合をランダムに合成したが…考えられる方法はたくさん • 特徴量を合成 vs 元系列を合成? • 似たデータ点(同日、同銘柄、同セクターetc)を合成? • 分類タスクでソフトラベルを利用?