Ý nghĩa của việc phân tích tần suất chữ cái

Dạo gần đây tôi có thử sức với Matasano's crypto challenges (cryptopals.com). Về cơ bản đây là tập hợp các thử thách về mã hóa, mật mã; trong đó người chơi sẽ cố gắng hoàn thành các bài tập thực hành về mã hóa (bao gồm cài đặt các thuật toán mã hóa thông dụng, phá mã) từ cổ điển cho đến hiện đại. Trong challenge 3 và 4, bạn được yêu cầu phá mã cổ điển, cụ thể là single-byte XOR. Thuật toán mã hóa thật đơn giản, bạn sẽ chọn một khóa K (độ dài 1 byte) và lần lượt XOR với các byte đầu vào của bản rõ. Dễ dàng thấy đây là phiên bản mởi rộng hiện đại của mật mã Caesar. Dưới đây là thuật toán mã hóa:

def single_byte_xor(msg: bytes, key: int) -> bytes: cipher = bytes(b^key for b in msg) return cipher

Với thử thách 3, bạn sẽ được cung cấp một bản mã ( được mã hóa sử dụng single-byte XOR) và công việc của bạn là tìm ra bản rõ. Với bài này, do không gian khóa nhỏ (256 giá trị), bạn có thể thử 256 giá trị có thể của khóa (0x00 -> 0xFF), decrypt bản mã với khóa đó và nhìn xem bản rõ nào gần giống với tiếng anh nhất.

Nhưng challenge 3 mong muốn bạn tạo một chương trình tự động giải mã. Để làm được việc này, ta cần phải có cách để "chấm điểm" bản rõ so với tiếng Anh. Nghĩa là ta cần biết đoạn text vừa gỉa mã được giống với tiếng Anh như thế nào. Và ta sẽ chọn bản rõ có điểm số cao nhất.

Các hệ mã cổ điển đều có thể bị phá bằng phân tích tần suất (Frequency analysis), do đó để xây dựng hàm "chấm điểm" ta có thể sử dụng kiến thức về phân bố xác suất của các chữ cái trong tiếng anh. Hình bên dưới là tần suất xuất hiện của các chữ cái trong tiếng Anh.

Ý nghĩa của việc phân tích tần suất chữ cái

nguồn: https://en.wikipedia.org

Với challenge 3 này, tôi sử dụng thống kê Chi-squared để đánh trọng số (chấm điểm) cho bản rõ. Hiểu đơn giản, thống kê Chi-squared biểu diễn độ tương đồng giữa 2 phân bố xác suất, 2 phân bố càng giống nhau thì gía trị Chi-squared của chúng càng nhỏ và bằng 0 nếu 2 phân bố giống hệt nhau. Dưới đây là công thức tính Chi-squared:

Ý nghĩa của việc phân tích tần suất chữ cái

Trong đó, Ci là số lần xuất hiện của chữ cái i trong đoạn text, và Ei là số lần xuất hiện mong chờ (Expected) của chữ cái i trong đoạn text.

Bởi vì trong một câu tiếng Anh, ký tự khoảng trắng (space) cũng xuất hiện rất nhiều nên để có thể đánh gía tốt hơn, tôi đã sử dụng cả ký tự space lúc tính Chi-squared. Bạn có thể lấy dữ liệu xác suất của bảng chữ cái tiếng Anh bao gồm space tại http://www.data-compression.com/english.shtml.

Ta có thể hoàn thành challenge 3 bằng cách chọn ra bản rõ có Chi-squared bé nhất.

Nhưng để hoàn thành challenge 4 ta cần phải sử dụng đánh gía trọng số chính xác hơn, đó là sử dụng Chi-square cho cặp 2 chữ cái. Dữ liệu các bạn có thể lấy tại english_bigram.

Trong bài viết tới, tôi sẽ trình bày lời giải của mình cho challenges 5 và 6. Nếu bạn là người yêu thích tìm hiểu, nghiên cứu mật mã và các phương pháp phá mã hiện đại, bạn nên thử sức với Matasano's crypto challenges.

Đây là lời giải của tôi nếu bạn quan tâm: https://github.com/vuonghv/cryptopals

