我可能有一个简单的问题,但是现在让我感到困惑,所以希望您能帮助我。
我有一个最小二乘回归模型,其中有一个自变量和一个因变量。关系并不重要。现在,我添加第二个自变量。现在,第一个自变量和因变量之间的关系变得很重要。
这是如何运作的?这可能表明我的理解存在一些问题,但是对我而言,但我看不到添加第二个独立变量如何使第一个有意义。
我可能有一个简单的问题,但是现在让我感到困惑,所以希望您能帮助我。
我有一个最小二乘回归模型,其中有一个自变量和一个因变量。关系并不重要。现在,我添加第二个自变量。现在,第一个自变量和因变量之间的关系变得很重要。
这是如何运作的?这可能表明我的理解存在一些问题,但是对我而言,但我看不到添加第二个独立变量如何使第一个有意义。
Answers:
尽管(预测变量的)共线性是一个可能的解释,但我想建议它不是一个有启发性的解释,因为我们知道共线性与预测变量之间的“公共信息”有关,因此,关于这一方面,没有什么神秘或反直觉的在模型中引入第二个相关预测变量的效果。
然后让我们考虑两个真正正交的预测变量的情况:它们之间绝对没有共线性。意义的显着变化仍然可能发生。
指定预测变量和X 2,并让Y命名预测变量。当将X 1用作自变量时,如果Y绕其均值的变化没有明显减小,则Y对X 1的回归将不会很明显。 当该变化强烈与第二变量相关联X 2,然而,情况发生变化。回想一下,Y对X 1和X 2的多元回归等效于
将和X 1分别对X 2进行回归。
将残差相对于X 1残差进行回归。
第一步的残差消除了的影响。当X 2与Y紧密相关时,这可以暴露以前掩盖的相对少量的变化。如果此变化与X 1相关联,我们将获得显着结果。
所有这些也许都可以通过一个具体的例子加以阐明。 首先,让我们使用R
生成两个正交的独立变量以及一些独立的随机误差:
n <- 32
set.seed(182)
u <-matrix(rnorm(2*n), ncol=2)
u0 <- cbind(u[,1] - mean(u[,1]), u[,2] - mean(u[,2]))
x <- svd(u0)$u
eps <- rnorm(n)
(该svd
步骤确保矩阵的两列x
(表示和X 2)是正交的,排除共线性作为任何后续结果的可能解释。)
接下来,将创建为X和错误的线性组合。我已经调整了系数以产生违反直觉的行为:
y <- x %*% c(0.05, 1) + eps * 0.01
这是一个实现该模型的与Ñ = 32的情况。
看看有问题的两个回归。 首先,仅将对X 1进行回归:
> summary(lm(y ~ x[,1]))
...
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.002576 0.032423 -0.079 0.937
x[, 1] 0.068950 0.183410 0.376 0.710
高的p值0.710表明完全不重要。
接下来,对X 1和X 2进行回归:
> summary(lm(y ~ x))
...
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.002576 0.001678 -1.535 0.136
x1 0.068950 0.009490 7.265 5.32e-08 ***
x2 1.003276 0.009490 105.718 < 2e-16 ***
突然,在存在,X 1是强烈显著,由两个变量接近零p值所指示的。
我们可以通过变量,X 2和Y的散点图矩阵以及上述多元回归的两步表征中使用的残差来可视化此行为。因为X 1和X 2是正交的,所以X 1残差将与X 1相同,因此不需要重绘。我们将在散点图矩阵中包含Y相对于X 2的残差,得出该图:
lmy <- lm(y ~ x[,2])
d <- data.frame(X1=x[,1], X2=x[,2], Y=y, RY=residuals(lmy))
plot(d)
这是它的渲染图(有点修饰):
这个图形矩阵有四行四列,我将按从上到下从左到右的顺序递减计数。
注意:
第二行和第一列中的散点图确认了这些预测变量的正交性:最小二乘线是水平的,相关性是零。
第三行和第一列中的散点图显示了Y对X 1的第一次回归所报告的轻微但完全无关紧要的关系。(相关系数ρ仅为0.07)。
在散点图第三行中和第二列显示之间的密切关系ÿ和第二独立变量。(相关系数为0.996)。
第四行检查之间的关系残差的(回归针对X 2)和其他变量:
垂直刻度显示(相对)很小的残差:我们很难在对于X 2的散点图中看到它们。
残差是强烈相关的(ρ = 0.80)。对X 2的回归已掩盖了此先前隐藏的行为。
通过构造,残差和之间没有剩余的相关性。
与这些残差之间几乎没有相关性(ρ = 0.09)。这显示了残差如何与Y本身完全不同。 这是怎么X 1可突然暴露出来的显著贡献者回归。
最后,值得一提的是,系数的两个估计值(均等于0.06895,距离预期值0.05不远)仅因X 1和X 2正交而一致。除了在设计的实验中,很少有正交性能够精确保持。偏离正交性通常会导致系数估计值发生变化。
我认为,如果您只知道要看的地方,以前已经在此站点上相当彻底地讨论过此问题。因此,我稍后可能会添加评论,并提供指向其他问题的链接,或者如果找不到我可以对其进行编辑以提供更完整的解释。
有两种基本的可能性:首先,另一个IV可能吸收一些剩余的可变性,从而增加了初始IV的统计检验的能力。第二种可能性是您有一个抑制变量。这是一个非常违反直觉的主题,但是您可以在 *,此处或这个出色的CV线程中找到一些信息。
*请注意,您需要从头到尾地阅读说明抑制器变量的那一部分,您可以直接跳到那里,但最好阅读全文。
编辑:按照承诺,我将对我的观点做一个更完整的解释,该观点涉及另一个IV如何吸收某些残留变异性,从而提高了初始IV的统计检验能力。@whuber添加了一个令人印象深刻的示例,但我想我可以添加一个补充示例,以不同的方式解释这种现象,这可能有助于某些人更清楚地理解该现象。此外,我证明了第二IV并不一定要关联更紧密(尽管实际上,这种现象几乎总是会发生)。
回归模型中的协变量可以通过将参数估计值除以标准误差来进行检验,也可以通过对平方和进行划分来进行F检验。当使用III型SS时,这两种测试方法将是等效的(有关SS类型和相关测试的更多信息,可能有助于在此处阅读我的答案:如何解释I SS)。对于刚开始学习回归方法的人来说,t检验通常是重点,因为它们似乎更易于理解。但是,在这种情况下,我认为查看ANOVA表会更有帮助。让我们回想一下简单回归模型的基本ANOVA表:
这里是平均ÿ,ÿ 我是所观察到的值ÿ为单元(例如,患者)我,ÿ我是模型的预测值对于单元我,和Ñ是在研究单元的总数。如果您具有带有两个正交协变量的多元回归模型,则ANOVA表的结构可能如下所示:
这里ÿ X 1 我° X 2,例如,是用于单元的预测值我如果观察值X 1是它的实际观测值,但它的观察值X 2是平均X 2。当然,可能的是,ˉ X 2是所观察到的值X 2 对于某些观察,在这种情况下无需进行任何调整,但是通常情况并非如此。请注意,仅当所有变量均为正交时,此用于创建ANOVA表的方法才有效;这是为说明目的创建的高度简化的案例。
如果我们考虑在相同的数据被用于拟合模型具有和不具有的情况,那么所观察到的ÿ值和ˉ ÿ将是相同的。因此,两个方差分析表中的总SS必须相同。另外,如果x 1和x 2彼此正交,则在两个方差分析表中S S x 1也将相同。那么,表中与x 2相关的平方和如何呢?如果SS和S S的总和为x 1,它们来自哪里?是相同的?答案是,他们来自。的DF X 2也取自DF 水库。
现在x 1的检验是在两种情况下的M S x 1除以M S res。由于M S x 1相同,所以此测试的重要性不同之处在于M S res的变化,它的变化有两种方式:它以较少的SS开始,因为有些分配给x 2,但是这些除以较少的df,因为也将某些自由度分配给x 2。F检验的重要性/ 功效的变化(以及等效检验,在这种情况下)是由于这两种变化之间的权衡关系。如果相对于 x 2给出的df,给 x 2提供更多的SS,则 M S res将会减少,从而导致与 x 1相关的 F增大并且 p变得更重要。
的影响不必大于x 1即可发生,但如果不是,则p值的偏移将很小。最终将在非有效度和有效度之间切换的唯一方法是,如果p值恰好在alpha的两边都只是一点点。这是一个示例,编码为: R
x1 = rep(1:3, times=15)
x2 = rep(1:3, each=15)
cor(x1, x2) # [1] 0
set.seed(11628)
y = 0 + 0.3*x1 + 0.3*x2 + rnorm(45, mean=0, sd=1)
model1 = lm(y~x1)
model12 = lm(y~x1+x2)
anova(model1)
# ...
# Df Sum Sq Mean Sq F value Pr(>F)
# x1 1 5.314 5.3136 3.9568 0.05307 .
# Residuals 43 57.745 1.3429
# ...
anova(model12)
# ...
# Df Sum Sq Mean Sq F value Pr(>F)
# x1 1 5.314 5.3136 4.2471 0.04555 *
# x2 1 5.198 5.1979 4.1546 0.04785 *
# Residuals 42 52.547 1.2511
# ...
实际上,根本不必是有效的。考虑:
set.seed(1201)
y = 0 + 0.3*x1 + 0.3*x2 + rnorm(45, mean=0, sd=1)
anova(model1)
# ...
# Df Sum Sq Mean Sq F value Pr(>F)
# x1 1 3.631 3.6310 3.8461 0.05636 .
# ...
anova(model12)
# ...
# Df Sum Sq Mean Sq F value Pr(>F)
# x1 1 3.631 3.6310 4.0740 0.04996 *
# x2 1 3.162 3.1620 3.5478 0.06656 .
# ...
诚然,这些都不像@whuber帖子中的生动例子,但是它们可以帮助人们了解这里发生的事情。
感觉OP的问题可以用两种不同的方式来解释:
从数学上讲,OLS如何工作,以便添加自变量会以意想不到的方式改变结果?
如何通过添加一个变量来修改模型,从而改变模型中另一个独立变量的影响?
对于问题1,已经有好几个答案。问题2对专家来说可能如此明显,以至于他们认为OP必须问问题1。但是我认为问题2应该得到答案,就像这样:
让我们从一个例子开始。假设您有多个孩子的身高,年龄,性别等,并且您想进行回归以预测他们的身高。
您从使用性别作为自变量的幼稚模型开始。而且在统计上也不重要。(怎么可能,您将3岁的孩子和青少年混合在一起。)
然后增加年龄,突然不仅年龄显着,性别也显着。怎么可能
当然,在我的示例中,您可以清楚地看到年龄是影响孩子/青少年身高的重要因素。可能是您拥有数据的最重要因素。性别也很重要,特别是对于年龄较大的儿童和成年人,但仅性别就无法说明孩子的身高。
年龄加性别是足以胜任这项工作的合理(虽然当然是简化的)模型。如果您添加其他数据(年龄和性别,饮食,父母身高等的相互作用),则可以建立一个更好的模型,与实际确定孩子身高的许多因素相比,该模型当然仍然可以简化,但是同样,所有模型都是现实的简化版本。(比例为1:1的世界地图对旅行者而言不太有用。)
您的原始模型(仅适用于性别)过于简化-如此简化以至于它实际上已损坏。但这并不意味着性别在更好的模型中没有用。
编辑:添加了gung的建议:年龄和性别的交互作用。
该线程已经有三个出色的答案(每个答案+1)。我的回答是对@gung提出的观点的扩展评论和说明(这花了我一些时间来理解):
有两种基本的可能性:首先,另一个IV可能吸收一些剩余的可变性,从而增加了初始IV的统计检验的能力。第二种可能性是您有一个抑制变量。
(“帽子矩阵”只是一个投影仪)。不熟悉这种方法的读者可以参阅例如《统计学习的要素》第3.2节或许多其他书籍。
下图显示了@gung列出的两种可能性。首先只考虑蓝色部分(即忽略所有红色线):
另一种说法是,该测试现在将OF的长度与OG进行比较,而不是像以前那样与OC进行比较。与OC相比,OF很小且“微不足道”,但与OG相比,OF足够大以至“微不足道”。
这正是 @ whuber,@ gung和@Wayne在其答案中提出的情况。我不知道这种效果在回归文献中是否具有标准名称,因此我将其称为“增强”。
压制不是这样。