יש לי ארבע סדרות זמן שונות של מדידות לפי שעה:
- צריכת החום בתוך הבית
- הטמפרטורה מחוץ לבית
- השמש קרינה
- מהירות הרוח
אני רוצה להיות מסוגל לחזות את צריכת החום בתוך הבית. ישנה מגמה עונתית ברורה, הן על בסיס שנתי והן על בסיס יומי. מכיוון שיש מתאם ברור בין הסדרות השונות, אני רוצה להתאים אותן באמצעות מודל ARIMAX. ניתן לעשות זאת ב- R, באמצעות הפונקציה arimax מהחבילה TSA.
ניסיתי לקרוא את התיעוד על פונקציה זו ולקרוא על פונקציות העברה, אך עד כה הקוד שלי:
regParams = ts.union (ts (dayy)) transferParams = ts.union (ts (temp)) מודל 10 = arimax (חום, סדר = c (2,1,1), עונתי = רשימה (סדר = c (0,1,1), נקודה = 24), xreg = regParams, xtransf = transferParams, transfer = list (c (1,1)) pred10 = לחזות (model10, newxreg = regParams)
נותן לי:
כאשר הקו השחור הוא הנתונים שנמדדו בפועל, והקו הירוק הוא המודל המתאים שלי בהשוואה. לא רק שהוא לא מודל טוב, אבל ברור שמשהו לא בסדר.
אני מודה שהידע שלי על מודלים של ARIMAX ופונקציות העברה מוגבל. בפונקציה arimax (), (עד כמה שהבנתי), xtransf הוא הזמן האקסוגני סדרות בהן אני רוצה להשתמש (באמצעות פונקציות העברה) כדי לחזות את סדרות הזמן העיקריות שלי. אבל מה ההבדל בין xreg ל- xtransf באמת?
באופן כללי יותר, מה האם טעיתי? הייתי רוצה להיות בכושר טוב יותר מזה שהושג מ- lm (חום ~ טמפ רדי רוח * זמן).
עריכות: בהתבסס על חלק מהתגובות, הסרתי את ההעברה והוספתי במקום זאת xreg:
regParams = ts.union (ts (dayy), ts (temp), ts (time)) model10 = arimax (חום, סדר = c (2,1,1), עונתי = רשימה (סדר = c (0,1,1), נקודה = 24), xreg = regParams)
כאשר יום הוא "יום מספר השנה", והשעה היא שעת היום. טמפ הוא שוב הטמפרטורה בחוץ. זה נותן לי את התוצאה הבאה:
שהיא טובה יותר, אך לא כמעט מה שציפיתי לראות.