set.seed(1234)
mydata <- data.frame (
individual = factor(1:10),
M1a = factor (sample (c(1,2),10, replace = T)),
M1b = factor (sample (c(1,2),10, replace = T)),
pop = factor (c(rep(1, 5), rep (2, 5))),
yld = rnorm(10, 10, 2))
这里 M1a,M1b 是固定的,但个体是随机的。
require(lme4)
model1 <- lmer(yld ~ M1a + M1b + pop + (1|individual), data = mydata)
model1
Error in function (fr, FL, start, REML, verbose) :
Number of levels of a grouping factor for the random effects
must be less than the number of observations
我们可以在 lme4 中做到这一点吗?这些被称为动物模型,asrmel 可以做一些这样的事情 (l ink )。
编辑:我忘了提到关系矩阵是必需的。以下是这样做的谱系结构。为了使示例适合大小,我将样本大小减少到 10。
peddf <- data.frame (individual = factor(1:10),
mother = c(NA, NA, NA, 1, 1, 1, 1,3, 3,3),
father = c(NA, NA, NA, 2, 2, 2, 2, 2, 2, 2))
individual mother father
1 1 NA NA
2 2 NA NA
3 3 NA NA
4 4 1 2
5 5 1 2
6 6 1 2
7 7 1 2
8 8 3 2
9 9 3 2
10 10 3 2
在矩阵方面如下(仅显示下半三角形加对角线):
1 NA NA NA NA NA NA NA NA NA
0 1 NA NA NA NA NA NA NA NA
0 0 1 NA NA NA NA NA NA NA
0.25 0.25 0 1 NA NA NA NA NA NA
0.25 0.25 0 0.25 1 NA NA NA NA NA
0.25 0.25 0 0.25 0.25 1 NA NA NA NA
0.25 0.25 0 0.25 0.25 0.25 1 NA NA NA
0 0.25 0.25 0.125 0.125 0.125 0.125 1 NA NA
0 0.25 0.25 0.125 0.125 0.125 0.125 0.25 1 NA
0 0.25 0.25 0.125 0.125 0.125 0.125 0.25 0.25 1
图片形式: