Що таке приклад ідеальної мультиколінеарності?


12

Що таке приклад ідеальної колінеарності з точки зору дизайнерської матриці ?X

Я хотів би приклад, коли неможливо оцінити, оскільки не є зворотним.β^=(XX)1XY(XX)


Я переглянув рекомендований пост для Colinenary і вважав, що це достатньо для розуміння, але простий приклад з використанням даних додасть ясності.
TsTeaTime

2
Що ви маєте на увазі під термінами X і Y? Колінерність існує серед X змінних, Y не має нічого спільного.
gung - Відновіть Моніку

1
Я скоригував питання, щоб бути більш конкретним щодоX
TsTeaTime

1
Оскільки мультиколінеарний опис показує особливість ви також можете прочитати це питання: stats.stackexchange.com/q/70899/3277 . XXX
ttnphns

Відповіді:


10

Ось приклад з 3 змінними, , та , пов'язаними рівняннямyx1x2

y=x1+x2+ε

деεN(0,1)

Конкретні дані є

         y x1 x2
1 4.520866  1  2
2 6.849811  2  4
3 6.539804  3  6

Тож очевидно, що є кратним отже, ми маємо ідеальну колінеарність.x2x1

Ми можемо записати модель як

Y=Xβ+ε

де:

Y=[4.526.856.54]

X=[112124136]

Так ми маємо

XX=[112124136][111123246]=[61116112131163146]

Тепер обчислимо визначник :XX

detXX=6|21313146|11|11311646|+16|11211631|=0

У R ми можемо показати це так:

> x1 <- c(1,2,3)

творити x2, кратнийx1

> x2 <- x1*2

створити у, лінійну комбінацію x1, x2і деякі випадковості

> y <- x1 + x2 + rnorm(3,0,1)

дотримуйтесь цього

> summary(m0 <- lm(y~x1+x2))

не вдається оцінити значення x2коефіцієнта:

