The Other Way a Regression Lies: Endogeneity, 2SLS, and the Gamma Calibration Problem
Selection bias in the search is not the only way a regression fools you. When the regressor is correlated with the error, more data makes the estimate more confidently wrong. Instrumental variables applied to the one endogeneity problem this blog has already left open: permanent impact from net taker flow.

回帰が嘘をつく可能性がある構造的に 2 つの異なる方法があり、このブログではこれまでのところそのうちの 1 つだけを攻撃しています。
1 つ目は、検索 における選択バイアスです。1 万回のバックテストを実行し、最良のものを維持しましたが、表示されている数値は効果ではなくノイズ分布の最大値です。それがしぼんだシャープレシオとその頂点正直なネガティブ]の主題です。解決策は、検索に価格を設定することです。
2 つ目は、まったく検索を行っていない単一の回帰に基づく 係数自体 の偏りです。リグレッサーが誤差項と相関している場合、OLS には偏りがあり、一貫性がありません。また、サンプリング ノイズとは異なり、これはサンプル サイズとともに縮小しません。データが増えると、間違った数値が厳しくなります。ブートストラッピング、ウォークフォワード、またはデフレがどれだけ行われても、それには影響しません。なぜなら、これらの方法のいずれも識別を問題とせず、選択のみを問題にするからです。
この記事は 2 番目の失敗に関するものであり、ここでは抽象的な懸念事項ではありません。 Almgren-Chriss の校正記事 は、ネットテイカーフローの 5 分間の仲値変動を回帰することによって永続的な影響 に適合し、数パーセントの と日ごとに 2 ~ 5 倍変動する係数を取得し、最初の構造的理由として内生性を挙げています。「価格がフローに反応するのと同じくらい、フローも価格に反応します。モメンタムトレーダーは価格がだから購入します」ローズ; フロー収益率の単純な OLS は彼らの反応を拾い上げ、それが影響であると考えます。」また、クリーン フィックス (構造上外生的な独自の塗りつぶし) にも名前が付けられます。
これは、名前付きの機器とデータがすでに社内にある場合の操作変数の問題です。以下は推定、診断、実験です。
内生性を 1 つの段落でまとめる

OLS は、 の下でのみ、 内の原因となる を推定します。 3つのことがそれを壊します。 省略された変数バイアス: が と の両方を駆動し、観測されない場合、それはエラー の中に存在し、 は を強制します。マイクロ構造では、観測されていない情報の到着がボリュームとボラティリティを同時に駆動します。 測定誤差: ノイズの多いプロキシ 、 を使用すると、常にゼロに向かって減衰します。ネット化された aggTrades フローは、断片化された市場全体にわたる真の署名付き注文フローのプロキシであり、目に見えない部分は測定誤差です。 同時性: Almgren-Chriss 衝撃校正] で、より鋭く、より具体的な形ですでに述べられています。これは、以下のすべての動機となる問題です。
IV ソリューション

機器 は、次の 2 つの条件を満たす必要があります。
- 関連性: 。テスト可能、そしてテストする必要があります。
- 除外: — は、 を通じてのみ に影響します。テストできません。これまで。これは経済的な議論であり、統計ではありません。
1 つの機器と 1 つの内因性リグレッサーの場合、推定量は 2 つの縮小型効果 (Wald 推定量) の比になります。
コントロールと複数の機器では 2SLS を使用します。 ステージ 1: 機器とコントロールの内生変数 を回帰し、適合値 を維持します。構造上、これらには機器主導の外生変動のみが含まれます。 ステージ 2: を実行します。マトリックス形式で、 を使用すると、次のようになります。
これを手動で実行する人全員を陥れる罠: 文字通り 2 つの lstsq 呼び出しを実行すると、ステージ 2 の標準エラーが間違っています。 は 生成された 回帰変数であり、残差分散は近似されたものではなく、元の から計算する必要があります。単純な 2 ステップの標準誤差は小さすぎるため、 統計が大きすぎて過剰拒否になってしまいます。実際の IV 実装を使用します。
from linearmodels.iv import IV2SLS
import pandas as pd
def iv_regression(df, dep_var, endog_var, instruments, controls=None):
"""2SLS with correct generated-regressor standard errors."""
y = df[dep_var]
endog = df[[endog_var]]
instr = df[instruments]
const = pd.Series(1, index=df.index, name="const")
exog = pd.concat([const, df[controls]], axis=1) if controls else const
res = IV2SLS(dependent=y, exog=exog, endog=endog,
instruments=instr).fit(cov_type="robust")
print(res.summary)
return res
実験: OLS ガンマと 2SLS ガンマ

