CI 之间存在差异,因为在 ANOVA 的情况下,误差方差的估计基于来自所有组的所有观察值,而在单独的一个样本中吨- 测试每个组的 CI,每个 CI 使用自己的误差估计,基于来自该单个组的观察。
编辑:当每组中的真实误差方差相同(方差同质性假设)时,使用合并误差估计是合适的。在这种情况下,使用来自例如组 C 的残差来估计组 A 中的误差方差是有意义的。合并误差估计基于比每个样本更多的观察结果吨-test CI,因此更可靠(当满足假设时)。这种可靠性的提高反映在较低的吨α / 2影响 CI 宽度的分位数值。它较低是因为吨-distribution 有更多的df。
总之,这两种方法都为您提供了每个组的真实均值的 CI。基于汇总误差估计的 CI 通常(但不一定针对每个组)更窄,因为更多的观测值用于误差估计。您可以通过假设每组中的真实误差方差相等来获得这种优势。
set.seed(1.234) # generate some reproducible data
P <- 3 # number of groups
Nj <- c(41, 37, 42) # group sizes
N <- sum(Nj) # total number of observations
DV <- rnorm(N, rep(c(-1, 0, 1), Nj), 4) # simulated data for all groups
IV <- factor(rep(LETTERS[1:P], Nj)) # grouping factor
现在拟合一个单元格均值模型,使得理论模型系数是单元格期望值,并且它们的估计是单元格均值。
> fit <- lm(DV ~ IV - 1) # ANOVA with cell means model (no intercept)
> (bJ <- coef(fit)) # estimated coefficients
IVA IVB IVC
-0.6569245 0.5935542 1.3960387
> (Mj <- tapply(DV, IV, mean)) # ... are just the cell means
A B C
-0.6569245 0.5935542 1.3960387
单独测试系数(零假设:系数为 0,单元格均值模型:与相应单样本中的假设相同吨-test) 以及整个模型。还获得系数的置信区间。无需手动执行此操作,有confint().
> summary(fit) # some output lines deleted
Coefficients:
Estimate Std. Error t value Pr(>|t|)
IVA -0.6569 0.5551 -1.183 0.2390
IVB 0.5936 0.5843 1.016 0.3118
IVC 1.3960 0.5485 2.545 0.0122 *
---
Residual standard error: 3.554 on 117 degrees of freedom
Multiple R-squared: 0.07077, Adjusted R-squared: 0.04695
F-statistic: 2.97 on 3 and 117 DF, p-value: 0.03472
> confint(fit) # confidence intervals for coefficients
2.5 % 97.5 %
IVA -1.7562828 0.4424337
IVB -0.5637040 1.7508125
IVC 0.3098469 2.4822305
系数估计的标准误差是矩阵的对角线σ^(X′X)−1在哪里σ^2=||e||2/(N−P)是误差方差的估计(||e||2是残差平方和,N观察的总数,和P组数),和X是设计矩阵。有了这些标准误和tα/2;N−P值,我们得到置信区间。
> sigHatSq <- sum(residuals(fit)^2) / (N-P)
> X <- model.matrix(fit) # design matrix
> (StdErr <- sqrt(diag(sigHatSq * solve(t(X) %*% X))))
IVA IVB IVC
0.5551059 0.5843418 0.5484577
> bJ - qt(0.025, N-P)*StdErr # confidence interval upper bound
IVA IVB IVC
0.4424337 1.7508125 2.4822305
> bJ + qt(0.025, N-P)*StdErr # confidence interval lower bound
IVA IVB IVC
-1.7562828 -0.5637040 0.3098469
在相应的一个样本中t- 测试,CI 是基于每个单细胞标准偏差和tα/2;nj−1值(注意反映误差估计基于较少观察的不同 df)。
> t.test(DV[IV == "A"])$conf.int
[1] -1.763466 0.449617
> t.test(DV[IV == "B"])$conf.int
[1] -0.679711 1.866819
> t.test(DV[IV == "C"])$conf.int
[1] 0.3504876 2.4415898
> sdJ <- tapply(DV, IV, sd) # group standard deviations
> Mj - qt(0.025, Nj-1)*(sdJ / sqrt(Nj)) # confidence interval upper bound
A B C
0.449617 1.866819 2.441590
> Mj + qt(0.025, Nj-1)*(sdJ / sqrt(Nj)) # confidence interval lower bound
A B C
-1.7634661 -0.6797110 0.3504876