我正试图让自己摆脱 SPSS 并切换到 R 进行心理统计,我大部分时间都到了那里,但我遇到fit.contrast
了gmodels包的真正障碍。据我所知,即使提供的示例也不能正常工作——要么我严重误解了 R 中的对比(总是有可能)。
首先让我们看一下文档附带的示例代码gmodels::fit.contrast()
:
set.seed(03215)
Genotype <- sample(c("WT","KO"), 1000, replace=TRUE)
Time <- factor(sample(1:3, 1000, replace=TRUE))
y <- rnorm(1000)
data <- data.frame(y, Genotype, Time)
model <- aov( y ~ Genotype + Time + Genotype:Time, data=data )
model.tables(model, "means")
fit.contrast( model, "Genotype", rbind("KO vs WT"=c(-1,1) ), conf=0.95 , df=T)
对我来说,这会产生以下输出:
Estimate Std. Error t value Pr(>|t|) lower CI upper CI
GenotypeKO vs WT 0.01683876 0.1095764 0.1536714 0.8779 -0.1981888 0.2318664
现在考虑后面的示例代码:
model <- aov( y ~ Genotype + Time + Genotype:Time, data=data,
contrasts=list(Genotype=make.contrasts(cm.G),
Time=make.contrasts(cm.T) )
)
summary(model, split=list( Genotype=list( "KO vs WT"=1 ),
Time = list( "1 vs 2" = 1,
"2 vs 3" = 2 ) ) )
这为我产生了这个输出:
Df Sum Sq Mean Sq F value Pr(>F)
Genotype 1 1.2 1.1687 1.121 0.290
Genotype: KO vs WT 1 1.2 1.1687 1.121 0.290
Time 2 0.7 0.3677 0.353 0.703
Time: 1 vs 2 1 0.2 0.1784 0.171 0.679
Time: 2 vs 3 1 0.6 0.5571 0.534 0.465
Genotype:Time 2 1.2 0.5760 0.552 0.576
Genotype:Time: KO vs WT.1 vs 2 1 0.3 0.3265 0.313 0.576
Genotype:Time: KO vs WT.2 vs 3 1 0.8 0.8256 0.792 0.374
Residuals 994 1036.6 1.0429
我在这里完全糊涂了。基因型的两个测试的 p 值应该匹配,但它们不匹配!p 值不相同,F 值不是 t 值的平方。此外,为对比度估计 (0.0168) 计算的值不是这两种方法的差异......为什么不呢?
任何有助于理解 fit.contrast 在这里做什么的帮助将不胜感激!