วิธีทำการทดสอบฟรีดแมนใน r
การทดสอบฟรีดแมน เป็นทางเลือกแบบไม่มีพารามิเตอร์ในการวัดความแปรปรวนแบบซ้ำๆ ใช้เพื่อพิจารณาว่ามีความแตกต่างที่มีนัยสำคัญทางสถิติระหว่างค่าเฉลี่ยของกลุ่มสามกลุ่มขึ้นไปซึ่งมีวิชาเดียวกันปรากฏในแต่ละกลุ่มหรือไม่
บทช่วยสอนนี้จะอธิบายวิธีการทดสอบฟรีดแมนใน R
ตัวอย่าง: การทดสอบฟรีดแมนในอาร์
เพื่อทำการทดสอบฟรีดแมนใน R เราสามารถใช้ฟังก์ชัน Friedman.test() ซึ่งใช้ไวยากรณ์ต่อไปนี้:
Friedman.test (y, กลุ่ม, บล็อก)
ทอง:
- y: เวกเตอร์ของค่าการตอบสนอง
- กลุ่ม: เวกเตอร์ของค่าที่บ่งบอกถึง “กลุ่ม” ที่มีการสังเกต
- บล็อก: เวกเตอร์ของค่าที่ระบุตัวแปร “การบล็อก”
ฟังก์ชันนี้สร้างสถิติการทดสอบไคสแควร์และค่า p ที่สอดคล้องกัน หากค่า p ต่ำกว่าระดับนัยสำคัญที่กำหนด (ตัวเลือกทั่วไปคือ 0.10, 0.05 และ 0.01) ก็มีหลักฐานเพียงพอว่าค่าเฉลี่ยระหว่างแต่ละกลุ่มไม่เท่ากัน
เพื่อสาธิตวิธีใช้ฟีเจอร์นี้ เราจะสร้างชุดข้อมูลที่แสดงเวลาตอบสนองของผู้ป่วย 5 รายที่ได้รับยาที่แตกต่างกัน 4 ชนิด เนื่องจากผู้ป่วยแต่ละรายจะถูกวัดด้วยยาแต่ละชนิดจากทั้งหมดสี่ชนิด เราจะใช้การทดสอบของฟรีดแมนเพื่อตรวจสอบว่าเวลาตอบสนองโดยเฉลี่ยแตกต่างกันระหว่างยาแต่ละชนิดหรือไม่
ขั้นแรก เราจะสร้างชุดข้อมูล:
#create data data <- data.frame(person = rep(1:5, each=4), drug = rep(c(1, 2, 3, 4), times=5), score = c(30, 28, 16, 34, 14, 18, 10, 22, 24, 20, 18, 30, 38, 34, 20, 44, 26, 28, 14, 30)) #view data data person drug score 1 1 1 30 2 1 2 28 3 1 3 16 4 1 4 34 5 2 1 14 6 2 2 18 7 2 3 10 8 2 4 22 9 3 1 24 10 3 2 20 11 3 3 18 12 3 4 30 13 4 1 38 14 4 2 34 15 4 3 20 16 4 4 44 17 5 1 26 18 5 2 28 19 5 3 14 20 5 4 30
ต่อไป เราจะทำการทดสอบฟรีดแมนโดยใช้ คะแนน เป็นตัวแปรตอบสนอง ยา เป็นตัวแปรการจัดกลุ่ม และ บุคคล เป็นตัวแปรการบล็อก:
#perform Friedman Test
friedman.test(y=data$score, groups=data$drug, blocks=data$person)
Friedman rank sum test
data: data$score, data$drug and data$person
Friedman chi-squared = 13.56, df = 3, p-value = 0.00357
สถิติการทดสอบไคสแควร์คือ 13.56 และค่า p ที่สอดคล้องกันคือ 0.00357 เนื่องจากค่า p นี้น้อยกว่า 0.05 เราจึงสามารถปฏิเสธสมมติฐานว่างที่ว่าเวลาตอบสนองโดยเฉลี่ยเท่ากันสำหรับยาทั้งสี่ชนิด เรามีหลักฐานเพียงพอที่จะสรุปว่าประเภทของยาที่ใช้ส่งผลให้เกิดความแตกต่างที่มีนัยสำคัญทางสถิติในเวลาตอบสนอง
แม้ว่าการทดสอบของฟรีดแมนจะบอกเราว่าเวลาตอบสนองโดยเฉลี่ยระหว่างยาต่างกันหรือไม่ แต่ก็ไม่ได้บอกเราโดยเฉพาะว่ายาตัวใดมีเวลาตอบสนองโดยเฉลี่ยต่างกัน เพื่อให้เข้าใจสิ่งนี้ เราจำเป็นต้องทำการทดสอบหลังการทดสอบ
สำหรับการทดสอบฟรีดแมน การทดสอบหลังการทดสอบที่เหมาะสมคือการทดสอบผลรวมอันดับวิลคอกซันแบบคู่พร้อมการแก้ไข Bonferroni ซึ่งสามารถนำไปใช้ได้โดยใช้ไวยากรณ์ต่อไปนี้:
pairwise.wilcox.test(ข้อมูล $score, data$drug, p.adj = “bonf”)
ทอง:
- x: เวกเตอร์การตอบสนอง
- g: การจัดกลุ่มเวกเตอร์
- p.adj: วิธีการปรับค่า p; ตัวเลือกได้แก่ holm, hochberg, hommel, bonferroni, BH, BY, fdr และไม่มี
นี่คือไวยากรณ์ที่เราจะใช้เป็นตัวอย่างของเรา:
#perform post-hoc tests
pairwise.wilcox.test(data$score, data$drug, p.adj = "bonf")
Pairwise comparisons using Wilcoxon rank sum test
data: data$score and data$drug
1 2 3
2 1,000 - -
3 0.449 0.210 -
4 1,000 1,000 0.072
P value adjustment method: bonferroni
ซึ่งจะสร้างเมทริกซ์ที่แสดงค่า p สำหรับการทดสอบผลรวมอันดับวิลคอกสันแต่ละคู่ จะเห็นว่ากลุ่มยาเพียงกลุ่มเดียวที่มีความแตกต่างกันอย่างมีนัยสำคัญทางสถิติที่ 0.10 คือกลุ่มที่ 3 และ 4 ( p = 0.072 )