← Zurück zu den Artikeln
August 10, 2026
5 min read

The Other Way a Regression Lies: Endogeneity, 2SLS, and the Gamma Calibration Problem

The Other Way a Regression Lies: Endogeneity, 2SLS, and the Gamma Calibration Problem
#causal-inference
#instrumental-variables
#2SLS
#econometrics
#endogeneity

Es gibt zwei strukturell unterschiedliche Möglichkeiten, wie eine Regression Sie anlügen kann, und dieser Blog hat bisher nur eine davon angegriffen.

Der erste Grund ist die Selektionsverzerrung bei der Suche: Sie haben zehntausend Backtests durchgeführt, die besten behalten, und die Zahl, die Sie betrachten, ist eher das Maximum einer Rauschverteilung als eines Effekts. Das ist das Thema der deflationierten Sharpe-Ratio und ihres Schlusssteins ehrlich negativ. Die Lösung besteht darin, die Suche zu bepreisen.

Der zweite Grund ist eine Verzerrung im Koeffizienten selbst, bei einer einzelnen Regression, die Sie nie durchsucht haben. Wenn der Regressor mit dem Fehlerterm korreliert, ist OLS verzerrt und inkonsistent – ​​und im Gegensatz zum Stichprobenrauschen nimmt dieses nicht mit der Stichprobengröße ab. Mehr Daten machen die falsche Zahl enger. Kein Bootstrapping, Walk-Forward oder Deflation ändert daran etwas, denn keine dieser Methoden stellt die Identifizierung in Frage, sondern nur die Auswahl.

In diesem Artikel geht es um den zweiten Fehler, und es handelt sich hier nicht um ein abstraktes Problem. Der Artikel zur Almgren-Chriss-Kalibrierung passt zu Permanent Impact γ\gamma durch Regression von 5-Minuten-Mittelpreisänderungen auf den Nettoabnehmerfluss erhält man eine R2R^2 von ein paar Prozent und einem Koeffizienten, der sich zwischen den Tagen um das Zwei- bis Fünffache bewegt, und nennt Endogenität als ersten strukturellen Grund: „Der Fluss reagiert auf den Preis genauso wie der Preis auf den Fluss. Momentum-Händler kaufen, weil der Preis gestiegen ist; ein naives OLS der Renditen auf den Fluss erfasst ihre Reaktion und führt sie auf die Auswirkung zurück.“ Es nennt auch die saubere Lösung – Ihre eigenen, konstruktionsbedingt exogenen Füllungen.

Dabei handelt es sich um ein Instrumentenvariablenproblem mit einem benannten Instrument und bereits internen Daten. Nachfolgend finden Sie den Schätzer, die Diagnose und das Experiment.

Endogenität in einem Absatz

Verflochtene Kräfte schaffen Endogenität

OLS schätzt die Ursache β1\beta_1 In Yi=β0+β1Xi+εiY_i = \beta_0 + \beta_1 X_i + \varepsilon_i nur unter E[εiXi]=0\mathbb{E}[\varepsilon_i \mid X_i] = 0. Drei Dinge machen es kaputt. Bias aufgrund weggelassener Variablen: if WW fährt beides XX Und YY und ist unbeobachtet, es lebt im Irrtum, εi=γWi+ui\varepsilon_i = \gamma W_i + u_i, Und Cov(Xi,Wi)0\text{Cov}(X_i, W_i) \neq 0 Kräfte Cov(Xi,εi)0\text{Cov}(X_i, \varepsilon_i) \neq 0 – In der Mikrostruktur treibt die unbeobachtete Ankunft von Informationen Volumen und Volatilität zusammen. Messfehler: mit einem verrauschten Proxy Xi=Xi+νiX_i = X_i^* + \nu_i, plim β^1OLS=β1σX2/(σX2+σν2)\text{plim } \hat{\beta}_1^{\text{OLS}} = \beta_1 \cdot \sigma_{X^*}^2 / (\sigma_{X^*}^2 + \sigma_\nu^2), immer gegen Null abgeschwächt – der saldierte AggTrades-Fluss ist ein Stellvertreter für den echten Signed-Order-Fluss in einem fragmentierten Markt, und der Teil, den Sie nie sehen, ist der Messfehler. Gleichzeitigkeit: bereits in schärferer und konkreterer Form in der Almgren-Chriss-Auswirkungskalibrierung dargelegt, was das motivierende Problem für alles Nachfolgende ist.

