Tôi đang cố gắng chạy một số đo lặp lại Anova trong R theo sau là một số tương phản cụ thể trên tập dữ liệu đó. Tôi nghĩ rằng cách tiếp cận chính xác sẽ là sử dụng
Anova()
từ gói xe hơi.
Hãy minh họa câu hỏi của tôi với ví dụ được lấy từ ?Anova
việc sử dụng OBrienKaiser
dữ liệu (Lưu ý: Tôi sử dụng
yếu tố giới tính từ ví dụ):
Chúng tôi có một thiết kế với một yếu tố giữa các đối tượng, điều trị (3 cấp độ: kiểm soát, A, B) và 2 lần lặp lại -measure (trong đối tượng) các yếu tố, giai đoạn (3 cấp độ: trước, posttest, theo dõi) và giờ (5 cấp độ: 1 đến 5).
Bảng ANOVA tiêu chuẩn được đưa ra bởi (khác với ví dụ (Anova) Tôi đã chuyển sang Loại 3 Tổng bình phương, đó là những gì lĩnh vực của tôi muốn):
require(car)
phase <- factor(rep(c("pretest", "posttest", "followup"), c(5, 5, 5)),
levels=c("pretest", "posttest", "followup"))
hour <- ordered(rep(1:5, 3))
idata <- data.frame(phase, hour)
mod.ok <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser)
av.ok <- Anova(mod.ok, idata=idata, idesign=~phase*hour, type = 3)
summary(av.ok, multivariate=FALSE)
Bây giờ, hãy tưởng tượng rằng tương tác bậc cao nhất sẽ có ý nghĩa (không phải vậy) và chúng tôi muốn khám phá thêm về sự tương phản sau:
Có sự khác biệt giữa giờ 1 & 2 so với giờ 3 (tương phản 1) và giữa giờ 1 & 2 so với giờ 4 & 5 (tương phản 2) trong điều kiện điều trị (A & B với nhau)?
Nói cách khác, làm thế nào để tôi chỉ định những tương phản này:
((treatment %in% c("A", "B")) & (hour %in% 1:2))
đấu với((treatment %in% c("A", "B")) & (hour %in% 3))
((treatment %in% c("A", "B")) & (hour %in% 1:2))
đấu với((treatment %in% c("A", "B")) & (hour %in% 4:5))
Ý tưởng của tôi sẽ là chạy một ANOVA khác với điều kiện điều trị không cần thiết (kiểm soát):
mod2 <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser, subset = treatment != "control")
av2 <- Anova(mod2, idata=idata, idesign=~phase*hour, type = 3)
summary(av2, multivariate=FALSE)
Tuy nhiên, tôi vẫn không biết làm thế nào để thiết lập ma trận tương phản trong chủ đề phù hợp so sánh giờ 1 & 2 với 3 và 1 & 2 với 4 & 5. Và tôi không chắc chắn nếu bỏ qua nhóm điều trị không cần thiết thực sự là một ý tưởng tốt vì nó thay đổi thời hạn lỗi tổng thể.
Trước khi đi cho Anova()
tôi cũng đã suy nghĩ đi lme
. Tuy nhiên, có sự khác biệt nhỏ về giá trị F và p giữa sách giáo khoa ANOVA và những gì được trả về anove(lme)
do phương sai âm có thể có trong ANOVA tiêu chuẩn (không được phép tronglme
). Liên quan, ai đó đã chỉ cho tôi gls
điều đó cho phép điều chỉnh các biện pháp lặp lại ANOVA, tuy nhiên, nó không có đối số tương phản.
Để làm rõ: Tôi muốn thử nghiệm F hoặc t (sử dụng tổng bình phương loại III) để trả lời liệu độ tương phản mong muốn có đáng kể hay không.
Cập nhật:
Tôi đã hỏi một câu hỏi tương tự trên R-help, không có câu trả lời .
Một câu hỏi tương tự đã được đặt ra trên R-help một thời gian trước đây. Tuy nhiên, câu trả lời cũng không giải quyết được vấn đề.
Cập nhật (2015):
Vì câu hỏi này vẫn tạo ra một số hoạt động, việc chỉ định luận văn và về cơ bản tất cả các tương phản khác hiện có thể được thực hiện tương đối dễ dàng với afex
gói kết hợp với lsmeans
gói như được mô tả trong họa tiết afex .
treatment
, 3) cho mỗi người trung bình trên các mứcprePostFup
, 4) cho mỗi người trung bình trong nhiều giờ 1,2 (= nhóm dữ liệu 1) cũng như qua giờ 3,4 (= nhóm dữ liệu 2), 5) chạy thử nghiệm t cho 2 nhóm phụ thuộc. Vì Maxwell & Delaney (2004) cũng như Kirk (1995) không khuyến khích làm tương phản với một thuật ngữ lỗi trong các thiết kế bên trong, đây có thể là một cách thay thế đơn giản.