Vì sao phải gia cố chỗ máy bay không bị trúng đạn? Thiên kiến kẻ sống sót

Ta chỉ nhìn thấy những ai còn đứng vững, rồi vô tình học bài học từ họ. Từ những chiếc máy bay trở về trong Thế chiến II, chuyện bỏ học làm tỷ phú, đồ ngày xưa "bền hơn", đến những quỹ đầu tư "toàn thắng" và các cổ phiếu đã biến mất khỏi bảng điện HOSE.

16 phút đọcCơ bảnEyeBlogs
Hình vẽ máy bay ném bom hai động cơ nhìn từ trên xuống, các chấm đỏ đánh dấu vết đạn dày đặc trên cánh, thân và đuôi, trong khi hai động cơ và buồng lái hoàn toàn không có vết đạn nào.
Mục lục

Những chiếc máy bay trở về

Thế chiến thứ hai. Mỗi đêm, các phi đội ném bom cất cánh, và sáng hôm sau chỉ một phần trong số đó quay về. Những chiếc trở về thường chi chít vết đạn: trên thân, trên cánh, ở phần đuôi. Còn quanh động cơ thì lại khá sạch.

Câu hỏi đặt ra rất thực tế. Giáp thì nặng. Gia cố cả máy bay thì nó sẽ bay chậm, tốn nhiên liệu và chở được ít bom hơn. Vậy nên gia cố ở đâu?

Câu trả lời tự nhiên nhất: gia cố chỗ có nhiều vết đạn nhất. Chỗ đó rõ ràng là chỗ bị bắn nhiều.

Abraham Wald, nhà thống kê làm việc trong Nhóm Nghiên cứu Thống kê (Statistical Research Group) ở Đại học Columbia, nhìn vấn đề theo chiều ngược lại. Đạn trong không chiến không biết nhắm. Nó rơi vào máy bay gần như ngẫu nhiên, và đáng lẽ vết đạn phải rải khá đều. Nếu những chiếc trở về hầu như không có vết đạn ở động cơ, thì đó không phải vì động cơ ít bị bắn. Đó là vì những chiếc bị bắn vào động cơ đã không trở về.

Những vết đạn trên máy bay trở về cho biết chỗ nào có thể trúng đạn mà vẫn sống sót. Chỗ cần gia cố là chỗ không có vết đạn.

Câu chuyện thường được kể gọn như vậy. Thực tế công việc của Wald là một loạt bản ghi nhớ toán học khá dày, ước lượng khả năng sống sót của từng bộ phận máy bay chỉ từ dữ liệu của những chiếc trở về. Mangel và Samaniego đã tóm tắt và phân tích lại các bản ghi nhớ này năm 1984[1]. Nhưng ý tưởng cốt lõi thì đúng như câu chuyện: dữ liệu bạn cầm trong tay đã bị lọc, và bộ lọc ấy mang thông tin.

Hãy tự kiểm tra ý tưởng này bằng một mô phỏng nhỏ. Máy bay được ghép từ năm vùng: thân, cánh, đuôi, buồng lái và hai động cơ. Mỗi lượt xuất kích, máy bay trúng từ 1 đến 6 viên đạn, rơi hoàn toàn ngẫu nhiên lên bề mặt, tức là vùng nào rộng thì hứng nhiều đạn hơn. Điểm khác nhau duy nhất: trúng động cơ hay buồng lái thì dễ rơi hơn nhiều so với trúng thân hay cánh. Chạy 10.000 lượt xuất kích, rồi đếm vết đạn:

Vùng % vết đạn trên mọi máy bay % vết đạn trên máy bay trở về Tỷ lệ trở về khi trúng vùng này
Thân 24% 27% 55%
Cánh 48% 55% 56%
Đuôi 13% 14% 52%
Động cơ 12% 3% 12%
Buồng lái 3% 2% 23%
Hai hình máy bay nhìn từ trên xuống, ghép từ các hình chữ nhật và hai động cơ hình elip. Hình trái là vết đạn trên mọi máy bay xuất kích, rải đều khắp thân, cánh, đuôi, buồng lái và hai động cơ. Hình phải là vết đạn chỉ trên những máy bay trở về: thân, cánh và đuôi vẫn đầy vết đạn, còn hai động cơ gần như trống trơn.
Hình 1. Mô phỏng 300 lượt xuất kích đầu tiên. Bên trái: mọi vết đạn thật sự. Bên phải: chỉ vết đạn trên máy bay trở về, thứ duy nhất đội kỹ thuật nhìn thấy. Khoảng trống ở động cơ không có nghĩa là động cơ không bị bắn.