Trong vài thập kỷ, các nhà thống kê và các nhà lâm sàng đã tranh luận về mức ý nghĩa thống kê và lâm sàng. Nhìn chung, đa số các tạp chí vẫn còn giữ cách tiếp cận suy diễn tần số (frequentist khác với Bayesian – ND) khi kiểm định thống kê và sử dụng thuật ngữ có ý nghĩa thống kê. Một đề xuất gần đây phản đối mức ý nghĩa thống kê đã tạo thành phong trào vận động với chiến dịch lấy chữ ký có 854 người tham gia. Kiến nghị đề xuất giữ lại giá trị P nhưng bỏ cách phát biểu có/không (có ý nghĩa/không ý nghĩa), đề nghị thảo luận cỡ tác động “thích hợp, phản đối việc “kiểm định giả thuyết không” và cho rằng “những kết quả có tính quyết định” không được thừa nhận khi phát hiện ra hoặc bị bác bỏ trong nghiên cứu tái lập vì không có ý nghĩa. Đề xuất cũng chỉ ra rằng “chúng ta đừng bao giờ kết luận không có sự khác biệt hoặc không có mối liên quan chỉ vì giá trị P lớn hơn một ngưỡng như là 0.05 hoặc nói cách khác, khoảng tin cậy bao gồm số 0 và sự phân loại dựa trên các thang đo thống kê khác (ví dụ các yếu tố Bayes) không được khuyên dùng. Các bài báo khác gần đây cũng đề cập đến các chủ đề tương tự, với việc dành cả một số báo trên một tạp chí thống kê cho các vấn đề liên quan đến giá trị P.

Thay đổi cách tiếp cận để xác định mức ý nghĩa thống kê và lâm sàng có một số giá trị

Thay đổi cách tiếp cận để xác định mức ý nghĩa thống kê và lâm sàng có một số giá trị, ví dụ bao quát được tính bất định tránh được các tuyên bố cường điệu khi không có nhiều sự ủng hộ về mặt thống kê và nhận ra rằng mức ý nghĩa thường không được hiểu rõ. Tuy nhiên, vấn đề kỹ thuật khi bỏ qua các phương pháp thống kê cần được suy nghĩ và cân nhắc nhiều hơn. Đằng sau cái được gọi là cuộc tranh luận về mức ý nghĩa là những vấn đề cơ bản về việc thực hiện và giải thích nghiên cứu được mở rộng ra thành cách diễn giải (sai) về ý nghĩa thống kê. Những vấn đề này bao gồm cần chú ý gì ở cỡ tác động, cách tái lập hoặc bác bỏ kết quả nghiên cứu, và cách ra quyết định và hành động dựa trên bằng chứng. Cách suy luận có/không là không thể tránh khỏi trong nhiều lĩnh vực khoa học từ vật lý hạt nhân đến những phân tích ngoài sức tưởng trong các lĩnh vực sinh học – omics (ví dụ, kiểm tra hàng triệu đặc điểm sinh học mà không có bất kỳ một sự ưu tiên trước nào về một đặc điểm có thể quan trọng hơn các đặc điểm khác cho đến y học). Các quyết định có/không là nguyên tắc trong y học và những can thiệp y tế công cộng. Một can thiệp chẳng hạn như một loại thuốc mới sẽ được cấp phép hay không và có thể được sử dụng hay không.

Một số lĩnh vực nghiên cứu giữ lại kết quả được khám phá ra nhiều hơn so với những lĩnh vực khác. Hơn nữa, một số lĩnh vực có vài tác động đủ lớn để khám phá và hành động theo, trong khi các lĩnh vực khác gặp khó khăn khi hầu hết cỡ tác động rất nhỏ. Viễn cảnh sau đang trở nên phổ biến hơn. Ví dụ, hàng chục trong số hàng ngàn liên quan có ý nghĩa trong toàn bộ bộ gene đã tạo nên hàng trăm kiểu hình khác nhau, nhưng đa số chỉ giải thích được ít hơn 0.05% những thay đổi của tính trạng quan tâm. Một số lĩnh vực khi làm việc với những tác động lớn, có tính hành động (như dịch tễ học dinh dưỡng) có thể có những sai lệch lớn hơn, không thể kiểm soát được.

Những quan điểm khác nhau về sự xuất hiện, tần suất và cường độ của những kết quả

Đôi khi có những quan điểm khác nhau về sự xuất hiện, tần suất và cường độ của những kết quả bác bỏ giả thuyết không trong cùng một lĩnh vực. Ví dụ, bao nhiêu phần trăm chất dinh dưỡng ảnh hướng đến nguy cơ ung thư? Một số người hoài nghi gạt bỏ kết quả ngay cả khi giá trị P nhỏ hoặc yếu tố Bayes lớn. Ngược lại, với một số ủng hộ quan điểm yếu tố sinh ung thư liên quan đến ăn uống, dấu hiệu yếu nhất dường như sẽ đưa đến hành động mang tính toàn cầu mạnh mẽ và đáng giá.

