[014][ Szereg czasowy]

Szeregi czasowe to dane obserwowane w czasie (w ciągłym czasie lub w dyskretnych przedziałach czasowych). Analiza szeregów czasowych obejmuje identyfikację trendów, rozpoznawanie wzorców czasowych, analizę spektralną i prognozowanie przyszłych wartości na podstawie przeszłości. Istotną cechą metod analizy szeregów czasowych (w przeciwieństwie do bardziej ogólnych metod analizy związków między danymi) jest uwzględnienie możliwości szeregowej korelacji (znanej również jako korelacja czasowa) między danymi. Dodatnia korelacja szeregowa oznacza, że kolejne obserwacje w czasie są blisko siebie, podczas gdy ujemna korelacja szeregowa oznacza, że kolejne obserwacje mają tendencję do oscylacji między skrajnościami. Analiza szeregów czasowych różni się także od analiz bardziej ogólnych procesów stochastycznych, koncentrując się na nieodłącznym kierunku czasu, tworząc potencjalną asymetrię między przeszłością a przyszłością

PYTANIE: Jak scalać dane miesięczne, dzienne i tygodniowe?

Trendy Google zwracają cotygodniowe dane, dlatego muszę znaleźć sposób na połączenie ich z danymi dziennymi / miesięcznymi. Do tej pory zrobiłem podział każdej serii na codzienne dane, na przykład:

z:

2013-03-03 – 2013-03-09 37

do:

2013-03-03 37 2013-03-04 37 2013-03-05 37 2013-03-06 37 2013-03-07 37 2013-03-08 37 2013-03-09 37

Ale to sprawia, że ​​mój problem jest bardzo skomplikowany. Próbowałem przewidzieć wyszukiwania w Google na podstawie wartości z ostatnich 6 miesięcy lub 6 wartości w danych miesięcznych. Codzienne dane oznaczałyby pracę nad 180 przeszłymi wartościami. (Mam 10 lat danych, więc 120 punktów w danych miesięcznych / 500+ w danych tygodniowych / 3500+ w danych dziennych). Innym podejściem byłoby „scalenie” danych dziennych w dane tygodniowe / miesięczne. Ale z tego procesu wynikają pewne pytania. Niektóre dane można uśrednić, ponieważ ich suma coś reprezentuje. Na przykład opady deszczu, ilość deszczu w danym tygodniu będzie sumą kwot na każdy dzień składający się na tygodnie.

W moim przypadku mam do czynienia z cenami, stawkami finansowymi i innymi rzeczami. W przypadku cen powszechne w mojej dziedzinie jest uwzględnianie wielkości wymiany, tak więc tygodniowe dane byłyby średnią ważoną. W przypadku stawek finansowych jest to nieco bardziej skomplikowane, ponieważ niektóre formuły wymagają budowania stawek tygodniowych na podstawie stawek dziennych. Jeśli chodzi o inne rzeczy, nie znam podstawowych właściwości. Myślę, że te właściwości są ważne, aby uniknąć bezsensownych wskaźników (na przykład średnia stóp fianialnych byłaby niecelowa).

Więc trzy pytania:

(1)W przypadku znanych i nieznanych właściwości, jak przejść od danych dziennych do tygodniowych / miesięcznych?

Czuję, że dzielenie danych tygodniowych / miesięcznych na dane dzienne, tak jak zrobiłem, jest nieco błędne, ponieważ wprowadzam ilości, które nie mają sensu w prawdziwym życiu. Więc prawie to samo pytanie:

(2)W przypadku znanych i nieznanych właściwości należy przejść od danych tygodniowych / miesięcznych do dziennych?

I na koniec:

(3)Jeśli otrzymamy dwa szeregi czasowe z różnymi krokami czasowymi, co jest lepsze: Korzystanie z najniższego lub największego kroku czasowego?

Myślę, że jest to kompromis między liczbą danych a złożonością modelu, ale nie widzę żadnego mocnego argumentu do wyboru między tymi opcjami.

