Saya memiliki data pengukuran berulang yang tidak seimbang yang ditetapkan untuk dianalisis, dan saya telah membaca bahwa cara sebagian besar paket statistik menangani ini dengan ANOVA (yaitu tipe III jumlah kuadrat) salah. Oleh karena itu, saya ingin menggunakan model efek campuran untuk menganalisis data ini. Saya telah membaca banyak tentang model campuran R
, tetapi saya masih sangat baru R
dan model efek campuran dan tidak begitu percaya diri saya melakukan hal yang benar. Perhatikan bahwa saya belum dapat sepenuhnya menceraikan diri saya dari metode "tradisional", dan masih membutuhkan nilai dan tes post hoc.
Saya ingin tahu apakah pendekatan berikut ini masuk akal, atau jika saya melakukan sesuatu yang sangat salah. Ini kode saya:
# 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)
Beberapa pertanyaan spesifik yang saya miliki:
- Apakah ini cara yang valid untuk menganalisis model efek campuran? Jika tidak, apa yang harus saya lakukan sebagai gantinya.
- Apakah plot kritik dihasilkan oleh mcp.fnc cukup baik untuk memverifikasi asumsi model, atau haruskah saya mengambil langkah tambahan.
- Saya mendapatkan bahwa untuk model campuran menjadi valid, data perlu menghormati asumsi normalitas dan homoseksualitas. Bagaimana cara saya menilai apa yang "kira-kira normal" dan apa yang tidak dengan melihat plot kritik yang dihasilkan oleh mcp.fnc? Apakah saya hanya perlu merasakan ini, atau apakah mereka cara yang ditentukan untuk melakukan sesuatu? Seberapa kuat model campuran sehubungan dengan asumsi ini?
- Saya perlu menilai perbedaan antara tiga titik waktu untuk ~ 20 karakteristik (biomarker) dari subjek dalam sampel saya. Apakah pemasangan dan pengujian model terpisah untuk masing-masing dapat diterima selama saya melaporkan semua tes yang dilakukan (signifikan atau tidak), atau apakah saya memerlukan segala bentuk koreksi untuk beberapa perbandingan.
Agar sedikit lebih tepat dalam hal eksperimen, berikut adalah beberapa detail lainnya. Kami mengikuti sejumlah peserta secara longitudinal saat mereka menjalani perawatan. Kami mengukur sejumlah biomarker sebelum dimulainya pengobatan dan pada dua titik waktu setelahnya. Yang ingin saya lihat adalah jika ada perbedaan dalam biomarker ini antara tiga titik waktu.
Saya mendasarkan sebagian besar dari apa yang saya lakukan di sini pada tutorial ini , tetapi membuat beberapa perubahan berdasarkan pada kebutuhan dan hal-hal yang saya baca. Perubahan yang saya buat adalah:
- lepaskan faktor "waktu" untuk mendapatkan perbandingan t1-t2, t2-t3, dan t1-t3 dengan pvals.fnc (dari paket languageR)
- bandingkan model campuran saya dengan model nol menggunakan perkiraan F-tes berdasarkan pendekatan Kenward-Roger (menggunakan paket pbkrtest) daripada tes rasio kemungkinan (karena saya membaca, bahwa Kenward-Roger lebih baik dianggap sekarang)
- Gunakan paket LMERConvenienceFunctions untuk memeriksa asumsi dan menghapus outlier (karena saya membaca bahwa model campuran sangat sensitif terhadap outlier)