Jak porównać statystycznie dwie serie czasowe?

43

Mam dwie serie czasowe pokazane na poniższym wykresie:

Wykres szeregów czasowych

Fabuła pokazuje pełny szczegół obu serii czasowych, ale w razie potrzeby mogę łatwo sprowadzić je do obserwacji zbieżnych.

Moje pytanie brzmi: jakich metod statystycznych mogę użyć do oceny różnic między szeregami czasowymi?

Wiem, że jest to dość szerokie i niejasne pytanie, ale nigdzie nie mogę znaleźć dużo materiału wprowadzającego. Jak widzę, do oceny są dwie różne rzeczy:

1. Czy wartości są takie same?

2. Czy trendy są takie same?

Na jakie testy statystyczne sugerowalibyście, aby ocenić te pytania? W przypadku pytania 1 mogę oczywiście ocenić środki różnych zestawów danych i poszukać znaczących różnic w rozkładach, ale czy istnieje sposób na zrobienie tego, który uwzględnia charakter szeregów czasowych danych?

W przypadku pytania 2 - czy istnieje coś takiego jak testy Manna-Kendalla, które szukają podobieństwa między dwoma trendami? Mógłbym wykonać test Manna-Kendalla dla obu zestawów danych i porównać, ale nie wiem, czy jest to prawidłowy sposób robienia rzeczy, czy też jest lepszy sposób?

Robię to wszystko w R, więc jeśli testy sugerują, że masz pakiet R, daj mi znać.

robintw
źródło
9
Wykres wydaje się zasłaniać istotną różnicę między tymi seriami: mogą być one próbkowane przy różnych częstotliwościach. Próbka czarnej linii (Aeronet) wydaje się pobierana tylko około 20 razy, a czerwona linia (widoczność) setki razy lub więcej. Innym krytycznym czynnikiem może być regularność pobierania próbek lub jej brak: czasy między obserwacjami Aeronet wydają się nieco różnić. Zasadniczo pomaga usunąć linie łączące i wyświetlić tylko punkty odpowiadające faktycznym danym, aby widz mógł określić te rzeczy wizualnie.
whuber
Oto biblioteka Pythona do analizy nierównomiernie rozłożonych szeregów czasowych.
kjetil b halvorsen

Odpowiedzi:

27

Jak stwierdzili inni, musisz mieć wspólną częstotliwość pomiaru (tj. Czas między obserwacjami). Dzięki temu miejscu zidentyfikowałbym wspólny model, który rozsądnie opisywałby każdą serię osobno. Może to być model ARIMA lub model regresji z wieloma trendami z możliwymi przesunięciami poziomów lub model złożony obejmujący zarówno pamięć (ARIMA), jak i zmienne zastępcze. Ten wspólny model można oszacować globalnie i osobno dla każdej z dwóch serii, a następnie można skonstruować test F w celu przetestowania hipotezy o wspólnym zestawie parametrów.

IrishStat
źródło
1
Cóż, tak naprawdę nie musisz mieć tej samej częstotliwości dla obu serii. Chodzi o to, że tak niewiele kosztuje oprogramowanie dla innych przypadków, ale patrz traces.readthedocs.io/en/latest . Wygląda na to, że wiele publikuje się na temat innych przypadków w czasopismach astronomicznych oraz w finansach i geofizyce ... zobacz
referencje
12

Rozważmy grangertest()w bibliotece lmtest .

Jest to test sprawdzający, czy jeden szereg czasowy jest przydatny w prognozowaniu innego.

Kilka odniesień na początek:

https://spia.uga.edu/faculty_pages/monogan/teaching/ts/

https://spia.uga.edu/faculty_pages/monogan/teaching/ts/Kgranger.pdf

http://en.wikipedia.org/wiki/Granger_causality

fionn
źródło
1
Jego próbka byłaby zbyt mała z <10 punktami danych w porównaniu z ilością parametrów, które należy zmieścić w Granger.
Jase
1
@fionn, linki w twojej odpowiedzi są martwe. Czy potrafisz zaktualizować swoją odpowiedź?
Davor Josipovic
0

Właśnie się z tym spotkałem. Twoja pierwsza odpowiedź nam, rysując dwa zestawy w tej samej skali (czasowo), aby zobaczyć różnice wizualnie. Zrobiłeś to i możesz łatwo zauważyć, że istnieją pewne rażące różnice. Następnym krokiem jest zastosowanie prostej analizy korelacji ... i sprawdzenie, jak dobrze są one powiązane przy użyciu współczynnika korelacji (r). Jeśli r jest małe, wniosek byłby taki, że są one słabo powiązane, a zatem nie ma pożądanych porównań i większa wartość, jeżeli r sugerowałoby dobre porównania między dwiema seriami. Trzecim krokiem, w którym istnieje dobra korelacja, jest przetestowanie istotności statystycznej r. Tutaj możesz użyć testu Shapiro Welcha, który zakłada, że ​​dwie serie są normalnie rozłożone (hipoteza zerowa) lub nie (hipoteza alternatywna). Istnieją inne testy, które możesz wykonać, ale mam nadzieję, że moja odpowiedź pomoże.

Richard
źródło
1
Podczas porównywania szeregów czasowych jest to autokorelacja i ewentualnie dopasowanie modeli szeregów czasowych. takie jak modele ARIMA, które mogą pomóc określić, jak są podobne. Dwie realizacje tego samego procesu stochastycznego niekoniecznie wyglądają tak samo podczas ich kreślenia.
Michael Chernick
-2

Dopasuj linię prostą do obu sygnałów szeregów czasowych za pomocą polyfit. Następnie obliczyć błąd średniokwadratowy (RMSE) dla obu linii. Uzyskana wartość dla czerwonej linii byłaby znacznie mniejsza niż uzyskana dla szarej linii.

Dokonaj również odczytów na jakiejś wspólnej częstotliwości.

M. Ejaz Ahmed
źródło
2
Witamy w Cross Validated i dziękuję za pierwszą odpowiedź! Niepokoi mnie jednak to, że nie odpowiada Pan bezpośrednio na pytanie - w jaki sposób proponowane podejście pomogłoby pytającemu ocenić, czy wartości i / lub trendy są podobne?
Martin Modrák