線形回帰を用いてアルファシグナルを構築する方法(クオンツフレームワーク)

@RohOnChain
英語1 か月前 · 2026年6月08日
475K
339
30
23
824

TL;DR

本ガイドでは、トレーディングにおける線形回帰への機関投資家的なアプローチを詳しく解説します。アルファをベータから分離する方法、p 値を用いたシグナルの検証方法、そしてアウトオブサンプルテストでノイズに対抗する方法を学びます。

線形回帰を使ってすべてのトレードで勝ち、本当のアルファシグナルを構築し、正確な勝利コードを共有する方法

さっそく本題に入りましょう。

ブックマーク推奨

- 私は Roan です。システム設計、HFT スタイルの実行、そして定量取引システムに取り組んでいるバックエンド開発者です。私の仕事は、予測市場が負荷の下で実際にどのように振る舞うかに焦点を当てています。ご提案、思慮深いコラボレーション、パートナーシップについては、DM を開いています。

どのクオンツにもこんな話がある。

1 週間かけてモデルを組む。バックテストは完璧に見え、 equity curve は一直線に上がり、ついに見つけたと思う。ライブで運用する。2 週間後には損失が出ていて、なぜかさっぱりわからない。

このサイクルが、どんな市場暴落よりも多くのクオンツのキャリアを終わらせるのを何度も見てきた。モデルは決して本物ではなかった。ノイズをシグナルに見せかけていただけだ。そしてこの分野全体で最も価値のあるスキルは、1 ドルもリスクを負う前に、その 2 つを見分ける方法を学ぶことだ。

そのスキルは、定量ファイナンスで最も過小評価されているツールから始まる。

線形回帰。

それがどう聞こえるかはわかっている。線形回帰は、誰もが午後に学んで通り過ぎたと思っているものだ。しかし、何年もの歳月と実際の損失を経て理解したのはこれだ。トップファームで数十億を運用している人々は、主要なシグナルのほとんどに、エキゾチックなディープラーニングのモンスターを使っていない。彼らは線形回帰を、ほとんどの人が決して到達しない深さで理解し、ほとんどの人が決して築かない規律で適用している。

歴史上最も成功したトレーディング運用を見てみよう。

ジム・シモンズは、このまさに基盤の上に Renaissance Technologies を築いた。彼の Medallion Fund は、1988 年から 2018 年にかけて平均約 66 パーセントの年間総収益率を記録し、これまでに記録された中で最高の記録である。そして彼自身のチームの説明によれば、このファンドのトレードのうち的中したのはわずか約 50.75 パーセントだった。何百万ものトレードにわたる、その剃刀のように薄いエッジは、1000 億ドル以上の富に複利された。彼らは未来を予測していたわけではない。ノイズの海から、小さく、真実で、再現可能なシグナルを引き出していたのだ。それはまさに回帰が行うように作られたことだ。

AQR は、現在約 1790 億ドルを運用しているが、回帰ベースのファクターモデルで帝国を築いた。

PDT Partners は、一度も損失の年を出すことなく、長年にわたって統計的仲裁を運営した。

これが誰も教えてくれなかった線形回帰のバージョンだ。

この記事を読み終えるまでに、あなたは線形回帰が本当は何か、アルファが実際に何を意味するか、実際のコードを使ってシングルファクターとマルチファクターのシグナルをゼロから構築する方法、機関投資家の研究者のように回帰出力を読む方法、本当のシグナルと偶然を分ける正確なテスト、そしてなぜ本物のシグナルでさえも最終的に死ぬのかを理解するだろう。

注:この記事は意図的に長く、各部分は前の部分の上に構築されています。ライブの市場で生き残るシグナルを構築することに真剣なら、すべての単語を読んでください。魔法のインジケーターを望むなら、これはあなた向けではありません。

パート 1: 線形回帰が実際に何であるか

Roan - inline image

線形回帰は、すべてのデータポイントに同時に最も近い単一の直線を見つける。

金融はひとまず忘れよう。

線形回帰とは、点の雲を通して最適な直線を描く数学にすぎない。

住宅の広さを住宅価格に対してプロットすることを想像してほしい。大きい家はより高価なので、点は上方向にドリフトする。線形回帰は、それらすべての点に同時に最も近い 1 本の直線を見つける。新しい家の広さを入力すると、予測価格が読み取れる。それが全体のアイデアだ。それは入力と出力の関係を学習し、それを使って予測する機械だ。