Edycja: jeśli znasz narzędzie (w R Python, a nawet Excel), aby zrobić to łatwo, byłoby bardzo mile widziane.

ODPOWIEDZI :

(3) : W przypadku analizy szeregów czasowych należy wykonać obie czynności: uzyskać najwyższy możliwy poziom szczegółowości z codziennym zestawem danych, a także powtórzyć analizę z zestawem miesięcznym. Dzięki miesięcznemu zestawowi danych masz 120 punktów danych, co wystarcza, aby uzyskać model szeregów czasowych nawet przy sezonowości danych.

(1) : Aby uzyskać powiedzmy dane tygodniowe lub miesięczne z danych dziennych, możesz użyć funkcji wygładzania. W przypadku danych finansowych możesz użyć średniej ruchomej lub wygładzania wykładniczego, ale jeśli te nie działają dla twoich danych, możesz użyć funkcji wygładzania splajnu „smooth.spline” w R. Zwrócony model będzie miał mniej hałasu niż oryginalny dzienny zestaw danych, i można uzyskać wartości dla żądanych punktów czasowych. Wreszcie te punkty danych można wykorzystać w analizie szeregów czasowych.

(2) : Aby uzyskać codzienne dane, gdy masz dane miesięczne lub tygodniowe, możesz użyć interpolacji. Po pierwsze, należy znaleźć równanie opisujące dane. W tym celu należy wykreślić dane (np. Cenę w czasie). Kiedy czynniki są znane, na to równanie powinny mieć wpływ te czynniki. Gdy czynniki nie są znane, możesz użyć równania najlepszego dopasowania. Najprostsza byłaby funkcja liniowa lub częściowa funkcja liniowa, ale w przypadku danych finansowych nie zadziała to dobrze. W takim przypadku należy rozważyć częściową interpolację splajnu sześciennego. W R istnieje metoda wykonywania interpolacji danych szeregów czasowych. Tutaj utworzyłbyś wektor z powiedzonymi wartościami tygodniowymi i NA w lukach dla wartości dziennych, a następnie używałeś funkcji „interpNA”, aby uzyskać interpolowane wartości dla NA. Jednak ta funkcja wykorzystuje funkcję „przybliżoną” do uzyskania interpolowanych wartości, która stosuje interpolację liniową lub stałą. Aby wykonać interpolację splajnu sześciennego w R, należy zamiast tego użyć funkcji „splinefun”. Należy pamiętać, że modele szeregów czasowych zwykle dokonują pewnego rodzaju uśrednienia, aby prognozować przyszłe wartości, niezależnie od tego, czy chodzi między innymi o wygładzanie wykładnicze lub metody zintegrowanej średniej ruchomej AutoRegressive (ARIMA). Tak więc model przedziałów czasowych do prognozowania wartości dziennych może nie być najlepszym wyborem, ale modele tygodniowe lub miesięczne mogą być lepsze.

ODPOWIEDŹ :

(1), (2):  Ta sama odpowiedź dla obu: nie możesz tego zrobić dla nieznanych właściwości, a dla znanych właściwości będzie to zależeć od sposobu obliczenia wartości. Jak wspomniałeś: (średnia stopa finansowa byłaby na przykład pozbawiona sensu). Nie ma jednej transformacji, która byłaby odpowiednia we wszystkich przypadkach, niezależnie od tego, czy właściwości / wartości są znane, czy nieznane. Nawet przy znanych właściwościach prawdopodobnie będziesz potrzebować unikalnej transformacji dla każdego typu: średnia, mediana, tryb, min, maks, wartość logiczna itp.

(3) : Gdy tylko jest to możliwe, staraj się zachować pełną szczegółowość najmniejszego możliwego kroku. Zakładając, że wiesz, jak przekształcić wartości, zawsze możesz zrolować kroki (np. Z dnia na miesiąc, z miesiąca na rok) … ale niekoniecznie będziesz w stanie odtworzyć mniejsze kroki od większych po stratnej konwersji.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *