НачатьНачать бесплатно

Можно ли утверждать, что акция возвращается к среднему?

В предыдущей главе вы видели, что автокорреляция недельных доходностей акций MSFT равна -0,16. Это значение кажется довольно большим, но является ли оно статистически значимым? Иными словами, можно ли утверждать, что вероятность наблюдать столь большую отрицательную автокорреляцию при истинном нулевом значении составляет менее 5%? И есть ли другие лаги, на которых автокорреляция значимо отличается от нуля?

Даже если истинные автокорреляции равны нулю на всех лагах, на конечной выборке доходностей оценки автокорреляции не будут в точности равны нулю. Стандартное отклонение выборочной автокорреляции равно \(\small 1/\sqrt{N}\), где \(\small N\) — число наблюдений. Например, при \(\small N=100\) стандартное отклонение ACF равно 0,1, и поскольку 95% нормального распределения укладывается в диапазон от -1,96 до +1,96 стандартных отклонений от среднего, 95%-й доверительный интервал равен \(\small \pm 1,96/\sqrt{N}\). Это приближение справедливо только в том случае, когда все истинные автокорреляции равны нулю.

Вы вычислите фактический и приближённый доверительные интервалы для ACF и сравните их с автокорреляцией первого лага, равной -0,16, полученной в предыдущей главе. Недельные доходности Microsoft предварительно загружены в DataFrame под названием returns.

Это упражнение является частью курса

Анализ временных рядов на Python

Посмотреть курс

Инструкции к упражнению

  • Повторно вычислите автокорреляцию недельных доходностей для столбца 'Adj Close' в DataFrame returns.
  • Найдите количество наблюдений в DataFrame returns с помощью функции len().
  • Вычислите приближённый 95%-й доверительный интервал для оценённой автокорреляции. Математическая функция sqrt() уже импортирована и готова к использованию.
  • Постройте функцию автокорреляции для returns с помощью plot_acf, импортированной из statsmodels. Задайте 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()
Редактировать и запускать код