The Other Way a Regression Lies: Endogeneity, 2SLS, and the Gamma Calibration Problem
Existem duas maneiras estruturalmente diferentes pelas quais uma regressão pode mentir para você, e este blog até agora atacou apenas uma delas.
O primeiro é o viés de seleção na pesquisa: você executou dez mil backtests, manteve o melhor, e o número que você está vendo é o máximo de uma distribuição de ruído, e não de um efeito. Esse é o assunto do índice de Sharpe deflacionado e seu ápice negativo honesto. A solução é definir o preço da pesquisa.
O segundo é o viés no coeficiente em si, em uma única regressão que você nunca pesquisou. Se o regressor estiver correlacionado com o termo de erro, o MQO é tendencioso e inconsistente — e, ao contrário do ruído de amostragem, este não diminui com o tamanho da amostra. Mais dados tornam o número errado mais restrito. Nenhuma quantidade de esforço inicial, avanço ou deflação afeta isso, porque nenhum desses métodos questiona a identificação, apenas a seleção.
Este artigo é sobre a segunda falha e não é uma preocupação abstrata aqui. O artigo de calibração Almgren-Chriss se ajusta ao impacto permanente ao regredir as mudanças de preço médio de 5 minutos no fluxo do tomador líquido, obtém-se um de alguns por cento e um coeficiente que se move 2-5x entre os dias, e nomeia a endogeneidade como a primeira razão estrutural: "O fluxo responde ao preço tanto quanto o preço responde ao fluxo. Os traders de momentum compram porque o preço subiu; um MQO ingénuo de retornos sobre o fluxo capta a sua reação e atribui-a ao impacto." Ele também nomeia a solução limpa – seus próprios preenchimentos, exógenos por construção.
Esse é um problema de variáveis instrumentais com um instrumento nomeado e dados já internos. Abaixo está o estimador, o diagnóstico e o experimento.
Endogeneidade em um parágrafo

OLS estima o causal em apenas sob . Três coisas quebram isso. Viés de variável omitida: se dirige ambos e e não é observado, vive no erro, , e forças — na microestrutura, a chegada de informações não observadas une volume e volatilidade. Erro de medição: com um proxy barulhento , , sempre atenuado em direção a zero – o fluxo líquido de aggTrades é um proxy para o verdadeiro fluxo de ordens assinadas em um mercado fragmentado, e a parte que você nunca vê é o erro de medição. Simultaneidade: já afirmado de forma mais nítida e concreta na calibração de impacto Almgren-Chriss, que é o problema motivador para tudo abaixo.
A solução intravenosa

Um instrumento deve satisfazer duas condições:
- Relevância: . Testável e você deve testá-lo.
- Exclusão: — afeta somente através . Não testável. Sempre. É um argumento económico, não uma estatística.
Para um instrumento e um regressor endógeno, o estimador é uma razão de dois efeitos de forma reduzida (o estimador de Wald):
Com controles e vários instrumentos você usa 2SLS. Etapa 1: regressão da variável endógena em instrumentos e controles, , e mantenha os valores ajustados - por construção, eles contêm apenas variações exógenas e orientadas por instrumentos. Etapa 2: execução . Em forma de matriz, com :
A armadilha que pega todos que rolam isso manualmente: se você literalmente executar dois lstsq chamadas, seus erros padrão do estágio 2 estão errados. é um regressor gerado, e a variância residual deve ser calculada a partir do original , não o equipado. Erros padrão ingênuos de duas etapas são muito pequenos, então seu -stats são muito grandes e você rejeitará demais. Use uma implementação IV real:
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
O experimento: gama OLS versus gama 2SLS