Một số người hoài nghi khác vẫn cho rằng rất ít kết quả nghiên cứu có tính hành động và vẫn miễn cưỡng chấp nhận những chính sách bị chỉ trích và các can thiệp vô dụng (hoặc thậm chí gây hại) mà không có bằng chứng mạnh mẽ. Ngược lại, một số người ủng hộ lại bày tỏ lo ngại về việc không hành động, ủng hộ (tán thành) nhiều chính sách hoặc nghĩ đến các thuốc mới không được cấp phép nhanh chóng. Một số nhà khoa học có thể hoài nghi về một số câu hỏi nghiên cứu và quan tâm đến những câu hỏi khác. Đề xuất bỏ mức ý nghĩa thống kê cùng với quan điểm của những người ủng hộ đề xuất này đã làm dấy lên mối lo ngại về những phát ngôn không có cơ sở về “không có sự khác biệt” và những tuyên bố không có cơ sở về sự bác bỏ nhưng lại không giải quyết được những khẳng định không chính đáng về sự khác biệt và những phủ định không chính đáng của sự bác bỏ.

Việc diễn giải đi xa hơn thống kê

Việc diễn giải đi xa hơn thống kê. Chúng cũng thay đổi tùy thuộc vào những bằng chứng khác (ví dụ, cơ chế được coi là có liên quan). Tuy nhiên, quyết định tính xác đáng về chất lượng hoặc tích hợp nhiều loại bằng chứng có thể mang tính chủ quan. Phân tích dữ liệu thống kê thường chỉ là một phần trong quá trình xử lý bằng chứng có thể được đánh giá khách quan trước khi chuyên gia, cộng đồng chuyên môn và cơ quan chính phủ bắt đầu tổng hợp các dữ liệu để đưa ra khuyến cáo. Điều này có nghĩa là, trong điều kiện lý tưởng, phân tích thống kê nên được suy nghĩ cẩn thận trước và cần được khảo sát nghiêm ngặt. Tương tự như vậy, một nghiên cứu tái lập “kiểm tra tái lập” có thể được biệt định trước một cách cẩn thận, thực hiện các phép kiểm định chặt chẽ về sự thành công hay thất bại tái lập hay bác bỏ. Khi các phân tích được lên kế hoạch sẵn, rõ ràng và được theo dõi cẩn thận, các phép kiểm định như vậy rất hữu ích. Giải thích về bất kì kết quả nào cũng phức tạp hơn nhiều so với chỉ đơn thuần kiểm định ý nghĩa nhưng nó lại là điểm bắt đầu.

Những nguyên tắc được biệt định trước

Không có những nguyên tắc được biệt định trước, đa số các thiết kế và phân tích nghiên cứu có đủ thời gian để thao túng dữ liệu và hack kết quả nhằm tuyên bố những ý nghĩa quan trọng. Vượt qua ngưỡng của mức ý nghĩa thống kê là mục tiêu thường thấy trong mối quan tâm này. Tiêu chuẩn thấp như giá trị P < 0.5 về cơ bản quá dễ để vượt qua. Do đó, một ý kiến cho rằng nên đưa ra tiêu chuẩn khắt khe hơn, nhiều lĩnh vực (ví dụ, dịch tễ học phân tử và di truyền) đã làm điều này bằng cách sử dụng mức ý nghĩa P< 10^-9 trong nghiên cứu về toàn bộ bộ gene hoặc các ngưỡng tỷ lệ phát hiện sai sót rất nghiêm ngặt. Đề xuất loại bỏ hoàn toàn tiêu chuẩn không có nghĩa rằng các nhà khoa học không còn muốn diễn giải những kết quả nghiên cứu của mình để cho thấy những ý nghĩa quan trọng và phù hợp với những quan điểm và khuynh hướng trước đó. Với người gác cổng là ý nghĩa thống kê, các nhà nghiên cứu muốn được lợi từ những phân tích, ví dụ P=0.09 phải thao túng số liệu thống kê để đạt P<0.5 hoặc thêm vòng vào giải thích của họ để kết quả chỉ ra một ý nghĩa quan trọng thông qua “khuynh hướng” quan sát được. Khi bỏ đi người gác cổng là ý nghĩa thống kê, bất kỳ kết quả nào cũng có thể trực tiếp được khẳng định là phản ảnh một ý nghĩa quan trọng hoặc phù hợp với một quan điểm đã có từ trước. Ngoài ta, bác bỏ nghiên cứu từ trước bằng nỗ lực tái lập sau đó có thể luôn bị phủ nhận.

