ข้ามไปยังเนื้อหาหลัก

การทดสอบ Mann-Whitney U: ทางเลือกแบบนอนพาราเมตริกแทน t-test

Mann-Whitney U test เป็นการทดสอบแบบนอนพาราเมตริกที่อิงอันดับเพื่อเปรียบเทียบสองกลุ่มอิสระ เมื่อข้อมูลไม่เป็นไปตามสมมติฐานการแจกแจงปกติที่ t-test ต้องการ
อัปเดตแล้ว 4 พ.ค. 2569  · 10 นาที อ่าน

เคยรัน t-test ได้ค่า p แปลก ๆ แล้วมารู้ทีหลังว่าข้อมูลไม่ได้ใกล้เคียงการแจกแจงปกติเลยหรือไม่?

เรื่องแบบนี้เกิดขึ้นกับทุกคนสักครั้งหนึ่ง ปัญหาของ t-test คือสมมติว่าข้อมูลต้องแจกแจงแบบปกติ เมื่อไม่เป็นเช่นนั้น ผลลัพธ์อาจทำให้เข้าใจผิด ข้อมูลที่เบ้และขนาดตัวอย่างเล็ก ล้วนละเมิดสมมติฐานความเป็นปกติ และข้อมูลจริงในโลกก็มักไม่เป็นไปตามตำรา

การทดสอบ Mann-Whitney U เข้ามาแก้ปัญหานี้ เป็นทางเลือกแบบนอนพาราเมตริกแทน t-test ที่เปรียบเทียบสองกลุ่มโดยอิงอันดับ (ranks) แทนค่าเฉลี่ย จึงไม่แคร์รูปร่างการแจกแจงของข้อมูล

ในบทความนี้ จะอธิบายว่าการทดสอบ Mann-Whitney U คืออะไร ควรใช้เมื่อใด หลักคณิตทำงานอย่างไร และวิธีรันกับการตีความผลทั้งใน Python และ R

แต่ t-test คืออะไรกันแน่? หากมีคำถามนี้ ลองอ่านบทนำสู่ Python T-Tests ของเรา ซึ่งจะตอบทุกข้อสงสัย

Mann-Whitney U Test คืออะไร?

Mann-Whitney U test เป็นการทดสอบทางสถิติแบบนอนพาราเมตริกที่ใช้เปรียบเทียบสองกลุ่มที่เป็นอิสระต่อกัน

ต่างจาก t-test ตรงที่ไม่สมมติว่าข้อมูลแจกแจงแบบปกติ มันเปรียบเทียบการแจกแจงของสองกลุ่มโดยแปลงค่าดิบเป็นอันดับแล้ววิเคราะห์ จึงเหมาะเมื่อข้อมูลเบ้ มีค่าแปลกปลอม (outliers) หรือไม่เป็นไปตามสมมติฐานความเป็นปกติในทางใดทางหนึ่ง

ยังเรียกอีกชื่อว่า Wilcoxon rank-sum test ซึ่งในทางปฏิบัติถือว่าเป็นคำพ้องความหมาย

เมื่อใดควรใช้ Mann-Whitney U Test

การทดสอบ Mann-Whitney U ต้องการเงื่อนไขเฉพาะ ควรใช้เฉพาะเมื่อทุกข้อต่อไปนี้เป็นจริง:

  • สองกลุ่มเป็นอิสระจากกัน: ตัวอย่างไม่ซ้อนทับกัน และค่าของกลุ่มหนึ่งไม่ส่งอิทธิพลต่ออีกกลุ่ม
  • ข้อมูลประเภทลำดับ (ordinal) หรือเชิงต่อเนื่อง: เช่น คะแนนสอบ เวลาในการตอบสนอง หรือค่าที่วัดได้ใด ๆ
  • การแจกแจงไม่ปกติ: ข้อมูลเบ้ มีปลายหนัก หรือมีขนาดตัวอย่างเล็กจนยืนยันความเป็นปกติไม่ได้
  • ขนาดตัวอย่างเล็ก: เมื่อมีข้อมูลไม่มากพอที่จะอาศัยทฤษฎีขีดจำกัดส่วนกลาง

