Bu Hissenin Ortalama Dönüşlü Olduğundan Emin miyiz?
Önceki bölümde, MSFT'nin haftalık hisse getirilerinin otokorelasyonunun -0.16 olduğunu görmüştün. Bu otokorelasyon büyük görünüyor ama istatistiksel olarak anlamlı mı? Başka bir deyişle, gerçek otokorelasyon sıfır olsaydı bu kadar büyük negatif bir otokorelasyonu gözlemleme olasılığının %5'ten az olduğunu söyleyebilir misin? Ve diğer gecikmelerde sıfırdan anlamlı derecede farklı otokorelasyonlar var mı?
Gerçek otokorelasyonlar tüm gecikmeler için sıfır olsa bile, sonlu bir getiri örnekleminde otokorelasyon tahminlerini tam olarak sıfır görmezsin. Aslında, örneklem otokorelasyonunun standart sapması \(\small 1/\sqrt{N}\)'dir; burada \(\small N\) gözlem sayısıdır. Örneğin \(\small N=100\) ise, ACF'nin standart sapması 0.1'dir ve normal dağılımın %95'i ortalamanın +1.96 ile -1.96 standart sapma arasındadır; dolayısıyla %95 güven aralığı \(\small \pm 1.96/\sqrt{N}\) olur. Bu yaklaşım yalnızca gerçek otokorelasyonların tamamı sıfır olduğunda geçerlidir.
ACF için gerçek ve yaklaşık güven aralıklarını hesaplayacak ve bunları önceki bölümdeki -0.16'lık bir gecikmeli otokorelasyon ile karşılaştıracaksın. Microsoft'un haftalık getirileri returns adlı bir DataFrame'e önceden yüklenmiştir.
Bu egzersiz
Python ile Zaman Serisi Analizi
kursunun bir parçasıdırEgzersiz talimatları
returnsDataFrame'indeki'Adj Close'Serisinin haftalık getirilerinin otokorelasyonunu yeniden hesapla.len()fonksiyonunu kullanarak returns DataFrame'indeki gözlem sayısını bul.- Tahmin edilen otokorelasyonun %95 güven aralığını yaklaşık olarak hesapla.
sqrt()matematik fonksiyonu içe aktarılmıştır ve kullanılabilir. - statsmodels'tan içe aktarılan
plot_acfilereturns'ın otokorelasyon fonksiyonunu çiz. Güven aralıkları içinalpha=0.05ayarla (bu varsayılandır) velags=20kullan.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Import the plot_acf module from statsmodels and sqrt from math
from statsmodels.graphics.tsaplots import plot_acf
from math import sqrt
# Compute and print the autocorrelation of MSFT weekly returns
autocorrelation = returns['Adj Close'].___
print("The autocorrelation of weekly MSFT returns is %4.2f" %(autocorrelation))
# Find the number of observations by taking the length of the returns DataFrame
nobs = ___
# Compute the approximate confidence interval
conf = 1.96/___
print("The approximate confidence interval is +/- %4.2f" %(conf))
# Plot the autocorrelation function with 95% confidence intervals and 20 lags using plot_acf
plot_acf(___, alpha=0.05, ___)
plt.show()