Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Exploratory Data Analysis of the Numerai Signa...
Search
habakan
July 25, 2024
0
330
Exploratory Data Analysis of the Numerai Signals V1 Dataset
habakan
July 25, 2024
Tweet
Share
More Decks by habakan
See All by habakan
Numeraiモデルのポートフォリオ構築の試み
habakan
1
400
NN Starterモデルを ベイズNNにして分析してみた
habakan
1
2.2k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
40
2.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
KATA
mclloyd
29
14k
Speed Design
sergeychernyshev
25
670
Building an army of robots
kneath
302
44k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
A better future with KSS
kneath
238
17k
Bash Introduction
62gerente
608
210k
Embracing the Ebb and Flow
colly
84
4.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Why Our Code Smells
bkeepers
PRO
335
57k
Transcript
Exploratory Data Analysis of the Numerai Signals V1 Dataset Numerai
Comunity Tokyo Meetup 2024 7/20 habakan 1
Profile 2 habakan Software Engineer Account ・Twitter: @habakan_f ・https://numer.ai/habakan
3 Abstract Numerai Signals V1のEDAをした データは参加者で用意することがメインだったNumerai Signalsにおいて 2024/2にStarter featuresのデータセットV1がリリースされた https://forum.numer.ai/t/signals-v1-data-release/7050
Numerai main tournament datasetと組み合わせながら 2つのデータセットの一致点、相違点を中心に分析した
4 背景: Main TournamentのPFが厳しくなった Main Tournamentでモデリングを Stakeし続け話す内容がなくなった
5 背景: Main TournamentのPFが厳しくなった TC時代に良かったモデルが MMC以降一部のモデルが厳しくなる
6 背景: Main TournamentのPFが厳しくなった TC時代に良かったモデルが MMC以降一部のモデルが厳しくなる モデルの一部がMMCが悪く Stakeモデルを一部に変更
7 Numeraiのようなデータセットの構築への興味 MMC以外にも考えさせられる出来事がありました ・My Numerai recent return < My wife
trading recent return ・JQuantsAPIでLSモデルを作るが、線形モデルで毎回学習結果が変わる ・嫁に「お前のデータの RoEなんかおかしくね?」 と言われ API経由で毎回収集し直している財務データが変わることに気づく
8 Numeraiのようなデータセットの構築への興味 MMC以外にも考えさせられる出来事がありました ・My Numerai recent return < My wife
trading recent return ・JQuantsAPIでLSモデルを作るが、線形モデルで毎回学習結果が変わる ・嫁に「お前のデータの RoEなんかおかしくね?」 と言われ API経由で毎回収集し直している財務データが変わることに気づく ・株式データのデータ基盤として正しいデータ提供とは何か考え始める ・Main Tournamentの匿名性データで逃げてきた要素を Signals V1を触りながらキャッチアップしたい ・売り切る前に下落してしまっているNMRをなんとかしたい
9 分析方針 Main Tournamentのデータセットとの違いを意識し データセットの構造を理解する 今まで慣れてきたMain Tournamentとの差分を主に分析する その上で情報量の多いSignalsの場合どのような分析ができるかを 簡易的に検証する ※Main
Tournamentのデータセットはv4.3を利用 分析内容 ・データ構造でのMain, Signalsのデータセット比較 ・特徴量の分析 ・特徴量とTargetの分析
10 Numerai Signals 参加者が所持しているデータソースからシグナルを提出する
11 データ構造での Main, Signalsのデータセット比較
12 Main TournamentとSignalsの比較 Main Tournament (Rain) Signals V1 Dataset データ区分
Train, Valid, Live Train, Valid, Live 特徴量数 2276 21 target数 48 22 Ticker情報 匿名化されている 匿名化されていない 日付変数 era date trainデータ数 2420521 2164693 validation データ数 2794929 3023759
13 ポイント: Ticker, eraの構造自体は似ている データ数は異なるが、 era数は一致している Main Tournament (Rain) Signals
V1 Dataset trainデータ数 2420521 2164693 validation データ数 2794929 3023759 総データ数 5215450 5188452 train era数 574 522 validation era数 550 602 総era数 1124 1124
14 ポイント: Ticker, eraの構造自体は似ている EraごとのTicker数の推移は似ている
15 国別の割合推移 データセットは提供されているが
16 Signals V1の特徴量について
17 Signals V1の特徴量 24個の特徴量で構成されており、グループが存在 feature_adv_20d_factor feature_beta_factor feature_book_to_price_factor feature_country feature_dividend_yield_factor feature_earnings_yield_factor
feature_exchange_code feature_growth_factor feature_impact_cost_factor feature_market_cap_factor feature_momentum_12w_factor feature_momentum_26w_factor feature_momentum_52w_factor feature_momentum_52w_less_4w_factor feature_ppo_60d_130d_country_ranknorm feature_ppo_60d_90d_country_ranknorm feature_price_factor feature_rsi_130d_country_ranknorm feature_rsi_60d_country_ranknorm feature_rsi_90d_country_ranknorm feature_trix_130d_country_ranknorm feature_trix_60d_country_ranknorm feature_value_factor feature_volatility_factor ranknormは国ごとに標準化 語尾にfactorがついているものは targetに対 してneutralなリスクファクター テクニカル以外の ファクターも含まれている https://forum.numer.ai/t/signals-v1-data-release/7050
18 ポイント: featureに欠損が含まれている そのままTargetとのCorrの累積を見ようとし、欠損を発見
19 ポイント: featureに欠損が含まれている 古いEraが欠損が多い Factorが存在 各特徴量のEraごとの欠損率
20 ポイント: featureは分位化されていない 単峰でほぼ標準化はされているものの Main Tournamentのようにbinningはされていない
21 ポイント: featureに欠損が含まれている 欠損の相関をみると、グループごとに欠損のタイミングが似ている Eraごとの欠損率の相関ヒートマップ
22 Tickerごとの特徴量分析 上位銘柄10件で銘柄ごとの分布を確認 factor系はTickerごとに分布が異なる
23 Tickerごとの特徴量分析 上位銘柄10件で銘柄ごとの分布を確認 ranknorm系は分布が異なるわけではない
24 Tickerごとの特徴量分析 targetは標準化されている
25 特徴量とTargetの分析
26 Signals V1のTarget 24個の特徴量で構成されており、グループが存在
27 Signals V1のTarget 24個の特徴量で構成されており、グループが存在 target target_raw_return_20 target_raw_return_60 target_factor_neutral_20 target_factor_neutral_60 target_factor_feat_neutral_20
target_factor_feat_neutral_60 target_camille_20 target_camille_60 target_sydney_20 target_sydney_60 target_irina_20 target_irina_60 target_alexandra_20 target_alexandra_60 target_colleen_20 target_colleen_60 target_jean_20 target_jean_60 target_eleven_4 target_eleven_20 target_eleven_60 targetはtarget_factor_feat_neutral_20 リスクファクター? を直交化したtarget Main Tournamentのfeatures をさらに直交化 https://forum.numer.ai/t/new-signals-targets/5853 eleven系は旧target e.g. target_eleven_4 = target_4d
28 Corr Cumsum plot: target Targetとの相関を cumsumでplot ranknorm系がsharpが高い Corr Sharpe
feature_ppo_60d_130d_country_ranknorm 0.2986 feature_ppo_60d_90d_country_ranknorm 0.2918 feature_rsi_90d_country_ranknorm 0.2839 Corr Sharpe上位3ファクター
29 Corr Cumsum plot: target_raw_return_20 データセットは提供されているが Corr Sharpe feature_earnings_yield_factor 0.2648
feature_value_factor 0.2638 feature_dividend_yield_factor 0.2159 Corr Sharpe上位3ファクター
30 Corr Cumsum plot: target_factor_neutral_20 疑問:Factor Neutralなら無相関になるのではないか? Corr Sharpe feature_value_factor
0.5263 feature_earnings_yield_factor 0.4348 feature_book_to_price_factor 0.3624 Corr Sharpe上位3ファクター
31 Corr Cumsum plot: target_feat_factor_neutral_20 疑問:Main Tournamentに含まれている Featなら無相関になるのでは? →Factor featureはMain
Tournamentのデータに含まれていない? Corr Sharpe feature_adv_20d_factor 0.2322 feature_growth_factor 0.1396 feature_price_factor 0.1153 Corr Sharpe上位3ファクター
32 まとめ ・Main TournamentのEra期間はユニバースは大枠一致している 異なる点 ・Train, Validation期間は比率が異なっている ・欠損値が存在する 欠損は古い期間に多いが、特徴量のグループごとに欠損は相関する ・SignalsではTickerごとに特徴量の分析ができる
Tickerごとに分布の異なる特徴量も存在する ・Targetと特徴量の関係を分析し、直交化の方法を分析・考察した ・線形ではranknorm系がtrainだと強い ・factor系特徴量とtarget_factor_neutralizedで直交化されている factorはおそらく一緒ではない? ・factor系はMain Tournamentの直交化特徴量には含まれていない?
33 おまけ Main Tournamentの特徴量特定(失敗) Signals V1の特徴量が Main Tournamentに含まれているか検証 共分散行列が一致するような Main特徴量の組み合わせを探索
ただ、解が多いためかあまりうまくいっていない
34 おまけ Main Tournament V5での適応 Main Tournamentのv5は特徴量などは同じだが Ticker数が異なる 既存と比較してユニバースを拡張している Signalsもユニバースは拡張される?
35 今後の方向性 ・分位化や欠損値補完の扱いはどうするか? 中央値処理で大丈夫か? ・y-finance, JQuantsなどの組み合わせたらどうなるか? 同じfactorを作れるか? アンサンブルで向上するか? ・ユニバースを日本株に絞ったときどうなるか? JQusantsで作ったモデルのみだと予測は落ちるのか?