มาดูตัวอย่างกัน

สมมติว่ามีสองชั้นเรียนที่ใช้วิธีสอนต่างกันและต้องการรู้ว่าชั้นใดได้ผลสอบดีกว่า พอพล็อตคะแนนแล้วพบว่าไม่แจกแจงปกติ — หนึ่งชั้นมีค่าแปลกปลอมไม่กี่ค่าดึงการแจกแจงไปด้านขวา t-test เปรียบเทียบค่าเฉลี่ยของกลุ่ม ดังนั้นค่าแปลกปลอมจะดึงค่าเฉลี่ยให้สูงขึ้นและทำให้ชั้นนั้นดูดีกว่าความเป็นจริง

ค่าเฉลี่ยที่เบ้ถูกนำไปใช้ในการคำนวณ t-test และค่า p ที่ได้จึงไม่สะท้อนความแตกต่างระหว่างกลุ่ม การทดสอบ Mann-Whitney U ไม่มีปัญหานี้เพราะทำงานกับอันดับแทนคะแนนดิบ ค่าแปลกปลอมเพียงค่าเดียวจะเป็นเพียงค่าที่มีอันดับสูงสุด จึงบิดเบือนผลไม่ได้เหมือนที่ทำกับค่าเฉลี่ย

ยังเหมาะมากเมื่อทำงานกับข้อมูลเชิงลำดับ เช่น คำตอบแบบสเกล 1-5 ค่าพวกนี้ไม่ใช่เชิงต่อเนื่องแท้ ๆ การคำนวณค่าเฉลี่ยจึงไม่ค่อยมีความหมาย

สูตร Mann-Whitney U Test

แบบทดสอบนี้ให้สถิติ U สองค่า หนึ่งค่าต่อกลุ่ม นี่คือสูตร:

Mann-Whitney u test formula

สูตรการทดสอบ Mann-Whitney U

โดยที่:

  • n1 และ n2 คือขนาดตัวอย่างของกลุ่มที่ 1 และกลุ่มที่ 2

  • R1 และ R2 คือผลรวมอันดับของแต่ละกลุ่ม — ผลรวมของอันดับทั้งหมดที่กำหนดให้กับค่าของแต่ละกลุ่ม

วิธีคำนวณผลรวมอันดับคือรวมค่าทั้งหมดจากทั้งสองกลุ่ม เรียงจากน้อยไปมาก แล้วกำหนดอันดับให้แต่ละค่า ค่าที่น้อยสุดได้อันดับ 1 ถัดไปได้อันดับ 2 และต่อไปเรื่อย ๆ จากนั้นจึงแยกบวกอันดับของแต่ละกลุ่ม

สถิติทดสอบคือค่าน้อยกว่าระหว่าง U1 และ U2 แล้วจึงเปรียบเทียบกับค่าวิกฤตหรือใช้คำนวณค่า p

ข่าวดีก็คือไม่ต้องคำนวณเอง Python และ R ทำให้เรียบร้อย เดี๋ยวจะแสดงให้ดู

สมมติฐานของ Mann-Whitney U Test

การทดสอบ Mann-Whitney U ยืดหยุ่นกว่า t-test แต่ยังมี 3 สมมติฐานที่ต้องคำนึงถึง:

  • ตัวอย่างอิสระจากกัน: สองกลุ่มไม่ส่งอิทธิพลซึ่งกันและกัน การสังเกตในกลุ่มหนึ่งไม่สัมพันธ์กับอีกกลุ่ม
  • ข้อมูลแบบลำดับหรือเชิงต่อเนื่อง: ข้อมูลต้องมีลำดับธรรมชาติ — สามารถบอกได้ว่าค่าใดสูงหรือต่ำกว่าอีกค่า
  • รูปร่างการแจกแจงใกล้เคียงกัน: หากต้องการตีความผลว่าเป็นการเปรียบเทียบมัธยฐาน ทั้งสองกลุ่มควรมีการแจกแจงที่รูปร่างใกล้เคียงกัน หากต่างกัน การทดสอบยังทำงานได้ แต่คุณกำลังเปรียบเทียบอันดับเฉลี่ย ไม่ใช่มัธยฐาน

