Split-Plot ANOVA: các thử nghiệm so sánh mô hình trong R


12

Làm cách nào tôi có thể kiểm tra các hiệu ứng trong ANOVA phân chia lô bằng cách sử dụng các so sánh mô hình phù hợp để sử dụng với các đối số Xvà trong R? Tôi quen thuộc với và Dalgaard (2007) [1]. Thật không may, nó chỉ chải thiết kế Split-Plot. Làm điều này trong một thiết kế hoàn toàn ngẫu nhiên với hai yếu tố bên trong chủ đề:Manova.mlm()?anova.mlm

N  <- 20  # 20 subjects total
P  <- 3   # levels within-factor 1
Q  <- 3   # levels within-factor 2
DV <- matrix(rnorm(N* P*Q), ncol=P*Q)           # random data in wide format
id <- expand.grid(IVw1=gl(P, 1), IVw2=gl(Q, 1)) # intra-subjects layout of data matrix

library(car)        # for Anova()
fitA <- lm(DV ~ 1)  # between-subjects design: here no between factor
resA <- Anova(fitA, idata=id, idesign=~IVw1*IVw2)
summary(resA, multivariate=FALSE, univariate=TRUE)  # all tests ...

Các so sánh mô hình sau đây dẫn đến kết quả tương tự. Mô hình bị hạn chế không bao gồm hiệu ứng trong câu hỏi nhưng tất cả các hiệu ứng khác có cùng thứ tự hoặc thấp hơn, mô hình đầy đủ sẽ thêm hiệu ứng trong câu hỏi.

anova(fitA, idata=id, M=~IVw1 + IVw2, X=~IVw2, test="Spherical") # IVw1
anova(fitA, idata=id, M=~IVw1 + IVw2, X=~IVw1, test="Spherical") # IVw2
anova(fitA, idata=id, M=~IVw1 + IVw2 + IVw1:IVw2,
                      X=~IVw1 + IVw2, test="Spherical")          # IVw1:IVw2

Thiết kế Split-Splot với một yếu tố bên trong và một giữa các chủ thể:

idB  <- subset(id, IVw2==1, select="IVw1")          # use only first within factor
IVb  <- gl(2, 10, labels=c("A", "B"))               # between-subjects factor
fitB <- lm(DV[ , 1:P] ~ IVb)                        # between-subjects design
resB <- Anova(fitB, idata=idB, idesign=~IVw1)
summary(resB, multivariate=FALSE, univariate=TRUE)  # all tests ...

Đây là các anova()lệnh để sao chép các bài kiểm tra, nhưng tôi không biết tại sao chúng lại hoạt động. Tại sao các thử nghiệm so sánh mô hình sau đây dẫn đến kết quả tương tự?

anova(fitB, idata=idB, X=~1, test="Spherical") # IVw1, IVw1:IVb
anova(fitB, idata=idB, M=~1, test="Spherical") # IVb

Hai yếu tố bên trong chủ thể và một yếu tố giữa các chủ thể:

fitC <- lm(DV ~ IVb)  # between-subjects design
resC <- Anova(fitC, idata=id, idesign=~IVw1*IVw2)
summary(resC, multivariate=FALSE, univariate=TRUE)  # all tests ...

Làm cách nào để sao chép các kết quả đã cho ở trên với các so sánh mô hình tương ứng để sử dụng với Xvà các Mđối số của anova.mlm()? Logic đằng sau những so sánh mô hình này là gì?

EDIT: suncoolsu chỉ ra rằng cho tất cả các mục đích thực tế, dữ liệu từ các thiết kế này nên được phân tích bằng các mô hình hỗn hợp. Tuy nhiên, tôi vẫn muốn hiểu làm thế nào để sao chép kết quả summary(Anova())với anova.mlm(..., X=?, M=?).

[1]: Dalgaard, P. 2007. Các chức năng mới để phân tích đa biến. Tin tức R, 7 (2), 2-7.


