2011-12-08 14 views
15

Właśnie zacząłem grać z klasą ts, aby przeanalizować pewne dane szeregów czasowych, które posiadam.Analizowanie danych dziennych/tygodniowych za pomocą ts w R

Mam wrażenie, że klasa ts nie jest odpowiednia do analizowania dziennych lub tygodniowych danych. Prawie wszystkie przykłady, które widzę w Internecie lub w "Seriach wprowadzających z R" firmy Cowpertwait i Metcalfe, wykorzystują dane miesięczne lub roczne.

Chciałbym użyć ts do analizy cotygodniowych danych, czy nie jest to zalecane?

Odpowiedz

9

Klasa ts jest odpowiednia dla każdego rodzaju danych, które mają ściśle metronomiczne interwały między obserwacjami. Nie ma znaczenia, czy ten przedział to lata, miesiące, dni, minuty. Dzięki temu jest on bardzo odpowiedni do wielu danych naukowych, np. obserwacje pogodowe.

Jednak duża klasa danych związanych z czasem ma luki. Weźmy na przykład ceny zamknięcia zapasów, które nie istnieją w weekendy. Dla tego typu danych lepiej byłoby użyć pakietów xts (rozszerzalna seria czasowa) lub zoo (Z uporządkowanych obserwacji Z - gdzie Z jest początkiem jednego z autorów paczek).

Odnośniki do CRAN:

+0

Zgadzam się, że ts nie jest dobrym wyborem w sytuacjach, w których odstępy czasu między obserwacjami są różne Jednak przykład codziennych cen zamknięcia jest (moim zdaniem) względnie kiepski. Handel nie odbywa się w weekendy i wakacje, więc generalnie nie ma potrzeby modelowania tych dni.To jest całkowicie standardem w branży finansowej, aby brać pod uwagę codzienne dane o zapasach, tak jakby nie było żadnych dni (brakujących) dni.Takie sytuacje, takie jak to, ts jest ogólnie dobrze dopasowane. – pmcs

3

Jednostka czasu nie wchodzą w grę; tylko liczba punktów danych na jednostkę (częstotliwość). O ile ts i jego funkcje opieki, dzień jest rokiem jest dekadę jest czymkolwiek. W żadnym momencie nie mówisz, że czas, którym się zajmuje, to tydzień lub dzień. To nie ma znaczenia!

1

Przypuszczam, że problem z danymi dziennymi/tygodniowymi polega na tym, że obie mają jednostki skoku. Co czwarty rok ma jedno dodatkowe 366 dni, a co czwarty rok - 53 tygodnie. Lub miał już od 1900 roku. Tak więc "częstotliwość" nie jest stała ani ułamek. W przeciwnym razie ts powinno działać dobrze.

Najłatwiejszym sposobem na obejrzenie tygodni jest użycie daty rozpoczęcia tygodnia. W systemach uniksowych możesz również używać tygodni ISO, a także pakiet, który je implementuje. Oczywiście, jeśli twoje dane są już za kilka tygodni, potrzebujesz ich tylko do oznaczania wykresów itp.

10

Głównym problemem jest to, że większość osób, które chcą analizować dzienne lub tygodniowe dane, chce zrobić coś w rodzaju częstotliwości 365 dni rocznie lub 52 tygodnie w roku, ale liczba dni lub tygodni w roku nie wynosi 365 lub 52 ani nawet stała. Jeśli zrzucisz jeden dzień w latach przestępnych w przypadku danych dziennych, powiedz lub wykorzystaj 7 dni na każdy tydzień w roku, z wyjątkiem jednego, który ma 8 lub 9 dni w przypadku danych tygodniowych, powiedzmy, możesz je krówkować. Możliwy jest nieskończony szereg schematów.

Przeczytaj na przykład this thread.

5

Zoo działa dobrze z codziennymi danymi. Na przykład, jeśli masz dzienną serię strumieni strumieni w wektorze Q i odpowiednich znacznikach daty D (utworzonych na przykład jako .Data()).

Q.z < - oo (Q order.by = D)

tworzy się obiekt, który będzie wykreślić dobrze można użyć funkcji, takich jak okna(), aby wyodrębnić pojedyncze lat np

okno (Qz, start = as.Date ('2000-01-01') end = as.Date ('2000-31-12')

Sprawdź pakiet Zoo uzyskać więcej informacji.