Cột thứ hai là sự thật: động cơ hứng 12% số đạn, đúng bằng phần diện tích của nó. Cột thứ ba là thứ đội kỹ thuật nhìn thấy trên sân bay: động cơ chỉ còn 3%. Nhìn cột này, ai cũng sẽ kết luận “động cơ hiếm khi bị bắn”.

Cột cuối cùng mới là câu trả lời. Máy bay trúng đạn ở thân hay cánh trở về được khoảng 55%. Máy bay trúng đạn ở động cơ chỉ trở về được 12%. Chỗ ít vết đạn nhất trên máy bay trở về lại chính là chỗ chết người nhất. (Ai muốn tự chạy mô phỏng này có thể xem code ở mục Tự tay chạy mô phỏng gần cuối bài.)

Thiên kiến kẻ sống sót là gì?

Lỗi mà Wald tránh được có tên là survivorship bias, thiên kiến kẻ sống sót: rút ra kết luận chỉ từ những thứ đã vượt qua một vòng sàng lọc, trong khi quên mất những thứ đã bị loại.

Nó có ba thành phần:

  1. Một nhóm ban đầu: tất cả máy bay xuất kích, tất cả người khởi nghiệp, tất cả quỹ đầu tư được mở ra.
  2. Một bộ lọc: bị bắn rơi, phá sản, đóng cửa, bị hủy niêm yết.
  3. Một người quan sát chỉ nhìn thấy phần còn lại, và quên rằng có bộ lọc.

Điểm nguy hiểm là bộ lọc thường liên quan trực tiếp đến thứ ta muốn đo. Máy bay bị loại vì trúng đạn ở chỗ hiểm, nên thống kê vết đạn bị méo. Quỹ bị đóng vì làm ăn kém, nên thống kê hiệu suất quỹ bị đẹp lên. Nếu bộ lọc hoàn toàn ngẫu nhiên, chẳng hạn như rút thăm, phần còn lại vẫn đại diện tốt cho cả nhóm. Rắc rối chỉ xảy ra khi thứ bị loại khác biệt một cách có hệ thống với thứ còn lại.

Và phần bị loại thường im lặng. Máy bay rơi không bay về kể chuyện. Công ty phá sản không lên bìa tạp chí. Không ai viết sách “Bí quyết của tôi” sau khi mất trắng.

“Bỏ học vẫn thành tỷ phú”

Bill Gates bỏ Harvard. Mark Zuckerberg cũng bỏ Harvard. Steve Jobs bỏ đại học sau một học kỳ. Danh sách này dài đến mức nhiều người bắt đầu tự hỏi: phải chăng bằng đại học đang cản đường mình?

Hãy đặt câu hỏi theo kiểu Wald: những người bỏ học để khởi nghiệp nhưng thất bại đang ở đâu? Họ không xuất hiện trong danh sách nào cả. Ta chỉ nghe về những người bỏ học và thành công, vì chính thành công mới là thứ khiến chuyện bỏ học của họ đáng được kể.

Có một lý do thống kê khiến người bỏ học có thể xuất hiện rất nhiều ở đỉnh, dù trung bình họ không khá hơn. Con đường bỏ học để khởi nghiệp là con đường rủi ro cao: kết quả trải rất rộng, từ thất bại hoàn toàn đến thành công cực lớn. Con đường học xong rồi đi làm thì an toàn hơn: kết quả tập trung quanh một mức khá. Ở phía đỉnh của một cuộc đua, người thắng thường không đến từ nhóm có trung bình cao nhất, mà từ nhóm có độ phân tán lớn nhất.

Một mô phỏng minh họa cho thấy điều này rõ đến mức nào. Lấy 100.000 người, trong đó 5% bỏ học để khởi nghiệp. Nhóm bỏ học được cho tài sản trung vị thấp hơn nhóm tốt nghiệp (0,96 so với 1,66 đơn vị), nhưng kết quả trải rộng hơn nhiều. Các con số là minh họa, không phải số liệu thật.

