이 주식이 평균회귀한다고 자신 있게 말할 수 있을까요?
이전 장에서 MSFT의 주간 주가 수익률 자기상관이 -0.16임을 확인했어요. 이 자기상관은 커 보이지만, 통계적으로 유의할까요? 다시 말해, 실제 자기상관이 0이라면 이렇게 큰 음의 자기상관을 관측할 확률이 5% 미만이라고 말할 수 있을까요? 그리고 다른 시차에서도 0과 유의하게 다른 자기상관이 있을까요?
모든 시차에서 실제 자기상관이 0이라 하더라도, 유한한 표본에서는 추정된 자기상관이 정확히 0이 되지는 않아요. 사실 표본 자기상관의 표준편차는 $\small 1/\sqrt{N}\(이고, 여기서 \)\small N\(은 관측치 수예요. 예를 들어 \)\small N=100\(이라면 ACF의 표준편차는 0.1이고, 정규분포의 95%가 평균에서 표준편차 ±1.96 사이에 있으므로 95% 신뢰구간은 \)\small \pm 1.96/\sqrt{N}$이 됩니다. 이 근사는 실제 자기상관이 모~든 시차에서 0일 때만 성립해요.
이번에는 ACF의 실제 신뢰구간과 근사 신뢰구간을 계산하고, 이전 장의 1시차 자기상관 -0.16과 비교해 보세요. Microsoft의 주간 수익률은 returns라는 DataFrame에 미리 로드되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 배우는 시계열 분석
연습 안내
returnsDataFrame의 Series'Adj Close'에서 주간 수익률의 자기상관을 다시 계산하세요.len()함수를 사용해returnsDataFrame의 관측치 개수를 구하세요.- 추정된 자기상관의 95% 신뢰구간을 근사하세요. 수학 함수
sqrt()는 이미 가져와 사용하실 수 있어요. - statsmodels에서 가져온
plot_acf로returns의 자기상관함수를 그리세요. 신뢰구간을 위해alpha=0.05(기본값)를 설정하고lags=20으로 지정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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()