準確性指的是預(yù)測效應(yīng)值與真值之間的相關(guān)系數(shù)嫂伞。有時還會遇見一個概念——可靠性(reliability)≌辏可靠性是準確性的平方帖努,也就是說這二者度量的是一個事情。reliability其實就是遺傳力粪般,這句很重要F从唷!亩歹!匙监。遺傳力主要用來計算選擇響應(yīng)(response to selection)凡橱。advisor說我的文章短句子太多,不連貫亭姥,確實是這樣LOL稼钩。
準確性的計算公式為:
PEV是prediction error variances的縮寫,意思是預(yù)測誤差方差达罗,預(yù)測誤差是預(yù)測值與真值間的差坝撑,即:
簡書不支持公式真是淡疼!
\sigma a^2是加性方差粮揉。
預(yù)測差值的標準誤(SED)是可以從Asreml
中直接得到的巡李,與PEV的關(guān)系是:
我不知道上面這個公式怎么推導(dǎo)的。
所以有
在很長時間里我不知道(或者說模糊地知道)accuracy是怎么實現(xiàn)的扶认。我知道公式侨拦,但在軟件里分別和公式組分對應(yīng)的部分是什么卻不是很清楚,當然寫這篇文字的時候是確定的辐宾。具體實現(xiàn)的途徑有2:
- 一是利用Asreml中的
prediction
直接得到SED后狱从,再根據(jù)公式4得出PEV
fm_pred <- predict(fm_asr, classify = "Fam") #fm_asr是asreml()輸出的對象, Fam是隨機效應(yīng)變量
SED <- fm_pred$predictions$avsed
- 二是逐步得到PEV螃概,每個預(yù)測值都有一個PEV矫夯,是預(yù)測值SE平方的均值,所以從預(yù)測函數(shù)得到的對象中提取出SE平方后再平均即可
fm_pred <- predict(fm_asr, classify = "Fam", present = "Plot") #注意吊洼!這里預(yù)測的時候是要矯正掉其他的隨機效應(yīng)(如Plot)
SE <- fm_pred$predictions$pvals$standard.error
PEV <- SE^2 %>% mean
這里的PEV是一個向量训貌,對應(yīng)到每個水平上。
所以冒窍,總體上递沪,PEV、SED和SE的關(guān)系是
另外综液,在林元震老師的著作R與ASReml-R統(tǒng)計學(xué)中(P474)也涉及到accuracy的代碼
SE <- fm_asr$vcoeff$random * fm_asr$sigma2 #效應(yīng)值se乘以sigma
結(jié)果是一樣的款慨,但不知道是否合理。
如果沒有Asreml可能需要更底層的計算(比如手動)谬莹,這時PEV的計算更直觀些:
于是有
C^{22}是方程組關(guān)聯(lián)矩陣的逆矩陣的右下角塊檩奠,d_i是塊中的對角線元素。具體可查看Pro. Isik編寫的教材P84和Mrode, 2014的書P44附帽。
從PEV就可以得到我們需要的準確性和可靠性值了埠戳。
這個問題在群中還被討論過