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 1)

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

Bạn có bao giờ tự hỏi làm thế nào để dự đoán giá cổ phiếu trong tương lai, xu hướng tiêu dùng trong tháng tới, hay lượng mưa trong mùa sắp tới? Chuỗi thời gian - tập dữ liệu ghi lại các giá trị theo thời gian - đóng vai trò then chốt trong việc giải quyết những bài toán dự đoán này.

Trong bài viết này, SciEco sẽ giới thiệu ba mô hình thống kê phổ biến cho chuỗi thời gian: AR(p) (Autoregressive), MA(q) (Moving Average) và ARIMA(p,d,q) (Autoregressive Integrated Moving Average). Chúng ta sẽ cùng khám phá cách thức hoạt động, ưu điểm và nhược điểm của từng mô hình trong phần 1 này, cũng như ứng dụng thực tế của chúng trong nhiều lĩnh vực khác nhau tại bài viết tiếp theo.

1. MỘT SỐ LÝ THUYẾT CƠ BẢN

1.1. Mô hình tự hồi quy tổng quát (Autoregressive) – AR(p)

Một chuỗi thời gian được gọi là tuân theo mô hình tự hồi quy bậc p, hay AR(p), nếu:

yt=β+ϕ1yt1+ϕ2yt2++ϕpytp+ut(1)y_t = \beta + \phi_1y_{t-1} + \phi_2y_{t-2} + \ldots + \phi_py_{t-p} + u_t \quad (1)

trong đó, utu_t là nhiễu trắng thỏa mãn đồng thời ba điều kiện sau:

\Rightarrow Mô hình AR(p) hàm ý hành vi của phụ thuộc chủ yếu vào hành vi trong quá khứ của chính nó cho tới p thời kỳ trước đó.

Điều kiện dừng: Điều kiện để chuỗi tuân theo AR(p) trong phương trình (1) có tính dừng là phương trình đặc trưng 1ϕ1zϕ2z2ϕpzp=01 - \phi_1z - \phi_2z^2 - \ldots - \phi_pz^p = 0 , hay 1i=1pϕizi=01 - \sum_{i=1}^{p} \phi_i z^i = 0, của nó có tất cả các nghiệm z thỏa mãn zi>1 |z_i| > 1.

\Rightarrow Điều kiện cần, nhưng chưa đủ, là i=1pϕi<1\sum_{i=1}^{p} \phi_i <1.

Lựa chọn độ trễ hợp lý p*: Để có thể xác định được độ trễ tối ưu, hai nhà thống kê George Box và Gwilym Jenkins (1976) đã xây dựng nên phương pháp Box-Jenkins.

Phương pháp Box-Jenkins giúp xác định lựa chọn độ trễ hợp lý p* cho mô hình AR thông qua việc xem xét hàm tự tương quan (Autocorrelation Function – ACF) và hàm tương quan riêng (Partial Autocorrelation Function – PACF):

\Rightarrow Chúng ta sẽ dựa vào đồ thị PACF để xác định độ trễ p phù hợp (Nếu đồ thị PACF đột ngột cắt đứt kể từ sau độ trễ p → p là độ trễ tối ưu cho mô hình AR(p)).

1.2. Mô hình trung bình trượt tổng quát (Moving Average) – MA(q)

Một chuỗi thời gian được gọi là tuân theo mô hình trung bình trượt bậc q, hay MA(q), nếu:

yt=ut+θ1ut1+θ2ut2++θqutq(2)y_t = u_t + \theta_1u_{t-1} + \theta_2u_{t-2} + \ldots + \theta_qu_{t-q} \quad (2)

trong đó, utu_t là nhiễu trắng thỏa mãn điều kiện sau:

\Rightarrow Mô hình MA(q) hàm ý hành vi của phụ thuộc chủ yếu vào các yếu tố shock ngẫu nhiên trong thời điểm hiện tại và thời kỳ q trước đó.

