Kiểm tra bài hoc sau ANOVA với các biện pháp lặp lại sử dụng R


24

Tôi đã thực hiện một số đo lặp lại ANOVA trong R, như sau:

aov_velocity = aov(Velocity ~ Material + Error(Subject/(Material)), data=scrd)
summary(aov_velocity)
  • Cú pháp nào trong R có thể được sử dụng để thực hiện bài kiểm tra bài hoc sau ANOVA với các biện pháp lặp lại?
  • Thử nghiệm của Tukey với hiệu chỉnh Bonferroni có phù hợp không? Nếu vậy, làm thế nào điều này có thể được thực hiện trong R?

1
xem câu hỏi liên quan này trên các bài kiểm tra bài hoc để biết các biện pháp lặp đi lặp lại thiết kế thống kê.stackexchange.com/questions/575/iêu
Jeromy Anglim

3
Về điểm thứ 2 của bạn: HSD của Tukey đã bao gồm "hiệu chỉnh" cho tính đa bội (ở cấp độ thống kê kiểm tra, không phải cấp độ alpha như trong phương pháp Bonferroni's). Vì vậy, không cần kết hợp cả hai.
chl

1
@chl: vì vậy chúng ta không cần phải sửa mức alpha trong nhiều so sánh theo cặp trong trường hợp HSD của Tukey?
stan

3
@stan Số (Lưu ý: Các thử nghiệm không có kế hoạch (hậu hoc) nên được thực hiện sau khi ANOVA cho thấy một kết quả quan trọng, đặc biệt là nếu nó liên quan đến một phương pháp xác nhận.)
chl

Câu trả lời:


20

Những gì bạn có thể làm là chỉ định mô hình với lmevà sau đó sử dụng glhttừ multcompgói để làm những gì bạn muốn. Tuy nhiên, lme cung cấp các giá trị F hơi khác so với ANOVA tiêu chuẩn (xem thêm các câu hỏi gần đây của tôi ở đây ).

lme_velocity = lme(Velocity ~ Material, data=scrd, random = ~1|Subject)
anova(lme_velocity)

require(multcomp)
summary(glht(lme_velocity, linfct=mcp(Material = "Tukey")), test = adjusted(type = "bonferroni"))

Đối với các tương phản khác sau đó bonferroni, xem ví dụ, cuốn sách multcomptừ các tác giả của gói .

Bạn cũng có thể muốn xem bài này vào danh sách R-mail , và bài viết trên blog này để xác định một biện pháp lặp đi lặp lại ANOVA trong R .

Tuy nhiên, như thể hiện trong câu hỏi này từ tôi, tôi không chắc cách tiếp cận này có giống với ANOVA hay không. Hơn nữa, glht chỉ báo cáo giá trị z thay vì giá trị t hoặc F thông thường . Điều này dường như là không phổ biến, quá.

Cho đến nay, tôi đã không gặp phải một cách khác để làm điều này.


2

Nếu bạn muốn gắn bó với aov()chức năng, bạn có thể sử dụng emmeansgói có thể xử lý aovlist(và nhiều đối tượng khác ).

library("emmeans")
# set orthogonal contrasts
options(contrasts = c("contr.sum", "contr.poly"))

aov_velocity <- aov(Velocity ~ Material + Error(Subject / Material), data = scrd)

Sau khi tạo một emmGridđối tượng như sau

emm <- emmeans(aov_velocity, ~ Material)

rất dễ dàng để có được tất cả các so sánh cặp (post hoc) bằng cách sử dụng pairs()chức năng hoặc bất kỳ độ tương phản mong muốn bằng cách sử dụng contrast()chức năng của emmeansgói. Điều chỉnh nhiều thử nghiệm có thể đạt được thông qua adjustđối số của các chức năng này:

pairs(emm)  # adjust argument not specified -> default p-value adjustment in this case is "tukey"  

Để biết thêm thông tin về điều này, tôi thấy các họa tiết emmeans chi tiếttài liệu rất hữu ích.

Ngoài ra, bạn có thể tìm thấy một ví dụ hoàn chỉnh (có thể tái tạo) bao gồm mô tả về cách lấy trọng số tương phản chính xác trong câu trả lời của tôi ở đây .

Tuy nhiên, lưu ý rằng việc sử dụng mô hình đơn biến cho các bài kiểm tra sau hoc có thể dẫn đến giá trị p chống bảo thủ nếu tính toàn cầu bị vi phạm.


0

Nếu tính toàn cầu được đáp ứng thì bạn có thể chạy ANOVA hai chiều:

aov_velocity = aov(Velocity~Material+Subject, data=scrd)
posthoc      = TukeyHSD(aov_velocity, 'Material', conf.level=0.95).
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.