A regressão em teste é o ajuste de impacto permanente do artigo Almgren-Chriss:
é endógeno pelo argumento da simultaneidade acima. O instrumento são seus próprios preenchimentos na janela: os preenchimentos do fabricante são acionados por seu próprio cronograma de cotação e política de estoque, e não pela trajetória de preço do mercado, portanto, são uma fonte de variação no fluxo de pedidos que é plausivelmente não correlacionada com o componente de reação ao momento do erro. A restrição de exclusão – que seus preenchimentos se movam no meio apenas através de sua contribuição para o fluxo líquido – é a suposição a ser discutida, e é mais fraca exatamente quando sua cotação é ela mesma orientada por sinais. Se suas cotações dependerem da previsão de preços no horizonte curto, o instrumento estará contaminado e esse design falhará. Os preenchimentos de uma política pura de gerenciamento de estoque ou de captura de spread são o caso limpo.
Os dados de preenchimento vêm do registro TCA descrito em déficit de implementação e TCA DIY — o mesmo registro que fornece a amostra adequada para curvas de deslizamento de seus próprios preenchimentos. Controles: atrasados e percebi volatilidade na janela.
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"])
Quatro números decidem se valeu a pena fazer isso: o OLS , o 2SLS , a primeira fase , e a diferença entre os dois coeficientes — que é a parcela da estimativa MQO que foi reação dinâmica e não impacto.
Se a primeira fase volta abaixo de 10, esse é o resultado: os próprios preenchimentos são uma fração muito pequena do fluxo líquido na resolução de 5 minutos para identificar , e o artigo honesto é um negativo no estilo do negativo honesto. Um instrumento fraco negativo é uma descoberta real - indica que a endogeneidade no ajuste gama não pode ser corrigida neste tamanho e horizonte de amostra, e que as estimativas de custos pré-negociação baseadas no OLS carregam uma tendência ascendente irremovível.
Diagnóstico

Primeiro estágio F (instrumentos fracos). Regra prática de Staiger-Stock: . Os valores críticos de Stock-Yogo para um regressor endógeno são mais rigorosos - para tamanho IV máximo de 10%, com um instrumento, 19,93 com dois, 22,30 com três; para tamanho de 15%, 8,96/11,59/12,83; para 20%, 6,66/8,75/9,54.
Durbin-Wu-Hausman (é mesmo necessário IV). Se o OLS for consistente, também será mais eficiente, portanto, teste antes de mudar. A forma de aumento residual é a mais prática: execute o estágio 1, mantenha , em seguida, execute a regressão estrutural OLS com adicionado como regressor. Um coeficiente significativo em é evidência de endogeneidade.
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 (sobreidentificação). Com instrumentos que você pode testar a validade conjunta: , onde o vem da regressão dos resíduos 2SLS em todos os instrumentos e controles exógenos. A advertência é mais importante do que a estatística: Sargan só detecta instrumentos que são inválidos de maneiras diferentes. Se todos os instrumentos estiverem correlacionados com a mesma variável omitida, o teste passa de forma limpa e não diz nada.
Instrumentos que existem na microestrutura criptográfica

Encontrar um instrumento válido é toda a dificuldade, e os recursos de capital próprio-financiamento empresarial (cobertura de analistas, benefícios fiscais, fluxo de caixa inesperado) são inertes aqui. Na verdade, duas classes se aplicam:
| Variável endógena | Instrumento | Justificativa |
|---|---|---|
| Fluxo líquido de tomadores | Seus próprios preenchimentos | Impulsionado por sua política de cotação e estoque, não pela trajetória de preços do mercado - exógeno por construção se suas cotações não forem condicionadas por sinal |
| Fluxo/volume agregado | Fluxos mecânicos cambiais: rebalanceamento de índices, janelas de liquidação de financiamento, cascatas de liquidação programadas | O tempo é definido pelas regras de troca e não pela chegada da informação |
Armadilhas

Instrumentos fracos não falham ruidosamente. Com um primeiro estágio fraco, o 2SLS é tendencioso em direção ao OLS em amostras finitas, aproximadamente
No você retém 25% do viés do MQO ao relatar uma estimativa "causal". As soluções são LIML, que apresenta melhor comportamento em amostras finitas, ou o teste Anderson-Rubin, que é válido independentemente da resistência do instrumento.
Viés de muitos instrumentos. . Jogando atrasos de tudo em para impulsionar a primeira fase encaminha a estimativa diretamente para o OLS. Se não for desprezível, use LIML, jackknife IV (JIVE) ou um primeiro estágio regularizado.
A restrição de exclusão não pode ser testada. Nem por Sargan, nem por nada. É defendida com raciocínio de domínio, e a forma honesta dessa defesa é uma análise de sensibilidade: qual a dimensão da violação necessária para anular a conclusão?
Conclusões

- A deflação corrige o viés da pesquisa. Não faz nada pelo preconceito no coeficiente. São falhas diferentes e precisam de ferramentas diferentes.
- O viés de endogeneidade não desaparece com o tamanho da amostra. Um coeficiente rígido, bem estruturado e validado passo a passo ainda pode estar sistematicamente errado.
- A regressão gama na calibração Almgren-Chriss é uma instância interna ao vivo, com um instrumento nomeado (preenchimentos próprios) e os dados já registrados pelo pipeline do TCA.
- Relatar a primeira fase antes do coeficiente 2SLS. Abaixo de 10, o coeficiente não é evidência, e dizê-lo é o resultado publicável.
Authors
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.