Deseasonalized Demand là gì

Hôm nay, chúng ta sẽ cùng nhau đi tìm hiểu ý tưởng cơ bản cho các thuật toán Time Series Forecasting nhé. Mình sẽ giải thích một chút về khái niệm chuỗi thời gian[Time Series], thì đây là chuỗi các điểm dữ liệu được đo theo từng khoảnh khắc thời gian liền nhau theo một tần suất thời gian thống nhất. Ví dụ như số lượng item bán ra trong mỗi ngày, mỗi tháng hay mỗi quý.

Cuộc sống là những sóng hình Sin

Mình đã từng đọc được câu này “A simple model for life is a sine wave”. Thực tế, chúng ta sẽ luôn phải trải qua cả những nốt thăng nốt trầm của cảm xúc và của hoàn cảnh, chúng ta không đứng mãi trên đỉnh hoặc ở mãi dưới vực, mà dành phần lớn thời gian của mình để leo lên núi hoặc trượt xuống dốc.


Phải chăng, một đường hình sin chính là bản chất của cuộc sống?

Giao thoa của các sóng

Lúc còn học cấp 3, chúng ta đã được học về giao thoa sóng, và như chúng ta thấy đấy, sự giao thoa của nhiều sóng hình sin có thể tạo ra một pattern mà trông có vẻ không hề có chu kỳ, khó dự đoán, và giống với dữ liệu hoàn toàn ngẫu nhiên vậy.

Hình trên mô tả sự giao thoa của 4 sóng hình sin với chu kỳ và pha khác nhau, kết quả ta thu được một quỹ đạo trông rất phức tạp với nhiều điểm lên xuống gập gềnh. Và chúng ta có thể thấy, các dữ liệu trong thực tế thường nhìn gập gềnh và khó phát hiện xu hướng như trong hình cuối hơn là những đường hình sin hoàn hảo như 4 quỹ đạo ở trên. Đó chính là mặt nổi khi ta nhìn vào cuộc sống!
Một ý tưởng là, liệu chúng ta có để phân rã một đường cong phức tạp thành các thành phần dự báo được, từ đó kết hợp các dự đoán trên các thành phần phân rã để đưa ra dự đoán cho đường cong ban đầu?

Phân tích Time Series

Nối tiếp ý tưởng ở trên, liệu ta có thể phân rã một dữ liệu chuỗi thời gian thành các thành phần con độc lập? Câu trả lời là có, một dữ liệu chuỗi thời gian thường được phân rã thành 4 thành phần con sau:

  • Trend: thành phần này chỉ ra xu hướng tổng quan của dữ liệu theo thời gian: lên hoặc xuống, tăng hoặc giảm
  • Seasonality: thành phần chỉ ra các xu hướng theo mùa vị, chỉ ra các pattern theo tháng, theo quý
  • Cycle: thành phần chu kỳ, nó khác seasonality ở chỗ thành phần này có sự vận động trong khoảng thời gian dài hơn [nhiều năm]
  • Irregular remainder: thành phần nhiễu còn lại sau khi trích xuất hết các thành phần ở trên, nó chỉ ra sự bất thường của các điểm dữ liệu

Thay vì đưa ra dự báo trên Actual Series – là một đường nhìn rất gập ghềnh và khó dự đoán, ta thực hiện trên các thành phần con nhìn có tính quy luật với xu hướng vận động rõ ràng hơn rồi kết hợp các thành phần này lại với nhau, giống như cách ta phân rã ABC*D thành các đường hình sin A,B,C,D như ở trên vậy!

Hiểu thêm về Time Series

Bây giờ, mình sẽ minh họa trên một bộ dữ liệu cụ thể để mọi người cùng hình dung nhé. Bộ dữ liệu này lưu trữ số lượng máy kéo bán ra hàng tháng trong khoảng thời gian từ 2003 đến 2015. Chúng ta cùng nhìn vào biểu diễn trên đồ thị của dữ liệu nhé!

Nhắc lại một chút thì Time Series Data có thể được phân rã thành 4 thành phần: Trend, Seasonality, Cycle, Irregular remainder. Cycle chỉ ra xu hướng vận động trong một khoảng thời gian dài [thông thường chu kỳ rơi vào 7 năm hoặc hơn], do dữ liệu của chúng ta không trải đủ rộng nên chúng ta sẽ chỉ còn quan tâm đến 3 thành phần còn lại là Trend, Seasonality và Irregular remainder thôi nhé. Model dự đoán của chúng ta sẽ dựa trên hàm xác định sự phụ thuộc của sale dựa trên các yếu tố nêu trên:

Chẳng hạn ta có thể xác định sale thông qua tích của các thành phần:

Trend

Để phát hiện ra xu hướng trong dữ liệu, ta dùng một phương pháp phổ biến gọi là trung bình trượt. Giống như việc bạn là quần áo để loại bỏ những nếp nhăn, thì phương pháp này sẽ giúp loại bỏ các đường zigzag lên xuống của đồ thị để xuất ra một xu hướng ổn định trong dữ liệu thông qua việc lấy giá trị trung bình của các giá trị liền kề trong một khoảng thời gian. Công thức của trung bình trượt được xác định như sau:

Chúng ta thử lấy trung bình trượt với những khoảng thời gian khác nhau trên bộ dữ liệu ban đầu nhé

Đường màu vàng biểu diễn dữ liệu ban đầu, còn đường màu xanh biểu diễn giá trị trung bình trượt. Như chúng ta thấy với giá trị khung thời gian bằng 12 [m=6] cho ta đồ thị gần như tuyến tính với giá trị tăng dần khi đi dọc theo trục tọa độ, đây chính là dạng Trend ta cần phát hiện. Các giá trị khung thời gian nhỏ hơn xuất ra đồ thị vẫn còn các đường lên xuống đan xen nên không cho thấy xu hướng rõ ràng của dữ liệu.

Seasonality

Để khảo sát yếu tố mùa vụ trong dữ liệu, trước hết ta thử thể hiện số lượng máy kéo bán ra theo từng tháng trong mỗi năm nhé.

Như ta có thể thấy, sự vận động của giá trị số lượng bán ra theo từng tháng trong một năm là có sự tương đồng giữa các năm với nhau khi đồ thị xếp chồng có cùng dạng. Lượng máy kéo bán ra gần như đạt đỉnh vào tháng 7 hoặc 8, thấp dần về đầu và cuối năm.
Thành phần mùa vụ cho từng tháng được tính bằng giá trị trung bình của tháng đó [tính từ 2003 đến 2015] sau khi đã loại bỏ Trend

Irregular remainder

Thành phần này chính là thành phần còn lại sau khi đã loại bỏ Trend và Seasonality:

Chúng ta mong muốn thành phần Irregular remainder này phải giống như là nhiễu trắng, tức là nó không thể hiện bất kỳ một pattern nào [truely random]. Nó thể hiện chúng ta đã xuất hết các information từ dữ liệu chuỗi thời gian ban đầu, giống như việc xay nước mía thì chúng ta mong muốn lấy được hết phần nước, và nhiễu trắng giống như phần bã còn lại – không thể lấy được thêm nước từ phần bã đó.Cụ thể biểu diễn 3 thành phần này trên đồ thị, ta thu được hình sau:

Đây chính là ý tưởng cơ bản cho lớp các thuật toán Time Series Forecasting. Thực thế thì những thuật toán phổ biến cho dữ liệu chuỗi thời gian như ARIMA, Holt-Winters seasonal method sẽ phức tạp hơn thế này. Việc trích xuất các thành phần con từ dữ liệu gốc không phải là đơn giản, giống như việc pha màu: bạn trộn màu vàng với xanh da trời và thu được màu xanh lá cây, vậy từ màu xanh lá cây đó, hãy tách cho tôi hai màu vàng và xanh da trời ban đầu, có dễ dàng không? Bây giờ thì bạn hiểu vấn đề rồi đó, mix nhiều thứ lại là dễ dàng, nhưng tách chúng ra khỏi hỗn hợp thì là một công việc phức tạp hơn rất rất nhiều!

Tuyển Data Engineer, đam mê khai phá dữ liệu lớn và phát triển sản phẩm Business Intelligence cho doanh nghiệp bán lẻ quốc tế. Môi trường làm việc remote, linh hoạt, tự chủ về thời gian và địa điểm làm việc.

Có hai yếu tố đầu ra hết sức quan trọng trong dự báo nhu cầu mà bạn thường tập trung gần như tất cả năng lượng của mình vào chỉ một yếu tố, thậm chí yếu tố đó chưa chắc là một trong hai yếu tố đúng.

Và kết quả là bạn không thể đạt được độ chính xác trong dự báo như mong muốn. Hoặc thậm chí quan trọng hơn, bạn sẽ không đạt được mức độ hiệu quả về dịch vụ và hàng tồn kho ở mức cần thiết. Nhưng hãy yên tâm đi vì bạn không hề đơn độc!

