Dự báo cần có khoảng sai số
(andrewpwheeler.com)- Với các chỉ số biến động mạnh như tỷ lệ tội phạm ở cấp quốc gia, nếu chỉ đưa ra dự báo điểm thì rất dễ diễn giải quá mức những khác biệt xu hướng nhỏ; cần xem cả khoảng dự báo mới có thể đánh giá được
- Bài viết dùng mô hình ARIMA(1,1,2) của Python
statsmodelsđể huấn luyện trên tỷ lệ tội phạm bạo lực giai đoạn 1960~2015 và dự báo 2016~2025; mã nguồn và dữ liệu được công khai trên GitHub - Sai số chuẩn của dự báo trước 1 năm cho giai đoạn 2016~2020 là dưới 20, nhưng khi dự báo liên tiếp nhiều năm thì sai số tích lũy, khiến khoảng dự báo 95% cho năm 2025 mở rộng từ 260.36 đến 575.07
- Giá trị quan sát thực tế của năm 2021 và 2022 không khớp với dự báo xu hướng tăng của Richard Rosenfeld, nhưng vẫn tương thích với mô hình nếu xét trong khoảng dự báo của ARIMA
- Dự báo dài hạn tỷ lệ tội phạm ở cấp quốc gia khó dùng trực tiếp cho ứng phó chính sách địa phương; với phân bổ nhân lực và tài nguyên thực tế, các dự báo cụ thể hơn như mức tăng cuộc gọi dịch vụ theo tăng trưởng đô thị sẽ hữu ích hơn
Chỉ dựa vào dự báo điểm thì khó đánh giá xu hướng tỷ lệ tội phạm
- Richard Rosenfeld đã bàn về dự báo tỷ lệ tội phạm ở cấp quốc gia trên
Criminologist, và trong bài viết xuất bản cuối năm 2023 đã đưa ra dự báo cho giai đoạn 2021~2025 - Có phàn nàn rằng thống kê tội phạm của FBI được công bố chậm 1 năm, nhưng dự báo này thực chất mang tính dự báo muộn, vì tại thời điểm xuất bản nó đã bao gồm cả những năm đã trôi qua
- Dự báo điểm gần như luôn sai lệch ở một mức nào đó, vì vậy cần trình bày cả khoảng dự báo xung quanh giá trị dự báo
- Khi nhìn vào biên độ sai số, có thể thấy những cách diễn giải dựa trên khác biệt xu hướng nhỏ dễ lung lay đến mức nào
Thử nghiệm tái tạo dự báo bằng ARIMA
- Phân tích sử dụng
pandas,statsmodels.tsa.arima.model.ARIMA, vàmatplotlibcủa Python - Dữ liệu được tạo bằng cách kết hợp
UCR_1960_2019.csvcho giai đoạn 1960~2019 với các giá trị bổ sung cho 2020~2022- Tỷ lệ tội phạm bạo lực
VRateđược tính bằngViolent / Population * 100000 - Tỷ lệ tội phạm tài sản
PRatecũng được tính theo cách tương tự
- Tỷ lệ tội phạm bạo lực
- Mã nguồn và dữ liệu có trên GitHub
- Để có thể so sánh với bài viết của Rosenfeld, tác giả lấy 1960~2015 làm tập huấn luyện và khớp mô hình ARIMA(1,1,2)
- Rosenfeld viết rằng ông dùng ARIMA(1,0,2) cho tỷ lệ tội phạm bạo lực, nhưng cũng nói rằng đã lấy sai phân dữ liệu, nên thực chất tương ứng với ARIMA(1,1,2)
- Mô hình của Rosenfeld có đưa các yếu tố ngoại sinh như lạm phát, nhưng ở đây không bao gồm
- Không thực hiện grid search riêng để tìm mô hình tối ưu
Chẩn đoán mô hình và cách sai số tăng dần
- Hệ số AR(1) của mô hình đã khớp mang giá trị âm, cho thấy khả năng sai phân quá mức
- Theo
violent.test_serial_correlation('ljungbox'), phần dư không có tự tương quan có ý nghĩa - Có thể dùng cách tiếp cận auto ARIMA để chọn mô hình tốt hơn, nhưng trong trường hợp này đa số mô hình ARIMA nhiều khả năng sẽ cho dự báo và khoảng sai số rất giống nhau
- Giai đoạn 2016~2020 có thể được so sánh theo kiểu dự báo trước 1 năm bằng cách nối thêm dữ liệu mới dần theo thời gian
- Sai số chuẩn của giai đoạn này là 19.813228, tức nhỏ hơn 20
- Nó nằm trong phạm vi sai số tuyệt đối 10% mà Rosenfeld ước tính là ngưỡng hữu ích
- Khi dự báo nhiều năm về phía trước, sai số sẽ tích lũy
- Để dự báo năm 2022, trước hết phải có dự báo cho 2021
- Với 2023, cần dự báo nối tiếp cho 2021, 2022, rồi 2023
- Sai số chuẩn thường tăng gần như
sqrt(steps*se^2), tức theo cấu trúc cộng dồn phương sai
Khoảng dự báo 2016~2025 và giá trị quan sát
- Trung bình dự báo của mô hình ARIMA cho giai đoạn 2016~2025 chủ yếu nằm trong khoảng 379~420, nhưng khoảng dự báo mở rộng dần theo thời gian
- Năm 2021 trung bình 412.99, khoảng 95% là 374.16~451.82
- Năm 2022 trung bình 420.17, khoảng 95% là 342.16~498.18
- Năm 2023 trung bình 416.91, khoảng 95% là 303.53~530.28
- Năm 2025 trung bình 417.72, khoảng 95% là 260.36~575.07
- Dự báo điểm của Rosenfeld ở một số năm gần giá trị thực hơn trung bình ARIMA
- Với giá trị quan sát 398.5 của năm 2020, Rosenfeld dự báo 394.9 còn trung bình ARIMA là 379.21
- Với giá trị quan sát 387.0 của năm 2021, Rosenfeld dự báo 404.1 còn trung bình ARIMA là 412.99
- Với giá trị quan sát 380.7 của năm 2022, Rosenfeld dự báo 409.3 còn trung bình ARIMA là 420.17
- MAPE của point estimate từ ARIMA ở mẫu giữ lại có giai đoạn kém hơn Rosenfeld, nhưng các giá trị quan sát vẫn nằm trong khoảng dự báo của ARIMA
- Các giá trị quan sát của năm 2021 và 2022 cho thấy dự báo xu hướng tăng của Rosenfeld đã sai lệch
- Dự báo ARIMA về bản chất có xu hướng hồi quy về trung bình, và thường hội tụ về hạng trung bình chỉ sau vài bước
Dự báo 2023~2025 giảm xuống sau khi cập nhật dữ liệu mới
- Sau khi bổ sung thêm dữ liệu 2021~2022, tác giả dự báo lại cho giai đoạn 2023~2025
- Dự báo cập nhật thấp hơn dự báo dài hạn trước đó
- Năm 2023 trung bình 371.98, khoảng 95% là 333.14~410.81
- Năm 2024 trung bình 380.09, khoảng 95% là 302.08~458.11
- Năm 2025 trung bình 376.40, khoảng 95% là 263.03~489.78
- Nhìn trên biểu đồ sẽ dễ hình dung hơn về độ lớn của biên độ sai số
- Nếu đưa các yếu tố ngoại sinh vào mô hình thì khi dự báo nhiều năm tới, bản thân các yếu tố ngoại sinh đó cũng phải được dự báo và sai số của chúng cũng cần được phản ánh cùng
Giới hạn về mặt chính sách của dự báo tỷ lệ tội phạm vĩ mô
- Dự báo tỷ lệ tội phạm bạo lực ở cấp quốc gia khó có thể dùng ngay cho ứng phó chính sách thực tế
- Một thành phố như Pittsburgh không có lý do gì để dùng trực tiếp dự báo tỷ lệ tội phạm cấp quốc gia cho quyết định chính sách của mình
- Ngay cả khi độ chính xác dự báo được cải thiện xuống mức sai số 5% hoặc 1%, cũng khó để một người làm thực vụ ở cấp liên bang phản ứng kiểu như “2 năm nữa tỷ lệ tội phạm bạo lực tăng 10, vậy hãy hỗ trợ thêm 1342 cảnh sát”
- Dự báo tỷ lệ tội phạm vĩ mô còn vấp phải phê bình rằng không có skin in the game để phải trả giá khi dự báo sai
- Trong các ứng dụng dự báo tội phạm thực tế, những ước tính như mỗi căn nhà hoặc căn hộ mới được thêm vào trong thành phố sẽ làm tăng khoảng 1 cuộc gọi dịch vụ mỗi năm lại thực tế hơn
- Với các thành phố đang tăng trưởng, cách này phù hợp hơn để lập kế hoạch phân bổ nhân lực dài hạn
Tài liệu tham khảo được nhắc cùng
- Ashby, M. (2023). Forecasting crime trends to support police strategic decision making: so sánh các lỗi phổ biến trong dự báo ở cấp đô thị, và cho thấy dự báo nhiều năm tới thường tạo ra sai số lớn hơn nhiều so với ngưỡng hữu ích 10% của Rosenfeld
- McDowall, D. (2023). Empirical Properties of Crime Rate Trends: bàn thận trọng hơn về mối quan hệ giữa xu hướng tỷ lệ tội phạm vĩ mô và lý thuyết tội phạm học
- Rosenfeld, R. (2018). Studying crime trends: Normal science and exogenous shocks: công trình trước đó liên quan đến nghiên cứu xu hướng tỷ lệ tội phạm vĩ mô của Rosenfeld
- Yim, H. N., Riddell, J. R., & Wheeler, A. P. (2020). Is the recent increase in national homicide abnormal?: xem xét áp dụng fan chart trong theo dõi xu hướng tỷ lệ giết người trên toàn quốc
1 bình luận
Ý kiến trên Hacker News
Có hai điểm thú vị ở đây. Một điểm tác giả đã đề cập, một điểm thì chưa. Thứ nhất, như phần cuối bài viết, dự báo thường nên dẫn tới quyết định, và nếu tách rời hai thứ này thì giá trị có thể trở nên không rõ ràng
Rosenfield dường như muốn dùng dự báo để tăng thêm trọng lượng cho các kết luận thống kê về dữ liệu quá khứ, nhưng điều đó nghe có vẻ đáng ngờ. Thứ hai, cũng không rõ thanh sai số nên mang ý nghĩa gì. Một loại là khoảng tin cậy[1], loại kia là độ lệch chuẩn. Nói cách khác, về thực chất là dự báo bình phương chênh lệch giữa dự báo điểm của mình và kết quả thực tế
[1] Tôi thừa nhận thuật ngữ này không hoàn toàn chính xác
Đây không phải là mô tả bao quát toàn bộ thống kê, nhưng là một góc nhìn hữu ích khi nghĩ về dự báo
Ví dụ, với khoảng tin cậy 95%, bạn phải sẵn sàng chấp nhận cả kèo trả 19:1 rằng giá trị thật nằm ngoài khoảng, lẫn kèo trả 1:19 rằng giá trị thật nằm trong khoảng. Cách này nhìn chung là đúng, và khiến ý nghĩa trong các thảo luận về độ bất định trở nên dễ cảm nhận hơn nhiều, thành một tiêu chí có thể áp dụng ngay. Nếu làm đúng, nó buộc ta gán mức bất định không quá bảo thủ cũng không quá lạc quan
Nếu ý tưởng để người đọc chọn bất kỳ phía nào của ván cược khiến bạn hơi khó chịu, thì đó là đúng hướng. Cảm giác đó sẽ giảm đi khi bạn khá chắc rằng mình đã đặt thanh sai số đúng và suy luận đã được ghi lại, có thể bảo vệ được
Trả lời thêm cho câu hỏi ban đầu: thanh sai số 1 độ lệch chuẩn là khoảng tin cậy 68%, còn 2 độ lệch chuẩn là khoảng tin cậy 95%. Tất nhiên là giả sử theo trường phái tần suất
[1] https://www.nobelprize.org/prizes/physics/1997/phillips/fact...
Xin hãy làm như vậy. Tôi từng ở trong một tổ chức chạy hàng nghìn thử nghiệm trực tuyến trong nhiều năm, và khi so sánh hiệu ứng của một treatment mới, có thanh sai số giúp hiểu tốt hơn rất nhiều
Một số người cho rằng nó làm mờ phán đoán. Ví dụ, nếu treatment mới tạo ra mức “cải thiện” 1% nhưng khoảng tin cậy là từ -10% đến 10%, thì thử nghiệm đó không cho biết chỉ số ấy bị ảnh hưởng như thế nào. Khi đó quyết định có cảm giác tùy tiện, nhưng đó chính là điểm mấu chốt. Trong trường hợp đó, quyết định thực sự là tùy tiện, và khoảng tin cậy cho bạn biết điều đó để nhìn sang các đánh đổi khác. Nếu khoảng tin cậy là từ 0,9% đến 1,1%, bạn có thể tự tin hơn nhiều về hiệu ứng
Vấn đề lớn là trong một số trường hợp, việc có được các thanh sai số có ý nghĩa là cực kỳ khó. Chẳng hạn sẽ thật hay nếu tưởng tượng rằng mọi dự đoán của một mô hình học máy đều kèm theo một giá trị như vậy, nhưng với hầu hết các loại mô hình, tôi không biết cách nào hợp lý để đạt được điều đó. Các thử nghiệm trực tuyến cần thiết kế thí nghiệm phức tạp vì không thể phân bổ ngẫu nhiên để tạo ra các nhóm đủ độc lập cũng tương tự
Tương tự, ta nên thường xuyên xem histogram, tức phân phối thống kê, cho mọi chỉ số quan trọng. Có lần một lệnh gọi tới dịch vụ web lớn gặp vấn đề tốc độ: nhiều lệnh gọi hoàn tất dưới 50ms, nhưng quá nhiều lệnh gọi bị timeout ở 500ms. Đồng thời, chúng tôi thấy histogram tốc độ xuất hiện hai đỉnh rõ rệt; đào sâu thêm thì biết hai đỉnh đó tương ứng với người dùng đã đăng xuất và người dùng đã đăng nhập. Nhờ vậy, chúng tôi có thể bỏ qua một phạm vi mã rộng, và tìm ra vấn đề tốc độ trong phần mã cá nhân hóa mới triển khai gần đây mà nếu không thì đã không nghi ngờ
Họ nỗ lực đáng kinh ngạc để gắn tính chính đáng cho các quyết định tùy tiện. Đôi khi nó mang hình thức các mô hình thống kê trình bày nhiễu như thể là tín hiệu, và thường đến từ các chuyên gia giả. Họ không có phương pháp luận và vòng lặp phản hồi để biết mình đang làm gì, nhưng có bầu không khí chuyên môn được xã hội nuôi dưỡng, nên có thể cho quyết định mượn tính chính đáng. Ngày xưa họ được gọi là pháp sư, tu sĩ, nhà chiêm tinh; ngày nay họ được gọi là tư vấn quản trị và nhà kinh tế vĩ mô
Tôi thích nói rõ chuyện gì đang xảy ra và theo đúng nghĩa đen là tung đồng xu hơn. Có điều đó không phải là chiến lược để kiếm được một đống đá lấp lánh thật lớn
Đôi khi có một quy trình đơn lẻ tạo ra các giá trị có phân phối nhìn chung tương tự nhau. Đây là tình huống tốt vì có thể dùng nhiều công cụ thống kê cho lập kế hoạch, suy luận, v.v.
Nhưng trên thực tế, thường có hai hoặc nhiều quy trình bị trộn lẫn với nhau nhưng lại giả vờ như chỉ có một. Bên trong mỗi quy trình, chúng tạo ra các giá trị có phân phối nhìn chung tương tự nhau, nhưng phân tích trên tổng thể cộng gộp sẽ trở nên rối rắm. Nếu biết các thành phần chính của quy trình đơn lẻ giả tạo mà mình đang nhìn vào, bạn sẽ luôn đi trước đối thủ
[1]: https://two-wrongs.com/statistical-process-control-a-practit...
Tôi hoàn toàn đồng ý với ý tưởng này. Bổ sung thêm, ước lượng ngày tháng, tức hạn chót, cũng nên có thanh sai số. Suy cho cùng ngày tháng cũng là dự đoán.
Nếu bên liên quan yêu cầu một ngày cụ thể, họ cũng cần chỉ rõ muốn thanh sai số như thế nào. Một ngày thô không kèm ước lượng bất định là vô nghĩa. Tương tự, nếu kỹ sư đưa ra ngày cho các bên liên quan khác, họ cũng nên kèm theo một dạng ước lượng bất định nào đó. Có khác biệt rất lớn giữa việc nói xác suất hoàn thành trước X ngày là 90% và nói là 99,9%.
Nó gần như là một phân phối luật lũy thừa lệch hẳn về một phía. Hạn chót hầu như không bao giờ hoàn thành sớm, và nếu có sớm thì thường cũng không sớm nhiều. Ngược lại, khi trễ thì có thể trễ đến mức phi lý.
Việc tạo khoảng tin cậy cho một đối tượng như vậy thật sự rất khó.
Ước lượng ngày tháng không có thanh sai số thì không thể bị chứng minh là sai. Nhưng nếu nói “xác suất hoàn thành trước ngày này là 50%”, thì khi nhìn lại 20 ước lượng gần đây kiểu đó, lẽ ra khoảng 10 cái phải hoàn thành đúng hạn. Nếu không thì ước lượng chưa được hiệu chỉnh. Dù vậy ít nhất ta cũng biết được điều đó. Nếu không có thanh sai số thì đã không biết được.
Định lượng bất định là một khía cạnh bị bỏ bê trong khoa học dữ liệu, đặc biệt là machine learning. Người thực hành không phải lúc nào cũng có nền tảng thống kê, còn phía machine learning nói chung có thái độ “dự đoán trước, hỏi sau”, nên sự cẩn trọng này bị đẩy xuống hàng sau.
Tôi luôn yêu cầu có thanh sai số.
Với các mô hình phi tuyến thông thường, việc tạo ra các thanh sai số — hay tổng quát hơn là phân phối sai số — thật sự mô tả một khái niệm bất định hợp lý có thể khá nặng nề cả về lý thuyết lẫn tính toán, ngay cả trong trường hợp lý tưởng. Cũng có những phương pháp thực dụng tốt có nền tảng lý thuyết như Monte Carlo Dropout, nhưng thanh sai số sinh ra từ đó không phải lúc nào cũng là loại sai số mong muốn. MC DO ước lượng bất định do trọng số mô hình, nhưng chẳng hạn không ước lượng bất định do dữ liệu huấn luyện kém.
Tôi rất ủng hộ các phương pháp bao hàm bất định một cách tự nhiên, nhưng có nhiều loại mô hình cho kết quả thực nghiệm rất hữu ích mà lại chưa rõ cách tạo hoặc diễn giải hiệu quả các ước lượng bất định hữu ích.
Một vấn đề riêng khác, cũng thường bị bỏ bê, là khái niệm đầu ra mô hình đã được hiệu chỉnh, và đó lại là một hố thỏ khác.
Thế mà hàng triệu đô vẫn được đổ vào mô hình mà không có các tiền đề này, rồi bán cho người khác như một giải pháp, và người ta bỏ qua bằng kiểu lập luận “nếu có người mua thì hẳn là nó có giá trị”. Người ta cũng trả tiền cho kẻ lừa đảo mà.
Tôi nhớ đến một câu tương tự của Walter Lewin về phép đo trong bài giảng 8.01: “Một phép đo mà không biết độ bất định là vô nghĩa”
https://youtu.be/6htJHmPq0Os
Có thể nói dự đoán là một phép đo về tương lai.
Nguồn: https://www.edge.org/response-detail/10459
Tôi cứ tưởng bài này nói về thời tiết.
ECMWF chạy mô hình ensemble, có lẽ bằng cách thay đổi nhẹ điều kiện ban đầu hoặc điều chỉnh tham số mô hình trong một phạm vi nào đó để chạy 51 mô hình đồng thời. Từ 51 mô hình này có thể thu được khoảng tin cậy khá tốt.
Tuy nhiên đây là mô hình có độ phân giải thấp hơn và chạy ít thường xuyên hơn. Tôi đoán mô hình “HRES” có độ phân giải không gian gấp đôi nên không được chạy dạng ensemble. Lý do tất nhiên là chi phí cực kỳ đắt đỏ.
[1]: https://en.wikipedia.org/wiki/Integrated_Forecast_System#Var...
https://content.meteoblue.com/en/research-education/specific...
Ví dụ thú vị trong bài này là nowcasting. Đó là kỹ thuật dự đoán hiện tại hoặc quá khứ trong khi chờ dữ liệu đi vào.
Không có phạm vi sai số thì đó là khoa học và thống kê cẩu thả.
Để dự đoán thể hiện được bất định thực, bạn phải ở một vị thế khá xa xỉ là biết quá trình sinh dữ liệu. Nếu khả thi, có thể hiệu chỉnh sơ bộ bằng nhiều dữ liệu quá khứ, nhưng vẫn có giới hạn.
Mọi ước lượng, dự đoán, nội suy, ngoại suy đều nên có khoảng tin cậy, khoảng dự đoán hoặc khoảng dung sai phản ánh các giả định mà nhóm đưa vào bài toán. Tùy theo lĩnh vực áp dụng.
Tôi nhớ đến bài báo này[1]
“Ảo tưởng về khả năng dự đoán trong các kết quả khoa học: ngay cả chuyên gia cũng nhầm lẫn giữa độ bất định suy luận và độ biến thiên của kết quả”
Theo truyền thống, các nhà khoa học thường chú trọng truyền đạt độ bất định suy luận, tức độ chính xác của ước lượng thống kê, hơn là độ biến thiên của kết quả, tức khả năng dự đoán của từng kết quả riêng lẻ. Bài báo này cho thấy điều đó có thể dẫn đến những hiểu lầm đáng kể về hàm ý của các kết quả khoa học. Cụ thể, trong ba thí nghiệm ngẫu nhiên đã đăng ký trước, người tham gia xem cùng một phát hiện khoa học qua các hình trực quan chỉ thể hiện độ bất định suy luận, chỉ thể hiện độ biến thiên của kết quả, hoặc thể hiện cả hai, rồi trả lời về quy mô và tầm quan trọng của phát hiện đó. Kết quả, gồm phản hồi từ các chuyên gia y tế, nhà khoa học dữ liệu chuyên nghiệp và giảng viên tenure-track, cho thấy cách trực quan hóa phổ biến chỉ thể hiện độ bất định suy luận có thể khiến ngay cả các chuyên gia được đào tạo bài bản cũng đánh giá quá cao đáng kể hiệu quả điều trị. Ngược lại, khi thể hiện đồng thời độ bất định suy luận và độ biến thiên của kết quả, nhận thức chính xác hơn được tạo ra, trong khi về trung bình vẫn giữ nguyên các ấn tượng chủ quan khác về kết quả
[1] https://www.microsoft.com/en-us/research/publication/an-illu...
Dự đoán vẫn có thể hữu ích ngay cả khi không có thanh sai số. Đôi khi chỉ một dự đoán điểm là đủ để quyết định hành động
Nhưng đôi khi, để đưa ra quyết định tốt, việc biết toàn bộ phân phối dự đoán là hữu ích hoặc cần thiết. Câu “dự đoán điểm luôn sai” đúng với dữ liệu liên tục, nhưng nếu có thể dự đoán rằng một cổ phiếu sẽ tăng 2,01 lần thay vì 2 lần, thì điều đó vẫn hữu ích