Xin chào @caracal, tôi nghĩ rằng cách bạn đang sử dụng "Thiết kế phân chia âm mưu" không phải là cách như Casella, George định nghĩa nó trong cuốn sách của mình, Thiết kế thống kê. Split Plot chắc chắn nói về việc làm tổ, nhưng là một cách đặc biệt để áp đặt cấu trúc tương quan. Và hầu hết thời gian bạn sẽ sử dụng lme4gói để phù hợp với mô hình VÀ KHÔNG lm. Nhưng đây có thể là một quan điểm dựa trên cuốn sách rất cụ thể. Tôi sẽ để người khác nhận xét về nó. Tôi có thể đưa ra một ví dụ dựa trên cách tôi diễn giải nó khác với bạn.
suncoolsu

2
@suncoolsu Thuật ngữ trong các ngành khoa học xã hội có thể khác nhau, nhưng cả Kirk (1995, p512) và Maxwell & Delaney (2004, p592) đều gọi các mô hình với một mô hình giữa hai và một yếu tố "chia nhỏ". Yếu tố giữa cung cấp "lô" (tương tự nguồn gốc nông nghiệp).
caracal

Tôi có rất nhiều thứ trên đĩa của tôi tại thời điểm này. Tôi sẽ mở rộng câu trả lời của tôi để cụ thể hơn cho câu hỏi của bạn. Tôi thấy bạn đã đầu tư rất nhiều nỗ lực để đóng khung câu hỏi của bạn. Cảm ơn vì điều đó.
suncoolsu

Câu trả lời:


10

Các XMvề cơ bản xác định hai mô hình bạn muốn so sánh, nhưng chỉ về những ảnh hưởng trong phạm vi-môn; sau đó nó hiển thị kết quả cho sự tương tác của tất cả các hiệu ứng giữa các chủ thể (bao gồm cả phần chặn) với các hiệu ứng bên trong chủ đề đã thay đổi giữa XM.

Các ví dụ của bạn trên fitBdễ hiểu hơn nếu chúng tôi thêm mặc định cho XM:

anova(fitB, idata=idB, M=~1, X=~0, test="Spherical") # IVb
anova(fitB, idata=idB, M=diag(3), X=~1, test="Spherical") # IVw1, IVw1:IVb

Mô hình đầu tiên là sự thay đổi từ không có trong các hiệu ứng chủ thể (tất cả đều có cùng một ý nghĩa) thành một ý nghĩa khác nhau cho mỗi hiệu ứng, vì vậy chúng tôi đã thêm idhiệu ứng ngẫu nhiên, đó là điều đúng đắn để kiểm tra đánh chặn tổng thể và tổng thể giữa hiệu ứng chủ thể trên.

Mô hình thứ hai quảng cáo sự id:IVw1tương tác, đó là điều đúng đắn để kiểm tra IVw1và các IVw1:IVbđiều khoản chống lại. Vì chỉ có một hiệu ứng bên trong chủ đề (với ba cấp độ), mặc định diag(3)trong mô hình thứ hai sẽ chiếm nó; nó sẽ tương đương với việc chạy

anova(fitB, idata=idB, M=~IVw1, X=~1, test="Spherical") # IVw1, IVw1:IVb

Đối với bạn fitC, tôi tin rằng các lệnh này sẽ tạo lại Anovatóm tắt.

anova(fitC, idata=id, M=~1, X=~0, test="Spherical") #IVb
anova(fitC, idata=id, M=~IVw1 + IVw2, X=~IVw2, test="Spherical") # IVw1
anova(fitC, idata=id, M=~IVw1 + IVw2, X=~IVw1, test="Spherical") # IVw2
anova(fitC, idata=id, M=~IVw1 + IVw2 + IVw1:IVw2,
                  X=~IVw1 + IVw2, test="Spherical")          # IVw1:IVw2