Người bỏ học chỉ chiếm 5% dân số, nhưng chiếm 70% danh sách 100 người giàu nhất. Một phóng viên chỉ phỏng vấn top 100 sẽ viết: “Bảy trên mười người giàu nhất từng bỏ học!”. Thế nhưng trong cùng thế giới mô phỏng ấy, 64% người bỏ học có tài sản thấp hơn một người tốt nghiệp bình thường.

Cả hai câu đều đúng. Chúng chỉ trả lời hai câu hỏi khác nhau. “Người giàu nhất có đặc điểm gì?” là câu hỏi về những kẻ sống sót. “Nếu tôi bỏ học, điều gì nhiều khả năng xảy ra với tôi?” là câu hỏi về cả nhóm ban đầu. Câu thứ hai mới là câu bạn cần khi ra quyết định.

Những kẻ sống sót quanh ta

Khi đã biết tên nó, bạn sẽ gặp thiên kiến này ở khắp nơi.

“Đồ ngày xưa bền hơn”

Chiếc quạt điện của ông bà vẫn chạy vù vù sau bốn mươi năm. Chiếc xe máy cũ trong nhà vẫn nổ máy ngon lành. Còn chiếc điện thoại mua ba năm trước đã chai pin. Kết luận quen thuộc: đồ ngày xưa làm bền hơn, giờ người ta cố tình làm đồ mau hỏng.

Có thể một phần đúng. Nhưng hãy nhớ: những chiếc quạt ngày xưa bị hỏng sau ba năm đã bị vứt đi từ lâu. Thứ còn lại trong nhà bạn hôm nay là những chiếc bền nhất của cả một thế hệ, đã được thời gian sàng lọc suốt bốn mươi năm. Còn đồ mới thì bạn nhìn thấy đủ mọi loại, cả tốt lẫn tệ, vì thời gian chưa kịp lọc gì.

So sánh “những chiếc tốt nhất còn sót lại của ngày xưa” với “tất cả mọi thứ của hôm nay” thì ngày xưa bao giờ cũng thắng. Kiến trúc cổ, nhạc xưa, phim kinh điển cũng vậy: những thứ dở của thời đó phần lớn đã bị quên.

Quán ăn “gia truyền ba đời”

Bạn đi ăn ở một quán phở mở từ những năm 1950 và nghĩ: “Quán mở lâu như vậy, chắc chắn phải có bí quyết.” Rất có thể đúng, quán ngon thật. Nhưng nếu bạn đi hỏi chủ quán bí quyết là gì, rồi áp dụng y hệt, chưa chắc bạn đã thành công.

Lý do: ta không biết những quán cùng thời đã đóng cửa làm gì khác. Có thể họ cũng dậy sớm ninh xương, cũng chọn thịt kỹ, cũng tận tâm như vậy. Có thể điều khác biệt duy nhất là quán này nằm đúng góc phố sau này thành trung tâm, hoặc may mắn không phải chuyển đi khi khu phố giải tỏa. Muốn biết “bí quyết” có thật sự là bí quyết không, phải so với những quán đã thất bại, mà những quán ấy thì không còn ai để hỏi.

Mèo rơi từ tầng cao

Năm 1987, hai bác sĩ thú y ở New York công bố một nghiên cứu về 132 con mèo rơi từ các tòa nhà cao tầng được đưa tới phòng khám của họ[2]. Khoảng 90% số mèo được điều trị đã sống sót. Một phát hiện gây tò mò hơn: những con rơi từ trên khoảng bảy tầng lại ít bị thương hơn những con rơi từ tầng thấp hơn.

Có một giải thích vật lý hấp dẫn: rơi đủ cao, con mèo đạt vận tốc tối đa, thôi hoảng loạn, duỗi người ra như chiếc dù và tiếp đất nhẹ hơn. Có thể đúng một phần. Nhưng cũng có một giải thích khác, rất “Wald”: con mèo rơi từ tầng 20 mà chết ngay thì không ai mang nó tới phòng khám. Mẫu nghiên cứu chỉ gồm những con mèo đủ sống sót để được đưa đi chữa, và ở các tầng rất cao, bộ lọc ấy khắc nghiệt hơn nhiều.