Coefficients: (1 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   3.9512     1.6457   2.401    0.251
x1            1.0095     0.7618   1.325    0.412
x2                NA         NA      NA       NA

Residual standard error: 0.02583 on 1 degrees of freedom
Multiple R-squared:      1,     Adjusted R-squared:  0.9999 
F-statistic: 2.981e+04 on 1 and 1 DF,  p-value: 0.003687

Модель матриці становить:X

> (X <- model.matrix(m0))

(Intercept) x1 x2
1           1  1  2
2           1  2  4
3           1  3  6

Так єXX

> (XXdash <- X %*% t(X))
   1  2  3
1  6 11 16
2 11 21 31
3 16 31 46

що не є зворотним, як показано на

> solve(XXdash)
Error in solve.default(XXdash) : 
  Lapack routine dgesv: system is exactly singular: U[3,3] = 0

Або:

det (XXdash) [1] 0


21

Ось пара досить поширених сценаріїв, що створюють ідеальну мультиколінеарність, тобто ситуації, в яких стовпці проектної матриці лінійно залежні. Згадайте з лінійної алгебри, що це означає, що існує лінійна комбінація стовпців проектної матриці (коефіцієнти якої не всі нульові), яка дорівнює нулю. Я включив декілька практичних прикладів, щоб допомогти пояснити, чому ця підводна яма страйкує так часто - я стикався майже з усіма ними!

  1. Одна змінна є кратною іншій , незалежно від того, чи є термін перехоплення: можливо, тому, що ви двічі записали одну і ту ж змінну, використовуючи різні одиниці (наприклад, "довжина в сантиметрах" точно в 100 разів більше "довжини в метрах") або тому ви записали змінну один раз як необроблене число та один раз у пропорції чи відсотках, коли знаменник зафіксований (наприклад, "площа колонізованої чашки Петрі" та "відсоток колонізованої чашки Петрі" будуть точними кратними один одного, якщо площа кожного чашки Петрі однаково). У нас є колінеарність, тому що якщо де і є змінними (стовпці вашої проектної матриці), а - скалярна константа, w x a 1 ( w ) - a ( x )wi=axiwxa1(w)a(x)- лінійна комбінація змінних, що дорівнює нулю.

  2. Існує термін перехоплення, і одна змінна відрізняється від іншої постійною : це станеться, якщо ви відцентруєте змінну ( ) і включите в регресію як сирий і по центру . Це також станеться, якщо ваші змінні вимірюються в різних одиничних системах, які відрізняються постійною, наприклад, якщо "температура в кельвіні", а як "температура в ° C", то . Якщо ми розглядаємо термін перехоплення як змінну, яка завжди є (представлена ​​як стовпчик з них, , в матриці проектування), то маючи для деякої постійної xwwxwiwi=xix¯xwwx1 1 n w i = x i + k k 1 ( w ) - 1 ( x ) - k ( 1 n ) w х 1wi=xi+273.1511nwi=xi+kkозначає, що - лінійна комбінація , і стовпців проектної матриці, що дорівнює нулю.1(w)1(x)k(1n)wx1

  3. Існує термін перехоплення, і одна змінна задається афінним перетворенням іншої : тобто у вас є змінні і , пов'язані де і - константи. Наприклад, це відбувається, якщо ви стандартизуєте змінну як і включите в свою регресію як вихідні і стандартизовані змінні. Це також трапляється, якщо ви записуєте як "температуру в ° F", а як "температуру в ° C", оскільки ці одиничні системи не мають загального нуля, але пов'язані зx w i = a x i + b a b z i = x i - ˉ xwxwi=axi+bab xzwxwi=1,8xi+32zi=xix¯sxxzwxwi=1.8xi+32. Припустимо, у бізнес-контексті є фіксована вартість (наприклад, покриття доставки) для кожного замовлення, а також вартість за одиницю, що продається; тоді, якщо - вартість замовлення а - кількість упорядкованих одиниць, у нас . Лінійна комбінація інтересів - . Зауважимо, що якщо , то (3) включає (2) як особливий випадок; якщо , то (3) включає (1) як окремий випадок.$ a $ w i i xb$a$wiiw i = a x i + b 1 ( w ) - a ( x ) - b ( 1 n ) = 0 a = 1 b = 0xiwi=axi+b1(w)a(x)b(1n)=0a=1b=0

  4. Існує термін перехоплення і фіксується сума декількох змінних (наприклад, у відомій «пастці фіктивних змінних») : наприклад, якщо у вас є «відсоток задоволених клієнтів», «відсоток незадоволених клієнтів» та «відсоток клієнтів, які не задоволені ні незадоволені ", то ці три змінні завжди (помилка заборонення округлення) становитимуть 100. Одну з цих змінних - або, альтернативно, термін перехоплення - потрібно виключити з регресії для запобігання колінеарності. "Пастка фіктивних змінних" виникає, коли ви використовуєте індикаторні змінні (частіше, але менш корисно їх називають "манекени") для кожного можливого рівня категоріальної змінної. Наприклад, припустимо, що вази випускаються в червоних, зелених або синіх кольорових схемах. Якщо ви записали категоричну змінну "redgreenі blueце були двійкові змінні, що зберігаються як 1для "так", так і 0для "ні"), то для кожної вази лише одна зі змінних була б одиничною, а значить red + green + blue = 1. Оскільки існує вектор одиниць для терміна перехоплення, лінійна комбінація 1(red) + 1(green) + 1(blue) - 1(1) = 0. Звичайний засіб тут - або скинути перехоплення, або скинути один з показників (наприклад, відмовитися red), який стає базовим чи референтним рівнем. У цьому випадку коефіцієнт регресії для greenвказує на зміну середньої реакції, пов'язаної з переходом з червоної вази в зелену, підтримуючи постійні інші пояснювальні змінні.

  5. Існує щонайменше дві підмножини змінних, кожна з яких має фіксовану суму , незалежно від того, чи є термін перехоплення: припустимо, вази в (4) були виготовлені у трьох розмірах, а категорична змінна для розміру зберігалася у вигляді трьох додаткових змінних індикаторів . Ми б мали large + medium + small = 1. Тоді ми маємо лінійну комбінацію 1(large) + 1(medium) + 1(small) - 1(red) - 1(green) - 1(blue) = 0, навіть коли немає переривного терміна. Дві підмножини не повинні розділяти однакову суму, наприклад, якщо у нас є пояснювальні змінні такі, що кожен і то .u i +u,v,w,xx i + y i = k 2 k 2 ( u ) + k 2 ( v ) - k 1 ( w ) - k 1 ( x ) = 0ui+vi=k1xi+yi=k2k2(u)+k2(v)k1(w)k1(x)=0

  6. Одна змінна визначається як лінійна комбінація кількох інших змінних : наприклад, якщо ви записуєте довжину , ширину та периметр кожного прямокутника, то тому у нас є лінійна комбінація . Приклад із терміном перехоплення: припустимо, що підприємство, що займається поштою, має дві товарні лінії, і ми записуємо, що замовлення складалося з першого продукту за одиницею вартості і другого за ціною одиниці , з плата фіксовану доставку . Якщо ми також включимо вартість замовленняw p p i = 2 l i + 2 w i 1 ( p ) - 2 (lwppi=2li+2wi iui$avi$b$c$xxi=aui+bvi+c1(1(p)2(l)2(w)=0iui$avi$b$c$x як пояснювальна змінна, тоді і так . Це очевидне узагальнення (3). Це також дає нам інший спосіб мислення (4): як тільки ми знаємо весь бар одним із підмножини змінних, сума яких фіксована, то решта є їх доповненням, тому може бути виражена як лінійна комбінація їх та їх суми . Якщо ми знаємо, що 50% клієнтів були задоволені, а 20% були незадоволені, то 100% - 50% - 20% = 30% не повинні бути ні задоволеними, ні незадоволеними; якщо ми знаємо, що ваза не червона ( ), а зелена ( ), то ми знаємо, що вона не синя ( ).xi=aui+bvi+c1(x)a(u)b(v)c(1n)=0red=0green=1blue = 1(1) - 1(red) - 1(green) = 1 - 0 - 1 = 0

  7. Одна змінна є постійною і нульовою , незалежно від того, чи є термін перехоплення: у спостережному дослідженні змінна буде постійною, якщо ваш зразок не виявляє достатньої (будь-якої!) Зміни. Можливі зміни в сукупності, яка не відображається у вашій вибірці, наприклад, якщо є дуже поширене модальне значення: можливо, розмір вибірки занадто малий і тому навряд чи буде включати будь-які значення, що відрізнялися від режиму, або ваші вимірювання недостатньо точний, щоб виявити невеликі відхилення від режиму. Крім того, можуть бути теоретичні причини відсутності варіацій, особливо якщо ви вивчаєте субгрупу. У дослідженні новомодних властивостей у Лос-Анджелесі не дивно, що кожна точка даних має AgeOfProperty = 0іState = California! В експериментальному дослідженні ви могли виміряти незалежну змінну, яка знаходиться під експериментальним контролем. Якщо одна з ваших пояснювальних змінних буде і постійною, і нульовою, ми маємо відразу, що лінійна комбінація (з коефіцієнтом нуля для будь-яких інших змінних) дорівнює .1 ( x ) 0x1(x)0

  8. Існує термін перехоплення і принаймні одна змінна є постійною : якщо постійний, так що кожен , то лінійна комбінація .x i = k 0 1 ( x ) - k ( 1 n ) = 0xxi=k01(x)k(1n)=0

  9. Щонайменше дві змінні є постійними , незалежно від того, чи є перехоплюючий термін: якщо кожен і , то лінійна комбінація .wi=k10xi=k20k2(w)k1(x)=0

  10. Кількість стовпців матриці проектування, , перевищує кількість рядків,kn : навіть коли між вашими змінними немає концептуальної залежності, математично необхідно, щоб стовпці вашої проектної матриці були лінійно залежними, коли . Просто немає можливості мати лінійно незалежних векторів у просторі з числом розмірів, меншим ніж : наприклад, тоді як ви можете намалювати два незалежні вектори на аркуші паперу (двовимірна площина,k>nkkR2) будь-який подальший вектор, намальований на сторінці, повинен лежати в межах їх діапазону, а значить, лінійна їх комбінація. Зауважте, що термін перехоплення вносить стовпчик із матриці проектування, тому вважається одним із ваших стовпців. (Цей сценарій часто називають проблемою "великий , малий ": див. Також це пов'язане з резюме питання .)kpn

Приклади даних з кодом R

Кожен приклад дає матрицю дизайну , матрицю (зауважте, вона завжди квадратна та симетрична) та . Зауважимо, що якщо є сингулярним (нульовий детермінант, отже, не зворотний), то ми не можемо оцінити . Умова, що не є сингулярним, еквівалентно умові, що має повний ранг, тому його стовпці лінійно незалежні: див. Це питання Math SE , або це, і його зворотне .X X det ( X XXXdet(XX)XXβ^=(XX)1XyXXX

(1) Один стовпчик кратний іншому

# x2 = 2 * x1
# Note no intercept term (column of 1s) is needed
X <- matrix(c(2, 4, 1, 2, 3, 6, 2, 4), ncol = 2, byrow=TRUE)

X
#     [,1] [,2]
#[1,]    2    4
#[2,]    1    2
#[3,]    3    6
#[4,]    2    4


t(X) %*% X
#     [,1] [,2]
#[1,]   18   36
#[2,]   36   72

round(det(t(X) %*% X), digits = 9)
#0

(2) Термін перехоплення та одна змінна відрізняється від іншої постійною

# x1 represents intercept term
# x3 = x2 + 2
X <- matrix(c(1, 2, 4, 1, 1, 3, 1, 3, 5, 1, 0, 2), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    2    4
#[2,]    1    1    3
#[3,]    1    3    5
#[4,]    1    0    2


t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    4    6   14
#[2,]    6   14   26
#[3,]   14   26   54

round(det(t(X) %*% X), digits = 9)
#0

# NB if we drop the intercept, cols now linearly independent
# x2 = x1 + 2 with no intercept column
X <- matrix(c(2, 4, 1, 3, 3, 5, 0, 2), ncol = 2, byrow=TRUE)

X
#     [,1] [,2]
#[1,]    2    4
#[2,]    1    3
#[3,]    3    5
#[4,]    0    2


t(X) %*% X
#     [,1] [,2]
#[1,]   14   26
#[2,]   26   54
# Can you see how this matrix is related to the previous one, and why?

round(det(t(X) %*% X), digits = 9)
#80
# Non-zero determinant so X'X is invertible

(3) Термін перехоплення та однієї змінної є афінним перетворенням іншого

# x1 represents intercept term
# x3 = 2*x2 - 3
X <- matrix(c(1, 2, 1, 1, 1, -1, 1, 3, 3, 1, 0, -3), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    2    1
#[2,]    1    1   -1
#[3,]    1    3    3
#[4,]    1    0   -3


t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    4    6    0
#[2,]    6   14   10
#[3,]    0   10   20

round(det(t(X) %*% X), digits = 9)
#0

# NB if we drop the intercept, cols now linearly independent
# x2 = 2*x1 - 3 with no intercept column
X <- matrix(c(2, 1, 1, -1, 3, 3, 0, -3), ncol = 2, byrow=TRUE)

X
#     [,1] [,2]
#[1,]    2    1
#[2,]    1   -1
#[3,]    3    3
#[4,]    0   -3


t(X) %*% X
#     [,1] [,2]
#[1,]   14   10
#[2,]   10   20
# Can you see how this matrix is related to the previous one, and why?

round(det(t(X) %*% X), digits = 9)
#180
# Non-zero determinant so X'X is invertible

(4) Термін перехоплення та сума декількох змінних фіксовані

# x1 represents intercept term
# x2 + x3 = 10
X <- matrix(c(1, 2, 8, 1, 1, 9, 1, 3, 7, 1, 0, 10), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    2    8
#[2,]    1    1    9
#[3,]    1    3    7
#[4,]    1    0   10


t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    4    6   34
#[2,]    6   14   46
#[3,]   34   46  294

round(det(t(X) %*% X), digits = 9)
#0

# NB if we drop the intercept, then columns now linearly independent
# x1 + x2 = 10 with no intercept column
X <- matrix(c(2, 8, 1, 9, 3, 7, 0, 10), ncol = 2, byrow=TRUE)

X
#     [,1] [,2]
#[1,]    2    8
#[2,]    1    9
#[3,]    3    7
#[4,]    0   10

t(X) %*% X
#     [,1] [,2]
#[1,]   14   46
#[2,]   46  294
# Can you see how this matrix is related to the previous one, and why?

round(det(t(X) %*% X), digits = 9)
#2000
# Non-zero determinant so X'X is invertible

(4a) Термін перехоплення з фільтром фіктивних змінних

# x1 represents intercept term
# x2 + x3 + x4 = 1
X <- matrix(c(1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0), ncol = 4, byrow=TRUE)

X
#     [,1] [,2] [,3] [,4]
#[1,]    1    0    0    1
#[2,]    1    1    0    0
#[3,]    1    0    1    0
#[4,]    1    1    0    0
#[5,]    1    0    1    0

t(X) %*% X
#     [,1] [,2] [,3] [,4]
#[1,]    5    2    2    1
#[2,]    2    2    0    0
#[3,]    2    0    2    0
#[4,]    1    0    0    1
# This matrix has a very natural interpretation - can you work it out?

round(det(t(X) %*% X), digits = 9)
#0

# NB if we drop the intercept, then columns now linearly independent
# x1 + x2 + x3 = 1 with no intercept column
X <- matrix(c(0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0), ncol = 3, byrow=TRUE)  

X
#     [,1] [,2] [,3]
#[1,]    0    0    1
#[2,]    1    0    0
#[3,]    0    1    0
#[4,]    1    0    0
#[5,]    0    1    0

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    2    0    0
#[2,]    0    2    0
#[3,]    0    0    1
# Can you see how this matrix is related to the previous one?

round(det(t(X) %*% X), digits = 9)
#4
# Non-zero determinant so X'X is invertible

(5) Дві підмножини змінних з фіксованою сумою

# No intercept term needed
# x1 + x2 = 1
# x3 + x4 = 1
X <- matrix(c(0,1,0,1,1,0,0,1,0,1,1,0,1,0,0,1,1,0,1,0,0,1,1,0), ncol = 4, byrow=TRUE)

X
#     [,1] [,2] [,3] [,4]
#[1,]    0    1    0    1
#[2,]    1    0    0    1
#[3,]    0    1    1    0
#[4,]    1    0    0    1
#[5,]    1    0    1    0
#[6,]    0    1    1    0

t(X) %*% X
#     [,1] [,2] [,3] [,4]
#[1,]    3    0    1    2
#[2,]    0    3    2    1
#[3,]    1    2    3    0
#[4,]    2    1    0    3
# This matrix has a very natural interpretation - can you work it out?

round(det(t(X) %*% X), digits = 9)
#0

(6) Одна змінна є лінійною комбінацією інших

# No intercept term
# x3 = x1 + 2*x2
X <- matrix(c(1,1,3,0,2,4,2,1,4,3,1,5,1,2,5), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    1    3
#[2,]    0    2    4
#[3,]    2    1    4
#[4,]    3    1    5
#[5,]    1    2    5

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]   15    8   31
#[2,]    8   11   30
#[3,]   31   30   91

round(det(t(X) %*% X), digits = 9)
#0

(7) Одна змінна є постійною і дорівнює нулю

# No intercept term
# x3 = 0
X <- matrix(c(1,1,0,0,2,0,2,1,0,3,1,0,1,2,0), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    1    0
#[2,]    0    2    0
#[3,]    2    1    0
#[4,]    3    1    0
#[5,]    1    2    0

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]   15    8    0
#[2,]    8   11    0
#[3,]    0    0    0

round(det(t(X) %*% X), digits = 9)
#0

(8) Термін перехоплення та одна постійна змінна

# x1 is intercept term, x3 = 5
X <- matrix(c(1,1,5,1,2,5,1,1,5,1,1,5,1,2,5), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    1    5
#[2,]    1    2    5
#[3,]    1    1    5
#[4,]    1    1    5
#[5,]    1    2    5

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]    5    7   25
#[2,]    7   11   35
#[3,]   25   35  125

round(det(t(X) %*% X), digits = 9)
#0

(9) Дві постійні змінні

# No intercept term, x2 = 2, x3 = 5
X <- matrix(c(1,2,5,2,2,5,1,2,5,1,2,5,2,2,5), ncol = 3, byrow=TRUE)

X
#     [,1] [,2] [,3]
#[1,]    1    2    5
#[2,]    2    2    5
#[3,]    1    2    5
#[4,]    1    2    5
#[5,]    2    2    5

t(X) %*% X
#     [,1] [,2] [,3]
#[1,]   11   14   35
#[2,]   14   20   50
#[3,]   35   50  125

round(det(t(X) %*% X), digits = 9)
#0

(10)k>n

# Design matrix has 4 columns but only 3 rows
X <- matrix(c(1,1,1,1,1,2,4,8,1,3,9,27), ncol = 4, byrow=TRUE)

X
#     [,1] [,2] [,3] [,4]
#[1,]    1    1    1    1
#[2,]    1    2    4    8
#[3,]    1    3    9   27

t(X) %*% X
#     [,1] [,2] [,3] [,4]
#[1,]    3    6   14   36
#[2,]    6   14   36   98
#[3,]   14   36   98  276
#[4,]   36   98  276  794

round(det(t(X) %*% X), digits = 9)
#0

4

Деякі тривіальні приклади, які допомагають інтуїції:

  1. x1 - висота в сантиметрах. - висота в метрах. Потім: x2
    • x1=100x2 , і ваша матриця дизайну не матиме лінійно незалежних стовпців.X
  2. x1=1x2x3
    • x2=95x3+32x1X
  3. x1=1x2x3
    • x2=x35x1X

Існує безліч способів, так що один стовпець даних буде лінійною функцією інших ваших даних. Деякі з них очевидні (наприклад, метри проти сантиметрів), а інші можуть бути більш тонкими (наприклад, вік і роки навчання молодших дітей).

x1Xx21


1
Приклад навчання у школі та віку дуже хороший, хоча варто зазначити, що стосунки існують лише тоді, коли всі ще в школі! Логічним продовженням цього є те, коли у тебе є вік, роки навчання в школі та роки роботи, які можуть продовжувати стосунки і після закінчення навчання. (Звичайно, на практиці така мультиколінеарність рідко має тенденцію бути ідеальною - завжди є винятки, як діти, які почали школу в іншому віці, тому що вони приїхали з іншої країни - але це часто досить суворо.)
Срібна рибка

@Silverfish хороші бали! Я щойно вніс деякі зміни / виправлення.
Меттью Ганн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.