Nhiều lĩnh vực nghiên cứu (từ các nghiên cứu mô phỏng và thí nghiệm trên động vật đến các nghiên cứu quan sát trên quần thể thậm chí là thử nghiệm lâm sàng) có những lỗ hổng lớn trong cách thực hiện, phân tích và báo cáo nghiên cứu và thiếu sự bảo vệ khỏi sai lệch. Thay vì cố gắng sửa chữa những thiếu sót và tạo ra các quy định rõ ràng hơn, một phản ứng làm xoay chuyển cục diện và bãi bỏ mọi nguyên tắc làm người gác cổng (như là từ chối thuật ngữ mức ý nghĩa thống kê). Tuy nhiên, tính có thể kiểm sai được là một điều kiện tiên quyết của khoa học. Các lĩnh vực cố chấp chống lại sự bác bỏ ẩn đằng sau việc bãi bỏ ý nghĩa thống kê có thể gây ra nguy cơ trở thành việc tự tách mình ra khỏi khoa học.

Mức ý nghĩa

Mức ý nghĩa (không chỉ trong thống kê) là cần thiết cho cả khoa học và hành động dựa trên khoa học và một số quy trình chọn lọc là có ích để tránh bị nhiễu. Mức ý nghĩa thống kê với P<0.5 là một bộ lọc yếu, dễ bị lạm dụng. Những bộ lọc tốt hơn và ít bị gian lận hơn và các phương pháp thống kê phù hợp hơn với mục đích đúng là cần thiết. Dù là bộ lọc nào suy diễn tần số, Bayesian hoặc tỷ lệ phát hiện lỗi,chúng đều phải được xem xét cẩn thận trước khi nghiên cứu. Các quy tắc phân tích nên được định nghĩa trước một cách cẩn trọng bất cứ khi nào có thể. Những kế hoạch phân tích thống kê rất hiếm được biệt định đủ chi tiết, ngay cả đối với thiết kế nghiên cứu thử nghiệm ngẫu nhiên, vốn có quy trình nghiên cứu đã được đăng kí trước.Trong một khảo sát được hoàn thành bởi 390 nhà tư vấn thống kê, một tỷ lệ lớn nhận thấy rằng họ được nhận được những yêu cầu không thích hợp từ các nghiên cứu viên để phân tích dữ liệu theo cách để có kết quả mong muốn. Các nghiên cứu cho thấy rằng nếu phân tích không được biệt định trước, lựa chọn phân tích (ví dụ phép hiệu chỉnh phương sai khác nhau) trong nghiên cứu không ngẫu nhiên) có thể cho phép thu được nhiều kết quả. Với dữ liệu lớn hiện nay, sự “dao động lớn của kết quả” trở thành tiêu chuẩn. Bất cứ khi nào các mục tiêu và đích đến được biệt định trước của một nghiên cứu được biết đến, các phân tích thống kê phần lớn có thể được xác định và ghi nhận trước, và các quy tắc về cách đọc kết quả cũng sẽ được đặt trước một cách thận trọng và minh bạch. Độ lệch có thể được giải thích bởi các hoàn cảnh không mong muốn (ví dụ: nếu số lượng dữ liệu bị thiếu nhiều quá mức mong đợi, những điều này nên được ghi lại, cùng với chọn cách giải thích và làm vững chắc kết luận bằng những phân tích đánh giá được với độ nhạy khác nhau). Làm thô dữ liệu hiện có, có thể làm tăng thêm độ tin cậy.

Lâm sàng, tiền bạc và những xem xét khác thường có tầm quan trọng hơn kết quả thống kê. Tuy nhiên, các vấn đề đó thường được biết trước. Nếu vây, chúng nên được giải quyết cẩn thận những nghiên cứu được thiết kế tốt nhất, có nhiều thông tin nhất bằng cách giải thích trước những suy xét này. Phân tích thống kê và những nguyên tắc diễn giải thống kê (gồm cả ngưỡng ý nghĩa thống kê) có thể được biệt định trước, kết hợp chặt chẽ với những xem xét này. Cần suy nghĩ nhiều hơn trước khi nghiên cứu được tiến hành, chứ không phải sau khi xem kỹ dữ liệu.

