具有多个自变量的回归与具有一个自变量的多个回归

机器算法验证 回归 多重回归
2022-04-17 23:17:13

例如,我们想使用年龄和智商来预测 GPA。

当然我们可以做一个多元线性回归,即将GPA回归年龄和智商。

我的问题是:我们可以做两个简单的回归吗?首先,对GPA进行年龄回归,讨论GPA与年龄的关系。然后,将 GPA 回归到 IQ 上,讨论 GPA 和 IQ 之间的关系。

我知道如果智商和年龄不相关,它们本质上是相同的。如果在实践中智商和年龄略有相关怎么办?哪种方法更好?从根本上说这两种方法有什么区别?

4个回答

请注意,起初我将您的问题理解为“使用一个变量进行多重回归”,这引发了第 1 部分,我在其中解释了交互项的影响。在第一部分的图像中,左图与进行六种不同的简单回归有关(每个单独的年龄类别使用不同的回归,从而产生具有不同斜率的六条线)。

但事后看来,您的问题似乎更多地与两个简单回归与一个多重回归”有关。虽然交互效应也可能在那里发挥作用(因为单个简单回归不允许您包含交互项,而多元回归则允许)与它更常见的影响(回归量之间的相关性)在部分描述2 和 3

1 交互项造成的差异

下面是 GPA 作为年龄和智商函数的假设关系草图。除此之外,还有两种不同情况的拟合线。

  • 右图:如果您将两个单一的简单线性回归(每个都有一个自变量)的效果相加,那么您可以将其视为获得以下关系:1)GPA 的斜率作为 IQ 的函数,2)GPA 的斜率作为年龄的函数。这与作为另一个独立参数的函数向上或向下移动的一个关系的曲线有关。

  • 左图:但是,当您一次对两个自变量进行回归时,模型可能还会考虑斜率随年龄和智商的变化当包括交互项时)。

例如,在下面的假设情况下,GPA 的增加作为 IQ 增加的函数对于每个年龄是不同的,并且 IQ 的影响在较低年龄时比在较高年龄时更强。

例子

2 相关性差异

如果在实践中智商和年龄略有相关怎么办?

以上解释了基于附加交互项考虑的差异。

当智商和年龄相关时,智商和年龄的单一回归将部分衡量彼此的影响,当您将这些影响加在一起时,这将被计算两次。

您可以将单回归视为回归向量上的垂直投影,但多元回归将投影在向量的跨度上并使用倾斜坐标。https://stats.stackexchange.com/a/124892/164061

多元回归和单线性回归之间的区别可以看作是添加了额外的变换(XTX)1

  • 单线性回归

α^=XTY

这只是和回归量之间XYX

  • 多元线性回归

β^=(XTX)1XTY

其中包括一个术语,它可以被视为坐标转换,以不适当地计算多次重叠的效果。(XTX)1

在此处查看更多信息:https ://stats.stackexchange.com/a/364566/164061解释了下图

例子

使用单一线性回归,您使用效果(基于垂直投影),而您应该使用效果(其中包含 GPA 和年龄的两个影响可能重叠的事实)αβ

3 不平衡设计造成的差异

当实验设计不平衡且自变量相关时,相关性的影响尤为明显。在这种情况下,您可以产生类似辛普森悖论的效果。


第一张图片的代码:

layout(matrix(1:2,1))

# sample of 1k people with different ages and IQ
IQ <- rnorm(10^3,100,15)
age <- sample(15:20,10^3,replace=TRUE)

# hypothetical model for GPA
set.seed(1)
GPA_offset <- 2
IQ_slope <- 1/100
age_slope <- 1/8
interaction <- -1/500
noise <- rnorm(10^3,0,0.05)

GPA <- GPA_offset + 
       IQ_slope * (IQ-100) + 
       age_slope * (age - 17.5) + 
       interaction * (IQ-100) * (age - 17.5) +
       noise

# plotting with fitted models


cols <- hsv(0.2+c(0:5)/10,0.5+c(0:5)/10,0.7-c(0:5)/40,0.5)
cols2 <- hsv(0.2+c(0:5)/10,0.5+c(0:5)/10,0.7-c(0:5)/40,1)
plot(IQ,GPA,
     col = cols[age-14], bg = cols[age-14], pch = 21, cex=0.5,
     xlim = c(50,210), ylim = c(1.4,2.8))

mod <- lm(GPA ~ IQ*age)

for (i in c(15:20)) {
  xIQ <- c(60,140)
  yGPA <- coef(mod)[1] + coef(mod)[3] * i + (coef(mod)[2] + coef(mod)[4] * i) * xIQ
  lines(xIQ, yGPA,col=cols2[i-14],lwd = 2)
  text(xIQ[2], yGPA[2], paste0("age = ", i, " yrs"), pos=4, col=cols2[i-14],cex=0.7)
}
title("regression \n with \n two independent variables")



cols <- hsv(0.2+c(0:5)/10,0.5+c(0:5)/10,0.7-c(0:5)/40,0.5)
plot(IQ,GPA,
     col = cols[age-14], bg = cols[age-14], pch = 21, cex=0.5,
     xlim = c(50,210), ylim = c(1.4,2.8))

mod <- lm(GPA ~ IQ+age)

for (i in c(15:20)) {
  xIQ <- c(60,140)
  yGPA <- coef(mod)[1] + coef(mod)[3] * i + (coef(mod)[2] ) * xIQ
  lines(xIQ, yGPA,col=cols2[i-14],lwd = 2)
  text(xIQ[2], yGPA[2], paste0("age = ", i, " yrs"), pos=4, col=cols2[i-14],cex=0.7)
}

title("two regressions \n with \n one independent variable")

再解释一下。对每个预测变量的独特贡献进行多重回归测试。所以让我们以你的例子为例,假设智商和年龄是相关的。

如果您使用 IQ 进行回归,则只有 IQ 的贡献可以像这样可视化(红色部分):

在此处输入图像描述

但是一旦你将年龄添加到分析中,它看起来就像这样:

在此处输入图像描述

如您所见,IQ 的独特贡献(红色部分)较小,因此在此分析中,IQ 的 beta 值会降低。

我希望这能说明为什么两种分析都回答了不同的问题:第一个分析,仅使用 IQ 作为预测变量,告诉您 IQ 对预测 GPA的贡献有多大,而在第二个分析中,您可以看到 IQ 的独特贡献来解释GPA 的变化与年龄无关。

请记住,这是一个简单的例子,可能还有其他事情发生,例如节制、调解或压制,这可能会改变您对结果的解释。

你可以这样做。它回答了一个不同的问题。

如果您同时包含两个自变量,那么每个变量的结果都会控制另一个变量。如果你分开做,那么他们不是。

这将回答截然不同的问题。

  • 一个自变量的多元回归将使您了解目标变量随每个变量的每个输出而变化
  • 具有多个自变量的回归将为您提供系数估计,让您知道目标变量如何随着自变量的给定变化而变化 - 控制回归中的其他自变量。

在第一种情况下,在查看智商的年龄系数时,您不会考虑某些因素的影响,例如财富、性别……。

例如,如果富裕的年轻人数量不成比例,他们可以获得更好的教育、更好的营养……这将隐含在您的 1 个独立回归变量的“年龄”系数中。回归可能表明年轻人“更聪明”,考虑到您的数据集,这可能是正确的,但潜在因素可能归因于财富。