1. Nauka
  2. /
  3. Kursy
  4. /
  5. Analiza szeregów czasowych w R

Connected

ćwiczenie

Obliczanie autokorelacji

Autokorelacje, zwane też korelacjami opóźnionymi, służą do oceny, czy szereg czasowy zależy od swoich przeszłych wartości. Dla szeregu czasowego x o długości n rozważamy n-1 par obserwacji oddalonych od siebie o jedną jednostkę czasu. Pierwsza taka para to (x[2],x[1]), następna to (x[3],x[2]). Każda para ma postać (x[t],x[t-1]), gdzie t to indeks obserwacji przyjmujący wartości od 2 do n. Autokorelację z opóźnieniem 1 dla x można oszacować jako korelację próbkową takich par (x[t], x[t-1]).

Pary obserwacji można tworzyć ręcznie. Najpierw utwórz dwa wektory, x_t0 i x_t1, każdy o długości n-1, tak aby wiersze odpowiadały parom (x[t], x[t-1]). Następnie zastosuj funkcję cor(), aby oszacować autokorelację z opóźnieniem 1.

Na szczęście polecenie acf() oferuje wygodniejszy sposób. Wywołanie acf(..., lag.max = 1, plot = FALSE) na szeregu x automatycznie oblicza autokorelację z opóźnieniem 1.

Warto zwrócić uwagę, że oba oszacowania nieznacznie się różnią, ponieważ stosują nieco inne skalowanie przy obliczaniu kowariancji próbkowej: 1/(n-1) albo 1/n. Choć to drugie podejście daje obciążone oszacowanie, jest preferowane w analizie szeregów czasowych. Wynikowe autokorelacje różnią się jedynie o czynnik (n-1)/n.

W tym ćwiczeniu przećwiczysz zarówno ręczne, jak i automatyczne obliczanie autokorelacji z opóźnieniem 1. Szereg czasowy x oraz jego długość n (150) są już wczytane. Szereg jest widoczny na wykresie po prawej stronie.

Instrukcje

100 XP
  • Utwórz dwa wektory, x_t0 i x_t1, każdy o długości n-1, tak aby wiersze odpowiadały parom (x[t], x[t-1]).
  • Sprawdź za pomocą gotowego kodu, że x_t0 i x_t1 tworzą pary (x[t], x[t-1]).
  • Użyj funkcji plot(), aby zobaczyć wykres punktowy x_t0 i x_t1.
  • Użyj funkcji cor(), aby obliczyć korelację między x_t0 i x_t1.
  • Użyj funkcji acf() z argumentem x, aby automatycznie obliczyć autokorelację z opóźnieniem 1. Ustaw argument lag.max na 1, aby uzyskać jeden okres opóźnienia, oraz argument plot na FALSE.
  • Sprawdź za pomocą gotowego kodu, że współczynnik różnicy wynosi (n-1)/n.