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

Моделювання часових рядів AR(1)

Ви змоделюєте та побудуєте кілька часових рядів AR(1) з різними параметрами \(\small \phi\), використовуючи модуль arima_process зі statsmodels. У цій вправі ви розглянете модель AR(1) з великим додатним \(\small \phi\) і великим від'ємним \(\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, міститиме лише коефіцієнт нульового запізнення, що дорівнює одиниці.
    • Із параметрами 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()
Редагувати та запускати код