GBLUP模型问题

(1)请问一下在GBLUP模型预测部分,代码中G矩阵的计算方式为什么是G<-tcrossprod(X)/ncol(X),分母的ncol(X)和常规的VanRaden G矩阵定义不一样,这个会对结果有影响吗?

(2)能否简单解释一下为什么GBLUP模型的预测值是这么计算的:y_pred = final_fm$mu + as.vector(G21 %*% solve(G11) %*% final_fm$ETA[[1]]$u)

请先 登录 后评论

1 个回答

xun - 电路元件工程师

1: VanRaden是最经典的,但是很多r包比如rrBLUP反而是用的ncol(X)这里的这个逻辑,因为对很多数据集来说计算难度还有数据集完整度也是需要考虑的 

使用我们这里的计算方法,数学意义更直观(对角线都是1),生物学意义则是会被削弱

但是不影响育种应用相关的结果(相关系数,排名选择准确性),会影响方差组分的绝对值


2:

final_fm$mu 是群体均值

final_fm$ETA[[1]]$u 是每个训练集个体的育种值

solve(G11)  训练集个体间的亲缘关系矩阵(剥掉个体间共享的亲缘背景)

G21 预测集个体x训练个体的亲缘关系

最后实际上是  

预测值 = 群体均值 + 亲缘加权 × 训练集真实遗传效应

和贝叶斯不一样,但是本质上等价于 先反推出标记效应,再乘回新基因型,只是用矩阵运算一步完成
因为gblup不估计标记效应而是直接估计育种值,只能绕一下


请先 登录 后评论