アンドリュー・ンは、彼の有名なスタンフォード大学の機械学習コースをこのまさに住宅価格の例で始める。なぜなら、それは最も単純な学習アルゴリズムであり、他のすべてが構築される基盤だからだ。

この直線の公式は、学校で既に知っているものだ:

y = a + b x

ここで y は予測するもの、x は入力、b は傾き(x が増加するにつれて y がどれだけ急激に増加するか)、a は切片(x がゼロのときの y の値)である。最適な a と b を見つける方法は、Ordinary Least Squares(OLS)である。考えられるすべての直線の中で、OLS は直線と実際の点の間のギャップの二乗和を可能な限り小さくするものを選ぶ。二乗しているため、上と下のミスは両方カウントされ、大きなミスは小さなミスよりもはるかに厳しく罰せられる。

全体を数行で確認できる:

python
1import numpy as np
2import statsmodels.api as sm
3
4x = np.array([1400, 1600, 1700, 1875, 2350, 2450]) # 住宅の広さ
5y = np.array([245, 312, 279, 308, 405, 324]) # 価格(千ドル単位)
6
7X = sm.add_constant(x) # 切片項 'a' を追加
8model = sm.OLS(y, X).fit()
9print(model.params) # a と b を出力

これを市場に当てはめてみよう。トレーディングでは、y は資産のリターンになり、x はそのリターンを予測すると考えるファクターになる。傾きはそのファクターに対する感応度になる。そして、その控えめな切片 a は、定量ファイナンスにおいて最も重要な単一の数字になる。その理由は次のとおりだ。

パート 2: アルファが実際に何であるか

Roan - inline image

総リターンは、市場が説明する部分であるベータと、市場が説明できない部分であるアルファに分割される。

ほとんどのトレーダーは、アルファという言葉を利益を意味するために使う。それは間違いであり、その誤りは高くつく。

アルファとは、既知のリスクファクターへのエクスポージャーでは説明できない、あなたの戦略が生み出すリターンである。もしあなたが年間 20 パーセント稼いだが、市場も同じく 20 パーセント稼いだなら、あなたのアルファはゼロだ。あなたは単にベータを保有していただけであり、市場リスクを取ることに対して得たリターンだ。あなたは波に乗ったことに対して報酬を得たのであり、スキルに対してではない。

この区別こそがすべてであり、回帰はこの 2 つを分離する刃である。基礎となるモデル。時刻 t におけるあなたの戦略のリターン rₜ は、ベースラインにファクター Xₜ へのエクスポージャーを加え、ノイズを加えたものである:

rₜ = α + β Xₜ + εₜ

ゆっくり読んでほしい。β はファクターに対する感応度である。ファクターが市場であれば、ベータは市場が動いたときにあなたがどれだけ大きく動くかを示す。εₜ はランダムなノイズであり、どのファクターも説明できない部分である。そして α、切片は、ファクターが何も貢献しないときに平均して得るリターンである。

その切片こそが全体の賞品である。既知のすべてのリスクファクターを取り除いた後でも、あなたの戦略が依然として正の統計的に有意なアルファを示すなら、あなたは本物の何かを見つけたことになる。もしファクターを考慮した瞬間にアルファが消え去るなら、あなたは優位性を持っていなかったことになる。あなたは天才を装った偽装ベータを持っていただけだった。

マイケル・ジェンセンは、1968 年にミューチュアル・ファンド・マネージャーが実際に市場に勝つことができるかをテストしたとき、初めてスキルをこのように定義した。彼はこのまさに回帰を実行し、1 つの質問をした。切片はゼロと異なるか? ほぼ 60 年が経った今でも、これは依然として機関投資家のパフォーマンスが判断される方法である。これはジェンセンのアルファと呼ばれ、この分野の基盤である。

**従って、シグナルを構築するとき、あなたの仕事は決して生のリターンを最大化することではない。

既知のファクターがなくなった後も生き残る正の切片を生み出すことである。それを忘れるな。他のすべてはそれに奉仕する。**

パート 3: 最初のシグナルをゼロから構築する

Roan - inline image

真のシグナルは、既知のすべてのファクターが取り除かれた後にのみアルファを測定する。

最も単純な実際のモデルを構築し、それを機関投資家グレードにしよう。あなたがある資産のリターンがファクターによって部分的に予測可能であると信じているとしよう。関連する資産の事前リターン、モメンタム指標、バリュー指標などだ。シングルファクター回帰は:

rₜ = α + β Xₜ + εₜ

Python ではほんの数行であり、切片は絶対にスキップしてはいけない部分である:

