ПочатиПочніть безкоштовно

Змоделюйте часовий ряд MA(1)

Ви змоделюєте та побудуєте кілька часових рядів MA(1), кожен з іншим параметром \(\small \theta\), використовуючи модуль arima_process у statsmodels — так само, як ви робили в попередньому розділі для моделей AR(1). Ви розглянете модель MA(1) з великим додатним \(\small \theta\) і великим від'ємним \(\small \theta\).

Як і в попередньому розділі, під час введення коефіцієнтів потрібно включати нульове запізнення зі значенням 1. Але на відміну від розділу про моделі AR, знак коефіцієнтів MA відповідає очікуванням. Наприклад, для процесу MA(1) з \(\small \theta=-0.9\) масив, що задає параметри MA, буде ma = np.array([1, -0.9])

Ця вправа є частиною курсу

Аналіз часових рядів у Python

Переглянути курс

Інструкції до вправи

  • Імпортуйте клас ArmaProcess з модуля arima_process.
  • Побудуйте графіки змодельованих процесів MA(1)
    • Нехай ma1 задає масив параметрів MA [1, \(\small \theta\)], як описано вище. Масив параметрів AR міститиме лише коефіцієнт із нульовим запізненням, що дорівнює одиниці.
    • Використовуючи параметри ar1 і ma1, створіть екземпляр класу ArmaProcess(ar,ma) з назвою MA_object1.
    • Змодуйте 1000 точок даних з щойно створеного об'єкта MA_object1 за допомогою методу .generate_sample(). Побудуйте змодельовані дані на підграфіку.
  • Повторіть для іншого параметра MA.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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

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

# Plot 2: MA parameter = +0.9
plt.subplot(2,1,2)
ar2 = np.array([1])
ma2 = np.array([1, ____])
MA_object2 = ArmaProcess(____, ____)
simulated_data_2 = MA_object2.generate_sample(nsample=1000)
plt.plot(simulated_data_2)

plt.show()
Редагувати та запускати код