สมมติฐานข้อที่สามมักทำให้หลายคนสับสนมากที่สุด

มักบอกกันว่า Mann-Whitney U เป็นการทดสอบมัธยฐาน แต่จริงเฉพาะเมื่อสองการแจกแจงมีรูปร่างใกล้เคียงกัน หากไม่ใช่ ผลลัพธ์จะบอกสิ่งที่กว้างกว่า — ว่าค่าในกลุ่มหนึ่งมีแนวโน้มสูงกว่าอีกกลุ่มหรือไม่

Mann-Whitney U Test ใน Python

โมดูล scipy.stats ของ Python มีฟังก์ชันสำหรับ Mann-Whitney U test ต่อไปนี้คือตัวอย่างง่าย ๆ โดยใช้คะแนนสอบจากสองชั้นเรียน

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

การทดสอบ Mann-Whitney U ใน Python

อาร์กิวเมนต์ alternative="two-sided" บอกว่ากำลังทดสอบความแตกต่างทั้งสองทิศทาง ไม่ได้ตั้งสมมติก่อนว่ากลุ่มใดสูงกว่า หากมีสมมติฐานแบบมีทิศทาง ควรใช้ "less" หรือ "greater" แทน

ค่า p ที่นี่คือ 0.0046 ซึ่งต่ำกว่าเกณฑ์มาตรฐาน 0.05 หมายความว่าสามารถปฏิเสธสมมติฐานศูนย์ได้ เนื่องจากมีความแตกต่างอย่างมีนัยสำคัญทางสถิติระหว่างการแจกแจงคะแนนของสองชั้นเรียน

ค่าสถิติ U เพียงอย่างเดียวไม่ได้บอกอะไรมากนักหากไร้บริบท ควรโฟกัสที่ค่า p เพื่อพิจารณาว่าความแตกต่างมีนัยสำคัญหรือไม่ และดูข้อมูลดิบหรือมัธยฐานเพื่อเข้าใจทิศทางของความแตกต่างนั้น

Mann-Whitney U Test ใน R

R รัน Mann-Whitney U test ผ่านฟังก์ชัน wilcox.test() จะใช้ตัวอย่างคะแนนสอบเดิม

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

Mann-Whitney U test ใน R

สถิติ W เทียบเท่ากับสถิติ U — R เพียงติดป้ายต่างกัน การตีความเหมือนกับใน Python: ค่า p 0.0029 ต่ำกว่า 0.05 แสดงว่ามีความแตกต่างอย่างมีนัยสำคัญทางสถิติระหว่างสองกลุ่ม

อาจเห็นคำเตือนเกี่ยวกับ ties ในข้อมูล

เกิดขึ้นเมื่อมีค่าที่เท่ากันในทั้งสองกลุ่ม ส่งผลต่อการกำหนดอันดับ R จัดการให้ แต่ถ้ามี ties จำนวนมาก ควรตรวจสอบว่าข้อมูลตรงตามสมมติฐานของการทดสอบหรือไม่

วิธีตีความผลลัพธ์ Mann-Whitney U Test

สมมติฐานศูนย์ของ Mann-Whitney U test คือทั้งสองกลุ่มมาจากการแจกแจงเดียวกัน — กล่าวคือไม่มีความแตกต่าง หน้าที่ของคุณคือค้นหาหลักฐานโต้แย้ง

ค่า p คือเครื่องมือในการทำเช่นนั้น:

  • p < 0.05: ปฏิเสธสมมติฐานศูนย์ได้ สองกลุ่มมีการแจกแจงต่างกัน และความแตกต่างมีนัยสำคัญทางสถิติ
  • p >= 0.05: หลักฐานไม่พอที่จะปฏิเสธสมมติฐานศูนย์ ไม่ได้หมายความว่าสองกลุ่มเหมือนกันทุกประการ เพียงแต่ข้อมูลไม่แสดงความแตกต่างชัดเจน