Bây giờ, như bạn đã phát hiện ra, các lệnh này thực sự khó khăn. Rất may, không còn nhiều lý do để sử dụng chúng nữa. Nếu bạn sẵn sàng giả định tính toàn cầu, bạn chỉ nên sử dụng aovhoặc cho cú pháp thậm chí dễ dàng hơn, chỉ cần sử dụng lmvà tự tính toán các bài kiểm tra F đúng. Nếu bạn không sẵn sàng đảm nhận tính toàn cầu, sử dụng lmethực sự là cách tốt nhất vì bạn sẽ linh hoạt hơn rất nhiều so với việc điều chỉnh GG và HF.

Ví dụ, đây là aovlmmã cho của bạn fitA. Bạn cần phải có dữ liệu ở định dạng dài trước; Đây là một cách để làm điều đó:

library(reshape)
d0 <- data.frame(id=1:nrow(DV), DV)
d0$IVb <- IVb
d0 <- melt(d0, id.vars=c(1,11), measure.vars=2:10)
id0 <- id
id0$variable <- factor(levels(d0$variable), levels=levels(d0$variable))
d <- merge(d0, id0)
d$id <- factor(d$id)

Và đây là lm andmã aov`:

anova(lm(value ~ IVw1*IVw2*id, data=d))
summary(aov(value ~ IVw1*IVw2 + Error(id/(IVw1*IVw2)), data=d))

Cảm ơn bạn rất nhiều, đó chính xác là những gì tôi đang tìm kiếm! Tôi vẫn quan tâm anova()vì vấn đề Anova()được mô tả ở đây . Nhưng đề nghị cuối cùng của bạn cũng hoạt động tốt và đơn giản hơn. (Điều nhỏ: Tôi nghĩ rằng 2 dòng cuối cùng đều thiếu 1 dấu ngoặc đơn đóng và nên đọc Error(id/(IVw1*IVw2)))
caracal

8

Thiết kế chia lô có nguồn gốc trong nông nghiệp, do đó tên. Nhưng chúng thường xuyên xảy ra và tôi muốn nói - đặc điểm của hầu hết các thử nghiệm lâm sàng. Cốt truyện chính được xử lý với một mức độ của một yếu tố trong khi mức độ của một số yếu tố khác được phép thay đổi theo các ô phụ. Thiết kế phát sinh là kết quả của các hạn chế về ngẫu nhiên đầy đủ. Ví dụ: một trường có thể được chia thành bốn ô nhỏ. Có thể trồng các giống khác nhau trong các ô nhỏ, nhưng chỉ có một loại tưới có thể được sử dụng cho toàn bộ cánh đồng. Không phải là sự phân biệt giữa các phần táchkhối. Các khối là các tính năng của các đơn vị thử nghiệm mà chúng tôi có tùy chọn để tận dụng lợi thế trong thiết kế thử nghiệm, bởi vì chúng tôi biết chúng ở đó. Mặt khác, chia tách áp đặt các hạn chế về việc gán các yếu tố nào là có thể. Họ áp đặt các yêu cầu đối với thiết kế ngăn chặn sự ngẫu nhiên hoàn toàn.

Chúng được sử dụng rất nhiều trong các thử nghiệm lâm sàng trong đó khi một yếu tố dễ thay đổi trong khi yếu tố khác mất nhiều thời gian hơn để thay đổi. Nếu người thí nghiệm phải thực hiện tất cả các lần chạy cho từng cấp độ của yếu tố khó thay đổi liên tiếp, thì kết quả thiết kế sơ đồ phân chia với yếu tố khó thay đổi đại diện cho toàn bộ yếu tố cốt truyện.

Dưới đây là một ví dụ: Trong một thử nghiệm trên đồng ruộng, mục tiêu là xác định ảnh hưởng của hai giống cây trồng và bốn phương pháp tưới khác nhau. Tám lĩnh vực đã có sẵn, nhưng chỉ có một loại thủy lợi có thể được áp dụng cho mỗi lĩnh vực. Các lĩnh vực có thể được chia thành hai phần với sự đa dạng khác nhau trong mỗi phần. Toàn bộ yếu tố cốt truyện là thủy lợi, nên được gán ngẫu nhiên cho các lĩnh vực. Trong mỗi lĩnh vực, sự đa dạng được chỉ định.

Đây là cách bạn làm điều này trong R:

install.packages("faraway")
data(irrigation)
summary(irrigation)

library(lme4)

R> (lmer(yield ~ irrigation * variety + (1|field), data = irrigation))
Linear mixed model fit by REML 
Formula: yield ~ irrigation * variety + (1 | field) 
   Data: irrigation 
  AIC  BIC logLik deviance REMLdev
 65.4 73.1  -22.7     68.6    45.4
Random effects:
 Groups   Name        Variance Std.Dev.
 field    (Intercept) 16.20    4.02    
 Residual              2.11    1.45    
Number of obs: 16, groups: field, 8

Fixed effects:
                       Estimate Std. Error t value
(Intercept)               38.50       3.02   12.73
irrigationi2               1.20       4.28    0.28
irrigationi3               0.70       4.28    0.16
irrigationi4               3.50       4.28    0.82
varietyv2                  0.60       1.45    0.41
irrigationi2:varietyv2    -0.40       2.05   -0.19
irrigationi3:varietyv2    -0.20       2.05   -0.10
irrigationi4:varietyv2     1.20       2.05    0.58

Correlation of Fixed Effects:
            (Intr) irrgt2 irrgt3 irrgt4 vrtyv2 irr2:2 irr3:2
irrigation2 -0.707                                          
irrigation3 -0.707  0.500                                   
irrigation4 -0.707  0.500  0.500                            
varietyv2   -0.240  0.170  0.170  0.170                     
irrgtn2:vr2  0.170 -0.240 -0.120 -0.120 -0.707              
irrgtn3:vr2  0.170 -0.120 -0.240 -0.120 -0.707  0.500       
irrgtn4:vr2  0.170 -0.120 -0.120 -0.240 -0.707  0.500  0.500

Về cơ bản, những gì mô hình này nói là, thủy lợi và giống là các hiệu ứng cố định và sự đa dạng được lồng trong tưới. Các trường là các hiệu ứng ngẫu nhiên và theo hình ảnh sẽ giống như

I_1 | I_2 | I_3 | I_4

V_1 V_2 | V_1 V_2 | V_1 V_2 | V_1 V_2

Nhưng đây là một biến thể đặc biệt với toàn bộ hiệu ứng cốt truyện cố định và hiệu ứng phụ. Có thể có các biến thể trong đó một hoặc nhiều là ngẫu nhiên. Có thể có các thiết kế phức tạp hơn như split-split .. thiết kế cốt truyện. Về cơ bản, bạn có thể đi hoang và điên. Nhưng với cấu trúc và phân phối cơ bản (nghĩa là cố định hoặc ngẫu nhiên, lồng hoặc chéo, ..) được hiểu rõ ràng, lmer-Ninjasẽ không có rắc rối trong mô hình hóa. Có thể được giải thích sẽ là một mớ hỗn độn.

Về so sánh, nói rằng bạn có lmer1lmer2:

anova(lmer1, lmer2)

sẽ cung cấp cho bạn bài kiểm tra phù hợp dựa trên thống kê kiểm tra chi-sq với mức độ tự do bằng với sự khác biệt của các tham số.

cf: Faraway, J., Mở rộng mô hình tuyến tính với R.

Casella, G., Thiết kế thống kê


Tôi đánh giá cao phần giới thiệu để phân tích các thiết kế splot splot với các mô hình hiệu ứng hỗn hợp và thông tin cơ bản hơn nữa! Nó chắc chắn là cách ưa thích để thực hiện phân tích. Tôi đã cập nhật câu hỏi của mình để nhấn mạnh rằng tôi vẫn muốn biết cách thực hiện "cách cũ" này.
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.