יחידה 8 / 11

ניתוח סדרות זמן: נייחות, ARIMA וחיזוי

רווחים:

  • יכולת להבין את המושגים מגמה, עונתיות, נייחות ושורש יחידה ולהשתמש בבינה מלאכותית עם נתונים מדויקים למידול ולחיזוי של סדרות זמן.
  • יכולת לפרש ARIMA/מודלים עונתיים ולחזות אי ודאות (רווח סמך, ניתוח שיורי) ולהימנע מרגרסיה מזויפת
  • היכולת להבחין כי חיזוי בינה מלאכותית מבוססת על דפוסי עבר וכי שיקול הדעת של מומחים בא לידי ביטוי בתקופות של שבר מבני ומשבר.

חלק גדול מהנתונים המהווים את הלחם והחמאה של כלכלנים ואנליסטים פיננסיים הם סדרות זמן: ערכים של אותו משתנה הנמדדים במרווחים קבועים לאורך זמן (אינפלציה חודשית, מחיר מניה יומי, תוצר רבעוני). סדרות זמן שונות באופן מהותי מנתוני חתך רגילים מכיוון שהתצפיות אינן עצמאיות: הערך של היום תלוי באתמול. התלות הזו היא גם הזדמנות (אנחנו יכולים לחזות את העתיד) וגם סכנה (רגרסיה רגילה מטעה כאן בקלות). ביחידה זו, נראה כיצד בינה מלאכותית (AI) מאיצה מודלים וחיזוי של סדרות זמן, אך מדוע המלכודת המסוכנת ביותר - רגרסיה מזויפת - דורשת תשומת לב.

מושגי יסוד

סדרת זמן מכילה בדרך כלל שלושה מרכיבים: מגמה (מגמת עלייה/ירידה ארוכת טווח), עונתיות (דפוס קבוע שחוזר על עצמו לאורך כל השנה, למשל עלייה בתיירות בקיץ) ומחזוריות/רעש (תנודתיות שיורית). לפני הדוגמנות, המאפיין הקריטי ביותר של הסדרה הוא נייחות.

סדרה נייחת היא סדרה שהתכונות הסטטיסטיות שלה (ממוצע, שונות) נשארות קבועות לאורך זמן. סדרה לא נייחת מכילה מגמה, השונות שלה גדלה או שיש לה שורש יחידה. שורש יחידה הוא מבנה שבו הסדרה "זוכרת" זעזועים לצמיתות ואינה חוזרת לממוצע שלה; סדרה כזו מתנהגת כמו הליכה אקראית. למה זה חשוב? מכיוון שרגרסיה בין שתי סדרות לא נייחות יכולה לייצר מקדמי R גבוהים בריבוע ומשמעותיים גם אם אין קשר במציאות - זה נקרא רגרסיה מזויפת. רק המגמה הנפוצה גורמת לשתי הסדרות להיראות כ"קשורות".

זהירות: שתי סדרות עולות (למשל אוכלוסיית מדינה אחת ומכירות גלידה של מדינה אחרת) יכולות להיות בקורלציה גבוהה; כאשר שניהם גדלים עם הזמן. זו לא מערכת יחסים, אלא אשליה של מגמה משותפת. הקפד לבדוק את הנייחנות לפני התחלת הרגרסיה בסדרת הזמן.

זרימת עבודה של סדרת זמן שלב אחר שלב

1. דמיינו. עלו את הסדרה: האם יש מגמה, האם יש עונתיות, האם השונות משתנה עם הזמן, האם ישנה שבירה מבנית (שינוי רמה פתאומי)?

2. בדיקת נייחות. בדיקת ADF (Augmented Dickey-Fuller) ובדיקת KPSS שורש/נייצות של יחידת בדיקה. השניים משלימים זה את זה: ב-ADF השערת האפס היא "יש שורש יחידה", ב-KPSS הוא "נייח". בטוח יותר להשתמש בשניהם יחד.

3. קיפאון. אם הסדרה אינה נייחת, היא בדרך כלל שונה (ההבדל של תצפיות עוקבות; זה מסיר את המגמה). בידול פעם אחת הופך סדרת "משולבת מסדר ראשון" (I(1)) לנייחת. טרנספורמציה ביומן עוזרת גם אם השונות גדלה.

4. בנה מודל. המסגרת הנפוצה ביותר היא ARIMA (AutoRegressive Integrated Moving Average): היא משלבת את הרכיבים AR (תלות של הסדרה בערכי העבר שלה), I (דרגת הבדל), MA (השפעה של שגיאות עבר). אם יש עונתיות, נעשה שימוש ב-SARIMA. AI מייצר קוד עבור כלי בחירה אוטומטיים כגון auto.arima; אבל אל תקבל באופן עיוור בחירה אוטומטית.

5. בדקו שאריות. השאריות של מודל טוב צריכות להיות רעש לבן: אין דפוס, אין קורלציה אוטומטית. מבחן Ljung-Box בודק זאת. אם עדיין יש דפוס בשאריות, המודל אינו שלם.

