asreml怎样设定初始值
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,asreml怎样设定初始值,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 背景一个朋友问我,如何固定asreml的初
千家信息网最后更新 2025年12月01日asreml怎样设定初始值
asreml怎样设定初始值,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1. 背景
一个朋友问我,如何固定asreml的初始值,现在分为单性状和多性状进行说明。
为何要固定初始值:
1,由于群体较小,估算的方差组分不准确,需要手动设定初始值,直接进行求解
2,有些群体数据,估算方差组分不收敛,需要手动固定初始值
为何要设定初始值:
1,从头进行估算,模型运行时间较长,根据先验信息,手动设定初始值,迭代收敛速度更快
2,多性状分析中,模型不容易收敛,手动设定初始值,更容易收敛和迭代
2. 单性状设定初始值和固定初始值
以asreml包中自带的数据harvey为例,进行演示。
> library(asreml)
> data(harvey)
> head(harvey)
Calf Sire Dam Line ageOfDam 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
6 106 Sire_1 0 1 5 177 469 267数据前三列为系谱数据,Line为固定因子,ageOfDam为协变量,y1,y2,y3为三个性状。
2.1 运行单性状动物模型
# 计算A逆矩阵
ainv <- asreml.Ainverse(harvey[,1:3])$ginv
head(ainv)
# 1. 单性状模型
mod1 <- asreml(y1 ~ Line,random =~ ped(Calf),ginverse = list(Calf=ainv),data=harvey)
summary(mod1)$varcomp结果如下:
> summary(mod1)$varcomp
gamma component std.error z.ratio constraint
ped(Calf)!ped 2.144929 108.83588 106.37372 1.0231463 Positive
R!variance 1.000000 50.74101 86.63851 0.5856635 Positive可以看到Va为108.83,Ve为50.74,模型收敛。
2.2 单性状动物模型设定初始值
设定初始值,是为了更好的收敛,不影响结果。
# 1.1. 单性状设定初始值
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
mod1.1 <- asreml(y1 ~ Line,random =~ ped(Calf),
ginverse = list(Calf=ainv),
G.param = vc,R.param = vc,
data=harvey)
summary(mod1.1)$varcomp结果:
> summary(mod1.1)$varcomp
gamma component std.error z.ratio constraint
ped(Calf)!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 Positive2.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 Positive3.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 Fixed4. 结论
1,固定方差组分和设置方差组分方法类似, 不同的是
constraint为Fixed2,设定方差组分时,先要运行
start.values=T,这样就可以生产一个表格,进行修改value和contraint即可3,单性状和多性状设定方法类似
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
性状
方差
组分
模型
结果
收敛
手动
数据
运行
动物
方法
状态
群体
帮助
迭代
不同
清楚
三个
从头
先验
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
绿萌网络安全技术有限公司
马鞍山 软件开发
采药数据库
网络安全和信息化测评
技术数据库系统 缩写
温州app软件开发招聘
原始传奇找不到自己的服务器
电子网络技术学
阴阳师国际服怎么看服务器
八哥网络技术有限公司
count统计数据库
共探数据库设置
1994年第一部网络安全法
数据库中模式r的基本fd
帮我播放一下网络安全手抄报
省民政局网络安全和信息化
网络安全150道选择题
宝塔部署nodejs连接数据库
erp数据库怎么删除
资阳展厅多媒体软件开发公司
泉州市网络安全产业发展
济南做手机软件开发哪家好
依照网络安全事件发生
服务器没有运行什么意思
笑鹿网络技术有限公司
深圳网络安全必看柚米科技
绝地求生遇到无法连接服务器
软件开发师考试资料
哪个网络安全好
股票配资软件开发 金牛