โปรดจำไว้ว่า Mann-Whitney U test เปรียบเทียบการแจกแจง ผลลัพธ์ที่มีนัยสำคัญบอกว่าค่าในกลุ่มหนึ่งมีแนวโน้มจัดอันดับสูงกว่าอีกกลุ่ม — ไม่ใช่ว่าค่าเฉลี่ยสูงกว่า หากต้องการอธิบายทิศทางของความแตกต่าง ให้ดูมัธยฐานของแต่ละกลุ่ม ไม่ใช่ค่าเฉลี่ย

Mann-Whitney U Test เทียบกับ t-Test

ทั้งสองการทดสอบแก้ปัญหาเดียวกัน (เปรียบเทียบสองกลุ่ม) แต่ทำงานต่างกัน และการเลือกผิดจะส่งผลต่อผลลัพธ์

t-test

t-test เปรียบเทียบค่าเฉลี่ย ของสองกลุ่ม โดยตั้งอยู่บนสมมติฐานว่าข้อมูลแจกแจงแบบปกติ และเมื่อเป็นจริงก็เป็นการทดสอบที่ดี

ปัญหาอยู่ที่สมมติฐานนี้ หากข้อมูลเบ้หรือมาจากตัวอย่างเล็กที่ยากจะยืนยันความเป็นปกติ ผลของ t-test อาจไม่น่าเชื่อถือ ค่าเฉลี่ยถูกดึงโดยค่าที่สุดโต่งและค่า p ก็สะท้อนสิ่งนั้น

ใช้ t-test เมื่อ:

  • ข้อมูลแจกแจงแบบปกติ
  • มีขนาดตัวอย่างมากพอ
  • ทำงานกับข้อมูลเชิงต่อเนื่องที่ไม่มีความเบ้หรือค่าแปลกปลอมรุนแรง

Mann-Whitney U test

Mann-Whitney U test เปรียบเทียบการแจกแจง แทนที่จะเป็นค่าเฉลี่ย โดยจัดอันดับค่าทั้งหมดจากทั้งสองกลุ่มร่วมกันและตรวจว่ากลุ่มหนึ่งมีอันดับสูงกว่าอีกกลุ่มอย่างสม่ำเสมอหรือไม่ ด้วยการใช้อันดับ ค่าแปลกปลอมและความเบ้จึงไม่บิดเบือนผลเหมือนเดิม

เมื่อข้อมูลแจกแจงปกติจริง t-test จะตรวจจับความแตกต่างได้เชื่อถือมากกว่า Mann-Whitney U test ยืดหยุ่นกว่า แต่ต้องแลกด้วยความไวที่ลดลงเล็กน้อย

ใช้ Mann-Whitney U test เมื่อ:

  • ข้อมูลไม่แจกแจงปกติ
  • ทำงานกับข้อมูลเชิงลำดับ
  • มีขนาดตัวอย่างเล็กและยืนยันความเป็นปกติไม่ได้
  • มีค่าแปลกปลอมและไม่สามารถลบออกได้

นี่คือการเปรียบเทียบแบบย่อของทั้งสอง:

t-test compared to Mann-Whitney U test

t-test เทียบกับ Mann-Whitney U test

หากไม่แน่ใจ ให้ตรวจการแจกแจงก่อน หากค่อนข้างปกติ ใช้ t-test หากไม่ใช่ Mann-Whitney U test ปลอดภัยกว่า

ข้อผิดพลาดที่พบบ่อยกับ Mann-Whitney U Test

ข้อผิดพลาดส่วนใหญ่เกิดจากการไม่เข้าใจว่าการทดสอบนี้ทำอะไรจริง ๆ ต่อไปนี้คือข้อผิดพลาดที่พบบ่อย

คิดว่ามันเปรียบเทียบค่าเฉลี่ย

นี่คือข้อผิดพลาดที่พบบ่อยที่สุด Mann-Whitney U test เปรียบเทียบการแจกแจง ไม่ใช่ค่าเฉลี่ย ผลลัพธ์ที่มีนัยสำคัญบอกว่าค่าในกลุ่มหนึ่งมีแนวโน้มจัดอันดับสูงกว่า — ไม่ใช่ว่าค่าเฉลี่ยสูงกว่า หากต้องอธิบายความแตกต่าง ให้รายงานมัธยฐาน ไม่ใช่ค่าเฉลี่ย

