我有一个不平衡的重复测量数据集来进行分析,并且我已经读到大多数统计软件包使用ANOVA(即III型平方和)处理此问题的方式是错误的。因此,我想使用混合效应模型来分析这些数据。我已经在中阅读了很多有关混合模型的信息R
,但是对于R
混合效应模型我还是很陌生,对自己做的事情不是很自信。请注意,我还不能完全脱离“传统”方法,仍然需要和事后检验。
我想知道以下方法是否有意义,或者我做错了什么。这是我的代码:
# 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)
我有一些具体问题:
- 这是分析混合效应模型的有效方法吗?如果没有,我应该怎么做。
- mcp.fnc输出的批评图是否足以验证模型假设,还是我应该采取其他措施?
- 我认为为了使混合模型有效,数据需要尊重正态性和均方差性的假设。我如何通过查看mcp.fnc生成的批评图来判断什么是“近似正常”,什么不是?我只是需要对此有所了解,还是他们有规定的做事方式?关于这些假设,混合模型的稳健性如何?
- 我需要评估样本中受试者约20个特征(生物标志物)的三个时间点之间的差异。只要我报告所有已进行的测试(重要的或不重要的),或者是否需要任何形式的校正以进行多次比较,是否可以对每个模型分别进行拟合和测试?
为了使实验更加精确,这里有一些更多细节。我们对许多参与者进行了纵向治疗。在治疗开始之前和之后的两个时间点,我们测量了许多生物标志物。我想看到的是,这三个时间点之间的这些生物标记物是否存在差异。
我将本教程的大部分工作都基于本教程,但是会根据我的需要和阅读的内容进行一些更改。我所做的更改是:
- 使用“ pvals.fnc”(来自languageR包)重新调整“时间”因子,以获得t1-t2,t2-t3和t1-t3比较
- 使用基于Kenward-Roger方法(使用pbkrtest程序包)的近似F检验(而不是似然比检验)将混合模型与零模型进行比较(因为我读过,现在最好考虑使用Kenward-Roger的模型)
- 使用LMERConvenienceFunctions包检查假设并删除异常值(因为我读到混合模型对异常值非常敏感)