asreml的初始值如何设置,很多新手都不是很清楚。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。
00-1010有朋友问我asreml的初始值怎么定,现在分为单性状和多性状。为何要固定初始值:
1.由于人口少,估计的方差分量不准确,需要手动设置初始值,直接求解。
2.对于某些人口数据,估计的方差分量不收敛,因此需要手动修正初始为何要设定初始值:.
1、从头开始,模型长时间运行,根据先验信息手动设置初始值,迭代收敛速度更快。
2.在多性状分析中,模型不容易收敛,手动设置初始值更容易收敛和迭代。
00-1010以asreml包中的数据harvey为例进行演示。
库(asreml)
数据(哈维)
负责人(哈维)
小牛公畜坝线年龄为y1 y2 y3
1 101 Sire_1 0 1 3 192 390 224
2 102 Sire_1 0 1 3 154 403 265
3 103 Sire_1 0 1 4 185 432 241
4 104 Sire_1 0 1 4 183 457 225
5 105 Sire_1 0 1 5 186 483 258
106 sire _ 1015 177 469 267数据前三列为系谱数据,Line为固定因子,ageOfDam为协变量,Y1、Y2、Y3为三个字符。
1. 背景
#计算A的逆矩阵
ainv - asreml。Ainverse(harvey[,1:3])$ginv
主管(ainv)
# 1.单性状模型
mod1 - asreml(y1 ~ Line,random=~ ped(小腿),ginverse=list(小腿=ainv),data=harvey)
汇总(mod1)$varcomp结果如下:
汇总(mod1)$varcomp
伽马分量标准误差z比率约束
ped(小腿)!ped 2.144929 108.83588 106.37372 1.0231463阳性
r!方差1.000000 50.74101 86.63851 0.5856635正说明Va为108.83,ve为50.74,模型收敛。
2. 单性状设定初始值和固定初始值
设置初始值以便更好地收敛,并且不影响结果。
# 1.1.设置单个字符的初始值
mod - asreml(y1 ~ Line,random=~ ped(小腿),
ginverse=list(小腿=ainv),
起始值=T,
数据=哈维)
vc=mod$gammas.table
风险投资
价值=c(100,50)
风险投资
mod1.1 - asreml(y1 ~ Line,random=~ ped(小腿),
ginverse=list(小腿=ainv),
参数=vc,参数=vc,
数据=哈维)
汇总(mod1.1)$varcomp结果:
汇总(mod1.1)$varcomp
伽马分量标准误差z比率约束
彼得(加州
lf)!ped 108.83606 108.83606 106.37146 1.0231697 Positive
R!variance 1.00000 1.00000 NA NA Fixed
R!units.var 50.74109 50.74109 86.63707 0.5856742 Positive
2.3 单性状动物模型固定初始值
固定初始值,直接求解,asreml的结果方差组分状态为Fixed
# 1.2. 单性状固定方差组分
mod <- asreml(y1 ~ Line,random =~ ped(Calf),
ginverse = list(Calf=ainv),
start.values = T,
data=harvey)
vc = mod$gammas.table
vc
vc$Value = c(100,50)
vc$Constraint = rep("F",2)
vc
mod1.2 <- asreml(y1 ~ Line,random =~ ped(Calf),
ginverse = list(Calf=ainv),
G.param = vc,R.param = vc,
data=harvey)
summary(mod1.2)$varcomp
结果:
> summary(mod1.2)$varcomp
gamma component std.error z.ratio constraint
ped(Calf)!ped 100 100 NA NA Fixed
R!variance 50 50 NA NA Fixed
结果可以看出,方差组分变为了100,50,同时状态是Fixed,说明是固定方差组分的结果,这样计算的BLUP值就是我们想要的。
3. 多性状固定方差组分
3.1 运行多性状模型
# 2. 多性状模型
mod2 <- asreml(cbind(y1,y3) ~ trait + trait:Line,
random =~ us(trait):ped(Calf),
rcov = ~ (units):us(trait),
ginverse = list(Calf=ainv),data=harvey)
summary(mod2)$varcomp
> summary(mod2)$varcomp
gamma component std.error z.ratio constraint
trait:ped(Calf)!trait.y1:y1 108.83746 108.83746 106.37437 1.0231549 Positive
trait:ped(Calf)!trait.y3:y1 -51.25056 -51.25056 166.86351 -0.3071406 Positive
trait:ped(Calf)!trait.y3:y3 499.55701 499.55701 500.53419 0.9980477 Positive
R!variance 1.00000 1.00000 NA NA Fixed
R!trait.y1:y1 50.73993 50.73993 86.63929 0.5856457 Positive
R!trait.y3:y1 -21.53905 -21.53905 136.25598 -0.1580778 Positive
R!trait.y3:y3 273.13654 273.13654 410.03528 0.6661294 Positive
3.2 多性状模型固定方差组分
# 2.2 固定初始值
Va = c(108,-51,499)
Ve = c(50,-21,273)
mod2.2 <- asreml(cbind(y1,y3) ~ trait + trait:Line,
random =~ us(trait,init=Va):ped(Calf),
rcov = ~ units:us(trait,init=Ve),
start.values = TRUE,
ginverse = list(Calf=ainv),data=harvey)
vc = mod2.2$gammas.table
vc
vc$Value = c(Va,1,Ve)
vc$Constraint = c(rep("F",7))
vc
mod2.3 <- asreml(cbind(y1,y3) ~ trait + trait:Line,
random =~ us(trait,init=Va):ped(Calf),
rcov = ~ units:us(trait,init=Ve),
G.param = vc,R.param = vc,
ginverse = list(Calf=ainv),data=harvey)
summary(mod2.3)$varcomp
结果:
> summary(mod2.3)$varcomp
gamma component std.error z.ratio constraint
trait:ped(Calf)!trait.y1:y1 108 108 NA NA Fixed
trait:ped(Calf)!trait.y3:y1 -51 -51 NA NA Fixed
trait:ped(Calf)!trait.y3:y3 499 499 NA NA Fixed
R!variance 1 1 NA NA Fixed
R!trait.y1:y1 50 50 NA NA Fixed
R!trait.y3:y1 -21 -21 NA NA Fixed
R!trait.y3:y3 273 273 NA NA Fixed
4. 结论
-
1,固定方差组分和设置方差组分方法类似, 不同的是
constraint
为Fixed
-
2,设定方差组分时,先要运行
start.values=T
,这样就可以生产一个表格,进行修改value和contraint即可 -
3,单性状和多性状设定方法类似
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/141703.html