วิธีดำเนินการวิเคราะห์ความแปรปรวนสามทางใน r


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

ตัวอย่างต่อไปนี้แสดงวิธีการดำเนินการวิเคราะห์ความแปรปรวนสามทางใน R

ตัวอย่าง: การวิเคราะห์ความแปรปรวนสามทางใน R

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

ผู้วิจัยสงสัยว่าเพศและการแบ่งตัว (ดิวิชั่น 1 หรือ 2) อาจส่งผลต่อความสูงของการกระโดดด้วย ซึ่งเป็นเหตุผลว่าทำไมเขาจึงรวบรวมข้อมูลเกี่ยวกับปัจจัยเหล่านี้ด้วย

เป้าหมายของเขาคือทำการวิเคราะห์ความแปรปรวนสามทางเพื่อพิจารณาว่าโปรแกรมการฝึก เพศ และการแบ่งส่วนส่งผลต่อความสูงของการกระโดดอย่างไร

ทำตามขั้นตอนต่อไปนี้เพื่อทำการวิเคราะห์ความแปรปรวนสามทางใน R:

ขั้นตอนที่ 1: สร้างข้อมูล

ขั้นแรก เรามาสร้าง data frame เพื่อเก็บข้อมูล:

 #create dataset
df <- data. frame (program=rep(c(1, 2), each= 20 ),
                 gender=rep(c(' M ', ' F '), each= 10 , times= 2 ),
                 division=rep(c(1, 2), each= 5 , times= 4 ),
                 height=c(7, 7, 8, 8, 7, 6, 6, 5, 6, 5,
                          5, 5, 4, 5, 4, 3, 3, 4, 3, 3,
                          6, 6, 5, 4, 5, 4, 5, 4, 4, 3,
                          2, 2, 1, 4, 4, 2, 1, 1, 2, 1)) 

#view first six rows of dataset
head(df)

  program gender division height
1 1 M 1 7
2 1 M 1 7
3 1 M 1 8
4 1 M 1 8
5 1 M 1 7
6 1 M 2 6

ขั้นตอนที่ 2: ดูสถิติเชิงพรรณนา

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

 library (dplyr)

#calculate mean jumping height increase grouped by program, gender, and division
df %>%
  group_by(program, gender, division) %>%
  summarize(mean_height = mean(height))

# A tibble: 8 x 4
# Groups: program, gender [4]
  program gender division mean_height
                 
1 1 F 1 4.6
2 1 F 2 3.2
3 1 M 1 7.4
4 1 M 2 5.6
5 2 F 1 2.6
6 2 F 2 1.4
7 2 M 1 5.2
8 2 M 2 4  

ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:

  • ความสูงของการกระโดดโดยเฉลี่ยที่เพิ่มขึ้นสำหรับผู้หญิงในดิวิชั่น 1 ที่ใช้โปรแกรมการฝึก 1 คือ 4.6 นิ้ว
  • ความสูงของการกระโดดโดยเฉลี่ยที่เพิ่มขึ้นในผู้หญิง Division II ที่ใช้โปรแกรมการฝึกอบรม 1 คือ 3.2 นิ้ว
  • ความสูงของการกระโดดโดยเฉลี่ยที่เพิ่มขึ้นในกลุ่มชาย Division I ที่ใช้โปรแกรมการฝึกอบรม 1 คือ 7.4 นิ้ว

และอื่นๆ

ขั้นตอนที่ 3: ดำเนินการวิเคราะห์ความแปรปรวนสามทาง

ต่อไป เราสามารถใช้ฟังก์ชัน aov() เพื่อทำการวิเคราะห์ความแปรปรวนสามทาง:

 #perform three-way ANOVA
model <- aov(height ~ program * gender * division, data=df)

#view summary of three-way ANOVA
summary(model)

                        Df Sum Sq Mean Sq F value Pr(>F)    
program 1 36.1 36.10 65.636 2.98e-09 ***
gender 1 67.6 67.60 122.909 1.71e-12 ***
division 1 19.6 19.60 35.636 1.19e-06 ***
program:gender 1 0.0 0.00 0.000 1.000    
program:division 1 0.4 0.40 0.727 0.400    
gender:division 1 0.1 0.10 0.182 0.673    
program:gender:division 1 0.1 0.10 0.182 0.673    
Residuals 32 17.6 0.55                     
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

คอลัมน์ Pr(>F) แสดงค่า p สำหรับแต่ละปัจจัยและการโต้ตอบระหว่างปัจจัยต่างๆ

จากผลลัพธ์ เราจะเห็นว่าไม่มีปฏิสัมพันธ์ระหว่างปัจจัยทั้งสามที่มีนัยสำคัญทางสถิติ

เรายังเห็นได้ว่าปัจจัยทั้งสามในสามรายการ ได้แก่ โปรแกรม เพศ และการแบ่งกลุ่ม มีนัยสำคัญทางสถิติ

ตอนนี้เราสามารถใช้ dplyr อีกครั้งเพื่อค้นหาความสูงเฉลี่ยที่เพิ่มขึ้นสำหรับโปรแกรม เพศ และการแบ่งแยกกัน:

 library (dplyr)

#find mean jumping increase by program
df %>%
  group_by(program) %>%
  summarize(mean_height = mean(height))

# A tibble: 2 x 2
  program mean_height
           
1 1 5.2
2 2 3.3

#find mean jumping increase by gender
df %>%
  group_by(gender) %>%
  summarize(mean_height = mean(height))

# A tibble: 2 x 2
  gender mean_height
          
1 F 2.95
2M 5.55

#find mean jumping increase by division
df %>%
group_by(division) %>%
summarize(mean_height = mean(height))

# A tibble: 2 x 2
  division mean_height
            
1 1 4.95
2 2 3.55

จากผลลัพธ์เราสามารถสังเกตได้ดังต่อไปนี้:

  • ความสูงเฉลี่ยของการกระโดดที่เพิ่มขึ้นสำหรับผู้ที่ใช้โปรแกรมการฝึก 1 ( 5.2 นิ้ว ) มากกว่าค่าเฉลี่ยที่เพิ่มขึ้นสำหรับผู้ที่ใช้โปรแกรมการฝึก 2 (3.3 นิ้ว )
  • ความสูงเฉลี่ยของการกระโดดที่เพิ่มขึ้นสำหรับผู้ชาย ( 5.55 นิ้ว ) สูงกว่าค่าเฉลี่ยที่เพิ่มขึ้นของผู้หญิง (2.95 นิ้ว )
  • การเพิ่มขึ้นของความสูงโดยเฉลี่ยในการกระโดดของผู้เล่นดิวิชั่น 1 ( 4.95 นิ้ว ) นั้นมากกว่าการเพิ่มขึ้นของค่าเฉลี่ยของผู้เล่นดิวิชั่น 2 (3.55 นิ้ว )

โดยสรุป เราจะกล่าวว่าโปรแกรมการฝึกซ้อม เพศ และการแบ่งส่วนล้วนเป็นตัวบ่งชี้ที่สำคัญในการเพิ่มความสูงของการกระโดดในผู้เล่น

นอกจากนี้เรายังบอกอีกว่าไม่มีผลกระทบจากการโต้ตอบที่มีนัยสำคัญระหว่างปัจจัยทั้งสามนี้

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีปรับโมเดล ANOVA อื่นๆ ให้เหมาะสมใน R:

วิธีดำเนินการวิเคราะห์ความแปรปรวนแบบทางเดียวใน R
วิธีดำเนินการวิเคราะห์ความแปรปรวนแบบสองทางใน R

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

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