มองข้ามความต่างของรูปร่างการแจกแจง

หากสองกลุ่มมีรูปร่างการแจกแจงต่างกัน — กลุ่มหนึ่งเบ้ขวา อีกกลุ่มสมมาตร — จะไม่สามารถตีความผลเป็นการเปรียบเทียบมัธยฐานได้ การทดสอบยังรันได้ แต่ผลสะท้อนความต่างของการแจกแจงโดยรวม ไม่ใช่การเลื่อนศูนย์กลาง ตรวจการแจกแจงก่อนสรุปเกี่ยวกับมัธยฐาน

ตีความค่า p ผิดความหมาย

ค่า p ต่ำกว่า 0.05 หมายถึงความแตกต่างมีนัยสำคัญทางสถิติ แต่มิได้บอกขนาดความแตกต่างหรือความสำคัญในทางปฏิบัติ ตัวอย่างที่ใหญ่มากอาจให้ค่า p มีนัยสำคัญ แม้ความต่างจริงจะเล็กน้อย หากขนาดอิทธิพลสำคัญต่อการวิเคราะห์ ควรคำนวณแยกต่างหาก

ใช้กับข้อมูลที่จับคู่กัน

Mann-Whitney U test ใช้สำหรับสองกลุ่มที่เป็นอิสระ หากข้อมูลเป็นแบบจับคู่ — วัดซ้ำในกลุ่มตัวแบบเดียวกัน หรือคู่ที่จับคู่กัน — ควรใช้ Wilcoxon signed-rank test แทน

เมื่อใดไม่ควรใช้ Mann-Whitney U Test

Mann-Whitney U ไม่เหมาะกับทุกสถานการณ์ ต่อไปนี้คือกรณีที่ควรใช้วิธีอื่น

ข้อมูลของคุณเป็นแบบจับคู่

หากตัวแบบเดียวกันปรากฏในทั้งสองกลุ่ม — การวัดก่อน-หลัง หรือคู่ที่จับคู่กัน — ตัวอย่างสองชุดไม่เป็นอิสระ Mann-Whitney U test สมมติว่าข้อมูลเป็นอิสระ ดังนั้นการใช้ในกรณีนี้คือการเมินความสัมพันธ์ระหว่างการสังเกตและให้ผลที่ไม่น่าเชื่อถือ ควรใช้ Wilcoxon signed-rank test

มีมากกว่าสองกลุ่ม

Mann-Whitney U เปรียบเทียบทีละสองกลุ่มเท่านั้น หากต้องเปรียบเทียบสามกลุ่มขึ้นไป ให้ใช้ Kruskal-Wallis test ซึ่งเป็นนอนพาราเมตริกเทียบเท่ากับ one-way ANOVA และรองรับหลายกลุ่ม

มีตัวอย่างขนาดใหญ่และข้อมูลปกติ

ข้อได้เปรียบหลักของ Mann-Whitney U คือไม่สมมติความเป็นปกติ หากข้อมูลแจกแจงปกติและตัวอย่างใหญ่พอที่จะยืนยันได้ t-test จะเหมาะกว่า มีอำนาจทางสถิติมากกว่าในสถานการณ์นั้น หมายถึงมีโอกาสตรวจพบความแตกต่างจริงได้มากกว่า

สรุป

Mann-Whitney U test เป็นทางเลือกที่ยอดเยี่ยมเมื่อข้อมูลไม่แจกแจงปกติ ทำให้ t-test ไม่เหมาะสม

มันทำงานกับอันดับแทนค่าดิบ จึงหลีกเลี่ยงสมมติฐานที่ทำให้การทดสอบแบบพาราเมตริกไม่น่าเชื่อถือบนข้อมูลที่เบ้หรือมีตัวอย่างเล็ก เหมาะกับการวิเคราะห์ในโลกจริงที่ข้อมูลมักไม่เป็นไปตามใจ

