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.

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