回顾上一次的一个OLS, GLS,SI, MME的发展示意图:
MME是Henderson将混合模型的转换得到
1 MME的起源
Henderson提出,其想法是结合OLS与SI,得到了MME。
过程:
首先我们知道:OLS解出的u往往比SI的大。
这样需要在求u时,除以一个更大的值,这是加入一个正矩阵Z‘Z,假设用D代表:
即对原来的解释器进行了惩罚
使用前面求公牛的女儿产奶量的平均值的例子:采用每个奶牛的女儿数进行了一定修改, 或其可以加上一个假设值D
实际上对于D我们可以进行猜测:
- 如果惩罚非常大(即没有进行遗传),使h2 接近0,则D 就是无限大;
- 惩罚非常小(即全部遗传, 使h2 接近1,则D 接近0;
所以D应该是和1-h2, 1/h2,和(1-h2)/h2成比例
PS:当为sir模型时, 应该是(4-h2)/h2,
第二个结论:
解释:u和y的协方差,在SI中是AZ’,直观来看,D 必须与 A-1 成正比,因为整个块 ZZ' + D 是倒置.
但是真正的证明以下公式,是20年后,由Searle教授完成(书籍 《Variance components》有详细证明):
所以最佳线性无偏估计(β,固定效应)和最佳线性无偏预测(u,随机效应)是由以下组成:
Henderson对上述式子从新编写为:
2一般的MME
其中 R = Var(e); G = Var(u), 并且认为已知。
相当于SI(β已知):
3 更一般时
会有多性状模型: 其有利于具有缺少值的样本加入, 也有利于多性状的相关性分析
一样的矩阵公式:
但是其中基于R0和G0的“多性状”反映在R 和 G内部
其中 R0 关联多性状观察值残差的方差协方差矩阵; G0 表示的反映检测性状的随机效应之间的方差协方差矩阵
3 混合模型常见概念
MME = 固定效应 + 随机效应
较少levels 较多levels(不能知道全部)
估计算法 BLUE BLUP
但是两者没有非常明确的区分
各自在模型的作用:
固定效应:各水平的平均值: E(y) = Xβ
随机效应:随机因子的方差协方差矩阵: Var(y) = ZGZ' + R
最佳线性无偏估计=BLUE(β,固定效应)和最佳线性无偏预测=BLUP(u,随机效应)
BLUE与BLUP的区别是由SI传承得到
但是:SI中只是BLP, 缺少u, 即不是无偏
BLUE and BLUP <= MME
可以采用不同方法得到:
- 迭代SI,修正的当代比较(校正用于获得 E(y) 的动物的遗传价值)
-
两步法
(1) 先使用GLM 得到β
image.png
其>=BLUP
(2) 再使用SI得到u:
其>=BLUP
Acurracy and reliability
每个u都有预测误差,对u的评价使用Acurracy or reliability有两种方法:
-
Acurracy(准确性)如下:
image.png
起源于SI理论:
image.png
经常直接使用square root of SI coefficents - reliability(可靠性) 两种算法
(1) reliability = Acurracy2
(2) reliability 从MME系数C-1中求得,C为MME的预测误差方差(prediction error variance, PEV) (MME简写 Cs = r)
image.png
PS这里是没考虑个体之间的近交系数,目前进行GS时,应该考虑加上。
建立MME的矩阵
X与Z往往不是全矩阵(即,内部有很多0)
Xi 和Zi与 观察者i相关联,所以:
这样X'X, Z'Z, X'y, Z‘y均可以直接设定:
如一个固定模型:
需要分开写:
最后求和到一起:
右手项一样
R
Integration(微积分) R-1, R-1是等于R对角线取倒数(如果没有协方差)
多性状时, X‘X等元素都Kronecker product(直积)R-1
对上述的拓展到MME,随机效应的最小二乘 (LS) 部分与固定效应相同,对C加入G-1:
进一步简化公式:
这反映出了G-1中可以加入任何的LS系数
G-1 可以加入性状effectlevels 的协方差
计算使用计算空间
刚才看到建立MME是基于一个个记录数*性状
- Cs = r计算中, C与r均需要储存在计算机memory(运行内存)中,需要较大的计算空间, mostly in sparse manner
- Iteration of data(IOD,数据迭代法). 存储在服务器硬盘中,只有当需要C与r时,才计算
所以对大数据时,加速办法:
- 基于稀疏存储的稀疏逆
- IOD linked to Jacobi, Gauss-Seidel, PCG(BLUP90IOD* program)
迭代求解MME
-
方程式: Jacobi + Gauss-Seidel
在Cs = r中, 需要对s不断更新, 在前n-1次迭代:使用Jacobi;在第n次迭代:使用Gauss-Seidel
image.png
一个小例子:
image.png
Jacobi达到数值解不变
By blocs, 方程组通过对C的一部分求逆来求解, 多性状模型是必要的
-
其他方法: PCG(Preconditioned Conjugate Gradient)(BLUP90IOD* program)
image.png
contemporary comparison法
从历史来看,SI是非常成功,目前也在综合育种中使用
但是SI在估计单个性状EBV时,会出现偏差,因为其实基于已知的偏差经验求取,但是已知的偏差经验具有偏差。
从当时来看,同代群体的基因水平可能不同
SI在奶牛中称为: contemporary comparison(CC) 1950-1960使用在奶牛育种中,用于区分好和坏的公牛,并且很快获得了成功。
CC模型: y = Xt + Za + e
但是对于已经开始育种的牛,这个表型deviation(偏差)会随着时间累积,越来越难估计,甚至会出现有的估计不到。
这就需要我们对其进行修改:
- 使用BLUP
- 校正CC模型: 如果在偏差中有误差,我们进行矫正。这个误差在同代没有遗传相关的牛群中很容易计算
第一种:偏差和 EBV 的联合计算,所以没有误差
第二种: modefied CC(MCC),迭代计算:
(1) 从偏差处计算EBV
(2) 调整当代EBV的偏差
(3) return to (1)
(4) 直到结果稳定(即收敛),收敛的结果与BLUP的相同
怎么实现:
当计算t时,对y的部分进行校正:
迭代,直到收敛:
总图:
其他人的BLUP讲解
今天无意看到一个不错的文章,介绍BLUP,这里给出网址,可以查看
https://zhuanlan.zhihu.com/p/43395772