Die IV-Lösung

Instrument zur Isolierung eines kausalen Markteffekts

Ein Instrument ZZ muss zwei Bedingungen erfüllen:

  1. Relevanz: Cov(Zi,Xi)0\text{Cov}(Z_i, X_i) \neq 0. Testbar, und Sie müssen es testen.
  2. Ausschluss: Cov(Zi,εi)=0\text{Cov}(Z_i, \varepsilon_i) = 0ZZ wirkt YY nur durch XX. Nicht testbar. Immer. Es handelt sich um ein ökonomisches Argument, nicht um eine Statistik.

Für ein Instrument und einen endogenen Regressor ist der Schätzer ein Verhältnis zweier Effekte in reduzierter Form (der Wald-Schätzer):

β^1IV=Cov(Zi,Yi)Cov(Zi,Xi)=π^reduced formπ^first stage\hat{\beta}_1^{\text{IV}} = \frac{\text{Cov}(Z_i, Y_i)}{\text{Cov}(Z_i, X_i)} = \frac{\hat{\pi}_{\text{reduced form}}}{\hat{\pi}_{\text{first stage}}}

Bei Steuerungen und mehreren Instrumenten verwenden Sie 2SLS. Stufe 1: Regression der endogenen Variablen auf Instrumenten und Kontrollen, Xi=π0+πZZi+πCCi+viX_i = \pi_0 + \boldsymbol{\pi}_Z' \mathbf{Z}_i + \boldsymbol{\pi}_C' \mathbf{C}_i + v_iund behalten Sie die angepassten Werte bei X^i\hat{X}_i – Aufgrund ihrer Konstruktion enthalten sie nur instrumentengesteuerte, exogene Variationen. Stufe 2: Laufen Yi=β0+β1X^i+βCCi+εiY_i = \beta_0 + \beta_1 \hat{X}_i + \boldsymbol{\beta}_C' \mathbf{C}_i + \varepsilon_i. In Matrixform, mit PZ=Z(ZZ)1Z\mathbf{P}_Z = \mathbf{Z}(\mathbf{Z}'\mathbf{Z})^{-1}\mathbf{Z}':

