לחץ למידע נוסף על מחבר מערית וידמן.
אפליקציה מלאה לניתוח סדרות זמן מכסה את השלבים ב מדע נתונים מחזור מגישה לשינוי, מודלים, הערכה ופריסה של נתוני סדרות זמן. עם זאת, עבור נתוני סדרות זמן המשימות הספציפיות בשלבים אלה שונות בהשוואה לנתוני חתך. לדוגמה, נתוני חתך נאספים כתמונת מצב של אובייקט אחד בנקודת זמן אחת, בעוד שנתוני סדרות זמן נאספים על ידי התבוננות באותו אובייקט לאורך פרק זמן. לדפוסים הרגילים בנתוני סדרות זמן יש את המינוח הספציפי שלהם, והם קובעים את העיבוד המקדים הנדרש לפני המעבר למודלים של סדרות זמן. ניתן לעצב סדרות זמן עם סוגים רבים של מודלים, אך מודלים ספציפיים של סדרות זמן, כגון מודל ARIMA, משתמשים במבנה הזמני בין התצפיות.
במאמר זה, אנו מציגים את המשימות הנפוצות ביותר במסע של בניית אפליקציית סדרת זמן. לבסוף, אנו מיישמים את התיאוריה בפועל על ידי בניית אפליקציה לדוגמה בפלטפורמת Analytics.
גישה לסדרות זמן
לסדרות זמן יש מקורות ויישומים שונים: נתוני מכירות יומיים לחיזוי ביקוש, נתונים מאקרו-כלכליים שנתיים לתכנון פוליטי ארוך טווח, נתוני חיישנים משעון חכם לניתוח מפגש אימון ועוד רבים. כל סדרות הזמן הללו נבדלות, למשל, בפירוט, בקביעות ובניקיון שלהן: אנו יכולים להיות בטוחים שיש לנו ערך תוצר עבור המדינה שלנו לשנה זו, וגם לעשר השנים הבאות, אך איננו יכולים להבטיח כי החיישן של השעון החכם שלנו פועל ביציבות בכל פעילות גופנית ובכל טמפרטורה. יכול להיות גם שנתוני סדרות זמן אינם זמינים במרווחי זמן קבועים, אלא ניתן לאסוף רק מנקודות אירוע אקראיות, כגון זיהומים במחלות או ביקורים ספונטניים של לקוחות. עם זאת, המשותף לכל סוגי הנתונים הללו של סדרות זמן הוא שהם נאספים מאותו מקור לאורך זמן.
סדרת זמן סידור וניקוי
ברגע שיש לנו את נתוני סדרת הזמן, השלב הבא הוא להפוך אותם למרווחים שווה בפירוט מתאים, רציף ונקי. המשימות הנדרשות תלויות בצורה המקורית של הנתונים וגם שלנו ניתוח מַטָרָה. לדוגמה, אם אנחנו מתכננים קידום מכירות של מוצר של שבוע אחד, אולי נהיה מעוניינים בנתונים מפורטים יותר מאשר אם נרצה לקבל סקירה כללית של המכירות של מוצר כלשהו.
מִיוּן
יש למיין סדרות זמן לפי זמן. כאשר אתה מחלק נתונים לקבוצות אימון ובדיקות, זכור לשמר את המבנה הזמני בין הרשומות על ידי לקיחת נתונים מלמעלה/למטה לבדיקה/אימון. אם הנתונים שלך מכילים יותר מרשומה אחת לכל חותמת זמן, עליך לצבור אותם לפי חותמת הזמן. לדוגמה, כאשר יש לך מספר הזמנות ביום ואתה מעוניין במכירות היומיות, עליך לסכם את המכירות עבור כל יום. יתרה מזאת, אם אתה מעוניין בסדרת הזמן בפירוט אחר ממה שיש לך כרגע בנתונים (לדוגמה, מכירות חודשיות במקום מכירות יומיות), תוכל לצבור עוד יותר את הנתונים בפירוט המועדף.
ערכים חסרים
אם חסרות כמה חותמות זמן, עליך להציג אותן לסדרת הזמן על מנת להפוך אותה לרווחה שווה. לפעמים הרשומות החסרות הן חלק מהדינמיקה של סדרת הזמן (לדוגמה, בורסה נסגרת ביום שישי ונפתחת ביום שני).
כאשר אתה מציג את חותמות הזמן החסרות לנתונים, הערכים המתאימים כמובן חסרים. אתה יכול לזקוף את הערכים החסרים הללו על ידי, למשל, אינטרפולציה ליניארית או ערכי ממוצע נע. זכור, עם זאת, שהטכניקה הטובה ביותר להקצאת ערכים חסרים תלויה בדינמיקה הרגילה בנתונים. לדוגמה, אם אתה בודק עונתיות שבועית בנתונים יומיים וחסר ערך בשבת אחת, אז הערך של השבת האחרונה הוא כנראה התחליף הטוב ביותר. אם הערכים החסרים אינם חסרים באקראי, כמו מחירי הסגירה החסרים של שוק המניות בסופי שבוע, אתה יכול להחליף אותם בערך קבוע, שיהיה 0 במקרה זה. מצד שני, אם הערכים החסרים הם אקראיים והם מתרחשים מספיק רחוק בעבר, אתה יכול להשתמש בנתונים אחרי הערך החסר, ולהתעלם מהנתונים הישנים יותר.
דפוסים לא סדירים
דרך טובה אחת להתמודד עם תנודות מהירות וחריגות היא החלקת הנתונים. ניתן להשתמש במספר טכניקות, כגון ממוצע נע ו החלקה מעריכית. כמו כן, חיתוך הערכים שנמצאים מחוץ לשפם של עלילת קופסה מחליק את הנתונים. זכור שעונתיות חזקה בנתונים עלולה להוביל לעלילה נרחבת של קופסה, ואז עדיף להשתמש בתרשים תיבה מותנה כדי לזהות חריגים.
עם זאת, לפעמים סדרת הזמן פשוט מציגה תופעה מאוד לא סדירה! במקרה כזה, אפשר לנסות להפוך את סדרת הזמן לסדירה יותר על ידי חילוץ תת-קבוצה שלה, למשל על ידי התחשבות במכירות של מוצר אחד בלבד במקום במכירות של כל הסופרמרקט, או על ידי קיבוץ הנתונים.
חקר ושינוי סדרות זמן
בשלב זה, יש לנו את נתוני סדרת הזמן שלנו בצורה המתאימה לחקור אותם ויזואלית ומספרית. העלילות והסטטיסטיקות השונות חושפות דפוסים לטווח ארוך וקצר טווח ויחסים זמניים בסדרת הזמן שבה נוכל להשתמש כדי להבין טוב יותר את הדינמיקה שלה ולחזות את התפתחותה העתידית.
חקר חזותי של סדרות זמן
העלילה הבסיסית לחקר סדרות זמן היא עלילת הקו (איור 3) המציגה כיוון אפשרי, תנודות קבועות ולא סדירות, חריגים, פערים או נקודות מפנה בסדרת הזמן. אם אתה מבחין בדפוס קבוע בסדרת הזמן שלך, כגון עונתיות שנתית במכירות של משקאות, לאחר מכן תוכל לבדוק כל מחזור עונתי (שנה) בנפרד בחלקה עונתית (איור 3). בעלילה העונתית ניתן לראות בקלות, למשל, אם יולי היה חודש מכירות חזק יותר השנה מאשר בשנה שעברה, או שהמכירות החודשיות גדלות משנה לשנה.
אם אתה מעוניין במה שקורה בעונות השנה, כגון מה המכירות החציוניות בחודשי הקיץ וכמה ולאיזה כיוון המכירות משתנות מדי חודש, אתה יכול לבדוק דינמיקה מסוג זה במגרש קופסא מותנה (איור 3). עלילה שימושית נוספת לחקר סדרות זמן היא עלילת הפיגור (איור 3). עלילת הפיגור מציגה את הקשר בין הערכים הנוכחיים לערכי העבר, למשל, מכירות היום ומכירות שבוע קודם לכן.
פירוק קלאסי של סדרות זמן
פירוק קלאסי, כלומר פירוק סדרת הזמן למגמה, לעונתיות ולשאריות שלה, מספק אמת מידה טובה לחיזוי. החלק הנותר של סדרת הזמן, השארית, אמור להיות יציב, וניתן לחזות על ידי מודל ARIMA, למשל. זכור, עם זאת, שאם הסדרת השיורית אינה נייחת, ייתכן שיידרשו כמה טרנספורמציות נוספות, כגון הבדלים מסדר ראשון, או טרנספורמציה ביומן של סדרת הזמן המקורית.
ראשית, אם סדרת הזמן מציגה כיוון, מגמה, ניתן לבטל את סדרת הזמן, למשל, על ידי התאמת מודל רגרסיה דרך הנתונים, או על ידי חישוב ערך ממוצע נע.
שנית, אם סדרת הזמן מציגה תנודה קבועה - עונתיות - ניתן להתאים את סדרת הזמן עבורה. אתה יכול למצוא את הפיגור שבו מתרחשת העונתיות העיקרית בעלילת הקורלציה האוטומטית של סדרת הזמן. לדוגמה, אם אתה רואה שיא בפיגור 7, ויש לך נתונים יומיים, אז הנתונים יהיו עונתיים שבועיים. ניתן להתאים את העונתיות על ידי הבדל הנתונים בפיגור שבו מתרחש הזינוק הגדול. אם ברצונך להתאים עונתיות שנייה בנתונים, תוכל לעשות זאת על ידי חזרה על ההליך עבור סדרת הזמן המותאמת (השונה).
לבסוף, כאשר הגעתם לסדרת זמן נייחת שמוכנה לדגם על ידי למשל דגם ARIMA, תוכלו לבצע בדיקה סופית עם, למשל, מבחן Ljung-box עבור נייחות.
מודלים והערכת סדרות זמן
כעת נעבור למודל של החלק הנותר של סדרת הזמן המכילה את הדינמיקה הבלתי סדירה שלה. אנחנו יכולים לעשות זאת עם דגמי ARIMA, למידת מכונה מודלים, רשתות עצביות וגרסאות רבות שלהם. לעתים קרובות אנו מדגמים את החלק הנותר של סדרת הזמן לפי מודלים אלה, מכיוון שהוא נייח. עם זאת, לא תמיד יש צורך בפירוק סדרות הזמן, מכיוון שדגמים מסוימים, כמו למשל דגם ARIMA העונתי, עובדים גם עבור דוגמנות סדרות זמן לא נייחות.
בהמשך, אנו אוספים מספר מאפיינים של טכניקות הדוגמנות השונות הללו, קווי הדמיון וההבדלים ביניהן, כך שתוכל לבחור את הטוב ביותר עבור מקרה השימוש שלך. זכור גם שמועיל לאמן מספר דגמים, ואפילו לבנות אנסמבל שלהם!
דגמי ARIMA
ארימה מודל (Autoregressive Integrated Moving Average) הוא מודל רגרסיה ליניארית בין ערכי העכשווי והעבר (AR-part), וגם בין שגיאות התחזית הנוכחיות והעבר (MA-part). אם לדגם יש I-part שאינו אפס, הנתונים מובדלים על מנת להפוך אותו נייח. מודלים בסיסיים של ARIMA מניחים שסדרת הזמן היא נייחת, ולסדרות זמן נייחות אין תבניות צפויות בטווח הארוך. ניתן לראות את ירידת הדיוק בתחזיות ארוכות הטווח ברווחי הסמך הגדלים של התחזיות. לא תמיד יש יותר נתונים עדיף לאימון מודלים של ARIMA: מערכי נתונים גדולים עשויים לגרום לאומדן פרמטרי המודל של מודל ARIMA לגוזל זמן, כמו גם להגזים את ההבדל בין התהליך האמיתי לתהליך המודל.
מודלים של למידת מכונה
מודלים של למידת מכונה משתמשים בערכים בפיגור כעמודות מנבא, והם מתעלמים מהמבנה הזמני בין עמודת היעד ועמודות המנבאות. מודלים של למידת מכונה יכולים גם לזהות דפוסים ארוכי טווח ונקודות מפנה בנתונים, בתנאי שסופקו מספיק נתונים בנתוני האימון כדי לבסס דפוסים אלה. באופן כללי, ככל שהנתונים מראים יותר אי סדרים, יש צורך בכמות גדולה יותר של נתונים להכשרת המודל. כאשר אתה מיישם מודל למידת מכונה, מומלץ לדגמן את השארית. אחרת, אתה עשוי לבנות מודל מסובך יותר ממודל הפירוק הקלאסי, אבל למעשה לא לומד שום דבר חדש נוסף על כך!
טיפים לבחירת דגם
ראשית, יש תופעות שקשה לחזות, ובמקרה כזה לרוב הגיוני ללכת על מודל פשוט יותר ולא להשקיע משאבים במודלים של משהו שלא ניתן לחזות במדויק.
שנית, ביצועי הדגם אינם הקריטריון היחיד. אם החלטות חשובות מבוססות על תוצאות המודל, הפרשנות שלו עשויה להיות חשובה יותר מביצועים קצת יותר טובים. עם זאת, רשת עצבית עשויה להפסיד מול מודל פירוק קלאסי פשוט למרות שהיא חוזת מעט יותר טוב.
שלישית, הוספת משתנים מסבירים למודל שלך עשויה לשפר את דיוק התחזית. עם זאת, במודל כזה צריך לחזות גם את המשתנים ההסברתיים, והמורכבות הגוברת של המודל לא תמיד שווה את הדיוק הטוב יותר. לפעמים מספיקות הערכות גסות כדי לתמוך בהחלטות: אם סכומי משלוח מחושבים בעשרות ומאות, אז גם הביקוש החזוי לא חייב להיות פרטני יותר.
הערכת מודל
לאחר אימון מודל, השלב הבא הוא להעריך אותו. עבור חיזוי בתוך המדגם, מערך הבדיקות הוא מערך ההדרכה עצמו, כך שתהליך המודל מותאם לנתונים ששימשו להכשרת המודל. עבור חיזוי מחוץ לדגימה, מערך הבדיקות הוא לאחר ההכשרה שנקבעה בזמן.
מדד שגיאה מומלץ להערכת מודל סדרת זמן הוא ממוצע השגיאה המוחלט באחוז (MAPE), מכיוון שהוא מספק את השגיאה בסולם אוניברסלי, כאחוז מהערך בפועל. עם זאת, אם הערך האמיתי הוא אפס, מדד זה אינו מוגדר, ולאחר מכן גם מדדי שגיאה אחרים, כמו השגיאה הממוצעת בריבוע השורש (RMSE), זה מה שאעשה. עם זאת, מה שמומלץ לעתים קרובות הוא לא להשתמש בריבוע R. המדד R-squad אינו מתאים להקשר של ניתוח סדרות זמן מכיוון שההתמקדות היא בחיזוי שונות שיטתית עתידית של עמודת היעד במקום לעצב את כל השונות בעבר.
חיזוי ושחזור סדרות זמן
אנחנו כמעט שם! השלב האחרון הוא לחזות ערכים עתידיים ולבנות מחדש את האות.
חיזוי דינמי
אם יש לך מודל שאינו יכול לספק תחזיות מדויקות לטווח ארוך, פריסה דינמית משפרת לעתים קרובות את דיוק התחזית מחוץ לדגימה. בפריסה דינמית, רק נקודה אחת בעתיד צפויה בכל פעם, ונתוני העבר מתעדכנים לפי ערך תחזית זה כדי ליצור את התחזית הבאה (איור 5).
שחזור מגמה ועונתיות
לבסוף, אם נפרק את סדרת הזמן לפני החיזוי, עלינו להחזיר את המגמה ו/או העונתיות לתחזיות. אם נתאים את העונתיות על ידי הבדל הנתונים, נתחיל לשחזר את האות על ידי הוספת ערכים בפיגור שבו מתרחשת העונתיות. לדוגמה, אם היו לנו נתונים יומיים y שבהם החלנו הבדלים עונתיים בפיגור 7 (עונתיות שבועית), שחזור העונתיות הזו ידרוש את החישוב הבא לערכי התחזית yt+1, yt+2, ..., yt+h :
איפה tהיא נקודת הזמן האחרונה בנתוני האימון, ו h הוא אופק התחזית.
על מנת לשחזר עונתיות שנייה, נחזור על השלב המתואר לעיל עבור סדרת הזמן המשוחזרת. אם נרצה לשחזר את רכיב המגמה לסדרת הזמן, היינו מיישמים את מודל הרגרסיה המייצג את המגמה לסדרת הזמן המשוחזרת.
השלם יישום סדרות זמן בפלטפורמת Analytics
לבסוף, בואו נסתכל כיצד להפוך את השלבים הללו למעשיים באמצעות פלטפורמת Analytics שלנו. זרימת העבודה גישה לסדרות זמן של טרנספורמציה ומודלים (זמין ב-Hub) באיור 6 מציג את השלבים מגישה לניקוי, חקירה ויזואלית, פירוק ועיצוב סדרות זמן. עבור חלק מהמשימות הללו, אנו משתמשים רכיבי סדרות זמן שכוללים זרימות עבודה כפונקציות ספציפיות לסדרות זמן: צבירה את הנתונים בפירוט שנבחר, בצע את הפירוק הקלאסי ועוד.
בדוגמה זו אנו משתמשים ב- דוגמה - סופר-סטור נתונים שסופקו על ידי תמונת חיה. בניתוח שלנו אנו מתמקדים בהזמנות של כל המוצרים מ-2014 עד 2017 - בסך הכל 9994 רשומות. אנו מתחילים את העיבוד המקדים על ידי עיצוב מחדש של הנתונים לנתוני סדרות זמן על ידי חישוב סך המכירות ליום. כעת, יש לנו רק ערך אחד ליום, אך ישנם ימים חסרים מכיוון שלא הוגשו הזמנות בימים אלו. לכן, אנו מציגים בימים אלו את סדרת הזמן ומחליפים את ערכי המכירות החסרים בערך קבוע 0. לאחר מכן, אנו אוספים את הנתונים ברמה החודשית, ולוקחים בחשבון את ממוצע המכירות בכל חודש בניתוח נוסף.
לצורך חקר חזותי, אנו גם אוספים את הנתונים ברמה שנתית, ומגלים שיש נקודת מפנה בתחילת שנת 2015, כפי שמראה עלילת הקו מימין באיור 7. עלילת הקו משמאל מציגה את העונתיות השנתית בנתונים: יש שתי שיאים קבועים בסוף כל שנה, ושיא נמוך יותר בתחילת כל שנה. אנו מזהים גם עונתיות שנתית בנתונים, כפי שמוצג על ידי הזינוק הגדול בפיגור 12 בחלקת ACF משמאל. אנו מפרקים את סדרת הזמן למגמה, לעונתיות ולשאריות שלה, ורכיבים אלו מוצגים בתרשים הקו באמצע באיור 7. עלילת ה-ACF מימין אינה מציגה קורלציה אוטומטית משמעותית בסדרת השיוריים.
לאחר מכן, אנו מדגמים את הסדרה השארית של ממוצע המכירות החודשי עם דגם ARIMA. לאחר הבדל בפיגור 12, אורך סדרת הזמן הוא 36 תצפיות. אנו מחפשים את הדגם הטוב ביותר עם רכיב Auto ARIMA Learner עם סדר מקסימלי 4 עבור חלקי AR ו-MA והזמנה מקסימלית עבור חלק I. המודל בעל הביצועים הטובים ביותר מבוסס על קריטריון מידע של Akaike הוא ARIMA (0, 1, 4), וה-MAPE המתקבל המבוסס על תחזיות בתוך המדגם הוא 1.153.
לבסוף, אנו מעריכים את דיוק התחזית של המודל מחוץ לדגימה. זרימת העבודה חיזוי ושחזור סדרות זמן (זמין ב-Hub) באיור 8 מראה כיצד לחזות את המכירות היומיות בשנת 2017 בהתבסס על הנתונים החודשיים בשנים 2014 עד 2016 (24 תצפיות), ומודל ARIMA המנצח (0,1,4) באמצעות הפריסה הדינמית גִישָׁה. לאחר מכן, אנו משחזרים את האות, במקרה זה, מחזירים את המגמה והעונתיות השנתית לערכי התחזית (12 ערכי מכירות ממוצעים חודשיים). אנו משווים בין הערכים בפועל לבין הערכים החזויים, ומקבלים MAPE של 0.336.
<br> סיכום
לסדרות זמן, בין אם מדובר בנתוני חיישנים המראים את התנהגותו של אובייקט זעיר ננו-שנייה אחרי ננו-שנייה, לנתונים מאקרו-כלכליים של המאה ה-20, או משהו באמצע, יש טכניקות ניתוח ספציפיות החלות על גישה, מניפולציה ומודלים של שלבים.
במאמר זה, הצגנו לך את היסודות של טכניקות ניתוח עבור סדרות זמן שעוזרות לך להתחיל כשאתה עובד עם נתוני סדרות זמן.
הפניות
[1] צ'יימברס, ג'ון סי, סאטינדר ק' מוליק ודונלד ד' סמית'. כיצד לבחור את טכניקת החיזוי הנכונה. אוניברסיטת הרווארד, בית הספר לתואר שני במנהל עסקים, 1971.
[2] הינדמן, רוב ג'יי וג'ורג' אתנאסופולוס. חיזוי: עקרונות ופרקטיקה. OTexts, 2018.
מקור: https://www.dataversity.net/building-a-time-series-analysis-application/
- מוּחלָט
- נוסף
- אנליזה
- ניתוח
- בקשה
- יישומים
- AR
- מאמר
- המכונית
- יסודות
- בנצ 'מרק
- הטוב ביותר
- משקאות
- גוּף
- אריזה מקורית
- לִבנוֹת
- בִּניָן
- עסקים
- ניקוי
- טור
- Common
- רְכִיב
- אמון
- מדינות
- נוֹכְחִי
- נתונים
- יְוֹם
- דרישה
- צעצועי התפתחות
- מַחֲלָה
- הערכות
- אירוע
- תרגיל
- חקירה
- תרשים
- בסופו של דבר
- ראשון
- מתאים
- להתמקד
- יום שישי
- עתיד
- תמ"ג
- כללי
- ג'ורג '
- טוב
- בוגר
- טיפול
- הרווארד
- אוניברסיטת הרוורד
- איך
- איך
- HTTPS
- מאות
- לזהות
- תמונה
- זיהומים
- מידע
- IT
- יולי
- גָדוֹל
- עוֹפֶרֶת
- לִלמוֹד
- הלומד
- למידה
- רמה
- קו
- ארוך
- למידת מכונה
- גדול
- שוק
- מדדים
- מודל
- דוגמנות
- יום שני
- נתונים חודשיים
- חודשים
- המהלך
- רשת
- רשתות
- עצביים
- רשת עצבית
- רשתות עצביות
- נפתח
- להזמין
- הזמנות
- אחר
- תבנית
- ביצועים
- תכנון
- פלטפורמה
- נבואה
- המוצר
- מוצרים
- קידום
- רשום
- נסיגה
- מערכות יחסים
- משאבים
- תוצאות
- מכירות
- סולם
- בית ספר
- נבחר
- תחושה
- סדרה
- סט
- משלוח
- פָּשׁוּט
- קטן
- חכם
- תמונת בזק
- So
- התחלה
- החל
- סטטיסטיקה
- מניות
- שוק המניות
- הוגש
- קיץ
- תמיכה
- תמונת חיה
- יעד
- מבחן
- היסודות
- העתיד
- זמן
- חלק עליון
- הדרכה
- טרנספורמציה
- אוניברסלי
- אוניברסיטה
- ערך
- שעון
- שבוע
- שבועי
- מה
- ויקיפדיה
- בתוך
- תיק עבודות
- זרימת עבודה
- אמון
- ראוי
- שנה
- שנים
- אפס