Хотя коллинеарность (переменных предикторов) является возможным объяснением, я хотел бы предположить, что это не вдохновляющее объяснение, потому что мы знаем, что коллинеарность связана с «общей информацией» среди предикторов, поэтому в этой стороне нет ничего таинственного или нелогичного эффект от введения второго коррелированного предиктора в модель.
Затем давайте рассмотрим случай двух предикторов, которые действительно ортогональны : между ними нет абсолютно никакой коллинеарности. Значительное изменение в значении все еще может произойти.
Определите переменные предиктора и X 2 и позвольте Y назвать предиктор . Регрессия Y против X 1 не будет существенной, когда изменение Y вокруг его среднего значения не будет заметно уменьшено, когда X 1 используется в качестве независимой переменной. Когда это изменение в значительной степени связано со второй переменной X 2 , однако, ситуация меняется. Напомним, что множественная регрессия Y против X 1 и X 2 эквивалентнаИкс1Икс2YYИкс1YИкс1Икс2YИкс1Икс2
Отдельно регрессируйте и X 1 против X 2 .YИкс1Икс2
Регресс остатков против остатков X 1 .YX1
Остатки от первого шага убрали эффект . Когда X 2 тесно коррелирует с Y , это может выявить относительно небольшое количество изменений, которые ранее были замаскированы. Если это изменение связано с X 1 , мы получаем значительный результат.X2X2YX1
Возможно, все это можно пояснить на конкретном примере. Для начала давайте 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 ) ортогональны, исключая коллинеарность как возможное объяснение любых последующих результатов.)X1X2
Затем создайте как линейную комбинацию X и ошибки. Я скорректировал коэффициенты, чтобы получить нелогичное поведение:YX
y <- x %*% c(0.05, 1) + eps * 0.01
Это реализация модели с n = 32 случаями.Y∼iidN(0.05X1+1.00X2,0.012)n=32
Посмотрите на две регрессии в вопросе. Во-первых , регрессируйте против X 1 :YX1
> 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, показывает, что является полностью несущественным.X1
Затем регрессируйте против X 1 и X 2 :YX1X2
> 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-значения для обеих переменных.X2X1
Мы можем визуализировать это поведение с помощью матрицы рассеяния переменных , X 2 и Y вместе с остатками, использованными в двухэтапной характеристике множественной регрессии, описанной выше. Поскольку X 1 и X 2 являются ортогональными, остатки X 1 будут такими же, как X 1, и, следовательно, их не нужно перерисовывать. Мы включим невязки Y против X 2 в матрицу диаграммы рассеяния, давая эту цифру:X1X2YX1X2X1X1YX2
lmy <- lm(y ~ x[,2])
d <- data.frame(X1=x[,1], X2=x[,2], Y=y, RY=residuals(lmy))
plot(d)
Вот его рендеринг (с небольшим предварительным подтверждением):
Эта матрица графики имеет четыре строки и четыре столбца, которые я буду отсчитывать сверху вниз и слева направо.
Обратите внимание:
X10.068950.05X1X2