Tôi có một bộ dữ liệu đo lặp lại không cân bằng được thiết lập để phân tích và tôi đã đọc rằng cách mà hầu hết các gói thống kê xử lý việc này với ANOVA (tức là tổng bình phương loại III) là sai. Do đó, tôi muốn sử dụng mô hình hiệu ứng hỗn hợp để phân tích các dữ liệu này. Tôi đã đọc rất nhiều về các mô hình hỗn hợp trong R
, nhưng tôi vẫn còn rất mới R
và các mô hình hiệu ứng hỗn hợp và không tự tin rằng tôi đang làm đúng. Lưu ý rằng tôi chưa thể hoàn toàn tự ly hôn với các phương pháp "truyền thống" và vẫn cần giá trị và các bài kiểm tra sau đại học.
Tôi muốn biết nếu cách tiếp cận sau đây có ý nghĩa, hoặc nếu tôi đang làm điều gì đó sai lầm khủng khiếp. Đây là mã của tôi:
# load packages
library(lme4)
library(languageR)
library(LMERConvenienceFunctions)
library(coda)
library(pbkrtest)
# import data
my.data <- read.csv("data.csv")
# create separate data frames for each DV & remove NAs
region.data <- na.omit(data.frame(time=my.data$time, subject=my.data$subject, dv=my.data$dv1))
# output summary of data
data.summary <- summary(region.data)
# fit model
# "time" is a factor with three levels ("t1", "t2", "t3")
region.lmer <- lmer(dv ~ time + (1|subject), data=region.data)
# check model assumptions
mcp.fnc(region.lmer)
# remove outliers (over 2.5 standard deviations)
rm.outliers <- romr.fnc(region.lmer, region.data, trim=2.5)
region.data <- rm.outliers$data
region.lmer <- update(region.lmer)
# re-check model assumptions
mcp.fnc(region.lmer)
# compare model to null model
region.lmer.null <- lmer(dv ~ 1 + (1|subject), data=region.data)
region.krtest <- KRmodcomp(region.lmer, region.lmer.null)
# output lmer summary
region.lmer.summary <- summary(region.lmer)
# run post hoc tests
t1.pvals <- pvals.fnc(region.lmer, ndigits=10, withMCMC=TRUE)
region.lmer <- lmer(dv ~ relevel(time,ref="t2") + (1|subject), data=region.data)
t2.pvals <- pvals.fnc(region.lmer, ndigits=10, withMCMC=TRUE)
region.lmer <- lmer(dv ~ relevel(time,ref="t3") + (1|subject), data=region.data)
t3.pvals <- pvals.fnc(region.lmer, ndigits=10, withMCMC=TRUE)
# Get mcmc mean and 50/95% HPD confidence intervals for graphs
# repeated three times and stored in a matrix (not shown here for brevity)
as.numeric(t1.pvals$fixed$MCMCmean)
as.numeric(t1.pvals$fixed$HPD95lower)
as.numeric(t1.pvals$fixed$HPD95upper)
HPDinterval(as.mcmc(t1.pvals$mcmc),prob=0.5)
HPDinterval(as.mcmc(t1.pvals$mcmc),prob=0.5)
Một số câu hỏi cụ thể tôi có:
- Đây có phải là một cách hợp lệ để phân tích các mô hình hiệu ứng hỗn hợp? Nếu không, tôi nên làm gì thay thế.
- Là các chỉ trích âm mưu đầu ra bởi mcp.fnc đủ tốt để xác minh các giả định mô hình, hoặc tôi nên thực hiện các bước bổ sung.
- Tôi hiểu rằng để các mô hình hỗn hợp là hợp lệ, dữ liệu cần phải có các giả định tôn trọng tính quy tắc và tính đồng nhất. Làm cách nào để tôi đánh giá thế nào là "gần như bình thường" và điều gì không phải bằng cách xem xét các âm mưu chỉ trích được tạo bởi mcp.fnc? Tôi chỉ cần cảm nhận về điều này, hay là một cách làm theo quy định của họ? Làm thế nào mạnh mẽ là mô hình hỗn hợp đối với các giả định này?
- Tôi cần đánh giá sự khác biệt giữa ba điểm thời gian cho ~ 20 đặc điểm (dấu ấn sinh học) của các đối tượng trong mẫu của tôi. Việc phù hợp và thử nghiệm các mô hình riêng biệt cho từng mô hình có thể chấp nhận được miễn là tôi báo cáo tất cả các thử nghiệm đã thực hiện (có ý nghĩa hay không) hoặc tôi cần bất kỳ hình thức chỉnh sửa nào cho nhiều so sánh.
Để chính xác hơn một chút liên quan đến thí nghiệm, đây là một số chi tiết. Chúng tôi đã theo dõi một số người tham gia theo chiều dọc khi họ trải qua điều trị. Chúng tôi đã đo một số dấu ấn sinh học trước khi bắt đầu điều trị và tại hai thời điểm sau đó. Những gì tôi muốn thấy là nếu có sự khác biệt trong các dấu ấn sinh học giữa ba thời điểm.
Tôi đang dựa trên hầu hết những gì tôi đang làm ở đây trong hướng dẫn này , nhưng đã thực hiện một số thay đổi dựa trên nhu cầu của tôi và những thứ tôi đọc được. Những thay đổi tôi đã thực hiện là:
- xem lại hệ số "thời gian" để có được các so sánh t1-t2, t2-t3 và t1-t3 với p đạn.fnc (từ gói ngôn ngữR)
- so sánh mô hình hỗn hợp của tôi với mô hình null bằng cách sử dụng thử nghiệm F gần đúng dựa trên cách tiếp cận của Kenward-Reller (sử dụng gói pbkrtest) thay vì thử nghiệm tỷ lệ khả năng (vì tôi đã đọc, rằng Kenward-Roger được đánh giá tốt hơn ngay bây giờ)
- Sử dụng gói LMERConvenienceFifts để kiểm tra các giả định và xóa các ngoại lệ (vì tôi đọc rằng các mô hình hỗn hợp rất nhạy cảm với các ngoại lệ)