Эквивалентность AR(1) и MA(бесконечность)
Чтобы лучше понять связь между моделями MA и AR, вы покажете, что модель AR(1) эквивалентна модели MA(\(\small \infty\)) с подходящими параметрами.
Вы смоделируете процесс MA с параметрами \(\small 0.8, 0.8^2, 0.8^3, \ldots\) для большого числа лагов (30) и убедитесь, что его функция автокорреляции совпадает с функцией автокорреляции модели AR(1) с параметром \(\small \phi=0.8\).
Обратите внимание: чтобы возвести число x в степень n, используйте запись x**n.
Это упражнение является частью курса
Анализ временных рядов на Python
Инструкции к упражнению
- Импортируйте модули из statsmodels для моделирования данных и построения графика ACF
- С помощью генератора списка создайте список с экспоненциально убывающими параметрами MA: \(\small 1, 0.8, 0.8^2, 0.8^3, \ldots\)
- Смоделируйте 5000 наблюдений для модели MA(30)
- Постройте график ACF для смоделированного ряда
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# import the modules for simulating data and plotting the ACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_acf
# Build a list MA parameters
ma = [___ for i in range(30)]
# Simulate the MA(30) model
ar = np.array([1])
AR_object = ArmaProcess(ar, ___)
simulated_data = ___.generate_sample(nsample=5000)
# Plot the ACF
plot_acf(___, lags=30)
plt.show()