Otokorelasyonları hesaplama
Otokorelasyonlar ya da gecikmeli korelasyonlar, bir zaman serisinin geçmişine bağımlı olup olmadığını değerlendirmek için kullanılır. Uzunluğu n olan bir x zaman serisi için, bir zaman birimi arayla gözlemlenen n-1 çiftini ele alırız. İlk böyle çift (x[2],x[1]), bir sonraki (x[3],x[2])’dir. Her bir çift, gözlem indeksi t olmak üzere (x[t],x[t-1]) biçimindedir; bu durumda t’yi 2’den n’e kadar değiştiririz. x’in gecikme-1 otokorelasyonu, bu (x[t], x[t-1]) çiftlerinin örnek korelasyonu olarak tahmin edilebilir.
Genel olarak, bu gözlem çiftlerini elle oluşturabiliriz. Önce, her biri uzunluğu n-1 olan, satırları (x[t], x[t-1]) çiftlerine karşılık gelecek şekilde x_t0 ve x_t1 adlı iki vektör oluştur. Ardından gecikme-1 otokorelasyonu tahmin etmek için cor() fonksiyonunu uygula.
Neyse ki, acf() komutu bir kestirme sunar. Bir x serisine acf(..., lag.max = 1, plot = FALSE) uygulamak gecikme-1 otokorelasyonunu otomatik olarak hesaplar.
Son olarak, iki tahminin biraz farklı olduğuna dikkat et: bunun nedeni örnek kovaryansın hesaplanmasında farklı ölçeklemeler kullanmalarıdır; 1/(n-1) ile 1/n. İkincisi yanlı bir tahmin verse de zaman serisi analizinde tercih edilir ve ortaya çıkan otokorelasyon tahminleri yalnızca (n-1)/n çarpanı kadar farklılık gösterir.
Bu egzersizde hem elle hem de otomatik olarak gecikme-1 otokorelasyonu hesaplamayı pratik yapacaksın. x zaman serisi ve uzunluğu n (150) zaten yüklendi. Seri sağdaki grafikte gösteriliyor.
Bu egzersiz, kursun bir parçasıdır
R ile Zaman Serisi Analizi
Egzersiz talimatları
- Satırları
(x[t], x[t-1])çiftlerine karşılık gelecek şekilde, her biri uzunluğun-1olan iki vektörx_t0vex_t1oluştur. x_t0vex_t1’in(x[t], x[t-1])çiftleri olduğunu, önceden yazılmış kodu kullanarak doğrula.plot()ilex_t0vex_t1’in saçılım grafiğini görüntüle.cor()ilex_t0vex_t1arasındaki korelasyonu görüntüle.xileacf()kullanarak gecikme-1 otokorelasyonu otomatik olarak hesapla. Tek bir gecikme dönemi üretmek içinlag.maxargümanını1olarak ayarla veplotargümanınıFALSEyap.- Fark çarpanının
(n-1)/nolduğunu, önceden yazılmış kodu kullanarak doğrula.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Define x_t0 as x[-1]
x_t0 <-
# Define x_t1 as x[-n]
x_t1 <-
# Confirm that x_t0 and x_t1 are (x[t], x[t-1]) pairs
head(cbind(x_t0, x_t1))
# Plot x_t0 and x_t1
plot(___, ___)
# View the correlation between x_t0 and x_t1
cor(___, ___)
# Use acf with x
acf(___, lag.max = ___, plot = ___)
# Confirm that difference factor is (n-1)/n
cor(x_t1, x_t0) * (n-1)/n