Dữ liệu từ phòng khám không thể phân biệt hai giải thích này. Muốn biết, phải có thêm thông tin về những con mèo không được đưa tới.

Quỹ đầu tư “toàn thắng”

Giờ đến chỗ thiên kiến này đắt giá nhất: tiền.

Mỗi năm, các công ty quản lý quỹ mở ra nhiều quỹ mới. Quỹ nào làm tốt thì được quảng cáo, thu hút thêm tiền. Quỹ nào làm kém vài năm liền thì lặng lẽ đóng cửa, hoặc được sáp nhập vào một quỹ khác. Mười năm sau, khi bạn mở danh sách các quỹ để so sánh, bạn chỉ thấy những quỹ còn sống. Và chúng trông rất giỏi.

Elton, Gruber và Blake đã theo dõi mọi quỹ tương hỗ của Mỹ tồn tại vào cuối năm 1976, kể cả những quỹ sau đó biến mất. Họ ước tính thiên kiến kẻ sống sót làm hiệu suất trung bình của ngành bị thổi phồng khoảng 0,9% mỗi năm[3]. Nghe thì nhỏ, nhưng đó thường chính là khoảng cách giữa “thắng thị trường” và “thua thị trường”.

Để thấy thiên kiến này mạnh đến đâu, hãy mô phỏng một thế giới mà không quỹ nào có tài năng. Có 1.000 quỹ. Mỗi năm, lợi suất vượt thị trường của mỗi quỹ chỉ là may rủi (trung bình 0, dao động khoảng 8%), rồi trừ đi 1% phí quản lý. Quỹ nào thua thị trường hai năm liền thì bị đóng.

Sau mười năm, chỉ còn 99 trên 1.000 quỹ. Nhìn vào 99 quỹ này, bạn thấy chúng vượt thị trường trung bình +2,3% mỗi năm, và 87% trong số đó có thành tích tốt hơn thị trường. Một bài báo có thể giật tít: “Chín trên mười quỹ đầu tư thắng thị trường!”

Nhưng ta là người dựng nên thế giới này nên biết chắc sự thật: không quỹ nào có tài năng, và tính trên mọi năm hoạt động của mọi quỹ, lợi suất vượt thị trường là −1,0%, đúng bằng mức phí. Khoảng cách 3,3 điểm phần trăm mỗi năm hoàn toàn do bộ lọc tạo ra.

Biểu đồ đường của 1.000 quỹ mô phỏng trong 10 năm. Phần lớn các đường màu xám kết thúc sớm bằng dấu x đỏ ở vùng âm, là các quỹ bị đóng. Khoảng 99 đường màu vàng đi hết 10 năm, phần lớn nằm trên 0. Đường trắng trung bình của quỹ còn sống đi lên khoảng +23% sau 10 năm, trong khi đường xanh đứt nét là kỳ vọng thật của mọi quỹ đi xuống khoảng −10%.
Hình 2. Mô phỏng 1.000 quỹ không có tài năng trong 10 năm. Những quỹ bị đóng (dấu ×) tụ lại ở vùng âm và biến khỏi danh sách. Các quỹ còn lại (màu vàng) trông như những nhà quản lý tài ba, dù mọi quỹ đều chỉ dựa vào may rủi.

Chú ý rằng quy tắc “thua hai năm liền thì đóng” còn nhẹ tay. Ngoài đời, quỹ còn biến mất khi quy mô quá nhỏ, khi bị sáp nhập, khi đổi tên và đổi chiến lược. Nhiều cơ sở dữ liệu cũ chỉ lưu những quỹ còn hoạt động. Cách duy nhất để đánh giá công bằng là dùng dữ liệu không có thiên kiến kẻ sống sót (survivorship-bias-free), tức là giữ lại cả lịch sử của những quỹ đã chết.

Những cổ phiếu biến mất khỏi bảng điện

Với nhà đầu tư cá nhân, thiên kiến này thường xuất hiện trong một việc tưởng như rất khoa học: kiểm thử chiến lược trên dữ liệu quá khứ (backtest).

Kịch bản điển hình như sau. Bạn lấy danh sách các mã đang niêm yết trên HOSE hôm nay, tải giá mười năm của từng mã, rồi thử một chiến lược: chẳng hạn mua cổ phiếu vừa giảm mạnh, chờ nó hồi lại. Kết quả trên giấy rất đẹp. Mã nào giảm sâu rồi cũng hồi phục cả.

