我想获得一个独立类别变量(具有多个级别)的p值和效果大小-即“总体”,而不是分别针对每个级别,就像lme4
R中的正常输出一样。就像人们在运行ANOVA时报告的事情。
我怎么能得到这个?
我想获得一个独立类别变量(具有多个级别)的p值和效果大小-即“总体”,而不是分别针对每个级别,就像lme4
R中的正常输出一样。就像人们在运行ANOVA时报告的事情。
我怎么能得到这个?
Answers:
您提到的两个概念(线性混合模型的p值和效果大小)都存在固有的问题。关于效果大小,引用了道格·贝茨(Doug Bates)的原始作者lme4
,
假设要定义一个度量,我认为可以为处理线性混合模型的惩罚残差平方和提出一个论点,就像我们考虑线性模型的残差平方和一样。或者,一个人可以只使用残差平方和,而不会从给定的一组术语中获得罚分或最小残差平方和,这对应于无限精度矩阵。我真的不知道 这取决于您要表征的内容。
有关更多信息,您可以查看此线程,此线程和此消息。从根本上说,问题在于,尚无商定的方法来包含和分解模型中来自随机效应的方差。但是,有一些使用的标准。如果您查看由r-sig-mixed-models邮件列表建立的Wiki,则列出了几种方法。
建议的方法之一是查看拟合值和观察值之间的相关性。可以按照Jarrett Byrnes在这些线程之一中的建议在R中实现:
r2.corr.mer <- function(m) {
lmfit <- lm(model.response(model.frame(m)) ~ fitted(m))
summary(lmfit)$r.squared
}
例如,假设我们估计以下线性混合模型:
set.seed(1)
d <- data.frame(y = rnorm(250), x = rnorm(250), z = rnorm(250),
g = sample(letters[1:4], 250, replace=T) )
library(lme4)
summary(fm1 <- lmer(y ~ x + (z | g), data=d))
# Linear mixed model fit by REML ['lmerMod']
# Formula: y ~ x + (z | g)
# Data: d
# REML criterion at convergence: 744.4
#
# Scaled residuals:
# Min 1Q Median 3Q Max
# -2.7808 -0.6123 -0.0244 0.6330 3.5374
#
# Random effects:
# Groups Name Variance Std.Dev. Corr
# g (Intercept) 0.006218 0.07885
# z 0.001318 0.03631 -1.00
# Residual 1.121439 1.05898
# Number of obs: 250, groups: g, 4
#
# Fixed effects:
# Estimate Std. Error t value
# (Intercept) 0.02180 0.07795 0.280
# x 0.04446 0.06980 0.637
#
# Correlation of Fixed Effects:
# (Intr)
# x -0.005
我们可以使用上面定义的函数来计算效果大小:
r2.corr.mer(fm1)
# [1] 0.0160841
1-var(residuals(fm1))/(var(model.response(model.frame(fm1))))
# [1] 0.01173721 # Usually, it would be even closer to the value above
关于p值,这是一个更具争议性的问题(至少在R / lme4
社区中)。请参阅此处,此处和此处的问题中的讨论。再次参考Wiki页面,有几种方法可以检验关于线性混合模型中的效应的假设。从“最坏到最好”列出(根据Wiki页面的作者,我相信其中包括Doug Bates以及在这里做出很多贡献的Ben Bolker):
anova
或drop1
),也可以通过计算似然曲线来进行他们推荐了马尔可夫链蒙特卡洛采样方法,并且还列出了许多从伪贝叶斯方法和完全贝叶斯方法实现此方法的可能性,如下所示。
伪贝叶斯:
mcmcsamp
(如果适用于您的问题:即LMMS简单随机效应-不GLMMs参数或复杂的随机效应),pvals.fnc
在languageR
包装,用于包装mcmcsamp
) glmmADMB
包(使用mcmc=TRUE
选项)或R2admb
包(在AD Model Builder中编写您自己的模型定义),或通过R之外 sim
函数arm
(仅针对β(固定效应)系数模拟后验 完全贝叶斯方法:
MCMCglmm
包装 glmmBUGS
(WinBUGS包装器/ R界面) rjags
/ r2jags
/ R2WinBUGS
/ BRugs
包 使用JAGS / WinBUGS / OpenBUGS等为了便于说明,下面是MCMCglmm
使用该MCMCglmm
包进行的估算,您将看到与上述模型相似的结果,并具有某种贝叶斯p值:
library(MCMCglmm)
summary(fm2 <- MCMCglmm(y ~ x, random=~us(z):g, data=d))
# Iterations = 3001:12991
# Thinning interval = 10
# Sample size = 1000
#
# DIC: 697.7438
#
# G-structure: ~us(z):g
#
# post.mean l-95% CI u-95% CI eff.samp
# z:z.g 0.0004363 1.586e-17 0.001268 397.6
#
# R-structure: ~units
#
# post.mean l-95% CI u-95% CI eff.samp
# units 0.9466 0.7926 1.123 1000
#
# Location effects: y ~ x
#
# post.mean l-95% CI u-95% CI eff.samp pMCMC
# (Intercept) -0.04936 -0.17176 0.07502 1000 0.424
# x -0.07955 -0.19648 0.05811 1000 0.214
我希望这会有所帮助。我认为对于从线性混合模型入手并尝试在R中进行估算的人来说,最好的建议是阅读从中提取大多数此类信息的Wiki常见问题。从基础到高级,从建模到绘图,它都是各种混合效果主题的极佳资源。
关于计算显着性(p)值,Luke(2016)在R中的线性混合效应模型中评估显着性表明,最佳方法是自由度的Kenward-Roger或Satterthwaite逼近(在R中提供,例如lmerTest
或afex
)。
抽象
在实验数据分析中,混合效应模型越来越频繁地被使用。但是,在R中的lme4程序包中,用于评估这些模型中固定效应的重要性的标准(即获得p值)有些含糊。这样做有充分的理由,但是由于在许多情况下都需要使用这些模型的研究人员来报告p值,因此需要一些方法来评估模型输出的重要性。本文报告的模拟结果表明,使用似然比检验并将z分布应用于模型输出(t-as-z)的Wald t值的两种最常用的评估显着性的方法在某种程度上是保守的,特别是对于较小的样本量。其他评估重要性的方法,这些模拟的结果表明,当使用REML拟合模型并使用Kenward-Roger或Satterthwaite近似推导p值时,类型1的错误率最接近.05,因为即使对于较小的体积,这些近似值都可以产生可接受的类型1的错误率。样品。
(强调)
lmerTest
包中提供了Kenward-Roger逼近。
我用的lmerTest
包。这方便地包括了anova()
我的MLM分析的输出中p值的估计,但由于此处其他帖子中给出的原因,没有给出效果大小。
anova()
函数来获得线性混合模型的方差分析表,就像线性模型一样。