Chuyển đến nội dung chính

Kiểm định Mann-Whitney U: Phương án phi tham số thay thế t-test

Mann-Whitney U là kiểm định phi tham số dựa trên thứ hạng để so sánh hai nhóm độc lập khi dữ liệu không đáp ứng giả định chuẩn của t-test.
Đã cập nhật 4 thg 5, 2026  · 10 phút đọc

Bạn từng chạy t-test, nhận được một p-value kỳ lạ, rồi phát hiện dữ liệu của mình chẳng hề gần phân phối chuẩn?

Ai cũng từng gặp chuyện này. Vấn đề của t-test là nó giả định dữ liệu theo phân phối chuẩn. Khi không đúng, kết quả có thể gây hiểu nhầm. Dữ liệu lệch và cỡ mẫu nhỏ đều vi phạm giả định chuẩn. Và dữ liệu thực tế hiếm khi cư xử đúng như sách giáo khoa mô tả.

Kiểm định Mann-Whitney U ra đời để khắc phục. Đây là phương pháp phi tham số thay thế t-test, so sánh hai nhóm dựa trên thứ hạng thay vì trung bình, nên không quan tâm đến hình dạng phân phối của bạn.

Trong bài viết này, tôi sẽ trình bày kiểm định Mann-Whitney U là gì, khi nào dùng, cách tính toán hoạt động ra sao, và cách chạy cũng như diễn giải trong cả Python và R.

Nhưng t-test chính xác là gì? Nếu bạn thắc mắc điều đó, hãy đọc bài Giới thiệu về T-Test trong Python của chúng tôi - bài viết sẽ giải đáp mọi câu hỏi của bạn.

Kiểm định Mann-Whitney U là gì?

Mann-Whitney U là kiểm định thống kê phi tham số dùng để so sánh hai nhóm độc lập.

Không giống t-test, nó không giả định dữ liệu theo phân phối chuẩn. Nó so sánh phân phối của hai nhóm bằng cách chuyển các giá trị thô thành thứ hạng và phân tích chúng. Vì vậy, đây là lựa chọn phù hợp khi dữ liệu bị lệch, có ngoại lệ, hoặc không đáp ứng giả định chuẩn theo bất kỳ cách nào khác.

Bạn cũng sẽ thấy nó được gọi là kiểm định tổng hạng Wilcoxon (Wilcoxon rank-sum). Về mặt thực tế, hai tên gọi này đồng nghĩa.

Khi nào dùng kiểm định Mann-Whitney U

Kiểm định Mann-Whitney U cần một tập điều kiện cụ thể. Bạn chỉ nên dùng khi tất cả điều sau đúng:

  • Hai nhóm độc lập: Các mẫu không chồng lấn, và giá trị của một nhóm không ảnh hưởng nhóm kia
  • Dữ liệu thứ bậc hoặc liên tục: Ví dụ điểm kiểm tra, thời gian phản hồi, hoặc bất kỳ giá trị đo lường nào
  • Phân phối không chuẩn: Dữ liệu bị lệch, có đuôi dày, hoặc bạn không thể xác nhận tính chuẩn với cỡ mẫu nhỏ
  • Cỡ mẫu nhỏ: Khi bạn không có đủ dữ liệu để dựa vào định lý giới hạn trung tâm

Hãy cùng đi qua một ví dụ.

Giả sử bạn có hai lớp học dạy bằng phương pháp khác nhau và muốn biết lớp nào có kết quả thi tốt hơn. Bạn vẽ biểu đồ điểm và thấy chúng không theo phân phối chuẩn - một lớp có vài ngoại lệ kéo phân phối lệch phải. T-test so sánh trung bình nhóm, nên các ngoại lệ đó kéo trung bình lên và làm một lớp trông có vẻ tốt hơn thực tế.

Trung bình bị lệch đó đi vào tính toán t-test, và p-value bạn nhận được không phản ánh khác biệt giữa các nhóm. Kiểm định Mann-Whitney U không gặp vấn đề đó vì nó làm việc với thứ hạng thay vì điểm thô. Một ngoại lệ duy nhất tối đa chỉ là giá trị có thứ hạng cao nhất, nên không thể bóp méo kết quả như cách nó ảnh hưởng đến trung bình.

Đây cũng là lựa chọn ưu tiên khi bạn làm việc với dữ liệu thứ bậc, như phản hồi khảo sát theo thang 1-5. Những giá trị đó không thực sự liên tục, nên tính trung bình không mấy ý nghĩa.

Công thức kiểm định Mann-Whitney U

Kiểm định cho ra hai thống kê U, một cho mỗi nhóm. Đây là công thức:

Mann-Whitney u test formula

Công thức kiểm định Mann-Whitney U

Trong đó:

  • n1n2 là kích thước mẫu của nhóm 1 và nhóm 2

  • R1R2 là tổng hạng của mỗi nhóm - tổng tất cả thứ hạng gán cho các quan sát của từng nhóm

Tổng hạng được tính bằng cách gộp tất cả giá trị từ cả hai nhóm, sắp xếp từ nhỏ đến lớn, và gán thứ hạng cho từng giá trị. Giá trị nhỏ nhất nhận hạng 1, tiếp theo là hạng 2, v.v. Sau đó bạn cộng riêng các thứ hạng thuộc về mỗi nhóm.

Thống kê kiểm định là giá trị nhỏ hơn giữa U1U2. Bạn sẽ so sánh nó với giá trị tới hạn hoặc dùng để tính p-value.

Tin tốt là bạn không cần tự tính tay. Cả Python và R đều làm giúp bạn, tôi sẽ minh họa ngay sau đây.

Các giả định của kiểm định Mann-Whitney U

Mann-Whitney U linh hoạt hơn t-test, nhưng vẫn có ba giả định bạn cần tuân thủ:

  • Mẫu độc lập: Hai nhóm không ảnh hưởng lẫn nhau. Các quan sát ở một nhóm không liên hệ với các quan sát ở nhóm còn lại
  • Dữ liệu thứ bậc hoặc liên tục: Dữ liệu cần có trật tự tự nhiên - bạn có thể nói một giá trị cao hơn hoặc thấp hơn giá trị khác
  • Hình dạng phân phối tương tự: Nếu bạn muốn diễn giải kết quả như so sánh trung vị, cả hai nhóm nên có phân phối có hình dạng xấp xỉ giống nhau. Nếu hình dạng khác nhau, kiểm định vẫn hoạt động, nhưng bạn đang so sánh trung bình thứ hạng chứ không phải trung vị

Giả định thứ ba là điều gây bối rối nhất.

Mann-Whitney U thường được mô tả là kiểm định cho trung vị, nhưng chỉ đúng khi hai phân phối có hình dạng tương tự. Nếu không, kết quả cho bạn biết điều tổng quát hơn - liệu các giá trị trong một nhóm có xu hướng cao hơn nhóm còn lại hay không.

Kiểm định Mann-Whitney U trong Python

Mô-đun scipy.stats của Python có hàm cho kiểm định Mann-Whitney U. Đây là ví dụ đơn giản dùng điểm thi của hai lớp.

from scipy.stats import mannwhitneyu

class_a = [72, 85, 90, 65, 78, 88, 95, 70, 83, 76]
class_b = [60, 55, 74, 68, 80, 58, 63, 71, 66, 59]

stat, p_value = mannwhitneyu(class_a, class_b, alternative="two-sided")

print(f"U statistic: {stat}")
print(f"P-value: {p_value:.4f}")

Mann-Whitney u test in Python

Kiểm định Mann-Whitney U trong Python

Đối số alternative="two-sided" cho biết bạn đang kiểm tra xem hai nhóm khác nhau theo cả hai hướng. Bạn không giả định trước nhóm nào điểm cao hơn. Nếu có giả thuyết có hướng, bạn sẽ dùng "less" hoặc "greater".

P-value ở đây là 0.0046, thấp hơn ngưỡng chuẩn 0.05. Điều đó nghĩa là bạn có thể bác bỏ giả thuyết không, vì có khác biệt có ý nghĩa thống kê giữa phân phối điểm của hai lớp.

Giá trị U tự thân không cho bạn nhiều thông tin nếu thiếu ngữ cảnh. Bạn có thể tập trung vào p-value để quyết định khác biệt có ý nghĩa thống kê hay không, và xem dữ liệu thô hoặc trung vị để hiểu hướng khác biệt.

Kiểm định Mann-Whitney U trong R

R chạy kiểm định Mann-Whitney U thông qua hàm wilcox.test(). Tôi sẽ dùng lại ví dụ điểm thi ở trên.

class_a <- c(72, 85, 90, 65, 78, 88, 95, 70, 83, 76)
class_b <- c(60, 55, 74, 68, 80, 58, 63, 71, 66, 59)

wilcox.test(class_a, class_b, alternative = "two.sided")

Mann-Whitney u test in R

Kiểm định Mann-Whitney U trong R

Thống kê W giống với thống kê U - R chỉ dán nhãn khác. Cách diễn giải cũng như trong Python: p-value 0.0029 thấp hơn 0.05, nên có khác biệt có ý nghĩa thống kê giữa hai nhóm.

Bạn cũng có thể thấy cảnh báo về các giá trị đồng hạng (ties) trong dữ liệu.

Điều đó xảy ra khi hai hay nhiều giá trị trùng nhau giữa hai nhóm, ảnh hưởng cách gán thứ hạng. R xử lý giúp bạn, nhưng nếu có nhiều đồng hạng, bạn nên kiểm tra liệu dữ liệu có đáp ứng các giả định của kiểm định hay không.

Cách diễn giải kết quả kiểm định Mann-Whitney U

Giả thuyết không của kiểm định Mann-Whitney U là hai nhóm đến từ cùng một phân phối - nói cách khác, không có khác biệt giữa chúng. Nhiệm vụ của bạn là tìm bằng chứng chống lại điều đó.

P-value là cách bạn làm điều đó:

  • p < 0.05: Bạn bác bỏ giả thuyết không. Hai nhóm có phân phối khác nhau, và khác biệt có ý nghĩa thống kê
  • p >= 0.05: Bạn không có đủ bằng chứng để bác bỏ giả thuyết không. Điều đó không có nghĩa hai nhóm giống hệt nhau, chỉ là dữ liệu không cho thấy khác biệt rõ ràng

Hãy nhớ Mann-Whitney U so sánh các phân phối. Kết quả có ý nghĩa cho bạn biết các giá trị trong một nhóm có xu hướng xếp hạng cao hơn nhóm kia - không phải trung bình cao hơn. Nếu bạn muốn mô tả hướng khác biệt, hãy xem trung vị của mỗi nhóm, không phải trung bình.

Mann-Whitney U so với t-test

Hai kiểm định này giải quyết cùng một vấn đề (so sánh hai nhóm) nhưng làm theo cách khác nhau, và chọn sai sẽ ảnh hưởng kết quả.

t-test

T-test so sánh trung bình của hai nhóm. Nó xây dựng trên giả định dữ liệu theo phân phối chuẩn, và khi điều đó đúng, đây là kiểm định tốt.

Vấn đề nằm ở giả định đó. Nếu dữ liệu bị lệch hoặc đến từ mẫu nhỏ khó xác nhận chuẩn, kết quả t-test có thể kém tin cậy. Trung bình bị kéo bởi giá trị cực đoan, và p-value sẽ phản ánh điều đó.

Dùng t-test khi:

  • Dữ liệu của bạn phân phối chuẩn
  • Bạn có cỡ mẫu đủ lớn
  • Bạn làm việc với dữ liệu liên tục không quá lệch hoặc có ngoại lệ

Kiểm định Mann-Whitney U

Mann-Whitney U so sánh phân phối thay vì trung bình. Nó xếp hạng tất cả giá trị từ cả hai nhóm cùng nhau và kiểm tra liệu một nhóm có liên tục xếp hạng cao hơn nhóm kia. Vì làm việc với thứ hạng, ngoại lệ và độ lệch không làm méo kết quả theo cách tương tự.

Khi dữ liệu thực sự phân phối chuẩn, t-test sẽ phát hiện khác biệt tin cậy hơn. Mann-Whitney U linh hoạt hơn, nhưng bạn đánh đổi một phần độ nhạy.

