我在不同基因型的个体中测量了给定性状(TRAIT1),这些基因型在温度1或温度2下饲养。我想测试基因型(随机效应)和温度(温度与基因型交叉)对我的特性和它们之间的相互作用的影响。然后,我想计算我的TRAIT1的遗传性,我需要提取方差组分(基因型内和基因型之间)。 这是我运行的模型:
glm2<-lme(TRAI1 ~ temperature * genotype,random=~1|genotype, data=x)
但我不知道从输出中提取方差分量:
> summary(glm2)
Linear mixed-effects model fit by REML
Data: x
AIC BIC logLik
37778.39 37817.32 -18883.2
Random effects:
Formula: ~1 | genotype
(Intercept) Residual
StdDev: 7.201168 11.22449
Fixed effects: TRAI1 ~ temperature * genotype
Value Std.Error DF t-value p-value
(Intercept) 137.39825 1.7585819 4655 78.13014 0.0000
temperature -0.72913 0.0614889 4655 -11.85787 0.0000
genotype -0.01086 0.0033006 198 -3.29095 0.0012
temperature:genotype 0.00021 0.0001156 4655 1.85912 0.0631
Correlation:
(Intr) tmprtr gentyp
temperature -0.794
genotype -0.864 0.688
temperature:genotype 0.687 -0.866 -0.795
Standardized Within-Group Residuals:
Min Q1 Med Q3 Max
-3.59940153 -0.64226045 -0.03134888 0.60768582 4.54919777
Number of Observations: 4857
Number of Groups: 200
有人可以帮我这个吗?
答案 0 :(得分:1)
nlme
包具有VarCorr()
提取器功能:
library(nlme)
fm2 <- lme(distance ~ age + Sex, data = Orthodont, random = ~ 1|Subject)
(v <- VarCorr(fm2))
## Subject = pdLogChol(1)
## Variance StdDev
## (Intercept) 3.266784 1.807425
## Residual 2.049456 1.431592
然而,尝试str(v)
或天真地尝试提取值将显示这不幸是字符矩阵,因此您还必须执行as.numeric()
:
as.numeric(v[,"Variance"])