Vấn đề là danh sách “các mã đang niêm yết hôm nay” chính là danh sách những máy bay đã trở về. Những mã giảm mạnh rồi không bao giờ hồi phục, bị đình chỉ giao dịch, bị hủy niêm yết, đã biến khỏi danh sách. Chiến lược “mua khi giảm sâu” của bạn được kiểm thử trên một thế giới mà trong đó, theo định nghĩa, mọi cổ phiếu đều sống sót.

Một ví dụ rất gần: nhóm cổ phiếu FLC. Năm 2023, toàn bộ các mã nhóm FLC trên HoSE bị hủy niêm yết bắt buộc vì vi phạm nghiêm trọng nghĩa vụ công bố thông tin[4]. Kiểm tra bốn mã trong số đó bằng thư viện vnstock: chúng có còn trong danh sách niêm yết hiện tại không, đỉnh giá từ 2015 là bao nhiêu, và giá ở phiên có giao dịch cuối cùng là bao nhiêu (bỏ qua những ngày bị đình chỉ giao dịch):

Mã Còn niêm yết? Đỉnh từ 2015 Phiên có giao dịch cuối So với đỉnh
FLC Không 22,55 (01/2022) 3,57 (09/2022) −84%
ROS Không 178,41 (11/2017) 2,51 (08/2022) −99%
AMD Không 23,45 (06/2017) 1,11 (03/2023) −95%
HAI Không 22,50 (08/2017) 1,58 (09/2022) −93%

Giá tính bằng nghìn đồng, là giá đã điều chỉnh của nguồn dữ liệu VCI. Cả bốn mã đều không còn trong danh sách niêm yết. Tính từ đỉnh đến phiên có giao dịch cuối cùng, chúng mất từ 84% đến 99%. ROS, từng là một trong những cổ phiếu được nhắc tới nhiều nhất thị trường năm 2017, mất gần như toàn bộ giá trị.

Biểu đồ giá của bốn mã FLC, ROS, AMD và HAI từ năm 2015, tính theo phần trăm so với đỉnh của từng mã. ROS vọt lên đỉnh cuối năm 2017 rồi rơi xuống gần 0% từ năm 2020. FLC tạo đỉnh đầu năm 2022 rồi giảm mạnh. Cả bốn đường dừng lại trong khoảng từ tháng 8/2022 đến tháng 3/2023 ở mức 1% đến 16% so với đỉnh.
Hình 3. Giá bốn mã nhóm FLC so với đỉnh của từng mã (đỉnh = 100%), chỉ tính những phiên có giao dịch. Dấu chấm là phiên có giao dịch cuối cùng trong dữ liệu. Không mã nào trong số này có mặt trong danh sách niêm yết hiện tại.

Nếu bạn backtest chiến lược “mua khi giảm sâu” trên danh sách mã hiện tại, không lần mua ROS nào ở mức −50% hay −80% xuất hiện trong kết quả, vì ROS không có trong danh sách. Chiến lược của bạn được chấm điểm như thể nó biết trước mã nào sẽ bị loại. Đây cũng chính là giới hạn mà bài Hồi quy về trung bình đã phải ghi chú khi phân tích 405 mã đang niêm yết trên HOSE.

Cách khắc phục về nguyên tắc rất đơn giản, nhưng tốn công: tại mỗi thời điểm trong quá khứ, chỉ dùng danh sách mã đang giao dịch tại thời điểm đó, kể cả những mã sau này biến mất. Khi không có được dữ liệu như vậy, ít nhất hãy nói rõ giới hạn này, và nghi ngờ những kết quả quá đẹp, nhất là với chiến lược mua cổ phiếu nhỏ, cổ phiếu giảm sâu hay cổ phiếu “rẻ”.

Khi kẻ sống sót thật sự giỏi

Đến đây, rất dễ rơi vào thái cực ngược lại: “Mọi thành công đều chỉ là may mắn, học theo ai cũng vô ích.” Đó cũng là một sai lầm.