Dùng Mann-Whitney U khi:

  • Dữ liệu của bạn không phân phối chuẩn
  • Bạn làm việc với dữ liệu thứ bậc
  • Bạn có cỡ mẫu nhỏ và không thể xác nhận tính chuẩn
  • Có ngoại lệ và bạn không thể loại bỏ chúng

Đây là so sánh nhanh giữa hai phương pháp:

t-test compared to Mann-Whitney U test

So sánh t-test và Mann-Whitney U

Khi phân vân, hãy kiểm tra phân phối trước. Nếu tương đối chuẩn, dùng t-test. Nếu không, Mann-Whitney U là lựa chọn an toàn hơn.

Các lỗi thường gặp với kiểm định Mann-Whitney U

Hầu hết lỗi bắt nguồn từ việc không hiểu rõ kiểm định thực sự làm gì. Dưới đây là những lỗi thường gặp nhất.

Cho rằng nó so sánh trung bình

Đây là lỗi phổ biến nhất. Mann-Whitney U so sánh phân phối, không phải trung bình. Kết quả có ý nghĩa cho biết các giá trị trong một nhóm có xu hướng xếp hạng cao hơn - không phải trung bình cao hơn. Nếu cần mô tả khác biệt, hãy báo cáo trung vị, không phải trung bình.

Bỏ qua khác biệt hình dạng phân phối

Nếu hai nhóm có hình dạng phân phối khác nhau - một lệch phải, một đối xứng - bạn không thể diễn giải kết quả như so sánh trung vị. Kiểm định vẫn chạy, nhưng đầu ra thể hiện khác biệt ở toàn bộ phân phối, không phải dịch chuyển ở trung tâm. Hãy kiểm tra phân phối trước khi rút kết luận về trung vị.

Diễn giải sai p-value

P-value dưới 0.05 nghĩa là khác biệt có ý nghĩa thống kê. Nó không cho biết mức độ lớn của khác biệt hay mức độ quan trọng trên thực tế. Một cỡ mẫu rất lớn có thể cho p-value có ý nghĩa dù khác biệt thực sự rất nhỏ. Nếu kích thước hiệu ứng quan trọng với phân tích của bạn, hãy tính riêng.

Dùng cho dữ liệu cặp

Mann-Whitney U dành cho hai nhóm độc lập. Nếu dữ liệu là cặp - cùng đối tượng đo hai lần, hoặc cặp ghép - bạn cần dùng kiểm định Wilcoxon signed-rank.

Khi không nên dùng kiểm định Mann-Whitney U

Mann-Whitney U không phải công cụ phù hợp cho mọi tình huống. Dưới đây là khi bạn nên chọn phương pháp khác.

Dữ liệu của bạn là dữ liệu cặp

Nếu cùng đối tượng xuất hiện ở cả hai nhóm - đo trước và sau, hoặc cặp ghép - hai mẫu không độc lập. Mann-Whitney U giả định chúng độc lập, nên dùng ở đây sẽ bỏ qua mối quan hệ giữa các quan sát và cho kết quả kém tin cậy. Hãy dùng kiểm định Wilcoxon signed-rank.

Bạn có hơn hai nhóm

Mann-Whitney U chỉ so sánh hai nhóm một lần. Nếu bạn so sánh từ ba nhóm trở lên, hãy dùng kiểm định Kruskal-Wallis, tương đương phi tham số của ANOVA một yếu tố và có thể xử lý nhiều nhóm.

Bạn có mẫu lớn với dữ liệu chuẩn

Ưu điểm chính của Mann-Whitney U là không giả định tính chuẩn. Nếu dữ liệu phân phối chuẩn và cỡ mẫu đủ lớn để xác nhận điều đó, t-test là lựa chọn tốt hơn. Nó có công suất thống kê cao hơn trong tình huống này, nghĩa là dễ phát hiện khác biệt thực khi chúng tồn tại.

Kết luận

Mann-Whitney U là giải pháp tuyệt vời khi dữ liệu của bạn không phân phối chuẩn, nên t-test không phù hợp.

