Когда вы подходите регрессионной модели , такие , как у я = β 0 + β 1 х я + β 2 х 2 я модель и МНК - оценка не «знает» , что х 2 я просто квадрат x i , он просто «думает», что это другая переменная. Конечно, существует некоторая коллинеарность, которая включается в подбор (например, стандартные ошибки больше, чем они могли бы быть в противном случае), но множество пар переменных могут быть несколько коллинеарными, если одна из них не является функцией другой. Y^я= β^0+ β^1Икся+ β^2Икс2яИкс2яИкся
Мы не признаем, что на самом деле в модели есть две отдельные переменные, потому что мы знаем, что в конечном счете та же самая переменная, что и x i, которую мы преобразовали и включили для получения криволинейных отношений между x i и y i . Именно знание истинной природы x 2 i в сочетании с нашей верой в то, что между x i и y i существует криволинейная связь, затрудняет нам понимание того, как она все еще линейна с точки зрения модели. Кроме того, мы визуализируем хИкс2яИксяИксяYяИкс2яИксяYя и x 2 i вместе, глядя на предельную проекцию 3D-функции на 2D-плоскость x , y . ИксяИкс2ях , у
Если у вас есть только и x 2 i , вы можете попытаться визуализировать их в полном трехмерном пространстве (хотя по-прежнему довольно сложно реально понять, что происходит). Если вы посмотрите на подогнанную функцию в полном трехмерном пространстве, вы увидите, что подогнанная функция - это двумерная плоскость и, более того, плоская плоскость. Как я уже сказал, это плохо видно, потому что данные x i , x 2 i существуют только вдоль кривой линии, проходящей через это трехмерное пространство (этот факт является визуальным проявлением их коллинеарности). Мы можем попытаться сделать это здесь. Представьте, что это подходящая модель: ИксяИкс2яИкся, х2я
x = seq(from=0, to=10, by=.5)
x2 = x**2
y = 3 + x - .05*x2
d.mat = data.frame(X1=x, X2=x2, Y=y)
# 2D plot
plot(x, y, pch=1, ylim=c(0,11), col="red",
main="Marginal projection onto the 2D X,Y plane")
lines(x, y, col="lightblue")
# 3D plot
library(scatterplot3d)
s = scatterplot3d(x=d.mat$X1, y=d.mat$X2, z=d.mat$Y, color="gray", pch=1,
xlab="X1", ylab="X2", zlab="Y", xlim=c(0, 11), ylim=c(0,101),
zlim=c(0, 11), type="h", main="In pseudo-3D space")
s$points(x=d.mat$X1, y=d.mat$X2, z=d.mat$Y, col="red", pch=1)
s$plane3d(Intercept=3, x.coef=1, y.coef=-.05, col="lightblue")
Может быть легче увидеть на этих изображениях, которые являются скриншотами повернутой трехмерной фигуры, сделанной с теми же данными, используя rgl
пакет.
ппп+1