如何将多元回归作为一系列单变量回归执行?

机器算法验证 回归 多重回归 主成分分析 残差 直觉
2022-03-07 20:02:06

假设相关。和y_2的嵌套回归的残差不等于澄清:xy1y2xy1y2xy1y2

我取的回归的残差得到残差回归以获得残差为什么这些残差的多元回归的残差xy1r1r1y2r2r2xy1y2

写在R代码中,我们会说,

lm(lm(x ~ y1)$residuals ~ y2)$residuals

不等于:

lm(x ~ y1 + y2)$residuals

我想理解这一点,因为我想逐步从因变量中提取解释变量的影响,以便我可以逐步“放大”因变量与每个后续因素的相关性。我是在 PCA 回归的背景下这样做的:

  • it30= 意大利收益率曲线上的 30 年点
  • itpc1= 意大利收益率曲线的第一主成分,从到期点 1y、2y、3y、...、30y 计算。
  • itpc2= 意大利收益率曲线的第二个主成分

我希望it30独立地与itpc1(收益率曲线水平)和itpc2(收益率曲线斜率)有关系。另一个事实是,由于 PCAitpc1itpc2是正交的,但我认为这对于这个问题并不重要。

确实:

在此处输入图像描述

和:

在此处输入图像描述

...因此 30 年收益率曲线与itpc1和都有关系itpc2

现在,如果我取第一个回归的残差并将它们与第二个变量回归itpc2,我希望存在一种关系,并且似乎确实存在:

在此处输入图像描述

所以看起来我的第一个回归的残差与第二个变量有关,正如我所料,即在考虑了第一个相关性之后,即itpc1从数据中提取,仍然存在与 PC2 相关性相关的信息. 到目前为止很有趣。

现在我想同时提取itpc1但我想知道采用哪种方法,因为我不明白以下内容....itpc2it30

我的问题是,为什么这种回归不是一条完美的直线?

在此处输入图像描述

也就是说,如果我以嵌套的方式逐步从因变量中提取相关变量,为什么残差不等于一次性提取它们的回归?

我的目标是了解每个主要成分对系列的影响程度。是的,我知道我可以使用特征向量矩阵来做到这一点,但我对上述回归行为感兴趣。

任何伴随公式的直观解释将不胜感激。

1个回答

根据 Bill Huber 在其他地方的评论和回答,诀窍是在产生每个顺序回归时消除自变量对彼此的影响。换句话说,而不是:

lm(lm(x ~ y1)$residuals ~ y2)

我们想要:

lm(lm(x ~ y1)$residuals ~ lm(y2 ~ y1)$residuals)

在这种情况下,我们确实回到了多元回归:

在此处输入图像描述

此外,我们可以证明系数是相同的:

> round(coef(lm(lm(it30 ~ itpc1)$residuals ~ lm(itpc2 ~ itpc1)$residuals)), 5) 
(Intercept) lm(itpc2 ~ itpc1)$residuals  #$
    0.00000                    -0.21846 
> round(coef(lm(lm(it30 ~ itpc2)$residuals ~ lm(itpc1 ~ itpc2)$residuals)), 5) 
(Intercept) lm(itpc1 ~ itpc2)$residuals  #$
    0.00000                     0.29197 
> round(coef(lm(it30 ~ itpc1 + itpc2)), 5)
(Intercept)       itpc1       itpc2 
    0.01186     0.29197    -0.21846 

有趣的是,正如预期的那样,如果自变量是正交的,就像 PCA 回归一样,那么我们不需要去除每个回归量对彼此的影响。在这种情况下,确实:

lm(lm(x ~ y1)$residuals ~ y2)$residuals

完全相关:

lm(x ~ y1 + y2)$residuals

可以在这里看到:

在此处输入图像描述

这是因为正交主成分具有零斜率回归线,因此残差等于因变量(垂直平移到均值 = 0)。

在此处输入图像描述

在此处输入图像描述