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

Симуляция временного ряда AR(1)

В этом упражнении вы смоделируете и визуализируете несколько временных рядов AR(1) с различными значениями параметра \(\small \phi\), используя модуль arima_process из библиотеки statsmodels. Вы рассмотрите модель AR(1) с большим положительным и большим отрицательным значением \(\small \phi\), однако при желании можете поэкспериментировать и с другими параметрами.

При работе с модулем arima_process важно учесть несколько соглашений. Во-первых, эти функции разработаны универсально — для работы как с AR-, так и с MA-моделями. MA-модели мы рассмотрим позже, поэтому пока просто игнорируйте часть, связанную с MA. Во-вторых, при задании коэффициентов необходимо включать коэффициент при нулевом лаге, равный 1, а знаки остальных коэффициентов должны быть противоположны тем, что мы использовали ранее (это соответствует принятым соглашениям в литературе по обработке сигналов). Например, для процесса AR(1) с \(\small \phi=0{,}9\) массив параметров AR будет выглядеть так: ar = np.array([1, -0.9])

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

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

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

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

  • Импортируйте класс ArmaProcess из модуля arima_process.
  • Постройте графики смоделированных AR-процессов:
    • Пусть ar1 — массив параметров AR вида [1, \(\small -\phi\)], как описано выше. На данном этапе массив параметров MA, ma1, должен содержать только коэффициент при нулевом лаге, равный 1.
    • С параметрами ar1 и ma1 создайте экземпляр класса ArmaProcess(ar, ma) и назовите его AR_object1.
    • Сгенерируйте 1000 точек данных из созданного объекта AR_object1 с помощью метода .generate_sample(). Отобразите смоделированные данные на подграфике.
  • Повторите те же шаги для второго значения параметра AR.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# import the module for simulating data
from statsmodels.tsa.arima_process import ArmaProcess

# Plot 1: AR parameter = +0.9
plt.subplot(2,1,1)
ar1 = np.array([1, ____])
ma1 = np.array([1])
AR_object1 = ArmaProcess(____, ____)
simulated_data_1 = AR_object1.generate_sample(nsample=1000)
plt.plot(simulated_data_1)

# Plot 2: AR parameter = -0.9
plt.subplot(2,1,2)
ar2 = np.array([1, ____])
ma2 = np.array([1])
AR_object2 = ArmaProcess(____, ____)
simulated_data_2 = AR_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)
plt.show()
Редактировать и запускать код