Thiên kiến kẻ sống sót không nói rằng người thành công không có gì đáng học. Nó chỉ nói rằng quan sát riêng người thành công thì không đủ để biết điều gì tạo ra thành công. Ba tình huống có thể xảy ra:

  • Bộ lọc gần như ngẫu nhiên. Nếu ai cũng có cùng khả năng và chỉ may rủi quyết định ai trụ lại, thì kẻ sống sót chẳng có gì đặc biệt. Đó là thế giới 1.000 quỹ không tài năng ở trên.
  • Bộ lọc chọn đúng thứ tốt. Một loại vắc-xin đã qua ba giai đoạn thử nghiệm lâm sàng, loại bỏ hàng trăm ứng viên khác, thì đáng tin hơn hẳn một ứng viên chưa qua vòng nào. Ở đây, sống sót là bằng chứng, vì bộ lọc được thiết kế để đo đúng thứ ta cần.
  • Pha trộn cả hai. Phần lớn cuộc sống nằm ở đây. Quán phở lâu năm có thể vừa ngon vừa may. Nhà sáng lập thành công có thể vừa giỏi vừa gặp đúng thời điểm.

Cách phân biệt không nằm ở kẻ sống sót, mà ở quy tắc loại bỏ và những kẻ đã bị loại. Một thành tích mười năm đáng tin hơn một năm, vì may rủi khó lặp lại mười lần. Một chiến lược được kiểm thử cả trên những cổ phiếu đã chết đáng tin hơn một chiến lược chỉ thử trên những cổ phiếu còn sống. Một lời khuyên đến từ người đã quan sát cả người thành công lẫn người thất bại đáng nghe hơn lời khuyên của một người chỉ kể về chính mình.

Ba câu hỏi trước khi học theo người thành công

Lần tới khi đọc một câu chuyện thành công, một bảng xếp hạng hay một kết quả backtest đẹp, hãy dừng lại hỏi:

  1. Nhóm ban đầu là ai, và có bao nhiêu người? Mười người thành công trong mười người thử khác hẳn mười người thành công trong mười nghìn người thử.
  2. Bộ lọc là gì, và nó có liên quan tới thứ đang được đo không? Nếu những người “thua” bị loại khỏi dữ liệu, mọi con số trung bình đều sẽ đẹp hơn thực tế.
  3. Những người đã bị loại đã làm gì khác? Nếu họ cũng làm y hệt, thì “bí quyết” chẳng phải là bí quyết.

Câu hỏi thứ ba thường khó trả lời nhất, vì dữ liệu về kẻ thất bại hiếm khi có sẵn. Nhưng chỉ cần nhớ rằng nó tồn tại, bạn đã tránh được phần lớn cái bẫy.

Tự tay chạy mô phỏng

Nếu bạn muốn tự kiểm chứng mô phỏng máy bay ở đầu bài, đoạn Python dưới đây tạo ra đúng bảng số liệu và Hình 1. Cần cài numpy và matplotlib. Bạn có thể thử đổi các con số trong DEADLY: cho động cơ bớt nguy hiểm đi, khoảng trống trên máy bay trở về cũng mờ dần.