6. לחזות ולהראות אי ודאות. התחזית אינה שורה אחת; תמיד ניתן עם מרווח ביטחון/הערכה. הטווח מתרחב ככל שהאופק מתארך - זה סימן לכנות, לא לפגם.

קואינטגרציה: מערכת יחסים אמיתית עם סדרות לא נייחות

שתי סדרות לא נייחות לא תמיד נותנות מערכות יחסים מזויפות. אם יש ביניהם שיווי משקל אמיתי לטווח ארוך (הם נעים יחד), זה נקרא קואינטגרציה וניתן לעצב אותו עם מודל תיקון השגיאות (ECM). אז הפתרון הוא לא "הבדל ולזרוק את המידע"; הוא לבדוק תחילה קואינטגרציה. הבחנה זו מבדילה בין רגרסיה מזויפת לבין מתאם אמיתי לטווח ארוך והיא שיקול תיאורטי ש-AI לא יכול להחליט בעצמו.

טבלת השוואה

סטטוס

סימפטום

גישה נכונה

סדרה נייחת

ממוצע/שונות קבועים

ישיר ARCHING

עם מגמה (שורש יחידה)

עלייה מתמשכת, ADF חסר משמעות

הבדל, אז דגם

שתי סדרות לא נייחות

R² גבוה עשוי להיות מזויף

ראשית, מבחן קואינטגרציה

עונתי

דפוס חוזר שנתי

SARIMA / הבדל עונתי

שבירה מבנית

שינוי רמה/שיפוע פתאומי

בדיקת שבירה, שיקול דעת מומחה

ארבע הנחיות הניתנות להעתקה

1. אבחון נייחות:

תפקידך: עוזר סדרת זמן. אני רוצה קוד R, אני לא חולק את הנתונים. 'סדרה' היא סדרת זמן חודשית (אובייקט ts). משימה: (1) צייר את גרפי הסדרות והקורלציה האוטומטית (ACF/PACF), (2) יישם את מבחני ה-ADF וה-KPSS, (3) הסביר כיצד לפרש את התוצאות יחד. אני אקבל את ההחלטה לקחת את ההבדל; אתה מייצר אבחנה.

2. בניית דגמים (בפיקוח):

הסדרה שלי נראית נייחת בהבדל הראשון. הצע דגם עם auto.arima אבל: (1) הסביר את הפקודות שנבחרו (p, d, q) ולמה הם נבחרו, (2) הוסף קוד כדי לבדוק אם השאריות הן רעש לבן עם Ljung-Box, (3) תזכיר לי לא לקבל באופן עיוור את הבחירה האוטומטית.

3. אזהרת רגרסיה מזויפת:

אני רוצה להגדיר רגרסיה בין שתי סדרות הזמן שלי (X, Y) אבל שניהם מופרעים. כתוב קוד זרימת עבודה שבודק את הסיכון של רגרסיה מזויפת: תחילה בדוק את הנייחנות של שניהם, ולאחר מכן החל מבחן קואינטגרציה (Engle-Granger או Johansen). לפני שאני מריץ את lm() ישירות, עצור אותי והסביר למה זה מסוכן.

4. חיזוי ואי ודאות:

כתוב קוד שמייצר תחזית של 12 חודשים קדימה עם מודל ARIMA שיצרתי; תכנן את האומדן עם רווחי הסמך של 80% ו-95%. הוסף הערה מתחת לתרשים כי התחזית מבוססת על דפוסי עבר ועלולה להפוך לבלתי חוקית במקרה של שבירה/משבר מבני.

הנחיה חלשה / הנחיה חזקה

הנחיה חלשה:

מצא את הקשר של שתי הסדרות הללו עם רגרסיה וחזה את השנה הבאה.

טענה זו היא הזמנה למלכודת הרגרסיה הכוזבת: אם מגדירים רגרסיה ללא בדיקת נייחות, נוצרים "קשר" גבוה בריבוע R אך חסר משמעות ואומדן לא מוצדק.

הנחיה עוצמתית:

תפקידך: עוזר סדרת זמן זהיר. המשך שלב אחר שלב: (1) בדוק את הנייחות של שתי הסדרות והדוח, (2) אם הם לא נייחים, אל תעשה רגרסיה ישירה, בדוק תחילה קואינטגרציה, (3) אם אתה מפיק תחזית, הקפד להוסיף רווח סמך ולכתוב אזהרת הפסקה מבנית. השאר לי את ההחלטה בכל צעד; התקדמות אוטומטית.

הבדל: הביקוש החזק מחייב סטיונריות ושילוב קואינטגרציה לפני רגרסיה, ומציג את האומדן בחוסר ודאות.

שלושה מיני תיקים

