시작하기무료로 시작하기

이 주식이 평균회귀한다고 자신 있게 말할 수 있을까요?

이전 장에서 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으로 배우는 시계열 분석

강의 보기

연습 안내

  • returns DataFrame의 Series 'Adj Close'에서 주간 수익률의 자기상관을 다시 계산하세요.
  • len() 함수를 사용해 returns DataFrame의 관측치 개수를 구하세요.
  • 추정된 자기상관의 95% 신뢰구간을 근사하세요. 수학 함수 sqrt()는 이미 가져와 사용하실 수 있어요.
  • statsmodels에서 가져온 plot_acfreturns의 자기상관함수를 그리세요. 신뢰구간을 위해 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()
코드 편집 및 실행