python
1import statsmodels.api as sm
2
3# X はあなたのファクター系列、y は説明したい資産リターン
4X = sm.add_constant(X) # この行がアルファ切片を作成する
5model = sm.OLS(y, X).fit()
6print(model.summary())

その add_constant 行は形式的なものではない。それはあなたのアルファ項を作成する行だ。それを忘れると、線をゼロに強制することになり、出力全体で最も重要な数字を捨てることになる。

しかし現実世界は決して 1 つのファクターではない。本格的なシグナルは多くの影響を同時に考慮する。それがマルチファクターモデルである:

rₜ = α + β₁X₁ₜ + β₂X₂ₜ + ... + βₖXₖₜ + εₜ

各ベータは、他のすべてを一定に保ちながら、自身のファクターの効果を測定する。その「他のすべてを一定に保つ」というフレーズこそが、回帰の静かなスーパーパワーである。それは各ファクターのユニークな貢献を分離し、重複を取り除く。確立されたファクター(市場、規模、バリュー、モメンタム)に対して戦略のリターンを回帰すると、その切片に残っているアルファは、既知のファクターのどれも説明できないあなたの優位性の断片である。

python
1import statsmodels.api as sm
2
3# factors は DataFrame、各列が 1 つのファクター、リターン y に合わせて整列
4X = sm.add_constant(factors)
5model = sm.OLS(y, X).fit()
6
7alpha = model.params['const'] # あなたの候補となる優位性
8p_alpha = model.pvalues['const'] # それをどの程度信頼するか
9print("Alpha:", round(alpha, 5))
10print("Alpha p-value:", round(p_alpha, 4))

その残差切片があなたの候補シグナルである。ここから先はすべて、それが本物かどうかを証明することに関する。

これはまさに、ほとんどの公開チュートリアルが停止する場所であり、機関投資家の実際の作業が始まる場所である。ファクターの構築、ニュートラリゼーション、生のシグナルを取引可能なブックに変えるウェイト付けスキーム。AQR のようなファームがこれらの回帰をライブのファクターポートフォリオに変える方法を正確に見たいなら、その内訳は私がすべてを説明する場所である。

パート 4: 機関投資家の研究者のように出力を読む

Roan - inline image

プロはリターンがどれほど大きいかを尋ねない。彼らはそれが偶然ではないという確信がどれほどあるかを尋ねる。

そのサマリーを実行するとき、ほとんどの人は 1 つの数字を見て次に進む。訓練された研究者はそれを診断レポートのように読む。以下が実際に重要なことだ。

係数とその符号。 各ベータは方向と強さを与える。どんな数字を信頼する前に、その符号が経済的に意味をなすかどうかを尋ねよ。もしあなたのモデルが何かがより高価なときに買うと言い、その理由を説明できないなら、あなたはファクターではなくまぐれを見つけたのだ。

p値。 これがすべての核心である。それは 1 つの質問に答える。もしこのファクターが本当に効果を持たないとしたら、これほど強い関係を純粋に偶然で見る可能性はどのくらいあるか? p値 0.62 は、あなたが見ているものがランダムな運である確率が 62 パーセントあることを意味する。0.05 未満は、結果を真剣に受け止めるための従来の基準である。p値 0.62 の失敗したモデルを見ているクオンツは、弱いシグナルを見ているのではない。彼は純粋なノイズを見ている。

決定係数(R-squared)。 あなたのモデルが説明するリターンの変動の割合であり、ここに初心者を真っ逆さまにひっくり返す部分がある。リターン予測において、高い R-squared は通常、トロフィーではなく警告である。実際のリターンシグナルは弱い。0.01 や 0.02 の R-squared は、それが持続的で本物であれば、非常に収益性が高くなり得る。リターン予測で 0.9 を見たら、ほぼ確実にルックアヘッドバイアスがあるか、誤って何かを自分自身に回帰している。

t統計量。 係数をその標準誤差で割ったもの。大まかなルールとして、絶対値で 2 を超える t統計量は 0.05 のしきい値に一致する。真剣な研究者は、まったく新しいシグナルには 3 以上を要求する。なぜなら、このシグナルの前に静かにどれだけ多くのシグナルをテストしたかを正確に知っているからだ。

これらは、テーブル全体を読む代わりに直接取り出すことができる:

python
1print("t-stats:\n", model.tvalues)
2print("p-values:\n", model.pvalues)
3print("R-squared:", round(model.rsquared, 4))

このシフトを内面化せよ。初心者は「リターンはどれほど大きいか」と尋ねる。プロは「このリターンが偶然ではないという確信はどれほどあるか」と尋ねる。質問におけるその単一の変更がすべての違いである。

