变量顺序在线性回归中是否重要

机器算法验证 回归 异常值 线性模型
2022-02-28 17:59:08

之间的相互作用。这些变量之间存在大量线性相关,从问题的性质来看,我无法说出任何因果关系(是否导致或相反)。我想研究与回归线的偏差,以检测异常值。为了做到这一点,我可以构建作为的函数的线性回归,或者反过来。我选择的可变顺序会影响我的结果吗?x1x2r>0.9x1x2x1x2

4个回答

它肯定可以(实际上,它甚至与对数据的假设有关——您只对给定协变量的结果分布做出假设)。有鉴于此,您可能会查找“逆预测方差”之类的术语。无论哪种方式,线性回归都没有说明因果关系!充其量,您可以通过精心设计说出因果关系。

为了使案例对称,可以回归两个变量之间的差异()与它们的平均值。Δx

标准回归最小化点和线之间的垂直距离,因此切换 2 个变量现在将最小化水平距离(给定相同的散点图)。另一种选择(有几个名称)是最小化垂直距离,这可以使用主组件来完成。

这是一些显示差异的R代码:

library(MASS)

tmp <- mvrnorm(100, c(0,0), rbind( c(1,.9),c(.9,1)) )

plot(tmp, asp=1)

fit1 <- lm(tmp[,1] ~ tmp[,2])  # horizontal residuals
segments( tmp[,1], tmp[,2], fitted(fit1),tmp[,2], col='blue' )
o <- order(tmp[,2])
lines( fitted(fit1)[o], tmp[o,2], col='blue' )

fit2 <- lm(tmp[,2] ~ tmp[,1])  # vertical residuals
segments( tmp[,1], tmp[,2], tmp[,1], fitted(fit2), col='green' )
o <- order(tmp[,1])
lines( tmp[o,1], fitted(fit2)[o], col='green' )

fit3 <- prcomp(tmp)
b <- -fit3$rotation[1,2]/fit3$rotation[2,2]
a <- fit3$center[2] - b*fit3$center[1]
abline(a,b, col='red')
segments(tmp[,1], tmp[,2], tmp[,1]-fit3$x[,2]*fit3$rotation[1,2], tmp[,2]-fit3$x[,2]*fit3$rotation[2,2], col='red')

legend('bottomright', legend=c('Horizontal','Vertical','Perpendicular'), lty=1, col=c('blue','green','red'))

要查找异常值,您只需绘制主成分分析的结果即可。

您可能还想看看:

Bland 和 Altman (1986),评估两种临床测量方法之间一致性的统计方法。柳叶刀,第 307-310 页

您的 x1 和 x2 变量是共线的。在存在多重共线性的情况下,您的参数估计仍然是无偏的,但它们的方差很大,即您对参数估计的显着性的推断是无效的,并且您的预测会有很大的置信区间。

参数估计的解释也很困难。在线性回归框架中,对 x1 的参数估计是在模型中所有其他外生变量保持不变的情况下,x1 单位变化时 Y 的变化。在您的情况下,x1 和 x2 高度相关,并且当 x1 变化时您不能保持 x2 不变。