Nhiều công ty đang phát triển cho biết độ chính xác trong dự báo của công ty họ, mức độ dịch vụ và chỉ số hiệu quả hàng tồn kho đã đạt đến một mức độ mà họ không thể vượt qua được nữa.

Cho dù bạn đọc các báo cáo phân tích hoặc nghe các nhà hoạch định nói về công việc thì đều như nhau cả thôi: các số liệu và KPIs hiện đang bị mắc kẹt.

Tình trạng này là thách thức lớn đối với nhiều doanh nghiệp. Dự báo nhu cầu thường cho ra hai kết quả: nhu cầu dự kiếnmức độ không chắc chắn của dự đoán đó.

Sự cần thiết phải dự đoán nhu cầu là khá rõ ràng. Việc dự báo nhu cầu sẽ giúp thúc đẩy hầu hết các hoạt động hoạch định chuỗi cung ứng. Bạn cũng có thể đo lường hiệu quả của các công cụ và quy trình của mình với các KPIs dự báo nổi tiếng khác.

Nhưng sự cần thiết để dự đoán mức độ chắc chắn của các dự báo thì hầu như không rõ ràng. Bạn thường bỏ qua yếu tố này và mặc định rằng những dự đoán được đưa ra là chính xác. Nhân tiện, nếu bạn còn chưa xác định được liệu mình có rơi vào trường hợp đó hay không thì xin đảm bảo với bạn rằng câu trả lời là có.

Vì vậy, nếu bạn có nguồn hàng dự trữ có thể được cung cấp trong thời gian ngắn và mục tiêu cấp độ dịch vụ không quá khó khăn thì việc tập trung chủ yếu vào nhu cầu dự kiến và mức độ chính xác có thể là cách tiếp cận hợp lý. Yếu tố “khó khăn” thường thay đổi tùy thuộc vào từng ngành công nghiệp, ví dụ đối với các mặt hàng tiêu dùng nhanh thì mức độ thực hiện đơn hàng thường dưới 96% [line-fill rate].

Nhưng nếu thay vào đó bạn đang phải đối mặt với nhu cầu dài hạn hoặc mức độ dịch vụ khó khăn thì việc dự báo được độ chính xác là yếu tố then chốt.

Một thể loại dự báo khác

Những yếu tố nào thường gây ra lỗi sai trong các dự báo? Tất cả các quan điểm phổ biến về lỗi sai trong dự báo đều phạm phải một lỗi cơ bản – họ giả định một dự báo hoàn hảo và xác định tất cả sự biến thiên so với dự báo đó là lỗi dự báo. Nhưng trong thực tế, biến thiên là hoàn toàn bình thường. Điều đáng ngạc nhiên là trong khi bạn không thể dự đoán nhu cầu một cách chính xác thì bạn có thể dự đoán sự biến thiên của nhu cầu đó. Ví dụ, bạn không thể dự đoán chính xác kết quả của hai viên xúc xắc. Có quá nhiều kết quả có thể xảy ra. Nhưng bạn có thể dự đoán chính xác một loạt các kết quả có thể xảy ra và xác suất của từng kết quả.

Và khi bạn dự đoán sự biến thiên, đây không chỉ là một nhiệm vụ thực tế mà còn mang đến các quyết định kinh doanh tốt hơn. Ví dụ như dự báo thời tiết. Nếu bạn dự đoán chính xác “mưa” hoặc “không có mưa” thì thông tin đó hữu ích, nhưng hầu như không hữu ích bằng việc cung cấp một xác suất. Nếu bạn đang có kế hoạch vui chơi ngoài trời, với xác suất có mưa là 5%, bạn sẽ quyết định tiếp tục kế hoạch đó. Nếu xác suất đó tăng lên 40%, bạn có thể cân nhắc một kế hoạch khác hoặc đề ra một kế hoạch dự phòng cho các hoạt động vui chơi trong nhà. Con số 40% cung cấp cho bạn nhiều thông tin hơn để lập kế hoạch tốt hơn so với dự báo tuyệt đối mưa/không mưa.