パート 5: 本当のシグナルとノイズを分けるテスト、そしてシグナルが死ぬ理由

Roan - inline image

すべての候補を同じ試練にかけよ。ほとんど何も生き残らない。それがポイントだ。

ここに残酷な真実がある。十分な数のランダムなシグナルをテストすれば、いくつかは純粋な偶然で収益性があるように見えるだろう。0.05 の水準で 100 の役に立たないシグナルをテストすると、約 5 つが運だけで合格するだろう。これが多重検定問題であり、バックテストが嘘をつく第一の理由である。以下は、本格的なデスクがどのようにそれに対抗するかである。

サンプル外テスト。 シグナルを構築したデータで決して判断してはならない。履歴を分割せよ。最初の部分で構築し、モデルが見たことのない部分でテストせよ。本当のシグナルはその交差を生き残る。適合された空想は、新鮮なデータに直面した瞬間に崩壊する。非交渉事項である。

python
1split = int(len(y) * 0.8)
2X_train, X_test = X[:split], X[split:]
3y_train, y_test = y[:split], y[split:]
4
5model = sm.OLS(y_train, X_train).fit()
6oos_pred = model.predict(X_test) # 未見のデータでテスト

情報係数(IC)。 機関投資家のファクター研究者は、滅多に 1 つの回帰で一か八かの賭けをしない。彼らは IC、つまりファクターの値と実際の将来リターンの間の相関を、何度も何度も時間をかけて計算する。平均 IC が約 0.03 から 0.05 を超え、多くの期間にわたって安定しているファクターは、毎回、単一の豪華なバックテストを持つものに勝る。レジーム間での安定性が本当の指標である。

ニューウェイ・ウェスト標準誤差。 金融データは、リターンとボラティリティが時間的にクラスター化するため、OLS の中心的な仮定を破る。生の p値は嘘をつき、通常あなたのシグナルを良く見せる。ニューウェイ・ウェストはこのための標準誤差を修正する。それを使用することは、自分が何をしているかを知っている人を静かに示す。

python
1# ニューウェイ・ウェストで補正された有意性、機関投資家のデフォルト
2model = sm.OLS(y, X).fit(cov_type='HAC', cov_kwds={'maxlags': 5})
3print(model.summary())

多重検定補正。 もし 50 のシグナルを試したなら、通常の基準で勝者を判断することはできない。簡単な防御はボンフェローニ補正であり、しきい値をテストしたものの数で割る。50 のシグナルを試したか? 0.05 ではなく、0.001 未満の p値を要求せよ。それは残酷であり、それがポイントだ。それは何回釣りに行ったかについて正直になることを強制する。

候補をサンプル外検証、安定した IC、ニューウェイ・ウェスト有意性、多重検定補正にかけ、それでもまだ立っているなら、あなたはほとんどのリテールトレーダーが一生かけて生み出さないものを持っている。あなたが本当に信頼する権利を得たシグナルだ。

しかし最後の真実を理解せよ。たとえ本物のシグナルでも減衰する。アルファは市場の非効率性に存在し、シグナルが知られ取引された瞬間、取引自体が非効率性を押しのける。ファクターの混雑に関する最近の研究は、単純なモメンタムのような機械的で簡単にコピーできるシグナルは、資本が積み上がるにつれて鋭く予測可能な曲線に沿って減衰し、ファクター投資が ETF を通じて安価になったことでこの混雑が急激に加速したことを示している。最も単純なシグナルは最も混雑し、最も早く死ぬ。耐久性のある優位性は、構築に実際の作業を必要とするシグナルと、古いものが侵食されるよりも速く新しいものを生み出す研究プロセスに存在する。それが、Renaissance が 30 年間、一日たりとも研究を止めなかった理由である。

宿題: あなたが現在信じているシグナルを 1 つ取れ。データの最新 20 パーセントでそれを実行せよ。これは見たことがないふりをする。もしアルファが消えたら、あなたは実際の資金を節約したことになる。それはあなたがこれまでに実行する最も価値のあるテストになるだろう。

パート 6: あなたが構築したもの、最初から最後まで

Roan - inline image

すべての本当のシグナルは、混雑するにつれて侵食される。それらを置き換える研究エンジンこそが実際の優位性である。

一歩下がって、あなたが今持っている完全な機械を見よう。なぜなら、それらの部品は 1 つのクリーンなパイプラインに接続されるからだ。

あなたはファクターから始める。将来のリターンに関する情報を運ぶと信じるものなら何でも。あなたは資産のリターンをそのファクターに対して OLS で回帰し、常に切片を含める。その切片があなたの候補アルファである。マルチファクター回帰に拡張することで、あなたのアルファは、既知のリスクファクター(市場、規模、バリュー、モメンタム)が取り除かれた後にのみ測定される。切片に残るものは、純粋で説明できない優位性である。

次に、それを尋問する。p値を読んで、それが運かもしれないかどうかを尋ねる。符号が経済的に意味があるかを確認する。魅惑的な高い R-squared を無視し、小さく正直なものを尊重する。モデルが触れたことのないデータでサンプル外検証する。多くの期間にわたって情報係数(IC)を計算し、それが一度きりのまぐれではなく安定していることを確認する。ニューウェイ・ウェストで標準誤差を補正し、市場の時間構造があなたを欺かないようにする。そして多重検定補正を適用し、試したシグナルの数が偽の勝者を生み出せないようにする。

もう一方の側から出てくるものは、推測ではない。それは、測定された優位性、既知の信頼水準、未見のデータで生き残るという証拠、そしてそれが本物である可能性の正直な会計を持つシグナルである。それが、モデルが 2 週間で死ぬ人と、持ちこたえる何かを構築する人の違いである。

そして、これが実際にどのようにお金を稼ぐかである。小さくても本物で安定した優位性を持つシグナルを、多くの独立した機会にわたって取引すると、複利効果が生まれる。Renaissance は半数をわずかに超える程度しか正しくなく、それを市場史上最大の財産に変えた。なぜなら、優位性は本物であり、再現可能であり、膨大な数の賭けにわたって適切にサイズ設定されたからである。あなたは今、同じ青写真に従って作業している。シグナルを構築し、それが本物であることを証明し、賢明にサイズ設定し、その IC が衰え始めた瞬間にそれを置き換えよ。

その置き換えループこそがキャリア全体である。1 つのシグナルは取引である。それらが減衰するよりも速く本物のシグナルを生み出し続ける研究プロセスは、フランチャイズである。

まとめ

線形回帰は、あなたが飛ばした退屈なツールではない。それはデータを通して最適な直線を描き、アルファが実際に何であるかを定義し、最初の実際のシグナルを構築し、そのシグナルが本物かノイズかをテストし、シグナルが死に始めるときに警告する。

アルファとは、既知のすべてのリスクファクターが取り除かれた後に生き残る切片である。あなたは OLS を使用して候補を構築する。最初はシングルファクター、次にマルチファクター。研究者のように出力を読む。そこでは、p値と安定性がリターンのサイズよりも重要である。サンプル外検証、安定した情報係数、ニューウェイ・ウェスト誤差、そして試したシグナルの数に対する補正で、多重検定の罠から防御する。そして、すべての本当のシグナルは減衰することを受け入れる。つまり、真の優位性は研究エンジンであり、単一のモデルではない。歴史上最大のファンドを築いたのと同じエンジンである。

Sharpe 比 0.03 と p値 0.62 を見つめて座っているクオンツは、不運なのではない。彼はこの記事の規律をスキップしたのだ。彼のようになってはいけない。

ここであなたに考えてもらいたい質問がある。

もし本当のアルファが広く知られるようになった瞬間に減衰するなら、シグナルを公開することはそれを破壊し、一方でシグナルを隠し持つことは、他の人が独立してそれを発見するにつれて、依然としてゆっくりと死ぬことを意味する。

では、耐久性のある優位性は実際にどこから来るのか? シグナル自体か、それともそれらを置き換える研究プロセスのスピードか?

あなたの答えは、あなたが 1 回の大きな勝利を追い求めるトレーダーのように考えるか、それとも数十年にわたって優位性を印刷する機械を構築するクオンツのように考えるかを明らかにする。

コメントにあなたの答えを残してください。間違った答えはありません。しかし、非常に示唆に富む答えはある。

ワンクリック保存

YouMindでバイラル記事をAI深読み

ソースを保存し、的を絞った質問をし、主張を要約して、バイラル記事を再利用できるノートに変えます。すべてを1つのAIワークスペースで行えます。

YouMindを探索
クリエイターのために

あなたの Markdown をきれいな 𝕏 記事に

自分の長文を投稿するとき、画像・表・コードブロックを 𝕏 向けに整形するのは手間がかかります。YouMind は Markdown 全体を、そのまま投稿できるきれいな 𝕏 記事に変換します。

Markdown → 𝕏 を試す

解読すべきパターンをもっと

最近のバイラル記事

バイラル記事をもっと見る