テスト中の回帰は、Almgren-Chriss の記事からの永続的な影響の当てはめです。
は、上記の同時性の議論により内生的です。この商品はウィンドウ内の独自の約定です。メーカー約定は、市場の価格経路ではなく、独自の見積スケジュールと在庫ポリシーによってトリガーされるため、誤差のモメンタム反応成分とはおそらく相関関係のない注文フローの変動の原因となります。除外制限 (フィルがネット フローへの寄与を通じてミッドを「のみ」動かすというもの) は議論すべき前提であり、クォート自体がシグナル駆動である場合に最も弱くなります。相場が短期間の価格予測を条件にしている場合、商品は汚染されており、この設計は失敗します。純粋な在庫管理ポリシーまたはスプレッドキャプチャポリシーによる約定は、クリーンなケースです。
フィル データは、実装不足と DIY TCA] で説明されている TCA レコードから取得されます。このログは、独自の fills からのスリッページ カーブのフィッティング サンプルを提供するのと同じログです。コントロール: に遅れがあり、ウィンドウ内のボラティリティを実現しました。
# per 5-min bin over the sample:
# dS mid-price change (outcome)
# q_net signed net taker flow (endogenous)
# q_own signed own-fill quantity (instrument)
# dS_lag, rv controls
ols = IV2SLS(dependent=df.dS, exog=df[["const", "dS_lag", "rv"]],
endog=None, instruments=None).fit(cov_type="robust")
tsls = iv_regression(df, "dS", "q_net", ["q_own"], ["dS_lag", "rv"])
これを実行する価値があるかどうかは、OLS 、2SLS 、第 1 段階の 、および 2 つの係数間のギャップ (影響ではなく運動量反応である OLS 推定の割合) の 4 つの数値によって決まります。
第 1 段階の が 10 未満に戻った場合、それが結果です。独自のフィルは、 を識別するには 5 分分解能のネット フローの一部にすぎず、正直な書き込みは 正直なネガティブ] の形式でネガティブです。弱い商品の陰性は真の発見です。これは、ガンマ フィットの内生性がこのサンプル サイズと期間では修正できないこと、および OLS に基づいて構築された取引前コスト推定値には、除去できない上方バイアスが存在することを示しています。
診断

第 1 段階 F (弱い楽器)。 Staiger-Stock の経験則: 。 1 つの内因性リグレッサーの Stock-Yogo 臨界値はより厳密です。最大 IV サイズの 10% の場合、1 つの機器では 、2 つの機器では 19.93、3 つの機器では 22.30。 15% サイズの場合、8.96 / 11.59 / 12.83; 20% の場合、6.66 / 8.75 / 9.54。
Durbin-Wu-Hausman (IV は必要ですか)。 OLS に一貫性がある場合は効率も向上するため、切り替える前にテストしてください。残差拡張形式は実際的なものです。ステージ 1 を実行し、 を保持してから、 をリグレッサーとして追加して OLS 構造回帰を実行します。 の有意な係数は内生性の証拠です。
def durbin_wu_hausman(df, dep, endog, instruments, controls):
"""Augmented-regression form of the DWH endogeneity test."""
import statsmodels.api as sm
X1 = sm.add_constant(df[instruments + controls])
v_hat = df[endog] - sm.OLS(df[endog], X1).fit().fittedvalues
X2 = sm.add_constant(df[[endog] + controls].assign(v_hat=v_hat))
res = sm.OLS(df[dep], X2).fit(cov_type="HC1")
return res.tvalues["v_hat"], res.pvalues["v_hat"]
Sargan-Hansen (過剰識別)。 機器を使用すると、共同妥当性をテストできます: 。ここで、 は、すべての機器および外生コントロールの 2SLS 残差を回帰することによって得られます。統計よりも注意点が重要です。Sargan は、さまざまな方法で無効な商品のみを検出します。すべての計測器が同じ省略された変数と相関している場合、テストは問題なく合格し、何も通知されません。
暗号通貨の微細構造に存在する手段

有効な金融商品を見つけるのが最大の難関であり、株式、企業、財務のスタンバイ(アナリストのカバレッジ、税金対策、棚ぼたキャッシュフロー)はここでは役に立たない。実際には 2 つのクラスが適用されます。
| 内生変数 | 楽器 | 理論的根拠 |
|---|---|---|
| ネットテイカーフロー | あなた自身の塗りつぶし | 市場の価格経路ではなく、相場と在庫ポリシーによって決定されます。相場がシグナル条件付けされていない場合、*構造によって外生的です。 |
| 総流量/体積 | 取引所の機械的フロー: インデックスのリバランス、資金調達と決済のウィンドウ、計画された清算カスケード | タイミングは情報の到着によってではなく、交換ルールによって設定されます。 |
落とし穴

弱い機器は大きな音で失敗することはありません。 最初のステージが弱い場合、2SLS は有限サンプル内で大まかに OLS の方に偏ります。
では、「因果関係」の推定値を報告しながら、OLS バイアスの 25% を保持します。解決策は、有限サンプルの動作がより優れている LIML か、機器の強度に関係なく有効な Anderson-Rubin テストです。
多くの楽器に偏りがあります。 。すべてのラグを に投入して、第 1 段階の をブーストすると、推定値が OLS に直接戻されます。 が無視できない場合は、LIML、ジャックナイフ IV (JIVE)、または正規化された最初のステージを使用します。
除外制限はテストできません。 Sargan によるものでも、何かによるものでもありません。それは領域推論によって防御されており、その防御の正直な形式は感度分析です。つまり、結論を覆すにはどのくらいの規模の違反が必要になるでしょうか?
テイクアウト

- デフレは 検索 からのバイアスを修正します。 係数のバイアスには何も影響しません。それらは異なる失敗であり、異なるツールが必要です。
- 内生性バイアスはサンプルサイズによって消えません。厳密で、適切にブートストラップされ、ウォークフォワード検証された係数であっても、体系的に間違っている可能性があります。
- Almgren-Chriss キャリブレーションのガンマ回帰は、指定された機器 (独自のフィル) と TCA パイプラインによって既に記録されたデータを使用した、ライブの社内インスタンスです。
- 2SLS 係数の前に、第 1 段階の を報告します。 10 未満の係数は証拠ではなく、そう言うのは公表可能な結果です。