การวิเคราะห์ความแปรปรวน (ANOVA) ใน R: การทดสอบแบบทางเดียวและสองทาง พร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
การวิเคราะห์ความแปรปรวน (ANOVA) ใน R เปรียบเทียบค่าเฉลี่ยของกลุ่มตั้งแต่สามกลุ่มขึ้นไป โดยแบ่งความแปรปรวนทั้งหมดออกเป็นส่วนประกอบระหว่างกลุ่มและภายในกลุ่ม บทแนะนำนี้จะทำการทดสอบความแปรปรวนแบบทางเดียวและสองทางกับชุดข้อมูลสารพิษ ตรวจสอบสมมติฐาน และแยกคู่ที่แตกต่างกันโดยใช้การทดสอบความแปรปรวนสูงของ Tukey (Tukey HSD)
ANOVA คืออะไร
การวิเคราะห์ความแปรปรวน (ANOVA) เป็นเทคนิคทางสถิติที่ใช้ในการเปรียบเทียบค่าเฉลี่ยของกลุ่มสองกลุ่มขึ้นไป การทดสอบนี้ทำงานโดยการแบ่งความแปรปรวนทั้งหมดในการวัดออกเป็นส่วนที่อธิบายได้ด้วยการเป็นสมาชิกกลุ่ม และส่วนที่เหลือเป็นสัญญาณรบกวนแบบสุ่ม ดังนั้น ANOVA ใน R จึงบอกคุณว่าอย่างน้อยหนึ่งค่าเฉลี่ยของกลุ่มแตกต่างจากกลุ่มอื่นหรือไม่ ไม่ใช่ว่ากลุ่มใดกลุ่มหนึ่งแตกต่าง มันเป็นส่วนขยายโดยตรงของ t-ทดสอบ สำหรับสถานการณ์ที่ตัวแปรปัจจัยมีมากกว่าสองระดับ
ก่อนทำการทดสอบ ควรทราบก่อนว่าวิธีการวิเคราะห์ความแปรปรวน (ANOVA) แบบใดเหมาะสมกับรูปแบบการออกแบบของคุณ
ประเภทของการทดสอบ ANOVA ใน R
“ANOVA” เป็นกลุ่มของการทดสอบ ไม่ใช่กระบวนการเดียว การเลือกใช้การทดสอบที่เหมาะสมขึ้นอยู่กับจำนวนปัจจัยและวิธีการเก็บรวบรวมข้อมูล
| เอกสาร | ควรใช้เมื่อใด | R เรียก |
|---|---|---|
| ANOVA ทางเดียว | ปัจจัยหนึ่งที่มีสามระดับขึ้นไป | aov(y ~ x, data = df) |
| ความแปรปรวนสองทาง | ปัจจัยอิสระสองประการ | aov(y ~ x1 + x2, data = df) |
| สองทางพร้อมการโต้ตอบ | ผลกระทบของปัจจัยหนึ่งขึ้นอยู่กับปัจจัยอื่น | aov(y ~ x1 * x2, data = df) |
| การวิเคราะห์ความแปรปรวนแบบวัดซ้ำ | มีการวัดค่าในกลุ่มตัวอย่างเดียวกันมากกว่าหนึ่งครั้ง | aov(y ~ x + ข้อผิดพลาด(subject/x)) |
| อันโควา | ต้องควบคุมตัวแปรต่อเนื่องด้วย | aov(y ~ x + covariate, data = df) |
| มาโนวา | ตัวแปรตอบสนองสองตัวขึ้นไปพร้อมกัน | manova(cbind(y1, y2) ~ x) |
บทช่วยสอนนี้ครอบคลุมสามแบบแรก ส่วนแบบอื่นๆ ที่เหลือใช้ส่วนติดต่อ aov() เดียวกัน ดังนั้นเมื่อคุณสามารถอ่านตารางผลลัพธ์แบบหนึ่งได้แล้ว คุณก็จะสามารถอ่านแบบอื่นๆ ได้ทั้งหมด
ความแตกต่างที่สำคัญระหว่าง ANOVA และ T-Test ใน R:
การทดสอบทั้งสองแบบเปรียบเทียบค่าเฉลี่ย ดังนั้นจึงควรระบุให้ชัดเจนว่าการทดสอบหนึ่งใช้แทนอีกการทดสอบหนึ่งในกรณีที่ใด
| หลักเกณฑ์ | T-ทดสอบ | การวิเคราะห์ความแปรปรวน |
|---|---|---|
| จำนวนกลุ่ม | สองพอดี | สองตัวขึ้นไป |
| สถิติทดสอบ | t | F เท่ากับ t กำลังสอง เมื่อมีสองกลุ่ม |
| ผล | ระบุทิศทางของความแตกต่าง | รายงานเพียงว่ามีความแตกต่างอยู่ |
| จำเป็นต้องมีการติดตามผล | ไม่มี | การทดสอบหลังการวิเคราะห์ เช่น Tukey HSD |
| ฟังก์ชันอาร์ | การทดสอบ t.test() | เอโอวี() |
เมื่อมีสามกลุ่ม หลายคนมักจะอยากทำการทดสอบ t-test แยกกันสามครั้ง แต่ควรหลีกเลี่ยง เพราะการทดสอบแต่ละครั้งมีอัตราความผิดพลาด 5 เปอร์เซ็นต์ ดังนั้นการเปรียบเทียบสามครั้งจะเพิ่มโอกาสที่จะเกิดผลบวกเท็จเป็นประมาณ 14 เปอร์เซ็นต์ ANOVA สามารถตอบคำถามเดียวกันได้ด้วยการทดสอบเพียงครั้งเดียว และจากนั้น Tukey HSD จะจัดการรายละเอียดการเปรียบเทียบแบบคู่โดยที่อัตราความผิดพลาดไม่สูงเกินไป สำหรับกรณีสองกลุ่ม โปรดดูที่... บทช่วยสอนเกี่ยวกับการทดสอบ t.
ANOVA ทางเดียว
มีหลายสถานการณ์ที่คุณต้องเปรียบเทียบค่าเฉลี่ยระหว่างหลายกลุ่ม ตัวอย่างเช่น แผนกการตลาดต้องการทราบว่ามี 3 ทีมที่มียอดขายเท่ากันหรือไม่
- ทีม: ปัจจัย 3 ระดับ: A, B และ C
- การขาย: การวัดประสิทธิภาพ
การทดสอบ ANOVA สามารถบอกได้ว่าทั้งสามกลุ่มมีประสิทธิภาพที่คล้ายคลึงกันหรือไม่
เพื่อชี้แจงว่าข้อมูลมาจากประชากรกลุ่มเดียวกันหรือไม่ คุณสามารถดำเนินการได้ การวิเคราะห์ความแปรปรวนทางเดียว (ต่อไปนี้จะเรียกว่า ANOVA แบบทางเดียว) เช่นเดียวกับการทดสอบทางสถิติอื่นๆ มันให้หลักฐานว่าสมมติฐาน H0 สามารถถูกปฏิเสธได้หรือไม่ โปรดทราบว่าการไม่ปฏิเสธ H0 ไม่ได้หมายความว่าสมมติฐาน H0 นั้นเป็นจริงเสมอไป
สมมติฐานในการทดสอบ ANOVA แบบทางเดียว
- H0: ค่าเฉลี่ยระหว่างกลุ่มเหมือนกัน
- H1: อย่างน้อย ค่าเฉลี่ยของกลุ่มหนึ่งก็แตกต่างกัน
กล่าวอีกนัยหนึ่ง การไม่ปฏิเสธสมมติฐานหลัก (H0) หมายความว่าไม่มีหลักฐานเพียงพอที่จะสรุปได้ว่าค่าเฉลี่ยของกลุ่มใดกลุ่มหนึ่งแตกต่างจากกลุ่มอื่น ๆ
การทดสอบนี้คล้ายกับการทดสอบ t แต่ ANOVA เป็นตัวเลือกที่ถูกต้องเมื่อมีกลุ่มมากกว่าสองกลุ่ม ในกรณีที่มีเพียงสองกลุ่ม การทดสอบทั้งสองจะให้ผลเท่ากัน และค่าสถิติ F จะเท่ากับกำลังสองของค่าสถิติ t
สมมติฐาน
การวิเคราะห์ความแปรปรวนแบบทางเดียว (ANOVA) ขึ้นอยู่กับเงื่อนไขสามประการ ได้แก่ ข้อมูลถูกสุ่มเลือกและเป็นอิสระต่อกัน ค่าความคลาดเคลื่อนภายในแต่ละกลุ่มมีการกระจายแบบปกติโดยประมาณ และความแปรปรวนเท่ากันในทุกกลุ่ม (ความแปรปรวนเป็นเอกรูป) ส่วนการตรวจสอบสมมติฐานด้านล่างจะแสดงวิธีการทดสอบแต่ละข้อใน R
ตีความการทดสอบ ANOVA
สถิติ F ใช้เพื่อทดสอบว่าข้อมูลมาจากประชากรที่แตกต่างกันอย่างมีนัยสำคัญ เช่น ค่าเฉลี่ยตัวอย่างที่แตกต่างกัน
ในการคำนวณสถิติ F คุณต้องหารค่า ความแปรปรวนระหว่างกลุ่ม มากกว่า ความแปรปรวนภายในกลุ่ม.
การขอ ระหว่างกลุ่ม ความแปรปรวนสะท้อนให้เห็นว่าค่าเฉลี่ยของแต่ละกลุ่มอยู่ห่างจากค่าเฉลี่ยโดยรวมมากน้อยเพียงใด ลองเปรียบเทียบกราฟสองกราฟด้านล่างเพื่อทำความเข้าใจแนวคิดนี้
กราฟด้านซ้ายแสดงให้เห็นว่าความแตกต่างระหว่างกลุ่มทั้งสามมีน้อยมาก ดังนั้นค่าเฉลี่ยของทั้งสามกลุ่มจึงอยู่ใกล้เคียงกัน ทั้งหมด ค่าเฉลี่ย
กราฟด้านขวาแสดงการกระจายตัวสามกลุ่มที่อยู่ห่างกันมากโดยไม่มีส่วนที่ทับซ้อนกัน ดังนั้นช่องว่างระหว่างค่าเฉลี่ยโดยรวมกับค่าเฉลี่ยของแต่ละกลุ่มจึงมีขนาดใหญ่
การขอ ภายในกลุ่ม ความแปรปรวนวัดว่าค่าสังเกตแต่ละค่าอยู่ห่างจากค่าเฉลี่ยของกลุ่มมากน้อยเพียงใด บางจุดอยู่ห่างจากค่าเฉลี่ยของกลุ่มมาก และค่าความแปรปรวนภายในกลุ่มจะแสดงถึงการกระจายตัวนั้นอย่างแม่นยำ ซึ่งก็คือข้อผิดพลาดในการสุ่มตัวอย่าง
หากต้องการทำความเข้าใจแนวคิดของความแปรปรวนภายในกลุ่มด้วยภาพ โปรดดูกราฟด้านล่าง
ส่วนด้านซ้ายแสดงการกระจายตัวของกลุ่มที่แตกต่างกันสามกลุ่ม คุณได้เพิ่มการกระจายตัวของแต่ละตัวอย่าง และเห็นได้ชัดว่าความแปรปรวนของแต่ละบุคคลมีขนาดใหญ่ ค่าสถิติ F ลดลง ดังนั้นคุณจึงไม่สามารถปฏิเสธสมมติฐานว่างได้
ส่วนด้านขวาแสดงตัวอย่างที่มีค่าเฉลี่ยเท่ากัน แต่มีการกระจายตัวที่ต่ำกว่ามาก ซึ่งทำให้ค่าสถิติ F สูงขึ้น และสนับสนุนสมมติฐานทางเลือก
คุณสามารถใช้ทั้งสองมาตรการเพื่อสร้างสถิติ F การเข้าใจสถิติ F เป็นเรื่องง่ายมาก ถ้าตัวเศษเพิ่มขึ้น แสดงว่ามีความแปรปรวนระหว่างกลุ่มอยู่ในระดับสูง และมีแนวโน้มว่ากลุ่มในกลุ่มตัวอย่างจะมาจากการกระจายตัวที่ต่างกันโดยสิ้นเชิง
กล่าวอีกนัยหนึ่ง ค่าสถิติ F ที่ต่ำแสดงให้เห็นว่ามีความแตกต่างเพียงเล็กน้อยหรือไม่มีนัยสำคัญระหว่างค่าเฉลี่ยของกลุ่ม
ตัวอย่างการทดสอบ ANOVA แบบทางเดียว
คุณจะใช้ชุดข้อมูลพิษเพื่อดำเนินการทดสอบ ANOVA แบบทางเดียว ชุดข้อมูลประกอบด้วย 48 แถวและ 3 ตัวแปร:
- เวลา: เวลาการอยู่รอดของสัตว์
- ยาพิษ: ประเภทของยาพิษที่ใช้: ระดับปัจจัย: 1,2 และ 3
- รักษา: ประเภทของการรักษาที่ใช้: ระดับปัจจัย: 1,2 และ 3
ก่อนที่คุณจะเริ่มคำนวณการทดสอบ ANOVA คุณต้องเตรียมข้อมูลดังต่อไปนี้:
- ขั้นตอนที่ 1: นำเข้าข้อมูล
- ขั้นตอนที่ 2: ลบตัวแปรที่ไม่จำเป็นออก
- ขั้นตอนที่ 3: แปลงพิษแปรผันตามระดับที่สั่ง
library(dplyr) PATH <- "https://raw.githubusercontent.com/guru99-edu/R-Programming/master/poisons.csv" df <- read.csv(PATH) %>% select(-X) %>% mutate(poison = factor(poison, ordered = TRUE)) glimpse(df)
Output:
## Observations: 48 ## Variables: 3 ## $ time <dbl> 0.31, 0.45, 0.46, 0.43, 0.36, 0.29, 0.40, 0.23, 0.22, 0... ## $ poison <ord> 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2... ## $ treat <fctr> A, A, A, A, A, A, A, A, A, A, A, A, B, B, B, B, B, B, ...
วัตถุประสงค์ของเราคือการทดสอบสมมติฐานต่อไปนี้:
- H0: ระยะเวลาการรอดชีวิตโดยเฉลี่ยระหว่างกลุ่มไม่มีความแตกต่าง
- H1: ระยะเวลาการรอดชีวิตโดยเฉลี่ยจะแตกต่างกันสำหรับกลุ่มอย่างน้อยหนึ่งกลุ่ม
กล่าวอีกนัยหนึ่ง คุณต้องการทราบว่ามีความแตกต่างทางสถิติระหว่างค่าเฉลี่ยของระยะเวลาการรอดชีวิตตามประเภทของยาพิษที่ให้แก่หนูตะเภาหรือไม่
คุณจะดำเนินการดังต่อไปนี้:
- ขั้นตอนที่ 1: ตรวจสอบรูปแบบของพิษที่แปรผัน
- ขั้นตอนที่ 2: พิมพ์สถิติสรุป: การนับ ค่าเฉลี่ย และส่วนเบี่ยงเบนมาตรฐาน
- ขั้นตอนที่ 3: พล็อตกล่อง
- ขั้นตอนที่ 4: คำนวณการทดสอบ ANOVA แบบทางเดียว
- ขั้นตอนที่ 5: ทำการเปรียบเทียบแบบจับคู่โดยใช้ Tukey HSD
ขั้นตอน 1) ตรวจสอบระดับความเป็นพิษด้วยโค้ดด้านล่าง คุณควรเห็นค่าตัวอักษรสามตัว เนื่องจากคำสั่ง mutate ได้แปลงคอลัมน์ให้เป็นแฟกเตอร์เรียงลำดับแล้ว
levels(df$poison)
Output:
## [1] "1" "2" "3"
ขั้นตอน 2) คุณคำนวณค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐาน
df %>% group_by(poison) %>% summarise( count_poison = n(), mean_time = mean(time, na.rm = TRUE), sd_time = sd(time, na.rm = TRUE) )
Output:
## # A tibble: 3 x 4 ## poison count_poison mean_time sd_time ## <ord> <int> <dbl> <dbl> ## 1 1 16 0.617500 0.20942779 ## 2 2 16 0.544375 0.28936641 ## 3 3 16 0.276250 0.06227627
ขั้นตอน 3) ในขั้นตอนที่ 3 คุณสามารถตรวจสอบได้อย่างชัดเจนว่ามีความแตกต่างระหว่างการแจกแจงหรือไม่ โปรดทราบว่าคุณรวมจุดกระวนกระวายใจด้วย
ggplot(df, aes(x = poison, y = time, fill = poison)) + geom_boxplot() + geom_jitter(shape = 15, color = "steelblue", position = position_jitter(0.21)) + theme_classic()
Output:
ขั้นตอน 4) คุณสามารถรันการทดสอบ ANOVA แบบทางเดียวด้วยคำสั่ง aov รูปแบบพื้นฐานสำหรับการทดสอบ ANOVA คือ:
aov(formula, data)
Arguments:
- formula: The equation you want to estimate
- data: The dataset used
ไวยากรณ์ของสูตรคือ:
y ~ X1+ X2+...+Xn # X1 + X2 +... refers to the independent variables y ~ . # use all the remaining variables as independent variables
ตอนนี้คุณสามารถตอบคำถามได้แล้วว่า: ระยะเวลาการรอดชีวิตของหนูตะเภาแตกต่างกันหรือไม่ เมื่อพิจารณาจากชนิดของยาพิษที่ให้?
เก็บโมเดลไว้ในอ็อบเจ็กต์แล้วส่งไปยังฟังก์ชัน summary() เพื่อให้ได้ผลลัพธ์ที่อ่านง่าย
anova_one_way <- aov(time~poison, data = df) summary(anova_one_way)
Code คำอธิบาย
- aov(time ~ poison, data = df): รันการทดสอบ ANOVA ด้วยสูตรต่อไปนี้
- summary(anova_one_way): พิมพ์สรุปผลการทดสอบ
Output:
## Df Sum Sq Mean Sq F value Pr(>F) ## poison 2 1.033 0.5165 11.79 7.66e-05 *** ## Residuals 45 1.972 0.0438 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ค่า p-value คือ 7.66e-05 ซึ่งต่ำกว่าเกณฑ์ปกติที่ 0.05 มาก และเครื่องหมายสามดาวแสดงถึงระดับนัยสำคัญสูงสุด คุณสามารถปฏิเสธสมมติฐานหลัก (H0) และสรุปได้ว่าอย่างน้อยหนึ่งกลุ่มที่ได้รับสารพิษมีค่าเฉลี่ยเวลาการรอดชีวิตที่แตกต่างกัน
วิธีการตรวจสอบข้อสมมติฐานของ ANOVA ใน R
ค่า p ของ ANOVA จะน่าเชื่อถือได้ก็ต่อเมื่อตรงตามเงื่อนไขทั้งสามข้อที่กล่าวไว้ก่อนหน้านี้ แต่ละเงื่อนไขสามารถตรวจสอบได้โดยตรงใน R และทุกเงื่อนไขจะดำเนินการกับอ็อบเจ็กต์โมเดลที่ปรับให้เหมาะสมแล้ว
1. ความเป็นอิสระของการสังเกตการณ์ นี่เป็นคุณสมบัติของการออกแบบการศึกษา ไม่ใช่คุณสมบัติของข้อมูล ดังนั้นจึงไม่มีการทดสอบใดที่จะช่วยแก้ไขได้ หนูตะเภาแต่ละตัวจะต้องได้รับการวัดเพียงครั้งเดียวและถูกกำหนดให้อยู่ในกลุ่มแบบสุ่ม หากหนูตะเภาตัวเดียวกันปรากฏในหลายแถว คุณจำเป็นต้องใช้แบบจำลองการวัดซ้ำแทน
2. ความปกติของค่าความคลาดเคลื่อน การวิเคราะห์ความแปรปรวน (ANOVA) ถือว่าค่าความคลาดเคลื่อน (residuals) ไม่ใช่ข้อมูลดิบ (raw data) มีการกระจายแบบปกติโดยประมาณ ตรวจสอบแผนภาพ QQ และยืนยันด้วยการทดสอบ Shapiro-Wilk:
par(mfrow = c(2, 2)) plot(anova_one_way) # four diagnostic plots shapiro.test(residuals(anova_one_way))
จุดที่อยู่ใกล้เส้นทแยงมุมของกราฟ QQ ปกติ แสดงว่าค่าความคลาดเคลื่อนเป็นค่าปกติ ค่า p-value ของ Shapiro-Wilk ที่สูงกว่า 0.05 หมายความว่าคุณไม่สามารถปฏิเสธสมมติฐานความปกติได้
3. ความเป็นเอกรูปของความแปรปรวน แต่ละกลุ่มควรมีการกระจายตัวที่คล้ายคลึงกัน กราฟแสดงค่าความคลาดเคลื่อนเทียบกับค่าที่คาดการณ์ไว้ ควรมีลักษณะเป็นแถบแบนราบมากกว่ารูปทรงกรวย ตรวจสอบยืนยันด้วยการทดสอบของ Levene ซึ่งมีความทนทานต่อความไม่เป็นปกติของข้อมูลมากกว่าการทดสอบของ Bartlett:
library(car)
leveneTest(time ~ poison, data = df)
bartlett.test(time ~ poison, data = df)
ค่า p-value ที่สูงกว่า 0.05 สนับสนุนสมมติฐานว่าความแปรปรวนเท่ากัน
ควรทำอย่างไรเมื่อสมมติฐานนั้นผิดพลาด ถ้าค่าความแปรปรวนไม่เท่ากัน ให้ใช้ oneway.test(time ~ poison, data = df, var.equal = FALSE) ซึ่งเป็นการแก้ไขแบบ Welch ถ้าค่าความคลาดเคลื่อนไม่เป็นไปตามการแจกแจงแบบปกติอย่างชัดเจนและขนาดตัวอย่างเล็ก ให้เปลี่ยนไปใช้การทดสอบอันดับ Kruskal-Wallis kruskal.test(time ~ poison, data = df) สำหรับตัวอย่างขนาดใหญ่และสมดุล การวิเคราะห์ความแปรปรวน (ANOVA) ค่อนข้างทนทานต่อความเบี่ยงเบนจากภาวะปกติในระดับปานกลาง ดังนั้นผลลัพธ์ Shapiro-Wilk ที่อยู่ในระดับก้ำกึ่งจึงไม่ค่อยส่งผลร้ายแรง
การเปรียบเทียบแบบคู่
การทดสอบ F ที่มีนัยสำคัญจะบอกคุณว่าค่าเฉลี่ยของกลุ่มไม่เท่ากันทั้งหมด แต่ไม่ได้บอกว่าคู่ใดแตกต่างกัน การทดสอบความแตกต่างที่มีนัยสำคัญอย่างแท้จริงของ Tukey จะตอบคำถามนั้นโดยการเปรียบเทียบทุกคู่ในขณะที่ควบคุมอัตราความผิดพลาดแบบครอบคลุมทั้งกลุ่ม
TukeyHSD(anova_one_way)
Output:
อ่านผลลัพธ์ทีละแถวต่อคู่ diff คอลัมน์นี้แสดงความแตกต่างระหว่างค่าเฉลี่ยของทั้งสองกลุ่ม ลวร์ และ ขึ้นไป กำหนดขอบเขตช่วงความเชื่อมั่น 95 เปอร์เซ็นต์สำหรับความแตกต่างนั้น และ p adj ค่า p-value ที่ปรับแล้วสำหรับการเปรียบเทียบหลายรายการ คือค่าที่คู่ข้อมูลแตกต่างกันอย่างมีนัยสำคัญเมื่อช่วงความเชื่อมั่นไม่รวมศูนย์ หรือกล่าวอีกนัยหนึ่งคือค่า p-value ที่ปรับแล้วต่ำกว่า 0.05 ในชุดข้อมูลนี้ การเปรียบเทียบที่เกี่ยวข้องกับสารพิษหมายเลข 3 มีนัยสำคัญ ซึ่งสอดคล้องกับแผนภาพกล่อง: กลุ่มที่ 3 มีเวลาการรอดชีวิตเฉลี่ยต่ำกว่ากลุ่มที่ 1 และ 2 อย่างชัดเจน ในขณะที่กลุ่มที่ 1 และ 2 ไม่แตกต่างกันทางสถิติ
ความแปรปรวนสองทาง
การวิเคราะห์ความแปรปรวนแบบสองทาง (Two-way ANOVA) เพิ่มปัจจัยที่สองเข้าไปในสูตร วิธีการทำงานเหมือนกับการทดสอบแบบทางเดียวทุกประการ เพียงแต่สูตรเปลี่ยนไปเท่านั้น:
y ~ x1 + x2
ในที่นี้ y คือตัวแปรตอบสนองเชิงปริมาณ ในขณะที่ x1 และ x2 เป็นปัจจัยเชิงหมวดหมู่
สมมติฐานในการทดสอบ ANOVA สองทาง
- H0: ค่าเฉลี่ยของกลุ่มเท่ากันสำหรับตัวแปรปัจจัยทั้งสอง
- H1: อย่างน้อยหนึ่งค่าเฉลี่ยของกลุ่มแตกต่างกัน สำหรับอย่างน้อยหนึ่งในสองปัจจัย
คุณเพิ่มตัวแปรการรักษาเข้าไปในแบบจำลอง ตัวแปรนี้บันทึกการรักษาที่ให้กับหนูตะเภา สูตรการบวกด้านล่างจะทดสอบว่าแต่ละปัจจัยส่งผลต่อเวลาการรอดชีวิตด้วยตัวเองหรือไม่ หลังจากพิจารณาปัจจัยอื่นแล้ว
ปรับโค้ดโดยเพิ่มคำสั่ง treat ไว้ข้างๆ ตัวแปรอิสระตัวแรก
anova_two_way <- aov(time~poison + treat, data = df) summary(anova_two_way)
Output:
## Df Sum Sq Mean Sq F value Pr(>F) ## poison 2 1.0330 0.5165 20.64 5.7e-07 *** ## treat 3 0.9212 0.3071 12.27 6.7e-06 *** ## Residuals 42 1.0509 0.0250 ## ---
ค่า p-value ทั้งสองค่า (5.7e-07 สำหรับสารพิษ และ 6.7e-06 สำหรับการรักษา) อยู่ต่ำกว่า 0.05 มาก ดังนั้นคุณจึงปฏิเสธสมมติฐาน H0 สำหรับทั้งสองปัจจัย และสรุปได้ว่าการเปลี่ยนแปลงสารพิษหรือการรักษามีผลต่อระยะเวลาการรอดชีวิต
การเพิ่มพจน์ปฏิสัมพันธ์
แบบจำลองแบบบวกข้างต้นถือว่าผลกระทบของสารพิษนั้นเหมือนกันไม่ว่าจะได้รับการรักษาแบบใดก็ตาม เพื่อทดสอบสมมติฐานนั้น ให้แทนที่เครื่องหมายบวกด้วยเครื่องหมายดอกจัน ซึ่งจะครอบคลุมทั้งผลกระทบหลักและปฏิสัมพันธ์ระหว่างกัน:
anova_interaction <- aov(time~poison * treat, data = df) summary(anova_interaction)
หากความสัมพันธ์ระหว่างพิษและการรักษาไม่มีนัยสำคัญ โมเดลแบบบวกจะเป็นตัวเลือกที่ดีกว่า เนื่องจากใช้จำนวนองศาอิสระน้อยกว่า
ANOVA ใน R: คู่มืออ้างอิงการทดสอบอย่างรวดเร็ว
ตารางด้านล่างแสดงรายการการทดสอบแต่ละรายการที่ใช้ข้างต้น คำสั่ง R ที่ใช้รันการทดสอบ และสมมติฐานที่การทดสอบนั้นประเมิน:
| เอกสาร | Code | สมมติฐาน | ค่า P |
|---|---|---|---|
| การวิเคราะห์ทางสถิติแบบทางเดียว |
aov(y ~ X, data = df)
|
H1: ค่าเฉลี่ยแตกต่างกันสำหรับกลุ่มอย่างน้อยหนึ่งกลุ่ม | 0.05 |
| จับคู่ |
TukeyHSD(ANOVA summary) |
0.05 | |
| การวิเคราะห์ทางสถิติแบบสองทาง |
aov(y ~ X1 + X2, data = df)
|
H1: อย่างน้อยหนึ่งค่าเฉลี่ยของกลุ่มแตกต่างกันสำหรับปัจจัยใดปัจจัยหนึ่ง | 0.05 |





