Phân tích dãy số thời gian (Time
Series Analysis)
chuc1803@gmail.com, http://bis.net.vn
Sơ
lược về dãy số thời gian
Dãy số thời gian (Time Series) là
dãy các trị số của chỉ tiêu thống kê được sắp xếp theo thứ tự thời gian. Một
dãy số thời gian có hai thành phần đó là thời gian và chỉ tiêu của hiện tượng
nghiên cứu. Thời gian có thể là thời kì hoặc thời
điểm. Độ
dài giữa hai thời gian liền nhau gọi là khoảng cách thời gian. Trị số của chỉ tiêu có thể là số tuyệt đối, số tương đối hoặc số
trung bình.
Dãy số tuyệt đối: khi các mức
độ (level) của dãy số là số tuyệt đối
(ex: bảng doanh thu (tỷ đồng) quan các năm)
Dãy số tương đối: khi các mức
độ của dãy số là số tương đối (ex: tốc độ tăng doanh thu qua các năm)
Dãy số trung bình: khi các
mức độ của dãy số là số trung bình (ex: tiền lương trung bình của lao động qua
các năm).
Dãy số thời gian còn được gọi là
chuỗi thời gian.
Phân tích dãy số thời gian cho phép
nghiên cứu xu hướng biến động của hiện tượng qua thời gian. Từ đó, tìm ra tính
quy luật của sự thay đổi, đồng thời dự đoán được các mức độ của hiện tượng
trong tương lai.
Phân
tích dãy số thời gian liên quan đến các yếu tố sau:
1.
Level (mức độ của dữ liệu)
2.
Trend (tính xu hướng)
3.
Season (tính mùa vụ)
4.
Random noise (nhiễu ngẫu nhiên)
Mối quan hệ bởi các yếu tố trên có thể biểu
diễn bằng phương trình sau:
Time series data (y) = function of (level,
trend, seasonality) + random noise
Tùy
thuộc vào bản chất của dữ liệu, các thành phần trên sẽ tương tác với nhau
theo mô hình cộng (additive model) hoặc
nhân (multiplicative model)
Additive model:
Y = level + trend + seasonality + noise
Multiplicative model:
Y = level * trend * seasonality * noise
Một số ứng dụng điển
hình của Time Series
Ý tưởng chính của phân tích dãy số thời gian
là phân tích và theo dõi dữ liệu theo thời gian nên được ứng dụng trong rất
nhiều lĩnh vực khác nhau như Sales Forecast (dự báo doanh số), Stock price
prediction (dự báo giá chứng khoán), Meteorology and Climate (dự báo, phân tích
hiện tượng trong khí tượng và khí hậu), Econometrics (kinh tế lượng, phần lớn
các chỉ số kinh tế đều gắn với thời gian, có xu hướng và tính mùa vụ rất rõ, ví
dụ như GDP).
Bài viết này trình bày phân tích
dãy số thời gian trong Tableau với bộ dữ liệu Superstore gồm các nội dung chính
sau:
1.
Trực quan xu hướng doanh số bán hàng (Sales) theo
thời gian (years, quarters, months, weeks, days)
2.
Phân tích xu thế của doanh số bán hàng sử dụng đường
xu hướng (trend line)
3.
Phân tích xu hướng sử dụng phương pháp trung bình
trượt (moving average method)
4.
Phân tích tính mùa vụ (seasonality) của dữ liệu thời
gian (seasonality)
5.
Dự báo doanh
số bán hàng (Forecast sales) sử dụng phương pháp làm trơn gàm mũ ( exponential
smoothing method)
#1. Trực quan xu hướng doanh số bán hàng (Sales) theo thời
gian
Doanh số bán hàng theo Năm
Theo Quí
Theo tháng
Theo
Tuần
Theo
ngày
Từ các biểu đồ doanh thu theo thời gian (hàng năm,
quý, tháng, tuần ngày), chúng ta có thể quan sát những điều sau:
- Biểu đồ doanh số hàng năm
cho thấy tổng doanh số đã tăng dần theo các năm, khẳng định sự hiện diện
của xu hướng dài hạn.
- Biểu đồ doanh số hàng quý
cho thấy cả xu hướng cũng như tính mùa vụ. Tổng doanh thu tăng dần theo năm,
tổng doanh thu cao trong quý 4 hàng năm và thấp trong quý 1 hàng năm.
- Biểu đồ doanh số hàng
tháng cũng xác nhận tính chất tương tự mà chúng ta
đã quan sát trong biểu đồ doanh số hàng quý.
- Doanh số bán hàng nhìn chung đã
tăng theo năm và theo mùa: Tháng 11 và tháng 12 là những tháng bán hàng tốt, trong khi đó
tháng 1 và tháng 2 là những tháng bán hàng tệ.
- Xu hướng bán hàng hàng
tuần và hàng ngày khó đọc rõ ràng do có quá nhiều điểm dữ liệu biến động. Những
biểu đồ này không tốt cho việc đưa ra các nhận xét về
xu hướng.
- Vậy nếu phải chọn biểu đồ để báo
cáo về tình hình doanh số bán hàng theo thời gian thì
nên chọn biểu đồ doanh số hàng quý hoặc hàng tháng.
#2. Phân tích xu thế của doanh số bán
hàng sử dụng đường xu hướng (trend line)
Chúng ta thấy rõ ràng sự hiện diện của xu
hướng trong dữ liệu chuỗi thời gian. Nhưng làm thế nào để chúng ta chứng minh
rằng xu hướng đó thực sự đang hiện hữu?
Trong Tableau có thể hiển thị các
đường xu hướng
(trend line), các đường này sẽ hiển thị hướng mà các
giá trị dữ liệu di
chuyển theo thời gian. Đường xu hướng cùng với các tham số thống kê của nó cho
biết xu hướng quan sát được có ý nghĩa thống kê hay không ( P-value <0.05).
Đường xu hướng trên
cho biết thông tin gì?
Đường xu hướng cho biết rằng tổng doanh số tăng lên theo
thời gian (độ dốc (slope) >0).
Chỉ số R bình phương (R-Squared) càng nhỏ
có nghĩa là tác động của thời gian càng ít đối với sự thay đổi của doanh
số bán hàng. Nếu giá trị bình phương R gần bằng 0, thì chúng ta có thể nói rằng
không có xu hướng. Trong trường hợp này giá trị R-Squared không cao (=0.25)
nhưng đồng thời nó cũng không quá thấp, vì vậy chúng ta có thể kết
luận rằng có một xu hướng hiện tại nhưng yếu.
P-value = 0.000285
(<5%) nên đường xu hướng có ý nghĩa thống kê.
Tóm lại, đường xu hướng trên có các thông tin sau
1.
Positive: Xu hướng tăng
2.
Weak (R-squared = 0.25): Xu hướng có nhưng yếu
3.
Significant (P-value < 0.01): Có ý nghĩa thống kê
Đường xu hướng rất hữu ích khi phân tích dãy số thời gian, giúp
ta trả lời các câu hỏi như hiện tượng biến thiên có xu hướng không, nếu có xu
hướng thì tăng hay giảm, xu hướng đó có mạnh và có ý nghĩa thống kê không.
#3.
Phân tích xu hướng sử dụng phương pháp trung bình trượt (moving average method)
Tính
mùa vụ (seasonality)
Tính mùa vụ sẽ ảnh hưởng lớn đến xu hướng và R-squared vì
phương pháp bình phương nhỏ nhất (least square method).
Do đó nếu chúng ta loại trừ hoàn toàn tính mùa vụ hoặc
loại bỏ các tác động cực đoan của tính mùa vụ thì
chúng ta có thể thấy xu hướng nổi bật hơn.
Trong hình trên ta
thấy rằng R bình phương khá cao (0.86).
Điều này có nghĩa là xu hướng là có thật và nổi bật. Nhìn vào hệ số độ dốc của năm
trong mô hình là 242.463 điều này có nghĩa là doanh
số bán hàng sẽ tăng trung bình 242 nghìn đô la sau mỗi năm.
Tuy
nhiên, có một vấn đề với P-value của mô hình. Bây giờ nó đã tăng lên 0.07 (P- value >
0,05 có nghĩa là mô hình không có ý nghĩa). Điều này là do chúng ta
chỉ có 4 điểm dữ liệu (4 năm) trong biểu đồ, quá ít dữ liệu để
hồi quy và mô
tả xu hướng của mô hình một cách chính xác.
Làm cách nào chúng ta có
thể loại bỏ tính mùa vụ?
Câu
trả lời là làm trơn dữ liệu (smoothing). Thay vì sử dụng doanh
số bán hàng, chúng ta có thể sử dụng trung bình trượt (moving average) của doanh số bán hàng,
điều này sẽ làm trơn chuỗi thời gian.
Trung
bình trượt
chỉ đơn giản là giá trị trung bình của n giá trị trước mỗi điểm dữ liệu.
Bạn có thể thấy rằng biểu đồ hiển thị trung bình trượt của doanh số bán hàng (panel trên)
trơn hơn so với biểu đồ hiển thị doanh số bán hàng thực tế (panel dưới).
Theo
mặc định trong Tableau,
trung bình trượt
được tính bằng cách sử dụng n=2 (sử dụng doanh số bán hàng của 2 hai
tháng trước trong
trường hợp này),
điều này không đủ tốt vì tính mùa vụ được quan sát trong hơn một quý. Vì vậy, ta sẽ
thay đổi kích
thước của cửa sổ trượt (window size) thành 6
tháng.
Right click vào trend lines và chọn describe trend models.
Trước
hết, chúng ta có thể thấy rằng có 48 quan sát, đủ lớn để phân tích xu hướng sử
dụng mô hình hồi quy.
Giá
trị R bình phương là 0.65, có nghĩa là có mối quan hệ chặt chẽ giữa đường trung
bình trượt
của doanh số và thời gian. Nói một cách đơn giản, doanh số bán hàng trung bình
thay đổi theo thời gian.
Giá
trị p rất thấp nên có thể tin tưởng vào mô hình này.
Từ các phân tích trên,
có
thể kết luận rằng có
một xu hướng tích cực trong dữ liệu: Doanh số bán hàng tăng
dần theo thời gian.
Tuy nhiên, có tính mùa vụ
trong dữ liệu chuỗi thời gian hay không chúng ta cần phân tích
thêm.
#4. Phân tích tính mùa vụ (seasonality) của dãy số thời gian
Chúng
ta đã quan sát thấy rằng có một xu hướng tích cực trong dữ liệu, có nghĩa là
doanh số bán hàng đã tăng lên trong những năm qua. Chúng ta biết điều này không
chỉ đơn giản bằng cách nhìn vào biểu đồ, mà còn từ các tham số thống kê như
R-squared
và P-value.
Chúng
ta
cũng nhận thấy tính mùa vụ trong việc bán hàng, có nghĩa là doanh số
bán hàng đã được lặp lại qua các năm. Chúng ta quan sát điều này từ biểu đồ xu
hướng và cũng chú
ý rằng tính mùa vụ đã làm giảm đáng kể giá trị R bình
phương của đường
xu
hướng.
Chúng ta có thể quan sát
tính mùa vụ một cách tốt hơn trong biểu đồ dưới đây.
Kết quả
Biểu đồ trên cho thấy sự khác biệt về tổng doanh số giữa các tháng
từ tháng 1 đến tháng 12 qua các năm (mỗi năm 1 đường).
Từ biểu đồ trên, chúng ta có thể thấy rằng doanh số bán hàng
đã tăng vọt trong tháng Ba so với mức thấp nhất trong tháng Hai.
Tương tự, doanh số bán hàng tăng đột biến vào tháng 9, sau đó giảm mạnh
vào tháng 10 trước khi tăng vọt trở lại vào tháng 11.
Đặc điểm này lặp lại mỗi năm.
#5. Dự báo doanh số (Forecasting) sử dụng phương pháp làm
trơn hàm mũ (exponential smoothing method)
Phần này trình bày cách sử dụng mô hình dự báo time series
dựa vào level, trend và season.
Nhớ lại rằng mô hình Time series có thể biểu diễn dưới dạng hàm số
của level, trend và season:
Time series data (y)= f(level, trend và season)
Có một số mô hình dự báo chuỗi thời gian phổ biến
như mô hình làm trơn hàm mũ (exponential smoothing models),
ARIMA, ARIMAX, v.v
Có ba biến thể của phương pháp làm trơn hàm mũ
sử dụng ba thành phần của dữ liệu chuỗi thời gian để dự báo:
Single exponential smoothing uses the level component only
Double exponential smoothing a.k.a. Holt method uses both level
and trend
Triple exponential smoothing a.k.a. Holt-Winter method uses all
three components level, trend, and seasonality to forecast
Dự báo Time Series
trong tableau
Từ hình trên có
thể thấy rằng dự báo cũng có tính mùa vụ và nó tuân theo qui luật
bán hàng chung trong những năm qua.
Nhưng
làm thế nào để chúng ta hiểu được dự báo và làm thế nào để biết liệu dự báo có
tốt hay không?
Xem
xét hiệu suất mô hình của mô hình dự báo chuỗi thời gian sẽ cho chúng ta biết
mô hình đó tốt như thế nào.
Trong mô tả của
mô hình dự báo
trên, Tab Summary hiển thị tóm tắt mô hình và tab Models
hiển thị các thông số và hiệu suất của mô hình.
Mô
hình dự báo được xây dựng dựa trên doanh số hàng tháng trong giai đoạn từ tháng
1 năm 2014
đến
tháng 11
năm 2017.
Mô
hình dự báo 13 tháng tiếp theo, bắt đầu từ tháng 12 năm 2017.
Theo mặc định, mô hình sẽ bỏ qua tháng cuối cùng vào tháng 12 năm 2017.
Mô
hình có tính mùa vụ theo chu kỳ 12 tháng.
Tiếp
theo, chúng ta xem các thông tin trong phần Sum of Sales: Sự
thay đổi so với các giá trị ban đầu là 0 vì mô hình mặc định giả định không có xu
hướng và tính mùa vụ. Giá trị Contribution, thấy rằng thành phần xu
hướng không được xem xét và 100% tính mùa vụ được xem xét.
Với Tab Models
Mô
hình dự báo đã được tính toán bằng cách sử dụng làm trơn hàm mũ.
Mô hình dựa trên
additive Level, Season và không có xu hướng.
Để xem xét chất lượng
của mô hình dự báo, chúng ta sử dụng các chỉ số root mean square error (RMSE),
mean absolute error (MAE), mean absolute scaled error (MASE) và mean absolute
percentage error (MAPE).
Chỉ số
đơn giản nhất để hiểu mô hình hoạt động tốt như thế nào là xem sai số phần trăm
tuyệt đối trung bình (MAPE). Trong mô hình này
có MAPE là khoảng 18%. Điều này có nghĩa là giá trị dự báo có thể chênh lệch trung bình 18% so với giá trị thực tế.
Một
chỉ số
khác cũng thường được
sử dụng đánh giá chất lượng
của mô hình dự báo là RMSE. RMSE là căn bậc hai của tất cả các tổng
lỗi chia cho số điểm dữ liệu.
Cuối
cùng, các hệ số làm trơn hàm mũ (smoothing coefficients)
được sử dụng trong mô hình dự báo. Mô hình làm làm trơn hàm mũ
sử dụng ba hệ số alpha (được sử dụng để làm trơn thành phần Level),
beta (làm trơn Season) và
gamma (làm trơn trend).
Mô
hình mặc định được tạo trong trường hợp này chỉ được sử dụng Level
và Season
chứ không sử dụng trend. Tuy nhiên, từ các bước trước, chúng ta
biết rằng có xu hướng trong dữ liệu chuỗi thời gian này.
Tùy chỉnh mô hình dự báo:
Vì
chúng ta
biết rằng cả thành phần xu hướng và mùa vụ đều có trong dữ liệu, nên tùy chỉnh mô hình để
sử dụng các thành phần này.
Hộp thoại tùy chỉnh mô hình xuất hiện
Mô hình cộng (additive) đơn giản để hiểu và hoạt động tốt trong hầu hết các hiện tượng liên quan đến kinh doanh. Khi dữ liệu đang phát triển theo cấp số nhân, chúng ta có thể phải sử dụng các mô hình nhân (multiplicative). Trong trường hợp này ta chọn additive trend và season như hình dưới.
Kết quả sau khi tùy chỉnh mô hình dự báo
như sau:
Chúng ta có thể thay
đổi, kết hợp các trường hợp khác nhau (additive, multiplicative) trên các thành phần trend và season
để so sánh kết quả dự báo và hiệu quả của mô hình.
Hình bên dưới là mô hình dự báo với Multiplicative trend and no season.
Tóm lại:
Bài viết
này đã giới thiệu về phân tích dãy số thời gian Tableau một cách trực quan thông qua
ví dụ về phân tích doanh số bán hàng, từ việc hiểu và sử
dụng đường xu hướng (trend line),
phát hiện và phân tích
tính mùa vụ (season) trong dữ liệu thời gian và
cuối cùng là
mô hình dự báo dữ liệu thời gian bằng
phương pháp làm trơn hàm mũ.