messenger_logo
Liên hệ qua Messenger
SciEco

[Dữ liệu chuỗi thời gian] MÔ HÌNH AR, MA VÀ ARIMA (Phần 2)

PH
Phạm Huy Du
Ngày viết: 07/05/2024

2. THỰC HÀNH TRÊN STATA

Trong phần này, chúng ta sẽ sử dụng chỉ số giá tiêu dùng (CPI) của Mỹ từ 1/1/2008 đến 1/2/2021 (tần suất: theo tháng) để tiến hành dự báo với các mô hình được nêu trong bài viết.

2.1. Kiểm định tính dừng của chuỗi số

Trước hết, chúng ta cần kiểm định tính dừng của chuỗi CPI bằng kiểm định ADF như sau:

1dfuller CPI,trend regress

\rightarrow Kết quả kiểm định nghiệm đơn vị được thể hiện theo định dạng sau:

Kết quả cho thấy thống kê kiểm định ADF (-1.879) > giá trị tới hạn (-3.442 ở mức ý nghĩa 5%) \Rightarrow Không thể bác bỏ giá thuyết H0 về sự tồn tại của nghiệm đơn vị của chuỗi CPI \Rightarrow Chuỗi CPI là chuỗi không dừng.

Điều này phản ánh đúng với thực tế rằng đa phần của chuỗi số kinh tế - tài chính đều không dừng tại chuỗi gốc. Do đó, ta sẽ sử dụng sai phân bậc nhất của log chuỗi CPI – hay còn gọi là tốc độ tăng của chỉ số giá tiêu dùng (lạm phát) như sau:

1gen lCPI = ln(CPI)
2gen dlCPI = D.lCPI
3dfuller dlCPI,trend regress

\rightarrow Kết quả kiểm định nghiệm đơn vị được thể hiện theo định dạng sau:

Kết quả cho thấy thống kê kiểm định ADF (-7.060) > giá trị tới hạn (-3.443 ở mức ý nghĩa 5%) \Rightarrow Bác bỏ giá thuyết H0 về sự tồn tại của nghiệm đơn vị của chuỗi dlCPI \Rightarrow Chuỗi dlCPI là chuỗi dừng.

2.2. Lựa chọn độ trễ hợp lý p và q

2.2.1. Lựa chọn độ trễ q*

Để lựa chọn độ trễ q* phù hợp, ta sẽ vẽ hàm tự tương quan (ACF) như sau:

1ac dlCPI

Dựa vào hàm tự tương quan ACF, ta thấy đồ thị ACF đột ngột cắt đứt/bằng 0 kể từ sau độ trễ 1 (về mặt trực quan, kể từ sau độ trễ 1, các giá trị tương quan đều nằm trong khoảng đậm) \Rightarrow q* = 1

2.2.2. Lựa chọn độ trễ p*

Để lựa chọn độ trễ p* phù hợp, ta sẽ vẽ hàm tương quan riêng (PACF) như sau:

1pac dlCPI

Dựa vào hàm tương quan riêng PACF, ta thấy đồ thị PACF đột ngột cắt đứt/bằng 0 kể từ sau độ trễ 2 (về mặt trực quan, kể từ sau độ trễ 2, các giá trị tương quan riêng đều nằm trong khoảng đậm) \Rightarrow p* = {1,2}.

2.3. Ước lượng, kiểm định và dự báo cho các mô hình

2.3.1. Mô hình AR(1)

Ta sẽ tiến hành ước lượng mô hình AR(1) cho chuỗi dlCPI như sau:

1arima lCPI,arima(1,1,0)

Nhìn chung, ta thấy các hệ số ước lượng đều có ý nghĩa thống kê ở mức ý nghĩa 5%. Tuy nhiên, để có thể sử dụng mô hình này để dự báo, ta cần phải đảm bảo phần dư là nhiễu trắng. Do đó, ta sẽ tiến hành kiểm định phần dư là nhiễu trắng bằng kiểm định Portmanteau như sau:

1arima lCPI,arima(1,1,0)
2predict error1,resid
3wntestq error1

Kết quả kiểm định cho thấy P-value (0.8446) > 0.05 \Rightarrow chưa thể bác bỏ giả thuyết H0 \Rightarrow phần dư trong mô hình AR(1) là nhiễu trắng.

Sau đó, chúng ta sẽ sử dụng mô hình này để dự đoán cho 24 tháng (2 năm) tiếp theo như sau:

1sappend,add(24)
2arima lCPI,arima(1,1,0)
3predict flcpi1,y dynamic(m(2021m3))

2.3.2. Mô hình MA(1)

Ta sẽ tiến hành ước lượng mô hình MA(1) cho chuỗi dlCPI như sau:

1arima lCPI,arima(0,1,1)

Nhìn chung, ta thấy các hệ số ước lượng đều có ý nghĩa thống kê ở mức ý nghĩa 5%. Tuy nhiên, để có thể sử dụng mô hình này để dự báo, ta cần phải đảm bảo phần dư là nhiễu trắng. Do đó, ta sẽ tiến hành kiểm định phần dư là nhiễu trắng bằng kiểm định Portmanteau như sau:

1arima lCPI,arima(0,1,1)
2predict error2,resid
3wntestq error2

Kết quả kiểm định cho thấy P-value (0.8052) > 0.05 \Rightarrow chưa thể bác bỏ giả thuyết H0 \Rightarrow phần dư trong mô hình MA(1) là nhiễu trắng.

