- Trong các phép tính có đầu vào dao động như chuyển việc, tính khả thi kinh doanh hay đầu tư, phạm vi kết quả có thể xảy ra thường hữu ích cho việc ra quyết định hơn là một con số duy nhất
- Unsure Calculator cho phép nhập các khoảng như
4~6 để tính với giá trị không chắc chắn, và 10~15 có nghĩa là bạn tin chắc 95% rằng giá trị thực nằm trong khoảng đó
- Kết quả không phải là một số đơn lẻ mà là khoảng giá trị, phân phối xác suất và các bách phân vị; trong ví dụ chuyển việc ra nước ngoài, công cụ cho thấy số dư hàng tháng có thể nằm trong khoảng
-$60~+$220
- Để giữ đầu vào đơn giản, công cụ bỏ qua các ký hiệu như loại phân phối, mức tin cậy hay hiệp phương sai; phần tính toán bên trong dùng phương pháp Monte Carlo nên chậm và thông báo lỗi cũng không thân thiện
- Đây không phải công cụ cho chuyên gia thống kê mà phù hợp với các phép tính kiểu mặt sau khăn giấy như ý tưởng kinh doanh, tiết kiệm thời gian, rủi ro đại dịch hay ROI marketing; với phân tích phức tạp thì cần công cụ chuyên dụng
Đưa những con số không chắc chắn vào phép tính
- Unsure Calculator là phiên bản đầu của một máy tính bất định để xử lý các con số không chắc chắn
- Nó đơn giản hóa thống kê thành bài toán “dù các con số không chắc chắn, tôi vẫn muốn suy luận từ chúng”
- Ngay cả các phép tính thường ngày cũng có nhiều đầu vào không chắc chắn, nên ngay cả khi không phải chuyên gia thống kê, đôi lúc bạn vẫn cần tính toán có tính đến sự bất định
Cách ghi khoảng giá trị
- Ngoài các số thông thường như
4, 3.14, 43942, công cụ còn hỗ trợ nhập khoảng như 4~6, 3.1~3.2, 40000~45000
~ là dấu ngã nằm giữa hai giá trị biên và cũng có trên bàn phím của máy tính
- Cách ghi khoảng này có nghĩa là “không biết giá trị chính xác, nhưng tin chắc 95% rằng giá trị thực nằm trong khoảng này”
10~15 có thể đọc là “10 đến 15”
- Có thể hỗ trợ thêm các ký hiệu cho phân phối xác suất khác, mức tin cậy khác, cắt ngưỡng hay hiệp phương sai, nhưng chúng bị loại bỏ vì sẽ làm mọi thứ khó hiểu hơn
- Giả định ở đây là những người đã quen với các khái niệm đó nên dùng công cụ tinh vi hơn
- Mục tiêu là giúp nhiều người dùng có thể dễ dàng tận dụng sức mạnh của tính toán thống kê
Cái bẫy khi chỉ tính bằng một con số
- Khi gặp giá trị không chắc chắn, ta rất dễ bỏ qua với suy nghĩ “cả hai đều không chắc nên không quan trọng”
- Nếu chọn một con số có vẻ hợp lý để tính, ta bị hấp dẫn bởi sự đơn giản của một đáp án duy nhất, nhưng kết quả thực tế có thể không chỉ có một
- Unsure Calculator phản ánh nhiều kết quả có thể xảy ra trong phép tính để cho thấy cả rủi ro lẫn dư địa
Ví dụ tính tài chính khi chuyển việc ra nước ngoài
- Điểm khởi đầu là tình huống năm 2015, khi tác giả tính ảnh hưởng tài chính với gia đình trước một cơ hội làm việc ở nước ngoài
- Mức lương chỉ được biết sau khi đã đi qua gần hết quy trình tuyển dụng
- Chi phí sinh hoạt tại chỗ chênh lệch lớn giữa thông tin từ bạn bè và trên Internet
- Thuế suất cũng khó gói gọn thành một tỷ lệ phần trăm đơn giản
- Ban đầu tác giả tính bằng các giá trị đơn lẻ có vẻ bảo thủ
1500 * 0.6 - 650 - 150 - 30 - 20 = 50
- Phép tính này chỉ cho ra một kết quả là còn
+$50 mỗi tháng
- Khi đưa các khoảng vào để tính lại, kết quả thay đổi
1400~1700 * 0.55~0.65 - 600~700 - 100~200 - 30 - 20 = -60~220
- Nếu tin chắc 95% rằng giá trị thực của từng hạng mục nằm trong khoảng tương ứng, thì cũng có thể xem số dư thực mỗi tháng nằm trong khoảng
-$60 đến +$220
- Lý do nó hữu ích hơn giá trị đơn
+$50 là vì nó còn cho thấy cả khả năng bị lỗ tiền
- Các bách phân vị cho thông tin cụ thể hơn để ra quyết định
- Nếu bách phân vị thứ 10 là
-$8, thì xác suất số dư hàng tháng ở mức -$8 hoặc thấp hơn là 10%
- Ngược lại, 90% kết quả sẽ cao hơn
-$8
- Bạn cũng có thể cân nhắc rủi ro 5% là bị lỗ từ
-$33 mỗi tháng trở lên
- Việc có chấp nhận rủi ro hay không sẽ tùy vào gia đình và hoàn cảnh
- Mức chấp nhận rủi ro có thể khác giữa lúc chưa có con, chưa có thế chấp nhà và khi đã có
- Nếu không có kế hoạch dự phòng, khả năng lỗ 10% có thể cần được nhìn nhận thận trọng hơn
Ví dụ phương trình Drake
- Dù hướng đến các phép tính thực dụng, bài viết cũng dùng phương trình Drake (Drake equation) để minh họa việc ước lượng số nền văn minh ngoài Trái Đất
- Đây là công thức vật lý thiên văn để ước tính số nền văn minh trong thiên hà có thể liên lạc được
- Các giá trị gốc của Frank Drake năm 1961 được nhân từ các yếu tố sau
- Mỗi năm có 1 ngôi sao được hình thành trong thiên hà
- Trong số đó, 1/5 có khoảng 3 hành tinh
- 100% các hành tinh đó phát triển sự sống
- 100% sự sống đó phát triển trí thông minh
- 10% trong số đó có khả năng liên lạc
- Trạng thái có thể liên lạc kéo dài 1 triệu năm
- Nhân các giá trị này lại sẽ được
60,000, tức kết luận rằng tại bất kỳ thời điểm nào cũng nên có 60.000 nền văn minh đang cố gắng liên lạc trong thiên hà
- Từ năm 1961 đến nay, ước lượng cho từng tham số đã khác biệt rất lớn giữa các nhà vật lý thiên văn
- Ví dụ dùng các ước lượng mới hơn dưới dạng khoảng như sau
1.5~3 x 0.9~1.0 x 0.1~0.4 x 0.1~1.0 x 0.1~1.0 x 0.1~0.2 x 304~10000
- Kết quả từ Unsure Calculator cho thấy số nền văn minh có thể kỳ vọng nằm trong khoảng
0 đến 450
- Xác suất nghiêng về phía thấp hơn, và histogram cũng trải rộng hơn ở vùng thấp
- Trên histogram có thể xuất hiện cả số âm như
-5
- Đây là giới hạn của một công cụ ưu tiên sự đơn giản
- Nếu không có thêm tri thức, máy tính không thể biết rằng số nền văn minh không thể là số âm
Các trường hợp sử dụng có thể có
- Có thể tính mức khả thi của ý tưởng kinh doanh
- Khi quy mô thị trường, thị phần, doanh thu hàng tháng trên mỗi người dùng và chi phí vận hành đều không chắc chắn
50000~80000 x 0.10~0.20 x 5~10 - 20000~50000
- Có thể ước tính thu nhập tương lai
- Khi thu nhập hàng tháng, thời hạn hợp đồng và thuế suất đều không chắc chắn
1000~1500 x 10~12 x (30~50 / 100)
- Có thể tính thời gian được tiết kiệm nhờ công nghệ như máy rửa chén
- Khi số lần dùng mỗi tuần, thời gian tiết kiệm mỗi lần dùng, tuổi thọ và chi phí lắp đặt đều không chắc chắn
(3~5 * 5~10 * 51 * 7~15) / 60 - 10~15
- Có thể ước tính tổng lợi nhuận của tài khoản đầu tư
- Khi lãi suất và thời gian đầu tư đều không chắc chắn
5000 x (-2~5 / 100) x 5~10
- Có thể tính gần đúng xác suất tử vong trong đại dịch
- Khi tỷ lệ mắc và tỷ lệ tử vong đều không chắc chắn
(10~30 / 100) * (0.1~1.0 / 100) * 100
- Có thể ước tính chiều cao của một tòa nhà cao tầng
- Khi khoảng cách đến chân tòa nhà và góc nhìn lên đỉnh đều không chắc chắn
100 x tan(70 ~ 80)
- Có thể ước tính ROI của một chiến dịch marketing
- Khi lượt xem, tỷ lệ nhấp, tỷ lệ chuyển đổi và chi tiêu đều không chắc chắn
1000000 x (2~3 / 100) x (3~5 / 100) x (10~15)
Các hàm được hỗ trợ
- Bàn phím chỉ có
+, -, x, /, nhưng ngay từ giai đoạn đầu công cụ đã hỗ trợ nhiều phép tính hơn
- Một số hàm và phép toán ví dụ gồm
2~3 ^ 4: lũy thừa bậc 4 của giá trị từ 2 đến 3
sqrt(10~12): căn bậc hai của giá trị từ 10 đến 12
sin(90~95): sin của giá trị từ 90 đến 95 độ
Giới hạn và cách chia sẻ
- Đây là dự án một người nên cần chấp nhận khả năng vỡ lỗi
- Trình phân tích biểu thức còn mong manh và thông báo lỗi không hữu ích
- Tính toán khá chậm
- Để giữ tính linh hoạt, công cụ dùng phương pháp Monte Carlo
- Mỗi phép tính được nhập sẽ chạy khoảng 250.000 lần tính dựa trên AST
- Giao diện rất đơn giản và không đẹp mắt
- Cách duy nhất để chia sẻ công thức là tự tạo URL trực tiếp
range luôn là phân phối chuẩn
- Số thấp là thấp hơn trung bình 2 độ lệch chuẩn
- Số cao là cao hơn trung bình 2 độ lệch chuẩn
- Không hỗ trợ cách biểu diễn phức tạp hơn từ góc nhìn phân phối xác suất đầu vào
- Đây không phải công cụ cho chuyên gia thống kê
- Có thể dùng Unsure Calculator cho các phép tính kiểu mặt sau khăn giấy
- Với công việc phức tạp hơn, sẽ cần công cụ thống kê miễn phí hoặc trả phí, môi trường lập trình đầy đủ hoặc chuyên gia thống kê
Dự án và cập nhật
- Nếu muốn tham gia cải thiện công cụ hoặc lấy phiên bản dòng lệnh, có thể dùng github.com/filiph/unsure
- Theo cập nhật năm 2025, ký pháp và công cụ này đã được dùng trong 5 năm và trở thành phần thiết yếu trong quy trình làm việc khi bắt đầu dự án mới
- Có thể xem phiên bản ứng dụng notebook mới hơn tại đây
- Nó kém thân thiện với người mới hơn nhưng hữu ích hơn cho power user
- Nếu quan tâm đến dự án, có thể theo dõi Filip Hracek hoặc đăng ký mailing list
1 bình luận
Ý kiến trên Hacker News
Tôi thích công cụ này. Nhưng đúng theo truyền thống HN, tôi sẽ bám vào một từ trong bài và nói về một nhánh gần-như-nhưng-thực-ra-không-hoàn-toàn-liên-quan: có ít nhất ba điểm dễ tự bắn vào chân trong kiểu tính toán này
Công cụ và cách triển khai đều tốt, nhưng tôi đã thấy quá nhiều người mới cầm thống kê lên là mất một ngón tay
Hơn 90% số người còn không đạt nổi khoảng tin cậy 70%. Bạn có thể tự kiểm tra: https://blog.codinghorror.com/how-good-an-estimator-are-you/
Các bên liên quan cực kỳ thích cách chỉ định thời lượng công việc là t_i ~ PERT(min, mode, max). Nó giống với cách họ suy nghĩ và còn xử lý được các phân phối bất đối xứng vốn phổ biến ngoài đời
Nhân tiện, PERT thực chất chỉ là phân phối beta được tái tham số hóa theo cách thân thiện và trực quan hơn với người dùng: https://rpubs.com/Kraj86186/985700
Kết quả $50 thì ổn, và nếu gắn thêm một khoảng cộng/trừ vào đó thì nhìn chung có thể cảm nhận là đang gần điểm hòa vốn. Nhưng cách diễn đạt “xác suất 95% là số dư thực tế nằm trong khoảng -$60 đến +$220” lại tạo cảm giác sai lầm rằng ta có thông tin cụ thể hơn, trong khi ở mỗi bước chỉ đơn giản là cộng thêm sự chồng ghép của bất định
Nếu bạn không biết liệu từng hạng mục có thật sự là 95% hay không, hoặc giá trị tối thiểu/tối đa thật sự là gì, thì bạn chỉ đang thêm nhiều phỏng đoán có khả năng sai hơn mà thôi. Vì thế tôi cũng không thích Drake equation lắm. Mỗi bước đều là chồng chất những ước đoán rất thô, nên tôi nghi ngờ liệu cuối cùng có tạo ra được con số hữu ích hay không
Dù sao thì, đến lúc bạn muốn tính đến những thứ như vậy thì nên làm thống kê Bayes cho đàng hoàng
Tôi cũng không hiểu câu “phân phối chuẩn cần một yếu tố ràng buộc nào đó để ép giá trị” xuất phát từ đâu. Thứ cần thiết là sai số không tương quan, chứ không phải “ràng buộc” hay “phản hồi âm”
Tôi từng làm một công cụ tương tự
fermi cho dòng lệnh: https://git.nunosempere.com/NunoSempere/fermi
máy tính phân phối cho Android: https://f-droid.org/en/packages/com.nunosempere.distribution...
Bạn cũng có thể quan tâm tới phiên bản phức tạp hơn là https://www.squiggle-language.com/. Hoặc phiên bản C nhanh hơn nhưng dài dòng hơn nhiều là <https://git.nunosempere.com/personal/squiggle.c>
a~b:^)Tuyệt. Nếu bạn thích bài viết này thì bài báo “Dissolving the Fermi Paradox” cũng có thể sẽ thú vị. Bài đó đào sâu hơn vào việc thực sự nhân các hàm mật độ xác suất thay vì dùng các ước lượng điểm thông thường
Khá bất ngờ là nó đưa ra kết quả rằng có thể chúng ta thật sự chỉ có một mình
https://arxiv.org/abs/1806.02404
Tôi cũng đã làm một công cụ tương tự, dành cho dòng lệnh[1], và động lực cũng gần giống nhưng tham vọng hơn một chút[2]
Thật tuyệt khi ngày càng có nhiều người suy nghĩ theo cách này. Năng lực suy luận về nguồn gốc của biến thiên không phải thứ ai cũng được đào tạo hay tự phát triển, nhưng nó đang ngày càng quan trọng hơn[3]
[1]: https://git.sr.ht/~kqr/precel
[2]: https://entropicthoughts.com/precel-like-excel-for-uncertain...
[3]: https://entropicthoughts.com/statistical-literacy
Biểu đồ tần suất ASCII art, hay chính xác hơn là ANSI art, rất hay. Đây là một cú hack tốt để nhanh chóng làm ra thứ gì đó hữu dụng
Nếu là tôi thì chắc đã mất thời gian gấp 5 lần để thử đủ loại thư viện vẽ biểu đồ rồi bỏ cuộc
[1] https://github.com/stefanhengl/histogram
https://www.getguesstimate.com/ là phiên bản bảng tính của ý tưởng này
Có cách nào để làm phép nhân mà không phải là nhân vô hướng không? Ví dụ, nếu tôi muốn diễn đạt “tổng của ba lần tung xúc xắc”, thì bỏ qua việc nó không phải phân phối chuẩn, tôi sẽ muốn
1~6 * 3 = 1~6 + 1~6 + 1~6 = 6~15Nhưng trên thực tế nó lại thành
1~6 * 3 = 3~18. Điều này khiến những phép tính kiểu “sẽ mất bao lâu để hoàn thành 1000 tác vụ, mỗi tác vụ tốn 10~100 ngày?” trở nên thực sự khó làmSẽ hay hơn nếu có thể chuyển đầu ra trở lại thành khoảng hoặc phân phối Gauss
Lưu ý: nếu bạn thắc mắc vì sao biểu đồ tần suất có số âm (-5), đó là nhược điểm không thể tránh khỏi do sự đơn giản của Unsure Calculator. Nếu không có thêm tri thức, máy tính không thể biết rằng giá trị âm là không thể
Phương trình Drake hay các phương trình nhân xác suất cũng có thể được xét trong không gian log. Có độ bất định trên thang đo của từng xác suất, và xác suất cuối cùng là kết quả của việc lấy mũ của các log-xác suất rồi nhân chúng lại. Khi đó sẽ không gặp vấn đề số âm kiểu này
100 / 4~6cho ra đầu ra17~25Ban đầu nghe có vẻ như đồ chơi, nhưng trông lại hữu ích một cách bất ngờ. Nếu có bản app để dùng cạnh máy tính thường ngày thì tôi chắc chắn sẽ cài
Tôi không nhớ chính xác khi nào mình cần đến nó, nhưng nếu gán vào một phím tắt trên bàn phím thì rất có thể tôi sẽ bắt đầu tìm ra việc để dùng nó
Nó cũng có lượng giác, nên có vẻ phù hợp để thiết kế ngược các bộ phận phức tạp từ những phép đo đơn giản. Ví dụ như thể tích hình dạng, góc cạnh, diện tích mặt cắt các kiểu
Sẽ tốt nếu hỗ trợ phân phối đa đỉnh, nhưng không bắt buộc. Hàm lượng giác ngược cũng thú vị, nhưng phức tạp và không thiết yếu
Dù sao thì công cụ này tiện hơn việc cứ phải mở Python mỗi lần cần ước lượng một khoảng đáp án
Yêu cầu tính năng: sẽ hay hơn nếu có thể chỉ định phân phối xác suất. Ví dụ
~là phân phối chuẩn,_là phân phối đều, kiểu vậyG(50, 1), phân phối mũ âm với λ=3 làN(3), phân phối đều từ 0 đến 1 làU(0, 1), và phân phối đều nguyên từ 1 đến 6 làUI(1, 6)Như vậy sẽ linh hoạt hơn nhiều và cũng dễ nhớ hơn