线性混合模型系列二:模型假定

2019-10-17 16:31:06 浏览数 (1)

1. 混合线性模型公式和假定 混合线性模型的公式和假定,一般认为随机因子和残差是符合正态分布的,随机因子可以相关(比如系谱关系,SNP构建G矩阵关系),用A矩阵或者G矩阵表示,残差是独立同分布的,矩阵结构一般是单位矩阵。

举个栗子:

比如这里不同场的一些个公牛(Sire)的体重(y),如果要分析这个数据,公牛作为随机因子,模型为:

这里:

  • 观测值:体重weight
  • 固定因子:Chang
  • 随机因子:Sire
  • 残差:e

如果公牛之间没有亲缘关系,那么他们之间的亲缘关系矩阵是单位矩阵,它的分布为:

残差的分布为:

那么G矩阵(随机因子)和R矩阵(残差)为:

如果,公牛之间是由亲缘关系A的,那么:

2. 多个固定因子和多个随机因子的剖分

这里b为固定因子的效应值,加入固定因子有多个,场,年,季,性别等等,那么b 可以分解为:[b1, b2, b3,...]

X为固定因子对应的矩阵,X也可以分解为:[X1,X2,X3...]

同样的道理,随机因子和随机因子的矩阵,也可以剖分为类似的形式,比如动物模型中,除了加性效应,还可以有母体效应,永久环境效应,窝别效应作为随机因子。

3. 直和和直积

3.1 概念解释

多个随机因子时,如果他们之间是独立的,那么整个随机因子的矩阵由每个随机因子的矩阵构成,他们之间的关系是直和。

如果随机因子之间,是有相关的,比如母体效应和加性效应,有时会有协方差的关系,那么他们之间的关系就是直积。

直和(Direct sum)和直积(Direct product)是混合线性模型中经常用到的概念,下面用具体例子介绍直积和直和是如何通过R语言计算的。

比如下图中,D为22的矩阵,F为22的矩阵,那么直和就是讲D和F作为对角线,非对角线为0,构成一个44的矩阵。直积D的每个元素分别和F矩阵相乘,得到44的矩阵。

3.2 R语言实现直和与直积

函数构建

这里直积我们用R的默认函数kronecker,为了方便操作,我们赋予它另一个名称:direct_product。

对于直和,我们构建了一个函数,可以将两个矩阵变成直和的结果。

代码语言:javascript复制
direct_sum<- function(mat1,mat2){
  r1 <- dim(mat1)[1];c1<- dim(mat1)[2]
  r2 <- dim(mat2)[1];c2<- dim(mat2)[2]
  rbind(cbind(mat1,matrix(0,r1,c2)),cbind(matrix(0,r2,c1),mat2))
}
direct_product <- kronecker

运行结果:

4. sigma参数化和gamma参数化

一般混合模型中的假定都是sigma参数化的:

也就是,需要计算Vg和Ve的方差组分,sigma。

gamma参数化,是直接是Vg/Ve,因此只需要计算Ve,然后根据gamma,就可以计算Vg,因为:Vg = gamma*Ve。

我们假定:

这样做的好处是方便指定初始值,只需要指定比例(比如根据遗传力推导)即可,很方便,这样,y的方差就变成了:

asreml中,在固定初始值,要制定gamma参数化,一般我们在分析时,都是用的是sigma参数。混合线性模型,可以根据直接方法,也可以根据MME间接方法,在求解之前,需要知道随机因子和残差的方差组分,这就需要用REML方法。

线性混合模型系列一:基本定义

0 人点赞