Purged cross-validation ו־embargo: מניעת זליגת תוויות במודלי מסחר
למדו כיצד מסירים חפיפה בין תוויות עתידיות בסדרות פיננסיות, ובמה purging ו־embargo שונים מ־walk-forward, מ־TimeSeriesSplit ומ־CPCV.
במדריך הזהמדוע חלוקה אקראית עלולה להטעות?
תקציר קצר
כאשר תקופות התוצאה העתידיות של תוויות חופפות, חלוקה אקראית עלולה להעביר מידע בין אימון לבדיקה. Purging מסיר דגימות אימון שתקופות התוצאה שלהן חופפות לתוצאות של דגימות בדיקה. Embargo הוא מרווח נפרד אחרי מקטע הבדיקה בחלק מהחלוקות. אף אחד מהם אינו מבטיח סדר כרונולוגי או מונע שגיאות בבניית מאפיינים.
מדוע חלוקה אקראית עלולה להטעות?
K-fold אקראי מחלק שורות באקראי בין קפלי אימון ובדיקה. הדבר עלול להטעות בנתונים פיננסיים כאשר תצפיות תלויות זו בזו או כאשר תקופות התוצאה העתידיות שלהן חופפות. תווית של דגימת אימון עשויה לכלול תשואות מתאריכים שנכללים גם בתווית של דגימת בדיקה. כך הבדיקה נעשית קלה יותר מחיזוי תקופה עתידית שטרם נצפתה.
עם זאת, לא כל שימוש ב־K-fold שגוי. ההתאמה תלויה בשאלת ההערכה, באופן יצירת הדגימות, בתלות ביניהן ובאופן הגדרת התוויות. חלוקה אקראית של שורות תשואה יומיות אינה בודקת כשלעצמה את חלונות הזמן שכל שורה מייצגת.
הגדירו את זמן ההחלטה, המאפיינים וטווח התווית
לכל דגימה תעדו את זמן ההחלטה t, את המידע שהיה זמין בפועל באותו זמן, את חלון המאפיינים, את טווח היעד או התווית ואת מועד ההכרעה של התווית t1. תווית של תשואה לחמישה ימי מסחר קדימה מכסה (t,t+5]: היא מתחילה אחרי זמן ההחלטה ומסתיימת בסוף המושב החמישי.
כל מאפיין צריך להשתמש רק במידע שהיה אפשר לדעת בזמן החיזוי t. חפיפה בין היסטוריית עבר של חלונות מאפיינים אינה כשלעצמה זליגה; אסטרטגיה יכולה להשתמש מחדש בהיסטוריית שוק שכבר הייתה זמינה. שימוש בערך עתידי או בגרסת נתונים שפורסמה לאחר זמן ההחלטה כן דולף מידע. שמרו את חותמות הזמן בפועל של תחילת האירוע וסיומו, במיוחד כשתוויות של אירועים שונים נמשכות פרקי זמן שונים.
הסירו מאימון תוויות שחופפות לתוצאות הבדיקה
Purging מסיר דגימת אימון אם טווח התוצאה או התווית בפועל שלה חופף לטווח התוצאה של דגימת בדיקה. יש לבדוק את הטווחים עצמם, ולא להסיר מספר שרירותי של שורות משני צדי גבול הקפל. בתוויות אירוע שאורכן משתנה, השתמשו בזמני ההתחלה והסיום בפועל של כל אירוע; אל תחליפו אותם במספר שורות קבוע ונוח.
פרנסיסקו לופז דה פראדו מסביר cross-validation ו־purging בפרק 7 של Advances in Financial Machine Learning. הסרת תוויות חופפות אינה הופכת חלוקה לכרונולוגית: ייתכן שאימון עדיין יכלול תצפיות מאוחרות ממקטע הבדיקה. ציינו איזו שאלה החלוקה עונה עליה במקום להתייחס לכל קפל כאילו הוא סימולציה של פריסה עתידית.
דוגמה לפי ימי מסחר לבדיקת חפיפה
נניח שההחלטות מתקבלות מדי יום, ושתווית התוצאה מתייחסת לחמשת ימי המסחר הבאים, כלומר (t,t+5]. תאריכי ההחלטה במקטע הבדיקה הם 11–15, ולכן תוויות הבדיקה נמשכות עד יום 20. לצורך הדוגמה, הימים הם ימי מסחר רצופים והקצה הימני של הטווח כלול, כפי שמציינים הסוגריים.
תווית אימון (7,12] חופפת לתווית בדיקה שמתחילה ביום 11, ולכן היא מוסרת. גם (16,21] חופפת לתווית בדיקה שמתחילה ביום 15 ומסתיימת ביום 20, ולכן גם היא מוסרת. ההחלטה מבוססת על חפיפת טווחים ולא על מרחק קבוע במספרי השורות.
תווית של דגימה מאוחרת יותר עשויה לא לחפוף לתוצאות הבדיקה, ובכל זאת להיפסל בגלל embargo שנקבע בנפרד אחרי מקטע הבדיקה. זו דוגמה להמחשה בלבד; אין בה המלצה על פער קבוע שמתאים לכל נתון או אסטרטגיה.
השתמשו ב־embargo כמרווח נפרד עם נימוק
Embargo הוא מרווח מוגדר אחרי מקטע בדיקה, לפני שמאפשרים לתצפיות מאוחרות יותר להיכנס לאימון בחלוקות שמשתמשות גם בנתונים שאחרי הבדיקה. הוא עשוי לצמצם תלות שנותרה בגלל בניית אירועים או מאפיינים, גם אם התווית המאוחרת אינה חופפת ישירות לתווית בדיקה.
אין אחוז או משך אוניברסלי, והמרווח אינו תחליף לבדיקת טווחי התוויות בפועל. קבעו אותו לפי תדירות הדגימה, אופק התווית, בניית המאפיינים והתלות שרוצים לצמצם, ותעדו את הנימוק. embargo ארוך מדי עלול להשליך נתוני אימון מועילים; קצר מדי עלול להשאיר תלות רלוונטית.

