美文网首页R统计
如何计算效应值(例如育种值)的准确性(accuracy)?

如何计算效应值(例如育种值)的准确性(accuracy)?

作者: 董八七 | 来源:发表于2017-12-05 23:17 被阅读69次

    准确性指的是预测效应值与真值之间的相关系数。有时还会遇见一个概念——可靠性(reliability)。可靠性是准确性的平方,也就是说这二者度量的是一个事情。reliability其实就是遗传力,这句很重要!!!。遗传力主要用来计算选择响应(response to selection)。advisor说我的文章句子太多,不连贯,确实是这样LOL。
    准确性的计算公式为:

    公式1-accuracy.png
    PEV是prediction error variances的缩写,意思是预测误差方差,预测误差是预测值与真值间的差,即:
    公式2-pev.png
    简书不支持公式真是淡疼!
    \sigma a^2是加性方差。

    预测差值的标准误(SED)是可以从Asreml中直接得到的,与PEV的关系是:

    公式3-sed.png
    我不知道上面这个公式怎么推导的。
    所以有
    公式4-pev2.png

    在很长时间里我不知道(或者说模糊地知道)accuracy是怎么实现的。我知道公式,但在软件里分别和公式组分对应的部分是什么却不是很清楚,当然写这篇文字的时候是确定的。具体实现的途径有2:

    • 一是利用Asreml中的prediction直接得到SED后,再根据公式4得出PEV
    fm_pred <- predict(fm_asr, classify = "Fam") #fm_asr是asreml()输出的对象, Fam是随机效应变量
    SED <- fm_pred$predictions$avsed
    
    • 二是逐步得到PEV,每个预测值都有一个PEV,是预测值SE平方的均值,所以从预测函数得到的对象中提取出SE平方后再平均即可
    fm_pred <- predict(fm_asr, classify = "Fam", present = "Plot") #注意!这里预测的时候是要矫正掉其他的随机效应(如Plot)
    SE <- fm_pred$predictions$pvals$standard.error
    PEV <-  SE^2 %>% mean
    

    这里的PEV是一个向量,对应到每个水平上。
    所以,总体上,PEVSEDSE的关系是

    公式5-pev4.png

    另外,在林元震老师的著作R与ASReml-R统计学中(P474)也涉及到accuracy的代码

    SE <- fm_asr$vcoeff$random * fm_asr$sigma2 #效应值se乘以sigma
    

    结果是一样的,但不知道是否合理。


    如果没有Asreml可能需要更底层的计算(比如手动),这时PEV的计算更直观些:

    公式6-pev3.png
    于是有 公式7-reliability.png
    C^{22}是方程组关联矩阵的逆矩阵的右下角块,d_i是块中的对角线元素。具体可查看Pro. Isik编写的教材P84Mrode, 2014的书P44

    PEV就可以得到我们需要的准确性和可靠性值了。


    这个问题在群中还被讨论过


    accuracy_chat.jpg

    相关文章

      网友评论

        本文标题:如何计算效应值(例如育种值)的准确性(accuracy)?

        本文链接:https://www.haomeiwen.com/subject/fgkhixtx.html