Làm cách nào để thực hiện ANOVA hỗn hợp 4 x 4 với độ tương phản giữa và trong đối tượng sử dụng R?


11

Người dùng mới bắt đầu của R ở đây đang vật lộn với một biện pháp lặp lại ANOVA.

Tôi có một bộ dữ liệu bao gồm một trong số các yếu tố giữa các đối tượng với 4 cấp độ (được mã hóa trong một biến duy nhất gọi là 'nhóm') và một trong các yếu tố đối tượng có 4 cấp độ (được mã hóa theo bốn biến riêng biệt 'DV1', 'DV2', 'DV3 ',' DV4 ').

Tôi có các mục tiêu sau:

  1. Chạy một số đo lặp lại tổng thể ANOVA.
  2. So sánh các nhóm sử dụng độ tương phản tùy chỉnh (như trong lệnh LMATRIX trong SPSS).
  3. So sánh các mức DV khác nhau bằng cách sử dụng độ tương phản tùy chỉnh (như trong lệnh MMATRIX trong SPSS).
  4. Thực hiện kết hợp 2) và 3) đồng thời để tôi chỉ so sánh các nhóm nhất định ở các cấp nhất định của yếu tố bên trong chủ đề.
  5. Chạy một tập hợp các tương phản KHÔNG tổng bằng không.

Tôi biết tôi có thể làm điều này trong SPSS mà không gặp vấn đề gì, nhưng tôi không thể hiểu rõ về cách thực hiện điều này trong R. Tôi đã thấy các phần của điều này có thể hoạt động như thế nào trong các gói khác nhau, nhưng tôi không như vậy đến nay đã thấy làm thế nào điều này có thể hoạt động trong một thủ tục hoặc một tập hợp các thủ tục liên quan trong R.

Câu trả lời:


18

Một bản phác thảo của một giải pháp (cho một giải pháp khác xem bên dưới):

  1. Dữ liệu cần phải ở định dạng dài (nghĩa là trên giá trị trên mỗi hàng) thay vì ở định dạng rộng như trong SPSS (nghĩa là một chủ đề trên mỗi hàng), hãy xem gói định hình lại hoặc ?reshape. Điều đó bao gồm rằng cần phải có một biến chỉ định định danh chủ thể (tức là id chủ đề).
  2. Tất cả các yếu tố (bao gồm cả định danh chủ thể) phải thuộc yếu tố lớp (chạy strtrên khung dữ liệu của bạn để kiểm tra điều này). Nếu bạn không làm điều này, kết quả của bạn sẽ sai.
  3. Nếu bạn muốn thu được tổng bình phương loại III, hãy đặt độ tương phản mặc định thành mã hóa hiệu ứng:
    options(contrasts=c("contr.sum","contr.poly"))
  4. Xác định mô hình mong muốn với lmetừ nlmegói (cài đặt và tải các beforehands gói qua install.packages("nlme")library(nlme)) sử dụng một cấu trúc tương quan đối xứng compund. Xem câu trả lời và đặc biệt là nhận xét của tôi cho câu trả lời được chấp nhận cho câu hỏi này. Trong trường hợp của bạn có thể giống như (nếu bạn đã cung cấp dữ liệu mẫu, được khuyến nghị mạnh mẽ, bạn sẽ nhận được mã chính xác):
    my.anova <- lme(dv ~ group*within, data = your.df, random = ~1|id, correlation = corCompSymm(form = ~1|id))
  5. Sử dụng anovahàm chung để lấy bảng anova (xem ?anova.lme):
    anova(my.anova)
    Để thu được tổng bình phương loại III, hãy sử dụng anovalệnh với đối số typeđược đặt thành "marginal"(điều này chỉ hoạt động nếu độ tương phản được đặt thành mã hóa hiệu ứng, xem điểm 3):
    anova(my.anova, type = "marginal")
  6. Đối tượng được trang bị loại lmebây giờ cho phép các chức năng đa dạng để thực hiện tương phản. Giải pháp linh hoạt nhất (nhưng là một giải pháp khá khó hiểu) là Lđối số trong một cuộc gọi đến anova.lme(xem lại ?anova.lme).
    Các giải pháp khác cũng yêu cầu một lmeđối tượng được trang bị làm đối số:
    Cũng rất linh hoạt là estimablechức năng từ gói gmodels . Gói này cũng cung cấp các fit.contrastschức năng.
    Các multcomp gói cho phép tương phản sử dụng điều chỉnh alpha-lỗi (nhưng bạn chỉ có thể thực hiện tương phản sử dụng một trong những yếu tố của bạn), sử dụng các glhtchức năng.
    Một cách tiếp cận mới và đầy hứa hẹn là gói tương phản , tuy nhiên, cho đến nay nó dường như không tiết lộ tất cả các tương phản có thể có.

Một giải pháp thay thế là sử dụng ANOVA tiêu chuẩn thông qua sự kết hợp afexlsmeansnhư được nêu trong afex-vignette .


(+1) Phản ứng tuyệt vời và rất hướng dẫn. Đang chờ bài viết trên blog ...
chl

?anova.lmekhông hoạt động đối với tôi và methods(anova)liệt kê nó là một chức năng không nhìn thấy được.
Giăng

@ John Bạn đã tải nlmetrước? Nếu không, chạy library(nlme), sau đó nó sẽ làm việc. Nếu nó vẫn không hoạt động, install.packages("nlme")đầu tiên.
Henrik

ah ... Tôi đã không rõ ràng, chỉ lme4
John

@ Henrick, tôi có thể đi đến bước 5, nhưng tôi không thể thiết lập độ tương phản so sánh các yếu tố giữa các chủ thể cụ thể ở các cấp độ yếu tố bên trong đối tượng cụ thể. Tất cả các tài liệu trực tuyến mà tôi thấy có liên quan đến việc kiểm tra sự khác biệt ở các mức độ khác nhau giữa các yếu tố giữa các chủ thể. Bạn có mã ví dụ nào không? Tôi chỉ có thể chờ đợi bài viết trên blog nếu bạn sẽ đăng nó ở đó.
thủy cung
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.