广义线性混合模型(generalized linear mixed model, GLMM) - ricket-sjtu/bi028 GitHub Wiki

GLMM是对线性混合模型(linear mixed model, LMM)的扩展,那么,什么是线性混合模型呢?

线性混合模型(LMM)

一般性型模型(general linear model)对于协方差矩阵(covariance matrix)具有严格的要求。如果协方差球形检验无法得到满足(也就是相互之间的独立不相关性),必须进行多元方差分析或者对F统计量的自由度进行校正,从而获得校正后的概率。

相对来说,混合线性模型是基于似然函数法的原理,它对协方差矩阵的要求比单因素方差分析宽松,它允许资料存在某种相关性及协方差矩阵的多样性,无需对自由度进行校正,能够较好的适合重复资料的特点。

混合效应线性模型中,固定效应(fixed effect)对应变量(response)的均值进行建模,而随机效应(random effects)则控制数据中复杂的方差-协方差(variance-covariance)结构。

广义线性混合模型(GLMM)

GLMM对于应变量的要求可不符合正态分布,如可以是二分类(binary)的数据,生存数据(survival data),还可以是其他分类数据(categorical),可以使有序的(ordinal),也可以是无序的(nominal)。

有些分析方法则是将数据进行转换(transformation),然后令转换后的数据满足正态分布的假设,但是,

  • 当样本量比较小,结果不可靠,转换不一定都能满足要求
  • 有些性状没有必要都转化为0-1范围的数据

那么,为什么不用GLM模型呢?这是因为,GLM模型虽然能够使用多种不同的分布(二项式分布、泊松分布、负二项分布、gamma分布等),但同时假设观察之间的独立性,然而在实际工作中,这往往不现实。这时候,就要使用到广义线性混合模型GLMM。

使用GLMM的软件包

  • R语言中的nlmelme()应用于线性混合模型,nlme()应用于非线性混合模型。可以定义复杂的方差结构,不支持广义线性混合模型(GLMM),对于镶嵌结构(nested)的随机因子定义简单,但对于交叉的随机因子(crossed)定义困难;
  • R语言中的lme4nlme的进一步扩展,支持GLMM,很难处理交叉的随机因子,运行速度要快于nlme
  • R语言中的MCMCglmm:用马尔可夫链蒙特卡罗(Markov Chain Monte Carlo,MCMC)的方法拟合模型,贝叶斯先验分布,可以定义一些复杂的方差结构(heterogeneous yes, AR1 no);
  • SAS中的PROC GLIMMIX模块支持了Laplace approximation和adaptive Gaussian quadrature方法,但对于复杂的模型,用的还是PQL方法;
  • SAS中的PROC MIXED模块执行一般线性混合模型(LMM);
  • ASReml
  • ASReml-R包:是ASReml软件的R版本,运算速度快,支持复杂的模型(随机因子的定义G矩阵和残差矩阵的定义R矩阵),支持系谱信息和多性状分析,在动物、作物、林木、水产育种和科研中应用广发。
  • GenStat软件的GLMM模型

比较分析

软件包的比较分析