วิธีทำการทดสอบฟรีดแมนใน 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 )

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *