Làm cách nào để thiết lập và giải thích ANOVA tương phản với gói xe trong R?


15

Giả sử tôi có một thí nghiệm nhân đôi 2x2 đơn giản mà tôi muốn thực hiện ANOVA. Như thế này, ví dụ:

d   <- data.frame(a=factor(sample(c('a1','a2'), 100, rep=T)),
                  b=factor(sample(c('b1','b2'), 100, rep=T)));
d$y <- as.numeric(d$a)*rnorm(100, mean=.75, sd=1) +
       as.numeric(d$b)*rnorm(100, mean=1.2, sd=1) +
       as.numeric(d$a)*as.numeric(d$b)*rnorm(100, mean=.5, sd=1) +
       rnorm(100);
  1. Trong trường hợp không có sự tương tác đáng kể, theo mặc định (nghĩa là contr.treatment) đầu ra Anova()là tầm quan trọng tổng thể của atất cả các cấp bbtrên tất cả các cấp a, điều đó có đúng không?

  2. Làm cách nào để chỉ định độ tương phản cho phép tôi kiểm tra tầm quan trọng của hiệu ứng avới bviệc được giữ cố định ở cấp b1, hiệu ứng avới bđược giữ không đổi ở cấp b2 và tương tác a:b?

Câu trả lời:


18

Ví dụ của bạn dẫn đến kích thước ô không bằng nhau, điều đó có nghĩa là "các loại bình phương" khác nhau và việc kiểm tra các hiệu ứng chính không đơn giản như bạn nêu. Anova()sử dụng tổng bình phương loại II. Xem câu hỏi này để bắt đầu.

Có nhiều cách khác nhau để kiểm tra độ tương phản. Lưu ý rằng các loại SS không quan trọng vì cuối cùng chúng tôi đang thử nghiệm trong thiết kế một nhân tố liên quan. Tôi đề nghị sử dụng các bước sau:

# turn your 2x2 design into the corresponding 4x1 design using interaction()
> d$ab <- interaction(d$a, d$b)       # creates new factor coding the 2*2 conditions
> levels(d$ab)                        # this is the order of the 4 conditions
[1] "a1.b1" "a2.b1" "a1.b2" "a2.b2"

> aovRes <- aov(y ~ ab, data=d)       # oneway ANOVA using aov() with new factor

# specify the contrasts you want to test as a matrix (see above for order of cells)
> cntrMat <- rbind("contr 01"=c(1, -1,  0,  0),  # coefficients for testing a within b1
+                  "contr 02"=c(0,  0,  1, -1),  # coefficients for testing a within b2
+                  "contr 03"=c(1, -1, -1,  1))  # coefficients for interaction

# test contrasts without adjusting alpha, two-sided hypotheses
> library(multcomp)                   # for glht()
> summary(glht(aovRes, linfct=mcp(ab=cntrMat), alternative="two.sided"),
+         test=adjusted("none"))
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: User-defined Contrasts
Fit: aov(formula = y ~ ab, data = d)

Linear Hypotheses:
              Estimate Std. Error t value Pr(>|t|)
contr 01 == 0  -0.7704     0.7875  -0.978    0.330
contr 02 == 0  -1.0463     0.9067  -1.154    0.251
contr 03 == 0   0.2759     1.2009   0.230    0.819
(Adjusted p values reported -- none method)    

Bây giờ hãy tự kiểm tra kết quả cho độ tương phản đầu tiên.

> P       <- 2                             # number of levels factor a
> Q       <- 2                             # number of levels factor b
> Njk     <- table(d$ab)                   # cell sizes
> Mjk     <- tapply(d$y, d$ab, mean)       # cell means
> dfSSE   <- sum(Njk) - P*Q                # degrees of freedom error SS
> SSE     <- sum((d$y - ave(d$y, d$ab, FUN=mean))^2)    # error SS
> MSE     <- SSE / dfSSE                   # mean error SS
> (psiHat <- sum(cntrMat[1, ] * Mjk))      # contrast estimate
[1] -0.7703638

> lenSq <- sum(cntrMat[1, ]^2 / Njk)       # squared length of contrast
> (SE   <- sqrt(lenSq*MSE))                # standard error
[1] 0.7874602

> (tStat <- psiHat / SE)                   # t-statistic
[1] -0.9782893

> (pVal <- 2 * (1-pt(abs(tStat), dfSSE)))  # p-value
[1] 0.3303902

3
CẢM ƠN BẠN!!! Bạn vừa trả lời một câu hỏi mà hai học kỳ thống kê cấp độ sau đại học không có. Tôi thậm chí đã cân nhắc sử dụng anova một chiều trước đây, nhưng không thể tìm thấy bất kỳ xác nhận nào rằng đây là một cách tiếp cận hợp pháp.
F1r3br4nd

@ f1r3br4nd Điều đó hợp pháp vì lỗi MS bằng nhau trong thiết kế một chiều và thiết kế hai chiều ban đầu.
caracal

Một câu hỏi tiếp theo cuối cùng, nếu tôi có thể: làm thế nào để tương tác hai chiều khái quát hóa thành tương tác của số lượng biến lớn hơn? Nếu tôi có thuật ngữ A B C, tôi sẽ xây dựng từ A: B = (A | B = 1 - A | B = 2), C: B = (C | B = 1 - C | B = 2 ), A: B: C = A: B - C: B, v.v.
F1r3br4 và

2
@ f1r3br4nd Trong thiết kế 2x2x2, chỉ có một tương phản tương tác A B C duy nhất (giống như chỉ có một trong trường hợp 2x2). Các hệ số trong tương phản A B C phải có tổng bằng 0 trên các hàng (A), cột (B) và các mặt phẳng (C) trong "khối thiết kế". Nếu thứ tự của các ô trong thiết kế một chiều liên quan là a1.b1.c1, a2.b1.c1, a1.b2.c1, a2.b2.c1, a1.b1.c2, a2.b1.c2, a1.b2.c2, a2.b2.c2, thì các hệ số là c(1, -1, -1, 1, -1, 1, 1, -1). Nếu bạn có nhiều hơn hai nhóm trong các yếu tố của mình, tất cả các tương phản theo quy tắc tổng bằng không là tương phản 3 chiều.
caracal
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.