Obecnie pracuję nad projektem dotyczącym prognozowania danych szeregów czasowych (dane miesięczne). Używam R. do prognozowania. Mam 1 zmienną zależną (y) i 3 zmienne niezależne (x1, x2, x3). Zmienna y ma 73 obserwacje, podobnie jak pozostałe 3 zmienne (alos 73). Od stycznia 2009 r. Do stycznia 2015 r. Sprawdziłem korelacje i wartość p, a to wszystko znaczące, aby umieścić ją w modelu. Moje pytanie brzmi: jak mogę dokonać dobrej prognozy przy użyciu wszystkich zmiennych niezależnych? Nie mam przyszłych wartości dla tych zmiennych. Powiedzmy, że chciałbym przewidzieć, jaka będzie moja zmienna y w ciągu 2 lat (w 2017 r.). W jaki sposób mogę to zrobić?
Próbowałem następującego kodu:
model = arima(y, order(0,2,0), xreg = externaldata)
Czy mogę wykonać prognozę wartości y na 2 lata za pomocą tego kodu?
Próbowałem także kod regresji:
reg = lm(y ~ x1 + x2 + x3)
Ale jak mogę poświęcić czas na ten kod? Jak mogę przewidzieć, jaka będzie moja wartość y, powiedzmy 2 lata? Jestem nowy w statystyce i prognozowaniu. Zrobiłem trochę odczytu i kamery dla wartości opóźnienia, ale jak mogę użyć wartości opóźnienia w modelu do prognozowania?
Właściwie moje ogólne pytanie brzmi: jak mogę prognozować dane szeregów czasowych ze zmiennymi zewnętrznymi bez przyszłej wartości?
Odpowiedzi:
Jeśli dopasujesz model przy użyciu zmiennych zewnętrznych i chcesz prognozować na podstawie tego modelu, będziesz potrzebować (prognozowanych) przyszłych wartości zmiennych zewnętrznych, prostych i prostych. Nie można tego obejść.
Istnieją oczywiście różne sposoby prognozowania zmiennych objaśniających. Możesz użyć ostatniej zaobserwowanej wartości (prognozy „naiwnego losowego spaceru”) lub ogólnej średniej. Możesz po prostu ustawić je na zero, jeśli jest to dla nich przydatna wartość (np. Zdarzenia specjalne, które miały miejsce w przeszłości, takie jak trzęsienie ziemi, którego nie spodziewasz się powtórzyć). Lub możesz dopasować i prognozować model szeregów czasowych do tych samych zmiennych objaśniających, np
auto.arima
. Używając .Alternatywą jest dopasowanie modelu do wartości bez zmiennych objaśniających, poprzez usunięcie parametru, a następnie prognozowanie przy użyciu tego modelu. Jedną z zalet jest to, że może to nawet uchwycić prawidłowości w zmiennych objaśniających. Na przykład sprzedaż lodów może zależeć od temperatury i nie masz dobrych prognoz dotyczących temperatury za kilka miesięcy ... ale temperatura jest sezonowa, więc po prostu dopasowanie modelu bez temperatury daje model sezonowy, a twoja sezonowość prognozy mogą być całkiem dobre, nawet jeśli nie podasz faktycznego czynnika sprzedaży.y y
xreg
Polecam ten darmowy podręcznik do prognozowania online , szczególnie ten rozdział dotyczący regresji wielokrotnej (niestety nie ma tam nic o ARIMAX), a także blog Roba Hyndmana „The muddle model ARIMAX” .
źródło
Jak powiedział Yogi Berra: „Trudno jest przewidzieć, zwłaszcza na przyszłość”.
Wiele modułów oprogramowania statystycznego będzie generować prognozy na podstawie strumienia zmiennego szeregu czasowego przy braku jakichkolwiek przyszłych informacji, np. Proc Forecast w SAS lub dowolnej liczbie dostępnych modułów ARIMA. Te prognozy są prognozami opartymi na historycznym zachowaniu twoich danych.
Mówisz nam, że Twoje dane są miesięczne, ale nie mów nam, ile masz okresów. Innym podejściem jest przesunięcie trzech IV do tyłu o 24 miesiące w stosunku do DV, tak aby przewidywany okres wynosił t + 24. Zakłada się, że masz wystarczającą ilość daty, aby zainicjować model i odpowiednio skalibrować odpowiednią sezonowość.
źródło
Widzę, że masz trzy opcje:
Każde podejście ma swoje mocne i słabe strony, więc najlepsze zależy od konkretnego kontekstu.
źródło