我想建议,这种现象(尽管有很大的个体变量,但不构成整体的显着检验)可以理解为一种总的“掩盖效应”,尽管可以想象,它可能是由多重共线性的解释变量引起的,但不必这样做。那个。事实证明,这也不是由于多个比较调整引起的。因此,该答案为已经出现的答案增加了一些限定条件,相反,这表明应该将多重共线性或多重比较视为罪魁祸首。
为了确定这些断言的合理性,让我们生成一个完全正交的变量的集合(尽可能不共线),以及一个由明确由第一个解释决定的因变量(加上大量随机误差)独立于其他一切)。在R
可以做到这一点(可重复,如果你想实验)作为
set.seed(17)
p <- 5 # Number of explanatory variables
x <- as.matrix(do.call(expand.grid, lapply(as.list(1:p), function(i) c(-1,1))))
y <- x[,1] + rnorm(2^p, mean=0, sd=2)
解释变量是二进制的并不重要。重要的是它们的正交性,我们可以检查正交性以检查代码是否正常工作,这可以通过检查它们的相关性来完成。确实,相关矩阵很有趣:较小的系数表明y
与第一个变量无关(除第一个变量(这是设计使然)),非对角零则确认了解释变量的正交性:
> cor(cbind(x,y))
Var1 Var2 Var3 Var4 Var5 y
Var1 1.00 0.000 0.000 0.000 0.00 0.486
Var2 0.00 1.000 0.000 0.000 0.00 0.088
Var3 0.00 0.000 1.000 0.000 0.00 0.044
Var4 0.00 0.000 0.000 1.000 0.00 -0.014
Var5 0.00 0.000 0.000 0.000 1.00 -0.167
y 0.49 0.088 0.044 -0.014 -0.17 1.000
让我们运行一系列回归,仅使用第一个变量,然后使用前两个变量,依此类推。为了简便起见,在每个示例中,我仅显示第一个变量的行和整体F检验:
>temp <- sapply(1:p, function(i) print(summary(lm(y ~ x[, 1:i]))))
# Estimate Std. Error t value Pr(>|t|)
1 x[, 1:i] 0.898 0.294 3.05 0.0048 **
F-statistic: 9.29 on 1 and 30 DF, p-value: 0.00478
2 x[, 1:i]Var1 0.898 0.298 3.01 0.0053 **
F-statistic: 4.68 on 2 and 29 DF, p-value: 0.0173
3 x[, 1:i]Var1 0.8975 0.3029 2.96 0.0062 **
F-statistic: 3.05 on 3 and 28 DF, p-value: 0.0451
4 x[, 1:i]Var1 0.8975 0.3084 2.91 0.0072 **
F-statistic: 2.21 on 4 and 27 DF, p-value: 0.095
5 x[, 1:i]Var1 0.8975 0.3084 2.91 0.0073 **
F-statistic: 1.96 on 5 and 26 DF, p-value: 0.118
看一下(a)第一个变量的显着性几乎没有变化,(a')即使在进行多重比较调整时,第一个变量仍保持显着(p <.05)(例如,通过将标称p值乘以b来应用Bonferroni。 (b)第一个变量的系数几乎没有变化,但(c)整体重要性呈指数增长,迅速膨胀到不重要的水平。
我将其解释为表明,包括很大程度上独立于因变量的解释变量可以“掩盖”回归的总体p值。 当新变量与现有变量和因变量正交时,它们将不会更改各个p值。(此处看到的微小变化是因为偶然添加的随机误差y
与所有其他变量都略有相关。)从中可以得出的一个教训是,简约性很有价值:根据需要使用尽可能少的变量可以增强结果。
我并不是说问题中的数据集必然发生这种情况,关于该数据集的披露很少。但是,了解这种掩盖效应可能发生的知识应该有助于我们对结果进行解释,以及我们进行变量选择和模型构建的策略。