Nó làm việc với thứ hạng thay vì giá trị thô, nên tránh được các giả định khiến kiểm định tham số kém tin cậy trên dữ liệu lệch hoặc cỡ mẫu nhỏ. Điều đó khiến đây là kiểm định tốt cho phân tích thực tế, nơi dữ liệu hiếm khi cư xử như bạn mong muốn.

Bài học lớn hơn ở đây là lựa chọn kiểm định. Không có kiểm định nào phù hợp với mọi bộ dữ liệu. Bạn luôn nên kiểm tra dữ liệu trước - phân phối, cấu trúc và cỡ mẫu - và để các đặc điểm đó dẫn dắt lựa chọn của bạn. Lựa chọn đúng là lựa chọn phù hợp với dữ liệu của bạn.

Nếu bạn mới làm quen thống kê hoặc muốn đào sâu chủ đề này, lộ trình Statistician in R của chúng tôi sẽ giúp bạn sẵn sàng đi làm chỉ với 52 giờ học liệu.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Chuyên gia Khoa học Dữ liệu Cấp cao, làm việc tại Croatia. Tác giả Công nghệ Hàng đầu với hơn 700 bài viết đã xuất bản, đạt trên 10 triệu lượt xem. Tác giả cuốn sách Tự động hóa Machine Learning với TPOT.

Câu hỏi thường gặp

Kiểm định Mann-Whitney U được dùng để làm gì?

Mann-Whitney U được dùng để so sánh hai nhóm độc lập khi bạn không thể giả định dữ liệu theo phân phối chuẩn. Nó xếp hạng tất cả giá trị từ cả hai nhóm cùng nhau và kiểm tra liệu một nhóm có liên tục xếp hạng cao hơn nhóm kia hay không. Phương pháp này áp dụng cho cả dữ liệu thứ bậc và liên tục.

Mann-Whitney U khác gì so với t-test?

T-test so sánh trung bình của hai nhóm và giả định phân phối chuẩn. Mann-Whitney U so sánh phân phối bằng thứ hạng, nên không có giả định đó. Khi dữ liệu bị lệch hoặc cỡ mẫu nhỏ, Mann-Whitney U là lựa chọn an toàn hơn.

Khi nào tôi nên dùng kiểm định Mann-Whitney U?

Hãy dùng khi bạn có hai nhóm độc lập, dữ liệu là thứ bậc hoặc liên tục, và bạn không thể xác nhận tính chuẩn. Đây cũng là lựa chọn phù hợp khi cỡ mẫu nhỏ và có ngoại lệ. Nếu dữ liệu phân phối chuẩn và mẫu lớn, t-test thường cho kết quả tốt hơn.

P-value cho bạn biết gì trong kiểm định Mann-Whitney U?

P-value dưới 0.05 nghĩa là có khác biệt có ý nghĩa thống kê giữa phân phối của hai nhóm. Nó không cho biết mức độ lớn của khác biệt hoặc ý nghĩa thực tiễn. Để làm điều đó, bạn cần tính kích thước hiệu ứng riêng và xem trung vị của mỗi nhóm.

Tôi có thể dùng Mann-Whitney U cho dữ liệu cặp không?

Không. Mann-Whitney U giả định hai nhóm độc lập, nghĩa là giá trị của một nhóm không ảnh hưởng nhóm kia. Nếu dữ liệu là cặp - như đo trước và sau trên cùng đối tượng - hãy dùng kiểm định Wilcoxon signed-rank. Dùng Mann-Whitney U cho dữ liệu cặp sẽ bỏ qua mối liên hệ giữa các quan sát và cho kết quả kém tin cậy.

Chủ đề

Học với DataCamp

Tracks

Nhà phân tích dữ liệu trong R

36 giờ
Từ phân tích dữ liệu thăm dò với dplyr đến trực quan hóa dữ liệu với ggplot2—hãy trang bị cho mình những kỹ năng R cần thiết để thành công trong vai trò nhà phân tích dữ liệu!
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow
Có liên quan

blogs

Claude Opus 4.6: Tính năng, điểm chuẩn, các bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu bảng xếp hạng về mã hóa theo hướng tác nhân và suy luận phức tạp. Thêm nữa, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem thêmXem thêm