یک بکتست میگوید «اگر این قاعده از چند سال پیش اجرا میشد چه میشد». ولی پیش از اینکه این نتیجه را ببینید، یک نفر (شما یا کسی که برایتان فروخته) احتمالاً چند قاعده یا چند عدد را امتحان کرده و فقط بهترینش را نشان داده. بیشبرازش (Overfitting) یعنی قاعدهای که برای گذشته تنظیم شده و برای آینده هیچچیز نمیداند. هر چه بیشتر امتحان کنید، پیدا کردن چنین قاعدهای سادهتر است.
این مقاله حسابش را با عدد میگوید: با چند بار امتحان کردن، یک قاعدهٔ بیارزش هم «نتیجهٔ عالی» میگیرد؛ چند سال داده برای چند امتحان کافی است؛ و چطور جاروب پارامتر و قاعدههای بکتست آپشنباز را بیآنکه خودتان را گول بزنید بخوانید.
بیشبرازش چیست
بکتست شبیهسازی تاریخی یک قاعدهٔ سرمایهگذاری است. بخشی از تاریخ را برای ساختن قاعده به کار میبرید («درون نمونه»، In-sample) و اگر قاعده را روی بخش دیگری هم بیازمایید که در ساختنش دخالت نداشته («بیرون از نمونه»، Out-of-sample)، میبینید راست میگفت یا نه. بکتست وقتی واقعبینانه است که نتیجهٔ درون نمونه با بیرون از نمونه جور باشد.
Bailey و همکارانش بیشبرازش را اینطور توضیح میدهند: مدلی که بهجای ساختار کلی، دنبال مشاهدههای خاص یک نمونه رفته است. مثال خودشان قاعدهٔ «تقاطع دو میانگین متحرک» است: قیمت را با میانگین m روز و میانگین n روز مقایسه میکنید. چون جفت (m، n) فقط چند ترکیب دارد، پیدا کردن جفتی که روی تاریخ بیشترین سود را بدهد ساده است. کسی که این کار را بکند و فقط جواب را بنویسد، «پارامتر بهینه» دارد که شاید فقط خاصیت همان نمونه را گرفته باشد.
چند بار امتحان کنیم تا خوششانسی پیدا شود
اگر N قاعدهٔ بیارزش را روی یک سال داده امتحان کنید و بهترینشان را انتخاب کنید، بهترین نسبت شارپ درون نمونه چقدر خواهد بود؟ «بیارزش» یعنی هیچکدام در واقع سودی ندارند و نسبت شارپ انتظاریشان صفر است. جواب Bailey و همکارانش: هر چه N بزرگتر، بهترینِ شانسی بزرگتر. با N برابر 10، نسبت شارپ درون نمونهٔ بهترین حدود 1.57 درمیآید، با اینکه بیرون از نمونه همهٔ این قاعدهها (و «بهترین»شان) صفرند. ما همین را مستقل حساب کردیم (امید ریاضی بیشینهٔ N متغیر نرمال استاندارد):
| تعداد قاعدههای امتحانشده (N) | بهترین نسبت شارپ سالانه در یک سال داده (انتظار) |
|---|---|
| 2 | 0.56 |
| 5 | 1.16 |
| 10 | 1.54 |
| 20 | 1.87 |
| 45 | 2.21 |
| 100 | 2.51 |
ده امتحان کافی است که یک «نسبت شارپ 1.5» بدون هیچ مهارتی پیدا شود. صد امتحان، 2.5. و چون فقط «بهترین» را نشان میدهند، تعداد دفعات امتحان از گزارش بیرون میافتد. Bailey و همکارانش نشان میدهند همین اتفاق برای آزمونهای معمول معنیداری هم میافتد: اگر قاعدهای را با آزمونی بسنجید که پنج درصد خطای کاذب دارد، با حدود 20 بار امتحان انتظار دارید یکی از آنها از آزمون بگذرد، حتی اگر بیارزش باشد.
چند سال داده برای چند امتحان
راه جبران، داده بیشتر است: با طولانیتر شدن نمونه، شانس هم کوچکتر میشود. Bailey و همکارانش از همین «حداقل طول بکتست» (Minimum Backtest Length) را میسازند: برای اینکه بهترین قاعدهٔ شانسی بیش از نسبت شارپ 1 به نظر نرسد، با چند سال داده حداکثر چند قاعدهٔ مستقل را میشود امتحان کرد؟ جوابشان: با 2 سال داده 7 قاعده، با 5 سال حدود 45. حساب مستقل ما همین را تأیید میکند و جدول را کاملتر میکند:
| سال داده | حداکثر قاعدهٔ مستقل برای اینکه بهترین شانسی از شارپ 1 فراتر نرود |
|---|---|
| 1 | 3 |
| 2 | 7 |
| 3 | 14 |
| 5 | حدود 45 تا 48 |
دو احتیاط. «مستقل» یعنی قاعدههایی که واقعاً با هم فرق دارند؛ میانگین 50 و 51 روزه تقریباً یک قاعدهاند و حساب را زیاد خراب نمیکنند. و این حساب یک کف است: وقتی تعداد امتحانها را نمیدانید (چون فقط نتیجهٔ بهترین را نشانتان دادهاند)، همین کف هم قابل سنجش نیست. Bailey و همکارانش همین را نتیجه میگیرند: بکتستی که تعداد امتحانهایش را نمیگوید، ارزیابی بیشبرازشش ممکن نیست.
تخفیف شارپ: چرا نصف کردن کافی نیست
قاعدهٔ انگشتی که در صنعت میشنوید این است: «نسبت شارپ گزارششده را نصف کن». Campbell Harvey و Yan Liu میگویند این قاعده درست نیست. روششان: نسبت شارپ را به آمارهٔ t تبدیل میکنید، بهاندازهٔ تعداد آزمونهای انجامشده تصحیحش میکنید (خودشان به کار قبلیشان تکیه میکنند که دستکم 316 «عامل» در ادبیات برای توضیح بازده سهام آزموده شده)، و از آمارهٔ تصحیحشده دوباره نسبت شارپ میسازید. درصد کاهش، «تخفیف» (Haircut) است. یافتهٔ اصلیشان: تخفیف غیرخطی است. نسبت شارپهای خیلی بزرگ فقط کمی تخفیف میخورند و احتمالاً کشف واقعیاند؛ نسبت شارپهای «مرزی» تخفیف سنگین میخورند و باید دور ریخته شوند. پس نصف کردن برای بزرگها زیادی سختگیرانه و برای مرزیها زیادی نرم است.
خودشان محدودیتهای روش را هم میگویند: نسبت شارپ با بازدههای چولهٔ منفی (مثل استراتژیهای شبیه فروش آپشن) گمراهکننده میشود، نوسان همیشه ریسک را نمیگوید، و باید تعداد آزمونها و سطح معنیداری را خودتان قضاوت کنید. یعنی تخفیف ابزار حساب است، نه حکم.
بهینهساز هم بیشبرازش میکند
بیشبرازش فقط مال «قاعدهها» نیست. هر مدلی که از داده پارامتر برآورد کند و بعد همان را به کار ببرد، همین خطر را دارد. Victor DeMiguel، Lorenzo Garlappi و Raman Uppal 14 مدل بهینهسازی سبد (میانگین-واریانس و راهحلهایی که برای کم کردن خطای برآورد ساخته شدهاند) را روی هفت مجموعه داده با سبد سادهای مقایسه کردند که هر دارایی را به یک وزن میخرد (قاعدهٔ 1 تقسیم بر N). نتیجه: هیچکدام از آن 14 مدل در نسبت شارپ، «بازده معادل قطعی» یا گردش سبد، پیوسته از قاعدهٔ 1 تقسیم بر N بهتر نبود؛ یعنی سودی که بهینهسازی در تئوری میدهد، بیرون از نمونه زیر خطای برآورد از بین میرود. برای اینکه مدل میانگین-واریانس بیرون از نمونه از 1 تقسیم بر N بهتر شود، با پارامترهای آمریکای آنها حدود 3,000 ماه داده برای سبدی با 25 دارایی لازم میشود.
نتیجه برای ابزار بهینهسازی: وزنهای پیشنهادی مرز کارا را «بهترین» نخوانید؛ ببینید روی روزهایی که مدل ندیده هم جواب داده یا نه، و کنار سبد هموزن بسنجیدش. بکتست گامبهگام همین کار را میکند و سبدهای مقایسه همین سبد ساده را کنارش میگذارد. این مقاله مقالهٔ DeMiguel و همکاران را فقط در حد چکیدهٔ منتشرشده آورده؛ متن کاملش در دسترس ما نبود.
چه کار کنیم
این پنج کار، نتیجهٔ مستقیم حساب بالاست:
- تعداد امتحانها را بشمارید و با نتیجه بنویسید. هر مقدار پارامتر، هر قاعدهٔ دیگر و هر نمادی که کنار گذاشتید یک امتحان است. بدون این عدد نمیشود فهمید نتیجه چقدر بیشبرازش است.
- هر چه بیشتر امتحان کردید، نتیجهٔ بالاتری بخواهید. ده امتحان شارپ 1.5 را «عادی» میکند؛ پس با ده امتحان، شارپ 1.5 دلیل نیست.
- همسایهها را ببینید. اگر بهترین مقدار 20 روز است و 19 و 21 هم خوباند، قاعده احتمالاً ساختار دارد. اگر 20 قلهٔ تنهاست و همسایههایش بد، شانس است. (Faber همین را برای میانگین متحرک دهماهه نشان داده؛ مقالهٔ میانگین متحرک ده ماهه.)
- قاعدهای را ترجیح بدهید که دلیل دارد و پارامتر کم. «قیمت بالای میانگین سال گذشته خوب است» دلیل دارد؛ «فقط اسفند و فروردین» دلیلی جز نگاه کردن به تاریخ ندارد. پنج قاعده روی شاخص کل همین را خودش میگوید: قاعدهٔ فصلی افت 8 درصد دارد، «ولی دو ماهش را کسی انتخاب کرده که تاریخچه را دیده بود».
- بیرون از نمونه را از اول کنار بگذارید و فقط یک بار بازش کنید. البته توجه کنید: Bailey و همکارانش میگویند روش «نگه داشتن بخشی از داده» (Hold-out) هم تعداد امتحانهای قبلی را حساب نمیکند، پس اگر آن بخش را بارها برای انتخاب بین قاعدهها دیدهاید، دیگر بیرون از نمونه نیست.
جاروب پارامتر را چطور بخوانیم
در بکتست استراتژی اختیار معامله (آپشن)، جعبهٔ «جاروب پارامتر (اختیاری)» یک قاعده را با چند مقدار از یک پارامتر اجرا میکند و همه را در یک جدول میگذارد (شرح کامل در راهنمای بکتست). همین جدول دقیقاً بیشبرازشساز است اگر آن را «ردیف بهترین را بردار» بخوانید، و دقیقاً ضدش اگر «حساسیت قاعده به این عدد» بخوانید. با «اجرای جاروب»، هر مقدار یک امتحان است و تعدادش بین 2 و 8 است؛ پس خودتان میتوانید N را بشمارید.
راهنمای بکتست یک جاروب واقعی را نشان میدهد: چهار مقدار 10، 20، 30 و 45 روز مانده به سررسید، با 7 سررسید اجراشده در هر کدام. پیشفرض 30 روز «بدترین ردیف» بود و ردیف 10 روزه بیشترین سود کل را داشت. بر پایهٔ همین مقاله، همان جدول را اینطور بخوانید: با 7 معامله، فاصلهٔ ردیف اول و دوم میتواند فقط یک معاملهٔ خوششانس باشد؛ اولین کاری که باید بکنید دیدن ستون «معامله» است و بعد سؤال «روی 10 و 20 روز چه شد؟» نه «کدام ردیف بالاتر است؟». در بازاری که تاریخچهٔ اختیار معاملهاش کوتاه است (در جدول بالا، سه سال داده یعنی حداکثر 14 قاعدهٔ مستقل)، تعداد امتحانهایی که یک نتیجه را هنوز معنیدار نگه میدارد کم است. اگر بکتستتان در یک بازهٔ تقریباً سه ساله 30 ترکیب را امتحان کرده، نتیجهٔ بهترین را «سرنخ» بخوانید نه «اثبات».
جمعبندی
بکتست وقتی چیزی میگوید که بدانید چند بار امتحان کردهاید. ده امتحان، یک نسبت شارپ 1.5 را از هیچ میسازد؛ سه سال داده برای بیش از 14 امتحان مستقل کم است؛ و نصف کردن نسبت شارپ حساب درستی برای تخفیف نیست. جاروب و قاعدههای آپشنباز ابزار خوبی برای دیدن حساسیتاند، به شرط اینکه بهترین ردیف را مدرک نگیرید.
منبع
David H. Bailey، Jonathan M. Borwein، Marcos López de Prado و Qiji Jim Zhu، «Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance»، Notices of the American Mathematical Society، مه 2014 ( متن نویسندگان ). Campbell R. Harvey و Yan Liu، «Backtesting»، The Journal of Portfolio Management، جلد 41، پاییز 2015 ( متن ). Victor DeMiguel، Lorenzo Garlappi و Raman Uppal، «Optimal Versus Naive Diversification: How Inefficient Is the 1/N Portfolio Strategy?»، The Review of Financial Studies، جلد 22، شماره 5، 2009 ( چکیده ). جدولها حساب مستقل خودماناند و با عدد مقالهٔ اول (7 قاعده در 2 سال، حدود 45 در 5 سال، 1.57 برای 10 امتحان) سازگارند؛ متن مقالهها ترجمه نشده است.