บทเรียนที่ใหญ่กว่าคือการเลือกแบบทดสอบ ไม่มีแบบทดสอบใดใช้ได้กับทุกชุดข้อมูล ควรตรวจข้อมูลก่อนเสมอ — การแจกแจง โครงสร้าง และขนาดตัวอย่าง — แล้วให้ลักษณะเหล่านั้นนำทางการเลือก แบบทดสอบที่ถูกต้องคือแบบที่เหมาะกับข้อมูลของคุณ

หากเป็นมือใหม่ด้านสถิติหรืออยากศึกษาเชิงลึก แทร็ก Statistician in R ของเราจะช่วยให้พร้อมทำงานได้ด้วยสื่อการสอน 52 ชั่วโมง

FAQs

การทดสอบ Mann-Whitney U ใช้ทำอะไร?

Mann-Whitney U test ใช้เปรียบเทียบสองกลุ่มที่เป็นอิสระเมื่อไม่สามารถสมมติว่าข้อมูลแจกแจงแบบปกติได้ โดยจัดอันดับค่าทั้งหมดจากทั้งสองกลุ่มร่วมกันและตรวจดูว่ากลุ่มหนึ่งมีอันดับสูงกว่าอีกกลุ่มอย่างสม่ำเสมอหรือไม่ ใช้ได้กับข้อมูลเชิงลำดับและเชิงต่อเนื่อง

Mann-Whitney U test ต่างจาก t-test อย่างไร?

t-test เปรียบเทียบค่าเฉลี่ยของสองกลุ่มและสมมติว่าข้อมูลแจกแจงปกติ ส่วน Mann-Whitney U test เปรียบเทียบการแจกแจงโดยใช้อันดับ จึงไม่ทำสมมติฐานนั้น เมื่อข้อมูลเบ้หรือมีตัวอย่างเล็ก Mann-Whitney U test จะปลอดภัยกว่า

ควรใช้ Mann-Whitney U test เมื่อใด?

ใช้เมื่อมีสองกลุ่มที่เป็นอิสระ ข้อมูลเป็นเชิงลำดับหรือเชิงต่อเนื่อง และยืนยันความเป็นปกติไม่ได้ เหมาะเมื่อขนาดตัวอย่างเล็กและมีค่าแปลกปลอม หากข้อมูลแจกแจงปกติและตัวอย่างใหญ่ t-test มักให้ผลดีกว่า

ค่า p บอกอะไรใน Mann-Whitney U test?

ค่า p ต่ำกว่า 0.05 หมายความว่ามีความแตกต่างอย่างมีนัยสำคัญทางสถิติระหว่างการแจกแจงของสองกลุ่ม แต่มิได้บอกว่าความต่างมีขนาดเท่าไรหรือสำคัญเชิงปฏิบัติหรือไม่ หากต้องการทราบขนาดอิทธิพล ควรคำนวณแยก และดูมัธยฐานของแต่ละกลุ่มประกอบ

สามารถใช้ Mann-Whitney U test กับข้อมูลจับคู่ได้หรือไม่?

ไม่ การทดสอบ Mann-Whitney U สมมติว่าสองกลุ่มเป็นอิสระ หมายความว่าค่าของกลุ่มหนึ่งไม่ส่งอิทธิพลต่ออีกกลุ่ม หากข้อมูลเป็นแบบจับคู่ — เช่น การวัดก่อนและหลังบนตัวแบบเดียวกัน — ให้ใช้ Wilcoxon signed-rank test แทน การใช้ Mann-Whitney U กับข้อมูลจับคู่คือการเมินความสัมพันธ์ระหว่างการสังเกตและทำให้ผลไม่น่าเชื่อถือ

หัวข้อ

เรียนกับ DataCamp

Tracks

นักวิเคราะห์ข้อมูล ใน R

36 ชม.
ตั้งแต่การวิเคราะห์ข้อมูลเชิงสำรวจด้วย dplyr ไปจนถึงการสร้างภาพข้อมูลด้วย ggplot2—พัฒนาทักษะ R ที่ช่วยต่อยอดอาชีพซึ่งคุณต้องมีเพื่อประสบความสำเร็จในฐานะนักวิเคราะห์ข้อมูล!
ดูรายละเอียดRight Arrow
เริ่มหลักสูตร
ดูเพิ่มเติมRight Arrow