Lựa chọn độ trễ hợp lý q*: Để có thể xác định được độ trễ tối ưu, ta cũng dựa vào việc xem xét hàm tự tương quan (Autocorrelation Function – ACF) và hàm tương quan riêng (Partial Autocorrelation Function – PACF). Cụ thể:

\Rightarrow Chúng ta sẽ dựa vào đồ thị ACF để xác định độ trễ q phù hợp (Nếu đồ thị ACF đột ngột cắt đứt kể từ sau độ trễ q → q là độ trễ tối ưu cho mô hình MA(q)).

1.3. Mô hình tự hồi quy trung bình trượt (Autoregressive Moving Average) - ARMA(p,q)

Mô hình ARMA(p,q) là sự kết hợp của mô hình AR(p) với MA(q). Do vậy, một chuỗi thời gian bất kì được gọi là tuân theo mô hình ARMA(p,q) nếu:

yt=β+ϕ1yt1+ϕ2yt2++ϕpytp+ut+θ1ut1+θ2ut2++θqutq(3)y_t = \beta + \phi_1y_{t-1} + \phi_2y_{t-2} + \ldots + \phi_py_{t-p} + u_t + \theta_1u_{t-1} + \theta_2u_{t-2} + \ldots + \theta_qu_{t-q} \quad (3)

trong đó, utu_t là nhiễu trắng thỏa mãn điều kiện sau:

Lựa chọn độ trễ hợp lý p* và q*: Mô hình ARMA(p,q) là sự kết hợp của mô hình AR(p) với MA(q). Vì vậy, các hàm ACF và PACF của ARMA(p,q) sẽ mang đặc điểm của ACF và PACF trong các mô hình AR(p) và MA(q). Cụ thể:

  1. Đồ thị ACF của mọi mô hình ARMA(p,q) sẽ đột ngột cắt đứt/bằng 0 kể từ sau độ trễ q
  2. Đồ thị PACF của mô hình ARMA(p,q) sẽ đột ngột cắt đứt/bằng 0 kể từ sau độ trễ p

\Rightarrow Chúng ta sẽ dựa vào đồ thị ACF và PACF để xác định độ trễ q và p phù hợp (Nếu đồ thị ACF đột ngột cắt đứt kể từ sau độ trễ q → q là độ trễ tối ưu cho mô hình ARMA(p,q); còn nếu đồ thị PACF đột ngột cắt đứt kể từ sau độ trễ p → p là độ trễ tối ưu cho mô hình ARMA(p,q)).

1.4. Mô hình ARIMA(p,d,q) (Autoregressive Intergrated Moving Average)

Để có thể sử dụng được các mô hình AR, MA và ARMA, chuỗi phải được đảm bảo là chuỗi dừng. Tuy nhiên, trong thực tế, hầu hết các chuỗi đều tăng hoặc giảm theo thời gian. Việc biến đổi sang chuỗi dừng sẽ loại bỏ các nhân tố ảnh hưởng thời gian và chuỗi sẽ dễ dự báo hơn. Để tạo thành chuỗi dừng, một phương pháp đơn giản nhất là chúng ta sẽ lấy sai phân. Bậc của sai phân để tạo thành chuỗi dừng còn được gọi là bậc của quá trình đồng tích hợp (order of intergration). Quá trình sai phân bậc d của chuỗi được thực hiện như sau:

Thông thường chuỗi sẽ dừng sau quá trình đồng tích hợp I(0)I(0) hoặc I(1)I(1) . Rất ít chuỗi chúng ta phải lấy tới sai phân bậc 2. Một số trường hợp chúng ta sẽ cần biến đổi logarit hoặc căn bậc 2 để tạo thành chuỗi dừng.

Kết hợp các yếu tố trên, một chuỗi thời gian được gọi là tuân theo mô hình ARIMA(p,d,q) nếu:

Δyt=β+(ϕ1Δyt1+ϕ2Δyt2++ϕpΔytp)+(ut+θ1ut1+θ2ut2++θqutq)(4)\Delta y_t = \beta + (\phi_1 \Delta y_{t-1} + \phi_2 \Delta y_{t-2} + \ldots + \phi_p \Delta y_{t-p}) + (u_t + \theta_1 u_{t-1} + \theta_2 u_{t-2} + \ldots + \theta_q u_{t-q}) \tag{4}

trong đó, utu_t vẫn phải được đảm bảo là nhiễu trắng.

\Rightarrow Về tổng quát, ARIMA là mô hình kết hợp của 2 quá trình tự hồi qui và trung bình trượt. Dữ liệu trong quá khứ sẽ được sử dụng để dự báo dữ liệu trong tương lai. Trước khi “huấn luyện” mô hình, cần chuyển hóa chuỗi sang chuỗi dừng bằng cách lấy sai phân bậc 1 hoặc logarit. Ngoài ra mô hình cũng cần tuân thủ điều kiện ngặt về sai số không có hiện tượng tự tương quanphần dư là nhiễu trắng.

Như vậy, SciEco đã cùng các bạn tìm hiểu cách thức hoạt động, ưu điểm và nhược điểm của ba mô hình thống kê phổ biến cho chuỗi thời gian: AR(p) (Autoregressive), MA(q) (Moving Average) và ARIMA(p,d,q) (Autoregressive Integrated Moving Average).

Theo dõi fanpage Science for Economics để biết thêm ứng dụng thực tế của các mô hình này trong nhiều lĩnh vực khác nhau cũng như cách thực hành với công cụ STATA ở bài viết tiếp theo.


Bài viết khác
Bài viết này khám phá cách cập nhật và tạo các lệnh Stata để tích hợp với những mô hình AI phổ biến như ChatGPT, Claude, Gemini và Grok. Sau khi bài đăng trước về lệnh Stata để chạy ChatGPT trở nên phổ biến, những thay đổi trong mã API của OpenAI đã khiến lệnh đó không còn hoạt động. Mục tiêu của chúng tôi là hướng dẫn bạn cách điều chỉnh mã API và viết các lệnh Stata tương tự để tận dụng sức mạnh của các công cụ AI khác nhau trực tiếp từ môi trường Stata. Trọng tâm của bài viết này, cũng như bài trước, là minh họa mức độ dễ dàng để tận dụng các tính năng của PyStata nhằm kết nối với ChatGPT và các công cụ AI khác, thay vì đưa ra lời khuyên về cách sử dụng các công cụ AI để trả lời các câu hỏi cụ thể của Stata. Do đó, các ví dụ chỉ đơn giản là yêu cầu một bài haiku về Stata. Tuy nhiên, bạn có thể truyền bất kỳ yêu cầu nào mà bạn thấy hữu ích trong quy trình làm việc của mình với Stata. Tổng Quan Về Tích Hợp Stata/Python Chúng tôi giả định rằng bạn đã quen thuộc với tích hợp Stata/Python và cách viết lệnh chatgpt ban đầu. Nếu các chủ đề này còn lạ lẫm, bạn nên đọc các bài đăng trên blog dưới đây:
Trong lập trình các lệnh ước lượng tùy chỉnh trong Stata, việc đảm bảo chức năng `predict` hoạt động chính xác sau khi chạy mô hình là một yếu tố quan trọng để người dùng có thể trích xuất các dự đoán hiệu quả. Bài viết này sẽ hướng dẫn cách xây dựng một ado-command riêng biệt để tính toán các giá trị dự đoán và tích hợp nó vào lệnh ước lượng chính, từ đó mở rộng khả năng phân tích dữ liệu. Một Lệnh Ado Để Tính Toán Dự Đoán Theo quy ước, một ado-command dùng để tính toán các dự đoán cho lệnh ước lượng `mytest` sẽ được đặt tên là `mytest_p`. Trong trường hợp này, chúng ta sẽ xem xét `mypoisson5_p`, ado-command chịu trách nhiệm tính toán dự đoán sau khi chạy lệnh `mypoisson5`. Cú pháp của `mypoisson5_p` được định nghĩa như sau:
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