Chúng ta dễ dàng nhận thấy việc dự báo xác suất và cải thiện độ không chắc chắn của dự báo mang lại nhiều thông tin hữu ích trong việc lập kế hoạch chuỗi cung ứng. Và trên thực tế, độ chắn chắn của dự báo có thể cung cấp các giá trị lớn. Đó là bởi vì bạn đang tập trung vào việc cải thiện không chỉ yếu tố dự đoán nhu cầu trung bình mà còn toàn bộ phạm vi các kết quả có thể xảy ra – bao gồm cả sự biến thiên – yếu tố có tác động lớn nhất đến mức độ dịch vụ. Bởi vì khi các kế hoạch cung ứng hoặc mức tồn kho an toàn được dựa trên những giả định sai lầm về mức độ chắc chắn của dự báo, mục tiêu đó sẽ không thể được đáp ứng và chuỗi cung ứng có thể rơi vào tình trạng nguy khốn.

Vì vậy dự đoán về mức độ chắc chắn tốt hơn sẽ trực tiếp dẫn đến số lượng hàng tồn kho an toàn “thông minh” hơn – có thể nắm bắt phạm vi kết quả rộng lớn hơn, kiểm soát được nhu cầu và cung cấp mức độ sản phẩm dự trù cho toàn bộ những phần còn sót lại của chuỗi cung ứng. Việc tập trung vào một loạt kết quả có thể xảy ra còn giúp giảm sự nghiêm trọng và sự lũng đoạn trong hoạt động chuỗi cung ứng, thiết lập nên một chuỗi cung ứng ổn định hơn. Biết được xác suất xảy ra cao hơn hoặc thấp hơn giá trị dự kiến sẽ cho phép giảm thiểu rủi ro và tận dụng cơ hội.

Một cách nhìn khác về sai số trong dự đoán

Để cải thiện sự không chắc chắn trong dự đoán nhu cầu, bạn cần có phép đo độ chính xác của dự báo hoặc một KPI tương tự như Sai số Phần trăm Tuyệt đối Trung bình [Mean Absolute Percent Error – MAPE]. Điều này có nghĩa là dự báo dãy giá trị nhu cầu có thể xảy ra và sau đó xác định mức độ sai số giữa phân phối nhu cầu dự báo và thực tế. Và khi phân phối nhu cầu dự đoán không thể hiện chính xác phân phối nhu cầu thực tế, khoảng chênh lệch [đánh dấu trong hình trên] chính là lỗi dự báo. Đó là cách mà chúng ta đo đạc mức độ chính xác trên phạm vi một loạt các kết quả, không chỉ trên phạm vi một kết quả duy nhất.

Nassim Nicholas Taleb mô tả kiểu đo lường dự báo chính xác này trong cuốn sách của ông mang tên The Black Swan. Ông giải thích rằng việc đo độ chính xác của dự báo ngẫu nhiên dựa trên phân bố xác suất là hơi khác đi so với việc đo tính chính xác của dự báo theo kiểu truyền thống, khi mà kết quả được thể hiện bằng giá trị dự kiến đơn điểm. Ông nói rằng nếu bạn dự đoán với một xác suất 20% một điều gì đó sẽ xảy ra, qua nhiều trường hợp nó thực sự xảy ra 20% trên tổng số thời gian, với sai số là 0%. Đương nhiên, điều này cũng chính xác cho các trường hợp phần trăm khác [không phải chỉ là 20%].

Hai chỉ số có sẵn để đo độ chính xác và các giá trị dự báo ngẫu nhiên theo cách này chính là: Tổng Phần trăm Sai số [Total Percentile Error – TPE] đo độ chính xác của đầy đủ dãy kết quả trong dự đoán ngẫu nhiên. TPE đo đạc sự giảm thiểu về sai số chứ không phải sự gia tăng về độ chính xác vì có một mối tương quan lớn giữa sai số và động thái kinh doanh hơn là mối quan hệ giữa độ chính xác và hiệu quả kinh doanh. Chỉ số thứ hai là Stochastic Value Add – SVA đo lường giá trị từ các thông tin bổ sung này.

Đối với hầu hết các học viên chuỗi cung ứng, các phương pháp tính toán chính xác cho các KPIs là không cần thiết, giống như MAPE thực sự hữu ích ngay cả khi bạn không biết cách mà các phép tính được thực hiện như thế nào.

Chi tiết các cuộc thảo luận chuyên sâu về những số liệu có sẵn được đăng tải trong một loạt các bài viết tại: “The Greatest Missed Opportunity in Demand Forecasting.”

Qua bài viết này, chúng tôi khuyên bạn nên quan tâm hơn đến hệ thống dự báo độ chính xác của nhu cầu để có thể vượt qua những rào cản KPI vô hình đang chắn lối trên con đường phát triển của công ty bạn.

Video liên quan

Chủ Đề