β^2SLS=(XPZX)1XPZy,Var(β^2SLS)=σ^2(XPZX)1.\hat{\boldsymbol{\beta}}_{2\text{SLS}} = \left(\mathbf{X}' \mathbf{P}_Z \mathbf{X}\right)^{-1} \mathbf{X}' \mathbf{P}_Z \mathbf{y}, \qquad \text{Var}(\hat{\boldsymbol{\beta}}_{2\text{SLS}}) = \hat{\sigma}^2 \left(\mathbf{X}' \mathbf{P}_Z \mathbf{X}\right)^{-1}.

Die Falle, die jeden fängt, der dies per Hand würfelt: Wenn Sie buchstäblich zwei laufen lassen lstsq Anrufe, Ihre Standardfehler der Stufe 2 sind falsch. X^i\hat{X}_i ist ein generierter Regressor und die Restvarianz muss aus dem Original berechnet werden XX, nicht das eingebaute. Naive zweistufige Standardfehler sind zu klein, also Ihr tt-Statistiken sind zu groß und Sie werden zu viel ablehnen. Verwenden Sie eine echte IV-Implementierung:

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

Das Experiment: OLS-Gamma versus 2SLS-Gamma

Gegenüberstellung zweier Schätzpfade

Die getestete Regression ist die Permanent-Impact-Anpassung aus dem Almgren-Chriss-Artikel:

ΔS5m=γQnet+noise,Qnet=taker buystaker sells.\Delta S_{5m} = \gamma\, Q_{\text{net}} + \text{noise}, \qquad Q_{\text{net}} = \text{taker buys} - \text{taker sells}.

QnetQ_{\text{net}} ist nach dem obigen Gleichzeitigkeitsargument endogen. Das Instrument sind Ihre eigenen Ausführungen im Fenster: Ihre Maker-Ausfüllungen werden durch Ihren eigenen Angebotsplan und Ihre Bestandspolitik ausgelöst, nicht durch die Preisentwicklung des Marktes, sodass sie eine Quelle für Auftragsflussschwankungen sind, die plausibel nicht mit der Momentum-Reaktionskomponente des Fehlers korrelieren. Die Ausschlussbeschränkung – dass sich Ihre Füllungen nur durch ihren Beitrag zum Nettofluss in der Mitte bewegen – ist die Annahme, über die man streiten kann, und sie ist genau dann am schwächsten, wenn Ihr Zitat selbst signalgesteuert ist. Wenn Ihre Kurse auf einer kurzfristigen Preisvorhersage beruhen, ist das Instrument verunreinigt und dieser Entwurf schlägt fehl. Füllungen aus einer reinen Bestandsverwaltungs- oder Spread-Capture-Richtlinie sind der klare Fall.

Die Fülldaten stammen aus dem TCA-Datensatz, der in Implementierungsdefizit und DIY-TCA beschrieben wird – demselben Protokoll, das die passende Stichprobe für Slippage-Kurven aus Ihren eigenen Füllungen liefert. Kontrollen: verzögert ΔS\Delta S und erkannte die Volatilität im Fenster.

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"])

Ob sich das gelohnt hat, entscheiden vier Zahlen: die OLS γ\gamma, der 2SLS γ\gamma, die erste Stufe FFund die Lücke zwischen den beiden Koeffizienten – das ist der Anteil der OLS-Schätzung, der eher eine Impulsreaktion als eine Auswirkung war.

Wenn die erste Stufe FF unter 10 zurückfällt, ist das Ergebnis: Die eigenen Füllungen sind ein zu kleiner Bruchteil des Nettoflusses bei 5-Minuten-Auflösung, um identifiziert zu werden γ\gamma, und der ehrliche Beitrag ist ein Negativ im Stil von dem ehrlichen Negativ. Ein schwaches Instrument-Negativ ist ein echter Befund – es zeigt Ihnen, dass die Endogenität in der Gamma-Anpassung bei dieser Stichprobengröße und diesem Horizont nicht korrigierbar ist und dass die Kostenschätzungen vor dem Handel auf dem OLS basieren γ\gamma tragen eine unauflösbare Aufwärtstendenz.

Diagnose

Validierung deutet auf einen Kausalpfad hin

Erste Stufe F (schwache Instrumente). Staiger-Stock-Faustregel: F>10F > 10. Die kritischen Stock-Yogo-Werte für einen endogenen Regressor sind strenger – für 10 % der maximalen IV-Größe, F>16.38F > 16.38 mit einem Instrument, 19,93 mit zwei, 22,30 mit drei; für 15 % Größe 8,96 / 11,59 / 12,83; für 20 %, 6,66 / 8,75 / 9,54.

F=(Runrestricted2Rrestricted2)/q(1Runrestricted2)/(nk)F = \frac{(R_{\text{unrestricted}}^2 - R_{\text{restricted}}^2) / q}{(1 - R_{\text{unrestricted}}^2) / (n - k)}

Durbin-Wu-Hausman (ist IV überhaupt erforderlich). Wenn OLS konsistent ist, ist es auch effizienter, also testen Sie es, bevor Sie wechseln. Die Residual-Augmentation-Form ist die praktische: Stufe 1 ausführen, behalten v^i=XiX^i\hat{v}_i = X_i - \hat{X}_i, und führen Sie dann die OLS-Strukturregression mit aus v^i\hat{v}_i als Regressor hinzugefügt. Ein signifikanter Koeffizient auf v^i\hat{v}_i ist ein Beweis für Endogenität.

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 (Überidentifizierung). Mit q>pq > p Instrumente, mit denen Sie die gemeinsame Gültigkeit testen können: J=nRε^Z2χ2(qp)J = n \cdot R^2_{\hat{\varepsilon} \sim \mathbf{Z}} \sim \chi^2(q - p), wo die R2R^2 ergibt sich aus der Regression der 2SLS-Residuen aller Instrumente und exogenen Kontrollen. Der Vorbehalt ist wichtiger als die Statistik: Sargan erkennt nur Instrumente, die auf unterschiedliche Weise ungültig sind. Wenn jedes Instrument mit derselben ausgelassenen Variablen korreliert ist, besteht der Test sauber und sagt Ihnen nichts.

Instrumente, die in der Krypto-Mikrostruktur existieren

Unabhängiger Schock in einem Krypto-Marktnetzwerk

Die ganze Schwierigkeit besteht darin, ein gültiges Instrument zu finden, und die Eigenkapital-Unternehmensfinanzierungs-Bereitschaften (Analystenberichterstattung, Steuerschirme, unerwarteter Cashflow) sind hier wirkungslos. Tatsächlich gelten zwei Klassen:

Endogene Variable Instrument Begründung
Nettoabnehmerfluss Ihre eigenen Füllungen Angetrieben durch Ihre Angebots- und Bestandspolitik, nicht durch die Preisentwicklung des Marktes – konstruktionsbedingt exogen, wenn Ihre Angebote nicht signalbedingt sind
Gesamtfluss/Volumen Börsenmechanische Ströme: Neuausrichtung des Index, Finanzierungs- und Abwicklungsfenster, geplante Liquidationskaskaden Der Zeitpunkt wird durch Austauschregeln festgelegt, nicht durch den Informationseingang

Fallstricke

Versteckte Pfade untergraben ein Instrument

Schwache Instrumente versagen nicht lautstark. Bei einer schwachen ersten Stufe ist 2SLS in endlichen Stichproben ungefähr in Richtung OLS voreingenommen

Bias2SLSBiasOLS1F1.\frac{\text{Bias}_{2\text{SLS}}}{\text{Bias}_{\text{OLS}}} \approx \frac{1}{F - 1}.

Bei F=5F = 5 Sie behalten 25 % des OLS-Bias bei, während Sie eine „kausale“ Schätzung melden. Die Abhilfemaßnahmen sind LIML, das ein besseres Verhalten bei endlichen Stichproben aufweist, oder der Anderson-Rubin-Test, der unabhängig von der Instrumentenstärke gültig ist.

Viele Instrumente sind voreingenommen. Bias2SLS(q/n)BiasOLS\text{Bias}_{2\text{SLS}} \approx (q/n) \cdot \text{Bias}_{\text{OLS}}. Wirf Verzögerungen von allem hinein Z\mathbf{Z} um die erste Stufe anzukurbeln FF leitet den Kostenvoranschlag direkt an OLS zurück. Wenn q/nq/n nicht vernachlässigbar ist, verwenden Sie LIML, Jackknife IV (JIVE) oder eine regulierte erste Stufe.

Die Ausschlussbeschränkung kann nicht getestet werden. Nicht von Sargan, von nichts. Es wird mit Domänenbegründung verteidigt, und die ehrliche Form dieser Verteidigung ist eine Sensitivitätsanalyse: Wie groß wäre ein Verstoß, um die Schlussfolgerung zunichte zu machen?

Imbissbuden

Vertrauenswürdiger Kausalpfad durch verrauschte Daten

  • Die Deflation behebt die Verzerrung durch die Suche. Es trägt nicht zur Verzerrung des Koeffizienten bei. Es handelt sich um unterschiedliche Fehler und sie benötigen unterschiedliche Werkzeuge.
  • Der Endogenitätsbias verschwindet nicht mit der Stichprobengröße. Ein enger, gut angelegter und durch Walk-Forward validierter Koeffizient kann immer noch systematisch falsch sein.
  • Die Gamma-Regression in der Almgren-Chriss-Kalibrierung ist eine Live-Inhouse-Instanz mit einem benannten Instrument (eigene Füllungen) und den Daten, die bereits von der TCA-Pipeline protokolliert wurden.
  • Melden Sie die erste Stufe FF vor dem 2SLS-Koeffizienten. Unter 10 ist der Koeffizient kein Beweis, sondern ein veröffentlichungsfähiges Ergebnis.
blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Dem Markt einen Schritt voraus

Abonniere unseren Newsletter für exklusive KI-Trading-Einblicke, Marktanalysen und Plattform-Updates.

Wir respektieren deine Privatsphäre. Jederzeit abbestellbar.