מקרה 1 - רגרסיה מזויפת. אנליסט מצא R²=0.91, p<0.001 בין שתי סדרות עולות (מחזור של מגזר אחד וצריכת אנרגיה של מדינה אחרת) וכתב "קשר חזק". כשהיועץ שלו ביקש את בדיקת הנייחנות, נראה שלשניהם יש שורשי יחידה, וכאשר נלקחו ההבדלים ביניהם, הקשר (r=0.04) נעלם לחלוטין. ריבוע ה-R הגבוה היה רק ​​אשליה של מגמה נפוצה. שיעור: רגרסיה של סדרות זמן אינה אמינה ללא בדיקת נייחות.

מקרה 2 - אמון עיוור בדגם האוטומטי. תלמיד השתמש בדגם שנבחר על ידי auto.arima מבלי לבחון אותו; הוא כבר לא הבחין בעונתיות משמעותית שנותרה בניתוח שלו. המודל העריך באופן שיטתי את חודשי הקיץ. מבחן Ljung-Box הראה אוטוקורלציה בשאריות. הדרך הנכונה: הייתה להוסיף את הרכיב העונתי (SARIMA). שיעור: בחירה אוטומטית היא ההתחלה, לא המילה האחרונה; יש לבדוק שאריות.

מקרה 3 - קריסת תחזית בהפסקה מבנית. מודל אחד חזה את הביקוש לשנת 2020 עם נתוני 2019; רווח הסמך היה צר, ההערכה הייתה בטוחה. ההלם הגדול (המגיפה) של 2020 פוצץ לחלוטין את התחזית מכיוון שהמודל ידע רק את דפוס העבר. לקח: חיזוי סדרות זמן מניח שהעבר יהיה דומה לעתיד; בעיתות משבר/התמוטטות, שיקול הדעת של המומחים בא לידי ביטוי.

טעויות נפוצות

  • ביסוס רגרסיה מבלי לבדוק את היציבות. רגרסיה מזויפת מייצרת קשר גבוה בריבוע R אך חסר משמעות; החל ADF/KPSS תחילה.
  • בידול ודילוג על קואינטגרציה. אם יש מערכת יחסים ארוכת טווח אמיתית, לקיחת ההפרש בצורה עיוורת זורקת מידע; בדוק תחילה את הקואינטגרציה.
  • שימוש בדגם האוטומטי מבלי לבדוק אותו. auto.arima היא התחלה טובה אך לא אמינה מבלי לבדוק את השאריות (Ljung-Box).
  • הצגת האומדן כשורה בודדת. הערכה ללא רווח סמך יוצרת דיוק כוזב; תמיד להראות חוסר ודאות.
  • התעלמות מההפסקה המבנית. משבר/שינוי משטר משבש את דפוס העבר; המודל לא יכול לדעת זאת, נדרש שיקול דעת מומחה.
טיפ: לפני כתיבת מציאת סדרת זמן, הסתכל שוב על הגרף הגולמי של הסדרה. מגמה ברורה או שבירה שאתה רואה במו עיניך היא האזהרה החזקה ביותר שאף בדיקה לא צריכה לגרום לך לשכוח.

לסיכום

בניתוח סדרות זמן, התצפיות אינן עצמאיות; זה גם נותן כוח ניבוי וגם יוצר מלכודות כמו רגרסיה מזויפת. בדיקת נייחות (ADF/KPSS) לפני דוגמנות; מבחן קואינטגרציה במקום ביסוס ישיר של רגרסיה בין סדרות לא נייחות; בדוק את השאריות של דגם ARIMA/SARIMA עד שיש רעש לבן; הצג תמיד את האומדן עם רווח סמך. בינה מלאכותית מייצרת את הקוד עבור כל השלבים הללו, אך המומחה שולט בבחירת הדגם האוטומטית, החלטת השילוב והפרשנות המבנית. חיזוי מבוסס על העבר; בעתות משבר, לשיפוט האנושי יש את המילה האחרונה.

משימת יישום

בחר סדרת זמן (חודשית או רבעונית). לפני AI, בקש והפעל אבחון נייחות (גרף, ACF/PACF, ADF, KPSS) וסווג את הסדרה כנייחת/לא נייח. הבדיל במידת הצורך, הגדר דגם ARIMA/SARIMA ובדוק את השאריות עם Ljung-Box. הפק תחזית של 6-12 תקופות קדימה והטמיע אותה עם מרווח סמך. לבסוף, שקול בפסקה כיצד התחזית שלך עשויה להיות שגויה אם היה שבר מבני בנתונים שלך.

רשימת בדיקה

  • [ ] תכננתי את הסדרה ובדקתי חזותית את הטרנדים, העונתיות וההפסקות.
  • [ ] בדקתי נייחות עם ADF ו-KPSS; קיבלתי את ההבדל הנדרש.
  • [ ] נמנעתי מרגרסיה ישירה ובדקתי קואינטגרציה בין סדרות לא נייחות.
  • [ ] בדקתי את שאריות הדגם (Ljung-Box) ואישרתי שמדובר ברעש לבן.
  • [ ] הצגתי את האומדן עם רווח סמך; לא נתתי את זה כשורה אחת.
  • [ ] ציינתי את גבולות הניבוי במקרה של שבירה/משבר מבני.