Ước lượng bậc của mô hình: PACF
Một công cụ hữu ích để xác định bậc của mô hình AR là xem Hàm Tự tương quan riêng phần (PACF). Trong bài này, bạn sẽ mô phỏng hai chuỗi thời gian, một AR(1) và một AR(2), và tính PACF mẫu cho từng chuỗi. Bạn sẽ thấy rằng với AR(1), PACF sẽ có giá trị trễ 1 đáng kể và xấp xỉ bằng 0 ở các trễ sau. Còn với AR(2), PACF mẫu sẽ có các giá trị trễ 1 và trễ 2 đáng kể, và bằng 0 sau đó.
Tương tự như khi bạn dùng hàm plot_acf ở các bài trước, ở đây bạn sẽ dùng hàm plot_pacf trong mô-đun statsmodels.
Bài tập này là một phần của khóa học
Phân tích chuỗi thời gian với Python
Hướng dẫn bài tập
- Import các mô-đun để mô phỏng dữ liệu và để vẽ PACF
- Mô phỏng một AR(1) với \(\small \phi=0.6\) (nhớ rằng dấu của tham số AR bị đảo ngược)
- Vẽ PACF cho
simulated_data_1bằng hàmplot_pacf - Mô phỏng một AR(2) với \(\small \phi_1=0.6, \phi_2=0.3\) (tiếp tục đảo dấu)
- Vẽ PACF cho
simulated_data_2bằng hàmplot_pacf
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Import the modules for simulating data and for plotting the PACF
from statsmodels.tsa.arima_process import ArmaProcess
from statsmodels.graphics.tsaplots import plot_pacf
# Simulate AR(1) with phi=+0.6
ma = np.array([1])
ar = np.array([1, -0.6])
AR_object = ArmaProcess(ar, ma)
simulated_data_1 = ___.generate_sample(nsample=5000)
# Plot PACF for AR(1)
plot_pacf(___, lags=20)
plt.show()
# Simulate AR(2) with phi1=+0.6, phi2=+0.3
ma = np.array([1])
ar = np.array([1, ___, ___])
AR_object = ArmaProcess(ar, ma)
simulated_data_2 = ___.generate_sample(nsample=5000)
# Plot PACF for AR(2)
plot_pacf(___, lags=20)
plt.show()