Eu tenho o seguinte tipo de dados. Avaliei 10 indivíduos, cada um repetido 10 vezes. Tenho matriz de relação 10x10 (relação entre todas as combinações dos indivíduos).
set.seed(1234)
mydata <- data.frame (gen = factor(rep(1:10, each = 10)),
repl = factor(rep(1:10, 10)),
yld = rnorm(10, 5, 0.5))
Essa geração é de variedades diferentes de plantas, de modo que cada uma pode ser cultivada repetidamente e o rendimento é medido. A matriz de covariância é medida de parentesco por similaridade genética calculada pelas probabilidades ibd em experimentos separados.
library(lme4)
covmat <- round(nearPD(matrix(runif(100, 0, 0.2), nrow = 10))$mat, 2)
diag(covmat) <- diag(covmat)/10+1
rownames(covmat) <- colnames(covmat) <- levels(mydata$gen)
> covmat
10 x 10 Matrix of class "dgeMatrix"
1 2 3 4 5 6 7 8 9 10
1 1.00 0.08 0.06 0.03 0.09 0.09 0.10 0.08 0.07 0.10
2 0.08 1.00 0.08 0.09 0.04 0.12 0.08 0.08 0.11 0.09
3 0.06 0.08 1.00 0.10 0.05 0.09 0.09 0.07 0.04 0.13
4 0.03 0.09 0.10 1.00 0.02 0.11 0.09 0.06 0.04 0.12
5 0.09 0.04 0.05 0.02 1.00 0.06 0.07 0.05 0.02 0.08
6 0.09 0.12 0.09 0.11 0.06 1.00 0.12 0.08 0.07 0.14
7 0.10 0.08 0.09 0.09 0.07 0.12 1.00 0.08 0.03 0.15
8 0.08 0.08 0.07 0.06 0.05 0.08 0.08 1.00 0.06 0.09
9 0.07 0.11 0.04 0.04 0.02 0.07 0.03 0.06 1.00 0.03
10 0.10 0.09 0.13 0.12 0.08 0.14 0.15 0.09 0.03 1.00
Meu modelo é:
yld = gen + repl + error
gen e repl são considerados aleatórios e eu quero obter as estimativas de efeitos aleatórios associados a cada geração, no entanto, preciso considerar a matriz de relacionamento.
Se for muito complexo para caber em modelos aninhados, eu apenas removeria o repl do modelo, mas o ideal é mantê-lo.
yld = gen + error
Como conseguir isso usando pacotes R, talvez com nlme ou lme4? Eu sei que o ASREML pode fazer isso, mas não tenho retenção e amo o R por ser robusto e gratuito.