The Other Way a Regression Lies: Endogeneity, 2SLS, and the Gamma Calibration Problem
Regressiya sizni tizimli ravishda aldashi mumkin bo'lgan ikkita turli usul bor, bu blog esa hozirgacha ulardan faqat bittasiga qarshi kurashdi.
Birinchisi, qidiruvdagi tanlash xatosi: siz o'n mingta backtest o'tkazdingiz, eng yaxshisini qoldirdingiz va qarayotgan raqamingiz effekt emas, balki shovqin taqsimotining maksimumidir. Bu deflyatsiyalangan Sharpe nisbati va uning yakuniy halol salbiy natija maqolasi mavzusidir. Tuzatish qidiruv narxini hisobga olishdan iborat.
Ikkinchisi — hech qachon qidirilmagan bitta regressiyadagi koeffitsientning o'zidagi xato. Agar regressor xato hadi bilan korrelyatsiyalangan bo'lsa, OLS xolis emas va izchil emas — tanlanma shovqinidan farqli ravishda, bu muammo tanlanma hajmi oshishi bilan kamaymaydi. Ko'proq ma'lumot noto'g'ri raqamni yanada ishonchli qiladi. Bootstrap, walk-forward yoki deflyatsiyaning hech biri bunga ta'sir qilmaydi, chunki ularning hech biri identifikatsiyani emas, faqat tanlashni tekshiradi.
Ushbu maqola ikkinchi xato haqida va bu yerda u mavhum xavotir emas. Almgren-Chriss kalibrlash maqolasi doimiy ta'sir ni sof taker oqimi bo'yicha 5 daqiqalik mid-price o'zgarishlarini regressiya qilish orqali baholaydi, bir necha foizlik va kunlar orasida 2-5 marta o'zgaradigan koeffitsient oladi hamda endogenlikni birinchi tizimli sabab sifatida ko'rsatadi: "Oqim narxga, narx esa oqimga javob beradi. Momentum treyderlari narx ko'tarilgani uchun xarid qiladi; daromadlarni oqimga sodda OLS qilish ularning reaksiyasini olib, uni ta'sir deb ko'rsatadi." Maqolada toza tuzatish ham ko'rsatilgan — tabiatan ekzogen bo'lgan o'z fillaringiz.
Bu nomi va ma'lumotlari allaqachon mavjud bo'lgan instrumental o'zgaruvchilar muammosi. Quyida baholovchi, diagnostika va tajriba keltiriladi.
Bir paragrafda endogenlik

OLS sababiy ni modelida faqat sharti ostida baholaydi. Bu shartni uch narsa buzadi. Qoldirib ketilgan o'zgaruvchi xatosi: agar ham , ham ga ta'sir qilsa va kuzatilmasa, u xatoda yashaydi: . bo'lsa, bo'lishiga majbur qiladi — mikrostrukturada kuzatilmagan axborot kelishi hajm va volatillikni birgalikda harakatlantiradi. O'lchash xatosi: shovqinli proksi bo'lsa, bo'ladi va doim nol tomon susayadi — netted aggTrades oqimi parchalangan bozordagi haqiqiy imzolangan order flow uchun proksidir, siz ko'rmaydigan qism esa o'lchash xatosidir. Bir vaqtalilik: u Almgren-Chriss ta'sirini kalibrlash maqolasida aniqroq va amaliyroq ko'rsatilgan hamda quyidagi barcha ishlarning motivatsion muammosidir.
IV yechim