planes.py
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse, Rectangle
plt.rcParams.update({"figure.facecolor": "#16181c", "text.color": "#d4d7dc", "font.size": 12})
rng = np.random.default_rng(1943) # Cố định seed để chạy lại ra cùng kết quả.
# Máy bay nhìn từ trên xuống, ghép từ các hình chữ nhật và hai động cơ hình elip.
# Xác suất một viên đạn trúng vùng đó làm rơi máy bay:
DEADLY = {"thân": 0.05, "cánh": 0.05, "đuôi": 0.10, "động cơ": 0.80, "buồng lái": 0.60}
ENGINES = [(-2.0, 0.4), (2.0, 0.4)]
def zone(x, y):
if any(((x - ex) / 0.4) ** 2 + ((y - ey) / 0.8) ** 2 <= 1 for ex, ey in ENGINES):
return "động cơ"
if abs(x) <= 0.3 and 2.4 < y <= 3.3:
return "buồng lái"
if abs(x) <= 0.35 and -3.2 <= y <= 2.4:
return "thân"
if abs(x) <= 4.2 and -0.6 <= y <= 0.6:
return "cánh"
if abs(x) <= 1.6 and -3.9 <= y < -3.2:
return "đuôi"
return None # đạn trượt
def sortie():
"""Một lượt xuất kích: 1–6 viên đạn rơi ngẫu nhiên lên máy bay."""
hits, n = [], rng.integers(1, 7)
while len(hits) < n:
x, y = rng.uniform(-4.2, 4.2), rng.uniform(-3.9, 3.3)
if (z := zone(x, y)) is not None:
hits.append((x, y, z))
came_back = all(rng.random() >= DEADLY[z] for *_, z in hits)
return hits, came_back
flights = [sortie() for _ in range(10_000)]
print(f"{'vùng':<10}{'mọi máy bay':>12}{'máy bay về':>12}{'tỷ lệ về':>10}")
all_z = [z for hits, _ in flights for *_, z in hits]
back_z = [z for hits, ok in flights if ok for *_, z in hits]
for name in DEADLY:
hit_planes = [ok for hits, ok in flights if name in {z for *_, z in hits}]
print(f"{name:<10}{all_z.count(name) / len(all_z):>12.0%}"
f"{back_z.count(name) / len(back_z):>12.0%}{np.mean(hit_planes):>10.0%}")
# Vẽ 300 lượt xuất kích đầu tiên: bên trái mọi vết đạn, bên phải chỉ vết đạn trên máy bay trở về.
fig, axes = plt.subplots(1, 2, figsize=(10, 5.4))
for ax, only_back, title in [(axes[0], False, "Mọi máy bay xuất kích"),
(axes[1], True, "Chỉ những máy bay trở về")]:
for x0, y0, w, h in [(-4.2, -0.6, 8.4, 1.2), (-0.35, -3.2, 0.7, 5.6),
(-0.3, 2.4, 0.6, 0.9), (-1.6, -3.9, 3.2, 0.7)]:
ax.add_patch(Rectangle((x0, y0), w, h, facecolor="#1f2228", edgecolor="#878d97"))
for ex, ey in ENGINES:
ax.add_patch(Ellipse((ex, ey), 0.8, 1.6, facecolor="#1f2228", edgecolor="#d2b48c", lw=1.5))
pts = [(x, y) for hits, ok in flights[:300] if ok or not only_back for x, y, _ in hits]
ax.scatter(*zip(*pts), s=7, color="#c98f8f" if only_back else "#878d97", zorder=3)
ax.set(xlim=(-4.5, 4.5), ylim=(-4.2, 3.6), aspect="equal", title=title)
ax.axis("off")
fig.savefig("bullet-holes.png", dpi=150, bbox_inches="tight", facecolor="#16181c")
vùng mọi máy bay máy bay về tỷ lệ về
thân 24% 27% 55%
cánh 48% 55% 56%
đuôi 13% 14% 52%
động cơ 12% 3% 12%
buồng lái 3% 2% 23%

Quay lại những chiếc máy bay

Bài học của Wald ngắn gọn đến bất ngờ: hãy nhìn vào chỗ trống. Những vết đạn ta thấy là câu chuyện của người sống sót. Những vết đạn ta không thấy mới là câu chuyện của người đã ngã xuống, và thường đó mới là câu chuyện ta cần nghe.

Các danh sách tỷ phú, bảng xếp hạng quỹ, bảng điện chứng khoán hôm nay đều là những chiếc máy bay đã trở về. Chúng thật, chúng đáng xem, nhưng chúng chưa bao giờ là toàn bộ bức tranh.

Đây là bài thứ năm trong loạt bài về những lúc trực giác phản bội ta, sau Monty Hall, Nghịch lý ngày sinh, Gambler’s Fallacy và Hồi quy về trung bình.

Tài liệu tham khảo

  1. [1]Marc Mangel và Francisco J. Samaniego. Abraham Wald's Work on Aircraft Survivability. Journal of the American Statistical Association, 79(386), 259–267, 1984.
  2. [2]Wayne O. Whitney và Cheryl J. Mehlhaff. High-rise syndrome in cats. Journal of the American Veterinary Medical Association, 191(11), 1399–1403, 1987.
  3. [3]Edwin J. Elton, Martin J. Gruber và Christopher R. Blake. Survivorship Bias and Mutual Fund Performance. The Review of Financial Studies, 9(4), 1097–1120, 1996.
  4. [4]Toàn bộ cổ phiếu nhóm FLC trên HoSE bị hủy niêm yết. VnExpress, 2023.