我有一个连续的响应变量yld
和一个分类预测变量check
(有3个级别)。我做了一个单向ANOVA和一个事后测试,看看哪些级别彼此不同。
mdl<-aov(sqrt(var$yld) ~ var$check); summary(mdl);TukeyHSD(mdl)
Df Sum Sq Mean Sq F value Pr(>F)
var$check 2 5162 2581.2 13.51 1.46e-06 ***
Residuals 2775 530395 191.1
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = sqrt(var$yld) ~ var$check)
$`var$check`
diff lwr upr p adj
NC-LC -3.0123196 -4.529649 -1.494991 0.0000101
RC-LC -2.8330205 -4.348031 -1.318010 0.0000358
RC-NC 0.1792991 -1.310563 1.669161 0.9570495
现在,这些数据是通过多个站点收集的,所以我想使用site.code
作为我的随机效果。
library(lme4)
mdl1<-lmer(sqrt(yld) ~ check + (1 | site.code),data=var)
summary(mdl1)
这给了我不同的输出,但最重要的是:
Fixed effects:
Estimate Std. Error t value
(Intercept) 50.7267 1.3028 38.94
checkNC -2.7075 0.5449 -4.97
checkRC -2.5048 0.5441 -4.60
LC
需要intercept
级别,并检查NC
和RC
与intercept
的不同之处。我有两个问题:
1)为什么p-value
的输出中没有显示mdl1
2)此输出将NC
和RC
与截距进行比较。是否有任何事后对所有级别进行成对比较?
谢谢
答案 0 :(得分:1)
这是解决方案
install.packages("multcomp");library(multcomp)
summary(glht(mdl1, linfct=mcp(check="Tukey")))