Tính thăm dò cao của nghiên cứu

Nhiều nghiên cứu vẫn có tính thăm dò cao và điều này nên được công bố khi kết quả được báo cáo. Tuy nhiên, ngay cả nghiên cứu thăm dò, vẫn có một lợi thế khi có một vài đồng thuận từ trước về cách phân tích và diễn dịch thống kê. Những sai lệch so với mặc định ban đầu sẽ dễ dàng được phát hiện và đặt câu hỏi hơn về tính phù hợp của chúng. Đối với hầu hết các câu hỏi nghiên cứu, cách phân tích ngẫu nhiên ít khả năng đưa đến gần sự thật hơn sơ với phân tích với một chuỗi những nguyên tắc cơ bản được xác định từ trước. Tất cả những nghiên cứu trong cùng 1 lĩnh vực trước hết có thể theo các lựa chọn được định trước, trước khi mạo hiểm khám phá dữ liệu mới thu được.

Con số thống kê trong khoa học cần được cải thiện. Bỏ mức ý nghĩa thống kê trong khi vẫn giữ giá trị P (hoặc khoảng tin cậy) sẽ không cải thiện phương diện số thống kê và có thể làm tăng sự nhầm lẫn về mặt thống kê và tạo ra vấn đề với việc giải thích nghiên cứu, một tình trạng hỗn loạn về mặt thống kê. Tính đồng nhất trong các quy tắc và quy trình thống kê giúp việc so sánh đồng dạng/cùng tiêu chuẩn dễ dàng hơn và tránh một số mối liên quan và kết quả có đặc quyền hơn những thứ khác theo cách không chính đáng. Nếu không có quy tắc rõ ràng cho phân tích, khoa học và chính sách có thể ít phụ thuộc vào dữ liệu và bằng chứng, và phụ thuộc nhiều hơn vào những ý kiến và cách diễn giải chủ quan.

Tài liệu tham khảo

1. Amrhein  V, Greenland  S, McShane  B.  Scientists rise up against statistical significance. Nature.2019;567(7748):305-307. doi:10.1038/d41586-019-00857-9PubMedGoogle ScholarCrossref

2. Wasswerstein  RL, Schirm  AL, Lazar  NA.  Moving to a world beyond p<0.05.  Am Stat. 2019;73:1-19.doi:10.1080/00031305.2019.1583913Google ScholarCrossref

3. Canela-Xandri  O, Rawlik  K, Tenesa  A.  An atlas of genetic associations in UK Biobank.  Nat Genet.2018;50(11):1593-1599. doi:10.1038/s41588-018-0248-zPubMedGoogle ScholarCrossref

4. Nosek  BA, Errington  TM.  Making sense of replications.  Elife. 2017;6:e23383. doi:10.7554/eLife.23383PubMedGoogle ScholarCrossref

5. Ioannidis  JPA.  The proposal to lower P value thresholds to .005.  JAMA. 2018;319(14):1429-1430. doi:10.1001/jama.2018.1536 ArticlePubMedGoogle ScholarCrossref

6. Ioannidis  JPA.  Retiring statistical significance would give bias a free pass.  Nature. 2019;567(7749):461. doi:10.1038/d41586-019-00969-2PubMedGoogle ScholarCrossref

7. Localio  AR, Stack  CB, Meibohm  AR,  et al.  Inappropriate statistical analysis and reporting in medical research: perverse incentives and institutional solutions.  Ann Intern Med. 2018;169(8):577-578. doi:10.7326/M18-2516PubMedGoogle ScholarCrossref

8. Wang  MQ, Yan  AF, Katz  RV; Survey of Consulting Biostatisticians.  Researcher requests for inappropriate analysis and reporting: a US survey of consulting biostatisticians.  Ann Intern Med. 2018;169(8):554-558. doi:10.7326/M18-1230PubMedGoogle ScholarCrossref

9. Patel  CJ, Burford  B, Ioannidis  JP.  Assessment of vibration of effects due to model specification can demonstrate the instability of observational associations.  J Clin Epidemiol. 2015;68(9):1046-1058. doi:10.1016/j.jclinepi.2015.05.029PubMedGoogle ScholarCrossref

10. Kimmelman  J, Mogil  JS, Dirnagl  U.  Distinguishing between exploratory and confirmatory preclinical research will improve translation.  PLoS Biol. 2014;12(5):e1001863. doi:10.1371/journal.pbio.1001863PubMedGoogle ScholarCrossref