ARIMA là gì? Cách hiểu mô hình và áp dụng trong luận văn
Mô hình ARIMA là gì
ARIMA là mô hình dùng để phân tích và dự báo chuỗi thời gian. Tên gọi này ghép từ ba thành phần: AR là AutoRegressive, I là Integrated và MA là Moving Average. Khi bạn có dữ liệu được ghi theo thứ tự thời gian, chẳng hạn doanh thu theo tháng, sản lượng theo quý, tỷ giá theo ngày hoặc số lượng khách hàng theo tuần, ARIMA giúp mô tả sự phụ thuộc giữa quan sát hiện tại và các quan sát trước đó.
ARIMA không xem các dòng dữ liệu là những quan sát độc lập. Doanh thu tháng này có thể liên quan đến tháng trước, còn sai số dự báo của tháng trước có thể cung cấp thông tin cho dự báo tháng sau. Mô hình khai thác chính cấu trúc đó.
ARIMA thường được viết dưới dạng ARIMA(p, d, q). p là số bậc của thành phần AR, d là số lần sai phân để làm chuỗi ổn định hơn, còn q là số bậc của thành phần MA. Ví dụ, ARIMA(1,1,1) sử dụng một độ trễ của chuỗi sau khi sai phân một lần và một độ trễ của sai số dự báo.
ARIMA phù hợp khi mục tiêu là giải thích động học của một chuỗi đơn hoặc dự báo các giá trị tương lai từ chính lịch sử của chuỗi đó. Nếu bạn muốn phân tích dữ liệu bảng, có thể đọc thêm ARDL là gì, FEM REM dữ liệu bảng là gì hoặc xem nhóm chủ đề Mô hình nghiên cứu. Lưu ý, đường dẫn dữ liệu bảng cần được nhập đúng theo URL được cung cấp trong hệ thống.
Các thành phần trong mô hình
Ba thành phần của ARIMA không phải ba biến độc lập trong bảng hỏi. Chúng là ba cách xử lý khác nhau đối với chuỗi thời gian. Bạn cần hiểu từng thành phần trước khi đọc kết quả phần mềm.
| Thành phần | Ký hiệu | Ý nghĩa thực tế | Câu hỏi cần trả lời |
|---|---|---|---|
| AutoRegressive | p | Giá trị hiện tại phụ thuộc vào một hoặc nhiều giá trị quá khứ của chính chuỗi | Cần dùng bao nhiêu độ trễ của chuỗi |
| Integrated | d | Số lần sai phân chuỗi để giảm xu hướng và đạt tính dừng | Chuỗi cần sai phân mấy lần |
| Moving Average | q | Giá trị hiện tại liên quan đến các sai số dự báo ở thời điểm trước | Cần dùng bao nhiêu độ trễ của sai số |
AR, thành phần tự hồi quy
Với thành phần AR, giá trị hiện tại được mô tả bằng các giá trị quá khứ của cùng một biến. Nếu p = 1, mô hình xem xét một độ trễ. Nếu p = 2, mô hình xem xét hai độ trễ. Bậc cao hơn không tự động tốt hơn, vì thêm độ trễ có thể làm mô hình phức tạp và khó diễn giải.
Ví dụ, doanh thu tháng 6 có thể liên quan đến doanh thu tháng 5 và tháng 4. Mức độ liên quan này thể hiện qua các hệ số AR. Bạn không nên kết luận chỉ từ dấu dương hoặc âm của hệ số. Cần xem thêm ý nghĩa thống kê, phần dư và khả năng dự báo ngoài mẫu.
I, thành phần sai phân
Sai phân là cách lấy giá trị hiện tại trừ giá trị ở thời điểm trước đó. Sai phân bậc một có dạng Yt - Yt-1. Nếu chuỗi sau lần sai phân đầu tiên vẫn chưa ổn định, bạn có thể cân nhắc sai phân bậc hai. Sai phân quá nhiều có thể làm mất thông tin và tạo ra mô hình không cần thiết.
Tính dừng nghĩa là các đặc điểm chính của chuỗi, chẳng hạn trung bình và mức biến động, tương đối ổn định theo thời gian. Bạn có thể quan sát biểu đồ chuỗi, kiểm tra ACF và PACF, đồng thời dùng kiểm định dừng phù hợp. Đừng chọn d chỉ vì phần mềm đặt sẵn một giá trị mặc định.
MA, thành phần trung bình trượt
MA trong ARIMA không phải trung bình cộng đơn giản của các quan sát. Thành phần này sử dụng sai số dự báo ở những thời điểm trước để mô tả giá trị hiện tại. Với q = 1, sai số của kỳ trước được đưa vào mô hình. Với q = 2, mô hình có thể sử dụng hai sai số trễ.
Nếu mô hình dự báo thấp hơn giá trị thực tế ở tháng trước, thông tin về sai số đó có thể giúp điều chỉnh dự báo tháng này. Vì vậy, MA phụ thuộc vào sai số của mô hình chứ không chỉ vào dữ liệu gốc.
Mô hình gốc và các mở rộng phổ biến
Bạn cần phân biệt ARIMA cơ bản với các mở rộng. Lựa chọn phụ thuộc vào việc chuỗi có mùa vụ, có biến giải thích, có nhiều chuỗi liên quan hay có phương sai thay đổi hay không.
ARIMA không mùa vụ thường dùng cho chuỗi có khoảng cách thời gian đều nhau và không có mẫu lặp theo mùa rõ rệt. Nếu doanh thu lặp lại theo 12 tháng, bạn có thể cần SARIMA, trong đó phần AR, sai phân và MA được mở rộng thêm thành phần mùa vụ.
Nếu có một hoặc nhiều biến giải thích, chẳng hạn chi phí quảng cáo hoặc giá bán, ARIMAX có thể phù hợp hơn. Mô hình này vẫn xử lý động học của chuỗi phụ thuộc nhưng bổ sung thông tin từ biến ngoại sinh. Bạn phải chắc chắn các biến giải thích đã có sẵn tại thời điểm dự báo.
VAR là hướng khác khi nhiều chuỗi tác động qua lại. Ví dụ, lãi suất, lạm phát và tỷ giá có thể được xem như một hệ thống thay vì chỉ dự báo một biến từ lịch sử của chính nó. Bạn có thể đọc thêm lý thuyết VAR, mô hình VAR và VAR là gì để phân biệt VAR với ARIMA.
| Mô hình | Khi nên cân nhắc | Đặc điểm cần kiểm tra |
|---|---|---|
| ARIMA | Một chuỗi chính, không có mùa vụ rõ ràng | Tính dừng, ACF, PACF, phần dư |
| SARIMA | Chuỗi có mùa vụ lặp lại | Chu kỳ mùa vụ, sai phân mùa vụ |
| ARIMAX | Có biến ngoại sinh hỗ trợ dự báo | Độ trễ, dữ liệu tương lai, tương quan giữa biến |
| VAR | Nhiều chuỗi tác động qua lại | Tính dừng của từng chuỗi, độ trễ chung |
Nếu dữ liệu chỉ là bảng khảo sát Likert thu tại một thời điểm, ARIMA thường không phải lựa chọn tự nhiên. Bảng khảo sát đó không tạo thành chuỗi thời gian chỉ vì bạn đánh số thứ tự cho từng người trả lời.
Thang đo thường dùng cho từng khái niệm
ARIMA không sử dụng thang đo như các mô hình nghiên cứu hành vi. Bạn không có các biến quan sát như SAT1, SAT2, SAT3 để chạy Cronbach's Alpha rồi đưa vào ARIMA. Đơn vị phân tích là các thời điểm quan sát.
| Khái niệm trong dữ liệu | Cách đo thường gặp | Ví dụ biến trong file | Lưu ý khi chuẩn bị |
|---|---|---|---|
| Thời gian | Ngày, tuần, tháng hoặc quý | month | Sắp xếp đúng thứ tự và có khoảng cách phù hợp |
| Chuỗi cần dự báo | Giá trị thực tế tại mỗi thời điểm | sales | Thống nhất đơn vị đo giữa các kỳ |
| Sai phân | Chênh lệch giữa các kỳ liên tiếp | diff_sales | Có thể mất quan sát đầu tiên |
| Biến ngoại sinh, nếu có | Giá trị được biết tại thời điểm dự báo | ad_cost | Cần xác định thời điểm dữ liệu sẵn có |
Trước khi chạy, hãy kiểm tra ngày bị trùng, kỳ bị thiếu, thay đổi đơn vị tiền tệ, giá trị bằng 0 và các đợt đột biến do sự kiện đặc biệt. Một tháng bị thiếu có thể làm sai ý nghĩa của độ trễ. Nếu điền giá trị vào khoảng trống, bạn phải ghi rõ quy tắc và lý do.
Trong phần phương pháp, hãy mô tả nguồn dữ liệu, tần suất quan sát, khoảng thời gian, biến được dự báo và cách xử lý dữ liệu thiếu. Nếu dùng dữ liệu ngày nhưng cuối tuần không có giao dịch, đó có thể là đặc điểm của dữ liệu chứ không phải lỗi nhập liệu.
Áp dụng vào đề tài của bạn
Bạn có thể xây dựng đề tài dự báo doanh thu bán lẻ theo tháng tại một cửa hàng trong giai đoạn từ tháng A đến tháng B. Biến trung tâm là sales_t, đại diện cho doanh thu ở thời điểm t. Mục tiêu là lựa chọn một mô hình ARIMA phù hợp, đánh giá sai số dự báo và tạo dự báo cho các kỳ tiếp theo.
ARIMA(1,1,1) có thể dùng làm ví dụ để hiểu cách trình bày, nhưng bạn không được chép cấu hình này vào luận văn khi chưa kiểm tra dữ liệu. Hãy so sánh một số cấu hình dựa trên tính dừng, AIC hoặc BIC, phần dư và sai số trên tập kiểm tra.
Các giả thuyết trong đề tài dự báo thường không giống mô hình khảo sát. Bạn có thể dùng câu hỏi nghiên cứu hoặc mục tiêu thay cho H1 đến H4. Nếu khoa yêu cầu trình bày dưới dạng giả thuyết, hãy thống nhất cách diễn đạt với giảng viên.
Ví dụ một cấu trúc có thể viết như sau:
- H1: Chuỗi doanh thu sau khi xử lý sai phân phù hợp có thể được mô hình hóa bằng cấu trúc tự hồi quy.
- H2: Thành phần sai số trễ cải thiện khả năng mô tả chuỗi doanh thu.
- H3: Mô hình được chọn tạo ra phần dư không còn tự tương quan đáng kể.
- H4: Mô hình được chọn có sai số dự báo trên tập kiểm tra thấp hơn mô hình đối chứng.
Các câu trên chỉ là khung minh họa. H1 và H2 không nên được hiểu như quan hệ nhân quả giữa các biến độc lập. Chúng mô tả cấu trúc dự báo của chuỗi. Trong luận văn, hãy nói rõ ARIMA phục vụ dự báo, không biến nó thành mô hình kiểm định tác động nhân quả nếu thiết kế dữ liệu không hỗ trợ điều đó.
Bảng kết quả minh họa
Bảng dưới đây là số liệu minh họa, không phải kết quả của một nghiên cứu thật. Tên cột được trình bày theo dạng thường gặp trong quy trình phân tích chuỗi thời gian. Khi viết luận văn, bạn thay bằng bảng xuất từ phần mềm và ghi đúng khoảng thời gian của dữ liệu.
| Mô hình | AIC | BIC | RMSE tập kiểm tra | Ljung-Box p-value | Diễn giải minh họa |
|---|---|---|---|---|---|
| ARIMA(1,1,0) | 428.31 | 435.72 | 18.64 | 0.041 | Phần dư còn dấu hiệu tự tương quan |
| ARIMA(0,1,1) | 421.08 | 428.49 | 16.92 | 0.187 | Phần dư phù hợp hơn, sai số thấp hơn |
| ARIMA(1,1,1) | 420.76 | 430.02 | 17.11 | 0.224 | AIC thấp, RMSE nhỉnh hơn mô hình đối chứng |
Bạn không chọn mô hình chỉ vì AIC thấp nhất. Trong bảng minh họa, ARIMA(1,1,1) có AIC thấp hơn rất nhẹ nhưng RMSE kiểm tra cao hơn ARIMA(0,1,1). Cần xem đồng thời tiêu chí thông tin, sai số ngoài mẫu, cấu trúc mô hình và phần dư. Nếu hai mô hình gần tương đương, mô hình đơn giản hơn thường dễ giải thích hơn.
Cách viết vào luận văn
Bạn có thể điều chỉnh đoạn sau theo số liệu thật: “Kết quả so sánh cho thấy mô hình [ARIMA(p,d,q)] được lựa chọn vì có [AIC/BIC] phù hợp, RMSE trên tập kiểm tra đạt [giá trị], và kiểm định phần dư cho p-value bằng [giá trị]. Do đó, mô hình được sử dụng để dự báo [biến cần dự báo] trong giai đoạn [khoảng thời gian]. Các số liệu trong ngoặc vuông phải được thay bằng output của chính bạn.”
Không ghi câu này nếu bạn chưa tách tập kiểm tra hoặc chưa kiểm tra phần dư. Hội đồng thường hỏi ngay mô hình được chọn dựa trên tiêu chí nào, dữ liệu nào được dùng để ước lượng và dự báo có được đánh giá ngoài mẫu hay không.
Cách kiểm định mô hình bằng SPSS hoặc SmartPLS
SmartPLS được thiết kế cho PLS-SEM, với biến tiềm ẩn, outer loading, AVE, HTMT và path coefficient. Vì vậy, đây không phải công cụ chính để chạy ARIMA. SPSS có chức năng xử lý chuỗi thời gian phù hợp hơn, còn R, Python hoặc EViews cho phép kiểm soát sâu hơn quy trình chọn mô hình.
Trong SPSS, đưa biến thời gian và biến cần dự báo vào Data View, sau đó kiểm tra thứ tự thời gian. Tùy phiên bản, bạn có thể đi theo Analyze > Forecasting > Create Models hoặc công cụ phân tích chuỗi thời gian tương ứng. Chọn biến chuỗi làm biến phụ thuộc, khai báo cấu trúc thời gian và đọc các bảng thống kê do SPSS xuất ra.
Chuẩn bị tập dữ liệu
Tách dữ liệu thành giai đoạn ước lượng và giai đoạn kiểm tra nếu mục tiêu là đánh giá dự báo. Tập ước lượng dùng để chọn và ước lượng mô hình. Tập kiểm tra được giữ lại để xem mô hình dự báo các quan sát chưa được dùng trong quá trình ước lượng như thế nào.
Chọn cấu hình ARIMA
Vẽ chuỗi gốc, nhận diện xu hướng hoặc mùa vụ, xử lý sai phân nếu cần rồi xem ACF và PACF. Sau đó ước lượng một số cấu hình hợp lý, thay vì thử hàng loạt tham số mà không ghi lại lý do.
Kiểm tra phần dư và dự báo
Khi đọc output, hãy tìm hệ số mô hình, AIC hoặc BIC, bảng sai số, giá trị dự báo và kiểm tra phần dư. Nếu phần dư còn quy luật hoặc tự tương quan, mô hình chưa thu được toàn bộ thông tin trong chuỗi. Bạn cũng cần xem biểu đồ dự báo cùng khoảng tin cậy.
Nếu dùng R hoặc Python, hãy lưu script cùng file dữ liệu và ghi lại phiên bản gói phân tích. Nếu thuê dịch vụ chạy SPSS, yêu cầu bàn giao dữ liệu đã xử lý, cú pháp hoặc mã lệnh, bảng output và quy tắc chọn mô hình. Một bảng kết quả không có lịch sử xử lý rất khó giải trình khi được hỏi vì sao chọn p, d, q.
Lỗi thường gặp khi dùng mô hình này
Nhầm ARIMA với hồi quy khảo sát
ARIMA không thay thế hồi quy tuyến tính cho dữ liệu khảo sát cắt ngang. Nếu mỗi dòng là một người trả lời và không có trật tự thời gian có ý nghĩa, gán số thứ tự cho dòng rồi chạy ARIMA là không hợp lý.
Chọn p, d, q theo mẫu trên mạng
Cùng tên biến không có nghĩa là cùng cấu trúc chuỗi. Một bộ tham số phù hợp với doanh thu tháng của nghiên cứu khác có thể không phù hợp với dữ liệu của bạn. Hãy ghi lại cấu hình đã thử, tiêu chí so sánh và lý do loại bỏ.
Sai phân quá nhiều
Sai phân nhiều lần có thể làm chuỗi biến động mạnh và khiến diễn giải khó khăn. Kiểm tra chuỗi sau từng lần sai phân. Khi chuỗi đã ổn định, không tiếp tục sai phân chỉ để mô hình có vẻ phức tạp hơn.
Bỏ qua dữ liệu thiếu và kỳ không đều
ARIMA dựa vào độ trễ, nên một khoảng thời gian bị thiếu có thể làm ý nghĩa của độ trễ thay đổi. Kiểm tra lịch thời gian trước khi chạy và ghi rõ mọi bước xử lý.
Chỉ báo cáo AIC
AIC hỗ trợ so sánh mô hình nhưng không thay thế kiểm tra phần dư và đánh giá ngoài mẫu. Một mô hình có AIC tốt vẫn có thể dự báo kém hoặc còn tự tương quan trong phần dư.
Viết kết quả như quan hệ nhân quả
ARIMA mô tả và dự báo cấu trúc của chuỗi. Không suy ra tác động nhân quả chỉ từ một hệ số AR hoặc MA. Nếu mục tiêu của bạn là đánh giá tác động giữa nhiều biến, hãy xem xét phương pháp phù hợp với thiết kế dữ liệu.
Đọc thêm: fem rem dữ liệu bảng là gì, lý thuyết var.
Câu hỏi thường gặp
ARIMA có phải là mô hình hồi quy không
ARIMA có thể được viết dưới dạng phương trình với các hệ số và sai số, nhưng mục tiêu chính là mô tả phụ thuộc theo thời gian và dự báo. Nó khác hồi quy khảo sát ở chỗ các độ trễ của chuỗi và sai số dự báo giữ vai trò trung tâm.
ARIMA cần bao nhiêu quan sát
Không có một con số chung cho mọi chuỗi. Số quan sát phụ thuộc vào tần suất dữ liệu, số tham số, mùa vụ, độ dài giai đoạn dự báo và mức độ ổn định của chuỗi. Bạn cần chừa dữ liệu cho cả giai đoạn ước lượng và tập kiểm tra.
Có thể chạy ARIMA bằng SmartPLS không
SmartPLS không phù hợp cho ARIMA. SmartPLS phục vụ PLS-SEM, còn ARIMA cần chức năng xử lý độ trễ, sai phân, ACF, PACF và chẩn đoán phần dư. Hãy dùng SPSS, R, Python hoặc EViews tùy yêu cầu của khoa.
Nếu phần dư còn tự tương quan thì phải làm sao
Trước tiên, kiểm tra lại thứ tự thời gian, dữ liệu thiếu, mùa vụ và bậc p, d, q. Sau đó thử cấu hình hợp lý khác và kiểm tra lại phần dư. Nếu vẫn còn cấu trúc chưa giải thích được, hãy báo cáo giới hạn của mô hình thay vì xóa các quan sát làm kết quả xấu đi.
ARIMA có dùng được cho dữ liệu ngày không
Có thể, nếu các quan sát có tần suất và quy tắc ghi nhận nhất quán. Dữ liệu ngày thường có ngày nghỉ, mùa trong tuần và sự kiện đặc biệt, nên bạn cần cân nhắc mùa vụ và các ngày không phát sinh giao dịch. Đừng coi mỗi dòng trong file là một ngày hợp lệ nếu lịch thực tế có khoảng trống.
Hãy mở file dữ liệu, sắp xếp cột thời gian, vẽ chuỗi gốc và ghi riêng ba quyết định p, d, q cùng lý do chọn. Nếu cần chạy và diễn giải ARIMA trên chính file .sav hoặc .csv, bạn có thể dùng M4 phân tích dữ liệu của DoThesis.