Jak dodać komponent okresowy do modelu regresji liniowej?

17

Mam pewne dane o skumulowanej częstotliwości. Linia wygląda tak, jakby bardzo dobrze pasowała do danych, ale w linii występuje cykliczne / okresowe poruszenie. Chciałbym oszacować, kiedy skumulowana częstotliwość osiągnie pewną wartość c . Kiedy wykreślam wartości resztkowe względem dopasowanych, otrzymuję piękne zachowanie sinusoidalne.y=ax+bc

Teraz, aby dodać kolejną komplikację, zwróć uwagę, że na wykresach resztek

alternatywny tekst

istnieją dwa cykle, które mają niższe wartości niż pozostałe, co stanowi efekt weekendowy, który również należy wziąć pod uwagę.

Gdzie więc mam iść? Jak połączyć cosinus, sinus lub termin cykliczny w model regresji do ok. oszacować, kiedy skumulowana częstotliwość będzie równa ?do

Ryan Rosario
źródło

Odpowiedzi:

9

Możesz wypróbować tę cudowną stl()metodę - rozkłada się (używając iterowanego loess()dopasowania) na trend, sezonowość i resztę. To może po prostu odebrać tutaj swoje oscylacje.

Dirk Eddelbuettel
źródło
8

Jeśli znasz częstotliwość oscylacji, możesz dołączyć dwa dodatkowe predyktory, sin (2π wt) i cos (2π wt) - ustaw w, aby uzyskać pożądaną długość fali - i to modeluje oscylację. Musisz oba warunki, aby dopasować amplitudę i kąt fazowy. Jeśli jest więcej niż jedna częstotliwość, dla każdej częstotliwości będziesz potrzebować terminu sinus i cosinus.

Jeśli nie wiesz, jakie to są częstotliwości, standardowym sposobem izolowania wielu częstotliwości jest zniechęcenie danych (uzyskanie resztek z liniowego dopasowania, jak już to zrobiłeś) i przeprowadzenie dyskretnej transformaty Fouriera względem reszt. Szybki i nieprzyzwoity sposób to zrobić w MS-Excel, który ma narzędzie Fourier Analysis w dodatku do analizy danych. Przeprowadź analizę w stosunku do reszt, weź bezwzględną wartość przekształceń i wykres słupkowy wyniku. Piki będą głównymi składnikami częstotliwości, które chcesz modelować.

Po dodaniu tych cyklicznych predyktorów zwróć baczną uwagę na ich wartości pw regresji i nie dopasowuj się. Używaj tylko tych częstotliwości, które są istotne statystycznie. Niestety może to utrudnić dopasowanie niskich częstotliwości.

Mike Anderson
źródło
2
Kiedy oszacujesz częstotliwości na podstawie danych (jak w analizie Fouriera), a następnie uwzględnisz je w regresji jako sin / cos, ich wartości p będą bez znaczenia.
whuber
4

Zacznijmy od zaobserwowania, że ​​zwykłe najmniejsze kwadraty pasujące do tych danych są prawdopodobnie nieodpowiednie. Jeśli zakłada się, że poszczególne gromadzone dane, jak zwykle, mają składowe błędu losowego, wówczas błąd w danych skumulowanych ( nie w częstotliwościach skumulowanych - to coś innego niż to, co masz) jest sumą wszystkich warunków błędu. To sprawia, że ​​skumulowane dane są heteroscedastyczne (stają się coraz bardziej zmienne w czasie) i silnie dodatnio skorelowane. Ponieważ te dane są tak regularnie przechowywane i jest ich tak wiele, nie ma problemu z dopasowaniem dostaniesz, ale twoje oszacowania błędów, twoje prognozy (o to właśnie chodzi w pytaniu), a zwłaszcza twoje standardowe błędy prognozy mogą być dalekie.

Standardowa procedura analizy takich danych rozpoczyna się od pierwotnych wartości. Weź codzienne różnice, aby usunąć element sinusoidalny o wyższej częstotliwości. Weź tygodniowe różnice między nimi, aby usunąć możliwy cykl tygodniowy. Przeanalizuj, co zostało. Modelowanie ARIMA to potężne elastyczne podejście, ale zacznij po prostu: wykreśl te zróżnicowane dane, aby zobaczyć, co się dzieje, a następnie przejdź od tego miejsca. Należy również zauważyć, że przy danych z mniej niż dwóch tygodni szacunki cyklu tygodniowego będą słabe, a ta niepewność zdominuje niepewność prognoz.

Whuber
źródło
2

Najwyraźniej dominujące oscylacje mają okres jednego dnia. Wygląda na to, że istnieją również komponenty o niższej częstotliwości odnoszące się do dnia tygodnia, więc dodaj komponent o częstotliwości jeden tydzień (tj. Jedna siódma dnia) i jego kilka pierwszych harmonicznych. To daje model postaci:

mi(y)=do+za0sałata(2)πt)+b0grzech(2)πt)+za1sałata(2)πt/7)+b1grzech(2)πt/7)+za2)sałata(4πt/7)+b2)grzech(4πt/7)+

- zakładając tmierzy się w dniach. Tutajyto nieprzetworzone dane, a nie ich skumulowana suma.

jeden przystanek
źródło
-2

Dlaczego nie użyć GA, aby znaleźć amplitudę, okres i fazę serii sinusoidalnej (lub cosinusowej) kolejno, a następnie połączyć. Zoptymalizuj następujące elementy: (n (n-1) / ((np-1) ^ 2 (np-2))) RSS

Mark Campbell
źródło
1
Nie jest jasne, w jaki sposób odpowiada to na pytanie dotyczące obliczania funkcji odwrotnej skumulowanej częstotliwości. A co rozumiesz przez „GA”? Algorytm genetyczny? Coś innego?
whuber