Instrument ikki shartni qanoatlantirishi kerak:
- Relevanlik: . Buni tekshirish mumkin va tekshirishingiz shart.
- Istisno sharti: — ga faqat orqali ta'sir qiladi. Buni hech qachon tekshirib bo'lmaydi. Bu statistik emas, iqtisodiy argument.
Bitta instrument va bitta endogen regressor uchun baholovchi ikkita reduced-form ta'sirining nisbati, ya'ni Wald baholovchisidir:
Nazoratlar va bir nechta instrumentlar bo'lsa, 2SLS ishlatiladi. 1-bosqich: endogen o'zgaruvchini instrumentlar va nazoratlar bo'yicha regressiya qiling, , va fitted qiymatlar ni saqlang — ular tuzilishi bo'yicha faqat instrumentlar keltirib chiqargan ekzogen variatsiyani o'z ichiga oladi. 2-bosqich: ni hisoblang. Matritsa ko'rinishida, bo'lsa:
Buni qo'lda yozadiganlarning barchasi tushadigan tuzoq: agar siz tom ma'noda ikkita lstsq chaqirig'ini bajarsangiz, 2-bosqich standart xatolari noto'g'ri bo'ladi. — hosil qilingan regressor, qoldiq dispersiyasi asl dan hisoblanishi kerak, fitted qiymatdan emas. Sodda ikki bosqichli standart xatolar juda kichik chiqadi, shuning uchun statistikalar juda katta bo'ladi va siz ortiqcha rad etasiz. Haqiqiy IV implementatsiyasidan foydalaning:
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
Tajriba: OLS gamma va 2SLS gamma

Sinovdagi regressiya Almgren-Chriss maqolasidagi doimiy ta'sir bahosidir:
yuqoridagi simultanlik argumenti sababli endogendir. Instrument — oynadagi o'z fillaringiz: maker fillaringiz bozor narxi yo'li bilan emas, o'zingizning kotirovka jadvalingiz va inventar siyosatingiz orqali yuzaga keladi. Shu sababli ular xatoning momentum-reaksiya komponenti bilan bog'liq bo'lmagan order-flow variatsiyasi manbai bo'lishi mumkin. Istisno sharti — fillaringiz mid-price ga faqat net flow ga qo'shgan hissasi orqali ta'sir qiladi — bahs qilinishi kerak bo'lgan taxmin bo'lib, kotirovkalaringizning o'zi signalga asoslangan bo'lsa aynan shu yer eng zaif nuqtadir. Agar kotirovkalaringiz qisqa muddatli narx prognoziga shartli bo'lsa, instrument ifloslangan va bu dizayn ishlamaydi. Sof inventar boshqaruvi yoki spread capture siyosatidan kelgan fillar toza holatdir.
Fill ma'lumotlari implementation shortfall va DIY TCA da tasvirlangan TCA yozuvidan olinadi — o'z fillaringizdan slippage egri chiziqlari uchun fitting sample ni ta'minlaydigan o'sha logdan. Nazoratlar: kechiktirilgan va oynadagi realized volatility.
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"])
Bu ishga arziydimi yoki yo'qligini to'rtta raqam hal qiladi: OLS , 2SLS , birinchi bosqich va ikki koeffitsient orasidagi farq — bu OLS bahosining qanchasi ta'sir emas, balki momentum reaksiyasi bo'lganini ko'rsatadi.
Agar birinchi bosqichdagi 10 dan kichik chiqsa, natija shudir: 5 daqiqalik rezolyutsiyada o'z fillaringiz net flow ning sini aniqlash uchun juda kichik ulushi, halol xulosa esa halol salbiy natija uslubidagi salbiy natijadir. Zaif instrument haqidagi salbiy natija haqiqiy topilma: u gamma fittingidagi endogenlikni ushbu tanlanma hajmi va gorizontda tuzatib bo'lmasligini, OLS ga qurilgan pre-trade xarajat baholarida esa olib tashlab bo'lmaydigan yuqoriga og'ish borligini ko'rsatadi.
Diagnostika

Birinchi bosqich F-statistikasi (zaif instrumentlar). Staiger-Stock qoidasiga ko'ra . Bitta endogen regressor uchun Stock-Yogo kritik qiymatlari qattiqroq: maksimal IV o'lchami 10% bo'lganda, bitta instrument bilan , ikkita bilan 19.93, uchta bilan 22.30; 15% o'lcham uchun 8.96 / 11.59 / 12.83; 20% uchun 6.66 / 8.75 / 9.54.
Durbin-Wu-Hausman (IV umuman kerakmi). Agar OLS izchil bo'lsa, u samaraliroq ham bo'ladi, shuning uchun almashtirishdan oldin tekshiring. Qoldiqni qo'shish shakli amaliy variant: 1-bosqichni bajaring, ni saqlang, keyin regressorga qo'shilgan OLS strukturaviy regressiyasini bajaring. dagi muhim koeffitsient endogenlikka dalildir.
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 (ortiqcha identifikatsiya). ta instrument bo'lsa, ularning birgalikdagi haqiqiyligini tekshirish mumkin: , bunda 2SLS qoldiqlarini barcha instrumentlar va ekzogen nazoratlar bo'yicha regressiya qilishdan olinadi. Ogohlantirish statistikadan muhimroq: Sargan faqat turli yo'llar bilan yaroqsiz bo'lgan instrumentlarni aniqlaydi. Agar har bir instrument bitta qoldirib ketilgan o'zgaruvchi bilan korrelyatsiyalangan bo'lsa, test toza o'tadi va sizga hech narsa aytmaydi.
Kripto mikrostrukturada mavjud instrumentlar

Yaroqli instrument topish — butun qiyinchilik. Aksiyalar korporativ moliyasidagi odatiy instrumentlar (analitiklar qamrovi, soliq qalqonlari, kutilmagan pul oqimi) bu yerda ishlamaydi. Amalda ikki sinf qo'llanadi:
| Endogen o'zgaruvchi | Instrument | Asos |
|---|---|---|
| Sof taker oqimi | O'z fillaringiz | Kotirovka va inventar siyosatingiz belgilaydi, bozor narxi yo'li emas — agar kotirovkalaringiz signalga shartli bo'lmasa, tabiatan ekzogen |
| Agregat oqim / hajm | Birja mexanik oqimlari: indeksni qayta balanslash, funding settlement oynalari, rejalashtirilgan likvidatsiya kaskadlari | Vaqt axborot kelishi bilan emas, birja qoidalari bilan belgilanadi |
Tuzoq va xatolar

Zaif instrumentlar baland ovoz bilan ishdan chiqmaydi. Birinchi bosqich zaif bo'lsa, 2SLS cheklangan tanlanmada OLS tomon og'adi, taxminan:
bo'lganda, siz "sababiy" bahoni e'lon qilib, OLS og'ishining 25% ini saqlab qolasiz. Yechimlar — chekli tanlanmada yaxshiroq xususiyatga ega LIML yoki instrument kuchidan qat'i nazar yaroqli Anderson-Rubin testi.
Ko'p instrumentlar og'ish keltiradi. . Birinchi bosqichni kuchaytirish uchun ga barcha o'zgaruvchilarning laglarini qo'shish bahoni to'g'ridan-to'g'ri OLS tomon qaytaradi va ni oshiradi. Agar ahamiyatsiz bo'lmasa, LIML, jackknife IV (JIVE) yoki regularizatsiyalangan birinchi bosqichdan foydalaning.
Istisno shartini tekshirib bo'lmaydi. Sargan bilan ham, boshqa hech narsa bilan ham. U soha haqidagi mulohaza bilan himoya qilinadi, bu himoyaning halol shakli esa sezgirlik tahlilidir: xulosani ag'darish uchun buzilish qanchalik katta bo'lishi kerak?
Asosiy xulosalar

- Deflyatsiya qidiruvdagi og'ishni tuzatadi. U koeffitsientdagi og'ishga hech narsa qilmaydi. Bu turli xatolar va turli vositalarni talab qiladi.
- Endogenlik og'ishi tanlanma hajmi oshishi bilan yo'qolmaydi. Qattiq, yaxshi bootstrap qilingan va walk-forward bilan tekshirilgan koeffitsient ham tizimli ravishda noto'g'ri bo'lishi mumkin.
- Almgren-Chriss kalibrlashidagi gamma regressiyasi ichki, amaliy misoldir: instrument nomlangan (o'z fillaringiz) va ma'lumotlar TCA pipeline tomonidan allaqachon qayd etilgan.
- 2SLS koeffitsientidan oldin birinchi bosqich ni hisobot qiling. 10 dan past bo'lsa, koeffitsient dalil emas; buni aytishning o'zi nashr qilinadigan natijadir.
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.