Prognozy danych szeregów czasowych ze zmiennymi zewnętrznymi

10

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?

SB
źródło
Nigdy nie używaj regresji z danymi szeregów czasowych. Skorzystaj z modelu przenoszenia funkcji.
Tom Reilly,
2
Cześć, czy możesz mi powiedzieć więcej o modelu funkcji przenoszenia? I dlaczego nigdy nie powinienem używać regresji z danymi szeregów czasowych? Większość badań sugeruje stosowanie regresji z szeregami czasowymi.
SB
Model funkcji przenoszenia wyjaśniono w podręczniku Boxa-Jenkinsa w rozdziale 10. Celem jest zbudowanie modelu dla każdego związku przyczynowego (wstępne wybielanie), a następnie wykorzystanie reszt do znalezienia korelacji z Y (korelacja krzyżowa). Pomoże to w określeniu, które zmienne są ważne i czy istnieją jakiekolwiek powiązania między wyprzedzeniem lub opóźnieniem. Może być potrzebne ARIMA w tym równaniu lub mianowniku dla zmiennych X. Możesz także mieć wartości odstające, zmiany trendu, poziomu, sezonowości, parametrów i wariancji.
Tom Reilly,
Regresja może również zakładać, że czas nie jest ważny. Regresja została wykorzystana przez Galtona do badania Sweat Peas ... nie jest to problem z szeregiem czasowym. Funkcja przesyłania wykorzystuje części procesu do oszacowania problemu.
Tom Reilly,

Odpowiedzi:

11

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.yxregy

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” .

Stephan Kolassa
źródło
1

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ść.

Mike Hunter
źródło
Zredagowałem swój tekst. Czy możesz teraz odpowiedzieć na moje pytania?
SB
Ponieważ masz wystarczającą ilość informacji, istnieje wiele sposobów na zintegrowanie czasu z modelem. Można tworzyć zmienne zastępcze dla lat (np. 2009, 2010 itd.), Dla kwartałów, dla każdego miesiąca w szeregu czasowym lub, jako podejście do rozliczania sezonowości, dla każdego miesiąca w roku. Innym podejściem byłoby traktowanie czasu jako funkcji trendu numerycznego, np. Liniowego (jak w liczbie okresów rozpoczynających się od stycznia 2009 = 1, luty = 2 itd.) Lub dowolnej liczby trendów wielomianowych opartych na trendu liniowym, np. kwadratowy (trend liniowy do kwadratu) i do góry. Co jeszcze chcesz wiedzieć?
Mike Hunter
Ale czas nie może być niezależną zmienną, prawda? Jak więc przewidzieć moją zmienną y za pomocą 3 zmiennych zewnętrznych? Trudno mi wybrać model, który będzie przewidywał?
SB
Jak nakreślono w poprzednim komentarzu, czas byłby zmienną niezależną. Myślę, że musisz przeczytać o regresji, ekonometrii i literaturze szeregów czasowych. Na tej stronie znajduje się wiele wątków, które dotyczą tych pytań i sugerują artykuły, książki itp. Przejrzyj prawą stronę tej strony, aby znaleźć więcej wątków związanych z Twoimi obawami.
Mike Hunter
Czytałem dużo i nie byłem w stanie znaleźć rozwiązania. Dlatego zadałem to pytanie tutaj. Czy możesz wymienić niektóre wątki literatury, których mogę użyć? Lub prawa strona internetowa?
SB
1

Widzę, że masz trzy opcje:

  1. Użyj opublikowanej prognozy dla zmiennych niezależnych lub znajdź model, aby je prognozować. Na przykład Spis będzie przewidywał dane dotyczące populacji.
  2. Korzystając z posiadanego zestawu danych, zresetuj każdą z niezależnych zmiennych względem czasu, a następnie użyj tych wyników w swoim modelu prognozy dla zmiennych niezależnych
  3. Usuń zmienne niezależne i po prostu modeluj zmienną zależną w funkcji czasu i opóźnionych wartości y.

Każde podejście ma swoje mocne i słabe strony, więc najlepsze zależy od konkretnego kontekstu.

Ezra Boyd
źródło