השוו שיטות אימות לפי השאלה שהן עונות עליה
K-fold אקראי מפזר תצפיות בין הקפלים, ולכן אינו בהכרח מדמה חיזוי של תקופה מאוחרת כאשר יש תלות או תוויות חופפות. Walk-forward או rolling-origin מאמן על העבר ובודק מקטע זמן מאוחר יותר, ואז מזיז את הגבול קדימה. הדבר קרוב יותר לסימולציה היסטורית של פריסה, אך אינו מונע לבדו זליגת מאפיינים או בחירת מודל לפי נתוני הבדיקה.
TimeSeriesSplit של scikit-learn יוצר חלוקות עוקבות בסדר כרונולוגי, והפרמטר gap משמיט מספר שורות בין אימון לבדיקה. לפי התיעוד הרשמי, השוואת משכי בדיקה מניחה תצפיות במרווחים שווים; gap סופר שורות ואינו מנוע purging לפי זמני אירוע משתנים. Purged K-fold מסיר חפיפת תוויות בפועל אך עשוי לאמן גם על שורות שאחרי מקטע הבדיקה. Combinatorial purged CV (CPCV) מרכיב קבוצות בדיקה כדי ליצור כמה מסלולי בדיקה, אך אינו הופך אותם אוטומטית לסימולציה כרונולוגית היסטורית או מסיר זליגות אחרות.
בפרק 12 של Advances in Financial Machine Learning נדונות שיטות walk-forward ו־CPCV וההקשרים שבהם משתמשים בהן.
חפשו מקורות זליגה גם מחוץ לטווח התווית
תוצאה עדיין עלולה להטעות אם חותמות הזמן של מאפיינים שגויות או אם הם משתמשים במידע עתידי, אם המאגר כולל תיקונים שפורסמו מאוחר יותר או רק ניירות ערך ששרדו, או אם עיבוד מקדים ובחירת מאפיינים בוצעו על כל הנתונים לפני החלוקה.
גם ניסיונות רבים עם מודלים או אסטרטגיות ובחירת התוצאה הטובה ביותר יוצרים הטיית בחירה, אפילו כשהתוויות אינן חופפות. בדיקת עבר שמתעלמת מעלויות מסחר או מניחה ביצועים במחירים לא מציאותיים עלולה לנפח תוצאות. Bailey ועמיתיו מנתחים את הסיכון הזה ב־The Probability of Backtest Overfitting. שיטת חלוקה לבדה אינה פותרת את כל הבעיות האלה.
התאימו עיבוד ובחירה רק בתוך קפלי האימון
בכל קפל התאימו טרנספורמציות, בחירת מאפיינים ובחירת פרמטרים על נתוני האימון בלבד. השתמשו באימות זמן מקונן כדי לבדוק מועמדים; כך לא משתמשים באותו קפל חיצוני גם לבחירת מודל וגם לאומדן הביצועים שלו.
לאחר קביעת השיטה, שמרו תקופה כרונולוגית אחרונה שלא נגעו בה כ־holdout סופי. אל תשנו שוב ושוב את המודל בעקבות התוצאה ואז תציגו את התקופה כבדיקה עצמאית. Cross-validation מעריך ביצועים תחת חלוקה ונתונים מסוימים; הוא אינו מבטיח ביצועים בעתיד.
תעדו תהליך אימות שאפשר לשחזר
רשמו את יחידת הדגימה, זמן ההחלטה, מקורות המאפיינים ומועד זמינותם, חלון כל מאפיין וטווח התווית בפועל (t,t1]. תעדו את שיטת החלוקה, הקפלים, כלל ה־purging, משך ה־embargo והנימוק, ואם השתמשתם ב־TimeSeriesSplit גם את מספר שורות ה־gap.
הסבירו אם האימון כלל תצפיות שאחרי הבדיקה, כיצד טופלו עלויות וביצועים, ובאיזה קפל נבחרו הפרמטרים. לקריאה נוספת: פשרת הטיה־שונות והתאמת־יתר של מודלים פיננסיים, בדיקות מרובות ושיעור גילוי שגוי בפיננסים, ואנואליזציה של שארפ עם מתאם סדרתי.
שאלות נפוצות
Q1האם K-fold אקראי תמיד שגוי בנתונים פיננסיים?
לא. הוא עשוי להתאים אם הוא תואם לשאלת ההערכה ולמבנה הדגימות. תלות סדרתית או חפיפה בין טווחי תוצאות עלולות להטעות, ולכן בדקו את יחידת הדגימה והתווית לפני בחירת השיטה.
Q2האם embargo מחליף purging?
לא. Purging מסיר דגימות אימון שטווח התוצאה שלהן חופף לבדיקה. Embargo משמיט מרווח נפרד אחרי מקטע הבדיקה בחלק מהחלוקות. לכל אחד תפקיד אחר, ושניהם אינם מצדיקים שימוש במאפיין שלא היה זמין בזמן החיזוי.
Q3האם CPCV מבטיח ביצועים בעתיד?
לא. CPCV יוצר מסלולי בדיקה מרובים לפי תכנית חלוקה מסוימת. הוא אינו מבטל זליגת מידע, ניסויים חוזרים או אי־ודאות לגבי שוק וביצוע עתידיים.
מקורות וקריאה נוספת
דיווח על בעיה
נכין אימייל עם קישור למאמר הזה. Mark יקבל את הדיווח רק לאחר שתשלחו אותו
בדיקה מהירה
סיימת לקרוא? בדוק את עצמך ב־3 שאלות
שאלה 01
מתי צריך להסיר דגימת אימון באמצעות purging?
בחר תשובה כדי לראות את ההסבר
מילון מונחי אופציות
The relationship between systematic prediction error from model mismatch and instability caused by sensitivity to the training sample.
קראו את המדריך המעמיקFamily-wise error rateThe probability of falsely rejecting at least one true null hypothesis within a predefined family of tests.
קראו את המדריך המעמיקAssignmentThe process that requires an option writer to fulfill the contract after an exercise notice is allocated; it can create or remove an underlying position.
קראו את המדריך המעמיק