Sau đó, chúng ta sẽ sử dụng mô hình này để dự đoán cho 24 tháng (2 năm) tiếp theo như sau:

1tsappend,add(24) // nếu trước đó đã tạo rồi thì không cần đoạn code này nữa
2arima lCPI,arima(0,1,1)
3predict flcpi2,y dynamic(m(2021m3))

2.3.3. Mô hình ARIMA(1,1,1)

Ta sẽ tiến hành ước lượng mô hình ARIMA(1,1,1) cho chuỗi dlCPI như sau:

1arima lCPI,arima(1,1,1)

Nhìn chung, ta thấy các hệ số ước lượng đều có ý nghĩa thống kê ở mức ý nghĩa 5%. Tuy nhiên, để có thể sử dụng mô hình này để dự báo, ta cần phải đảm bảo phần dư là nhiễu trắng. Do đó, ta sẽ tiến hành kiểm định phần dư là nhiễu trắng bằng kiểm định Portmanteau như sau:

1arima lCPI,arima(1,1,1)
2predict error3,resid
3wntestq error3

Kết quả kiểm định cho thấy P-value (0.9727) > 0.05 \Rightarrow chưa thể bác bỏ giả thuyết H0 \Rightarrow phần dư trong mô hình ARIMA(1,1,1) là nhiễu trắng.

Sau đó, chúng ta sẽ sử dụng mô hình này để dự đoán cho 24 tháng (2 năm) tiếp theo như sau:

1tsappend,add(24) // nếu trước đó đã tạo rồi thì không cần đoạn code này nữa
2arima lCPI,arima(1,1,1)
3predict flcpi3,y dynamic(m(2021m3))

Nguồn tham khảo:

1. Phạm, Thế Anh. (2022). Giáo trình phân tích định lượng trong kinh tế vĩ mô. Nhà xuất bản Đại học Kinh tế quốc dân.


Bài viết khác
Trong quá trình phân tích dữ liệu, chúng ta thường phải tạo ra rất nhiều bảng kết quả hồi quy với cùng một định dạng và nhãn dán lặp đi lặp lại. Thay vì phải định dạng lại từ đầu cho mỗi bảng báo cáo, Stata cung cấp một giải pháp hiệu quả giúp bạn lưu lại toàn bộ cấu trúc trình bày để tái sử dụng về sau. Bài viết này sẽ hướng dẫn cách lưu các thiết lập định dạng bảng và áp dụng chúng cho những dự án phân tích dữ liệu trong tương lai. Tạo bảng kết quả cơ bản Chúng ta sẽ bắt đầu bằng việc mở tập dữ liệu thông qua lệnh webuse nhanes2l. Sau đó, chúng ta dùng lệnh table để tạo một bảng cơ bản cho mô hình hồi quy logistic với biến phụ thuộc nhị phân là highbp. Bảng này sẽ bao gồm tỷ số chênh, sai số chuẩn, thống kê z, p-value và khoảng tin cậy. Lưu ý rằng ký hiệu biến phân loại của Stata được sử dụng để đưa vào hiệu ứng chính của biến liên tục age, hiệu ứng chính của các biến phân loại sex và diabetes, cùng với sự tương tác giữa age và sex.
Machine learning, deep learning và trí tuệ nhân tạo là tập hợp các thuật toán dùng để nhận diện các mẫu trong dữ liệu. Các thuật toán này thường có tên gọi khá đặc biệt như random forests, neural networks hay spectral clustering. Bài viết này trình bày cách sử dụng một trong những thuật toán phổ biến mang tên Support Vector Machines hay còn được gọi tắt là SVM. Mục tiêu là ứng dụng mô hình SVM để phân biệt những người có khả năng mắc bệnh tiểu đường và những người không mắc bệnh thông qua hai biến số là tuổi và mức HbA1c. Tuổi được tính bằng năm, còn HbA1c là chỉ số xét nghiệm máu đo lường mức độ kiểm soát đường huyết. Mô hình SVM sẽ dự đoán rằng những người lớn tuổi với mức HbA1c cao có nguy cơ mắc bệnh tiểu đường cao hơn, trong khi những người trẻ tuổi với mức HbA1c thấp ít có nguy cơ mắc bệnh hơn. Tải, gộp và làm sạch dữ liệu bằng Stata Dữ liệu được sử dụng lấy từ Khảo sát Kiểm tra Sức khỏe và Dinh dưỡng Quốc gia Hoa Kỳ. Cụ thể, biến số tuổi trích xuất từ tập dữ liệu nhân khẩu học, chỉ số HbA1c từ dữ liệu hemoglobin và trạng thái bệnh từ dữ liệu tiểu đường. Quá trình bắt đầu bằng việc tải các tệp gốc từ trang web, lưu thành các tập dữ liệu Stata cục bộ và tiến hành gộp chúng lại với nhau. Sau khi gộp, các biến số sẽ được đổi tên và mã hóa lại cho đồng nhất. Những quan sát có giá trị bị khuyết sẽ được loại bỏ hoàn toàn để đảm bảo chất lượng cho bước huấn luyện mô hình.
SciEco
Science for Economics
Định hướng đào tạo phân tích dữ liệu, xây dựng chính sách, tối ưu hoá danh mục tài chính cá nhân và dự báo thị trường.
Liên hệ
Địa chỉ: Số 60, ngõ 41, Phố Thái Hà, Trung Liệt, Đống Đa, Hà Nội (Google Map)
Email: science.for.economics@gmail.com
Hotline: 03.57.94.7680 (Mrs. Hà)
Mạng xã hội