R
パッケージasreml
を使用して解決可能なアルファデザイン(アルファ格子デザイン)を分析するコードを以下に示します。「lme4」のBLUEまたはBLUPの差の平均分散
# load the data
library(agridat)
data(john.alpha)
dat <- john.alpha
# load asreml
library(asreml)
# model1 - random `gen`
#----------------------
# fitting the model
model1 <- asreml(yield ~ 1 + rep, data=dat, random=~ gen + rep:block)
# variance due to `gen`
sg2 <- summary(model1)$varcomp[1,'component']
# mean variance of a difference of two BLUPs
vblup <- predict(model1 , classify="gen")$pred$avsed^2
# model2 - fixed `gen`
#----------------------
model2 <- asreml(yield ~ 1 + gen + rep, data=dat, random = ~ rep:block)
# mean variance of a difference of two adjusted treatment means (BLUE)
vblue <- predict(model2 , classify="gen")$pred$avsed^2
# H^2 = .803
sg2/(sg2 + vblue/2)
# H^2c = .809
1-(vblup/2/sg2)
私はR
パッケージlme4
を使用して、上記複製しようとしています。 asreml
のpredict()$pred$avsed^2
に相当lme4
にvblup
とvblue
を(差の分散を意味する)を計算する方法
# model1 - random `gen`
#----------------------
# fitting the model
model1 <- lmer(yield ~ 1 + (1|gen) + rep + (1|rep:block), dat)
# variance due to `gen`
varcomp <- VarCorr(model1)
varcomp <- data.frame(print(varcomp, comp = "Variance"))
sg2 <- varcomp[varcomp$grp == "gen",]$vcov
# model2 - fixed `gen`
#----------------------
model2 <- lmer(yield ~ 1 + gen + rep + (1|rep:block), dat)
?