Мультиколлинеарность, когда отдельные регрессии значительны, но VIF низкие


13

У меня есть 6 переменных ( ), которые я использую для предсказания . При выполнении анализа данных я сначала попробовал множественную линейную регрессию. Из этого, только две переменные были значительными. Однако, когда я запустил линейную регрессию, сравнивая каждую переменную в отдельности с , все, кроме одного, были значимыми ( где-то от менее 0,01 до менее 0,001). Было высказано предположение, что это связано с мультиколлинеарностью. у у рx1...x6yyp

Мое первоначальное исследование этого вопроса предполагает проверку мультиколлинеарности с использованием VIF . Я скачал соответствующий пакет из R и в итоге получил VIF: 3.35, 3.59, 2.64, 2.24 и 5.56. Согласно различным интернет-источникам, точка, которую вы должны беспокоить по поводу мультиколлинеарности с вашими VIF, составляет 4 или 5.

Теперь я озадачен тем, что это значит для моих данных. Есть ли у меня проблема мультиколлинеарности? Если я это сделаю, то как мне быть дальше? (Я не могу собрать больше данных, а переменные являются частями модели, которые явно не связаны между собой) Если у меня нет этой проблемы, то что мне следует брать из моих данных, особенно тот факт, что эти переменные имеют большое значение индивидуально, но не значимо вообще, когда объединено.

Изменить: некоторые вопросы были заданы относительно набора данных, и поэтому я хотел бы расширить ...

В данном конкретном случае мы стремимся понять, как конкретные социальные сигналы (жест, взгляд и т. Д.) Влияют на вероятность того, что кто-то произнесет другой сигнал. Мы хотели бы, чтобы наша модель включала все существенные атрибуты, поэтому мне неудобно удалять некоторые, которые кажутся излишними.

Сейчас нет никаких гипотез с этим. Скорее проблема не изучена, и мы стремимся лучше понять, какие атрибуты важны. Насколько я могу судить, эти атрибуты должны быть относительно независимы друг от друга (нельзя просто сказать, что взгляд и жесты одинаковы, или один является подмножеством другого). Было бы хорошо иметь возможность сообщать значения p для всего, так как мы хотели бы, чтобы другие исследователи поняли, что было рассмотрено.

Изменить 2: так как он появился где-то ниже, мой n 24.


Предполагая, что у вас есть мультиколлинеарность, можете ли вы, как подсказывает @ rolando2, рассказать о предполагаемом назначении модели? Это тот случай, когда все предикторы важны для других исследователей (в этом случае вы хотели бы сообщить уровни значимости для каждого из них), или вы могли бы просто выбросить один или два из них?

@jlovegren Я добавил некоторую информацию выше - дайте мне знать, если вам нужна дополнительная информация.
cryptic_star

Измеряемые переменные измеряются по непрерывной шкале? В этом случае существуют методы для остаточной обработки, которые не слишком сложны. Если они категоричны, я не знаю, но я надеюсь, что кто-то еще (я задавал подобный вопрос на этом сайте).

@jlovegren Пять из шести переменных являются числами.
cryptic_star

еще одна вещь, просто чтобы быть уверенным. имеет ли счет четкий верхний предел, который часто достигается, или если максимальное значение счета в принципе не ограничено?

Ответы:


18

Чтобы понять, что может продолжаться, полезно генерировать (и анализировать) данные, которые ведут себя описанным образом.

Для простоты давайте забудем об этой шестой независимой переменной. Итак, вопрос описывает регрессии одной зависимой переменной против пяти независимых переменных x 1 , x 2 , x 3 , x 4 , x 5 , в которыхyx1,x2,x3,x4,x5

  • Каждая обычная регрессия значима на уровнях от 0,01 до менее 0,001 .yxi0.010.001

  • Множественная регрессия дает значимые коэффициенты только для x 1 и x 2 .yx1++x5x1Икс2

  • Все коэффициенты инфляции дисперсии (VIF) являются низкими, что указывает на хорошее кондиционирование в матрице проектирования (то есть отсутствие коллинеарности среди ).Икся

Давайте сделаем это следующим образом:

  1. Генерируйте нормально распределенных значений для x 1 и x 2 . (Мы выберем п позже.)nx1x2n

  2. Пусть где ε - независимая нормальная ошибка среднего 0 . Некоторый метод проб и ошибок необходим, чтобы найти подходящее стандартное отклонение для ε ; 1 / +100 работает отлично (и весьма драматично: у является очень хорошо коррелируют с х 1 и х 2 , несмотря на то, что только умеренно коррелирует с х 1 и х 2 индивидуально).Yзнак равноИкс1+Икс2+εε0ε1/100YИкс1Икс2Икс1Икс2

  3. Пусть = х 1 / 5 + δ , J = 3 , 4 , 5 , где δ не зависит стандартная нормальная ошибка. Это делает х 3 , х 4 , х 5 лишь незначительно зависимыми от х 1 . Однако из-за тесной корреляции между x 1 и y это вызывает крошечную корреляцию между y и этими x j .ИксJИкс1/5+δj=3,4,5δx3,x4,x5x1x1yyxj

Вот в чем проблема: если мы сделаем достаточно большим, эти небольшие корреляции приведут к значительным коэффициентам, даже если y почти полностью «объясняется» только первыми двумя переменными.ny

Я обнаружил, что прекрасно работает для воспроизведения сообщенных значений p. Вот матрица рассеяния всех шести переменных:n=500

spm

Изучив правый столбец (или нижний ряд), вы можете увидеть, что имеет хорошую (положительную) корреляцию с x 1 и x 2, но мало очевидную корреляцию с другими переменными. Изучив остальную часть этой матрицы, вы можете увидеть, что независимые переменные x 1 , , x 5 кажутся взаимно некоррелированными (случайное число δyx1x2x1,,x5δзамаскируйте крошечные зависимости, которые, как мы знаем, есть.) Нет исключительных данных - ничего страшного или значительного. Между прочим, гистограммы показывают, что все шесть переменных приблизительно нормально распределены: эти данные настолько обычны и «просты, как хотелось бы».

В регрессии против x 1 и x 2 значения p по существу равны 0. В отдельных регрессиях y против x 3 , затем y против x 4 и y против x 5 значения p равны 0,0024, 0,0083 и 0,00064 соответственно: то есть они «очень значимы». Но при полной множественной регрессии соответствующие значения p увеличиваются до .46, .36 и .52 соответственно: несущественно. Причина этого заключается в том, что после того, как у регрессировал против х 1 и хyx1x2yx3yx4yx5yx1 , единственное, что осталось «объяснить», - это небольшая величина ошибки в невязках, которая будет приблизительноравна ε , и эта ошибка почти полностью не связана с оставшимися значениями x i . («Почти» верно: существует очень крошечная зависимость, вызванная тем фактом, что остатки были вычислены частично из значений x 1 и x 2, а x i , i = 3 , 4 , 5 , имеют некоторые слабые отношение к x 1 и x 2. Это остаточное отношение практически не обнаружено, как мы видели.)x2εxix1x2xii=3,4,5x1x2

Число кондиционирования матрицы дизайна составляет всего 2,17: это очень мало, что не свидетельствует о высокой мультиколлинеарности. (Совершенное отсутствие коллинеарности будет отражаться в условном числе 1, но на практике это видно только с помощью искусственных данных и разработанных экспериментов. Числа кондиционирования в диапазоне 1-6 (или даже выше, с большим количеством переменных) непримечательны.) На этом симуляция завершена: она успешно воспроизвела все аспекты проблемы.

Важные идеи, которые предлагает этот анализ, включают

  1. Значения p ничего не говорят нам напрямую о коллинеарности. Они сильно зависят от объема данных.

  2. Отношения между p-значениями в множественных регрессиях и p-значениями в связанных регрессиях (включая подмножества независимой переменной) являются сложными и обычно непредсказуемыми.

Следовательно, как утверждают другие, p-значения не должны быть вашим единственным руководством (или даже вашим основным руководством) для выбора модели.


редактировать

Для появления этих явлений необязательно, чтобы было равно 500 . n500 Вдохновленный дополнительной информацией в вопросе, ниже приводится набор данных, построенный аналогичным образом с (в этом случае x j = 0,4 x 1 + 0,4 x 2 + δ для j = 3 , 4 , 5 ). Это создает корреляции от 0,38 до 0,73 между x 1 - 2 и x 3 - 5n=24xj=0.4x1+0.4x2+δj=3,4,5x12x35, Номер условия дизайна матрицы составляет 9,05: немного высокий, но не ужасный. (Некоторые эмпирические правила говорят, что числа условий до 10 в порядке.) Значения p отдельных регрессий по отношению к составляют 0,002, 0,015 и 0,008: от значительного до очень значимого. Таким образом, возникает некоторая мультиколлинеарность, но она не настолько велика, чтобы ее можно было изменить. Основная идея остается прежнейx3,x4,x5: значимость и мультиколлинеарность - это разные вещи; между ними существуют только мягкие математические ограничения; и возможно, что включение или исключение даже одной переменной окажет глубокое влияние на все p-значения, даже если серьезная мультиколлинеарность не является проблемой.

x1 x2 x3 x4 x5 y
-1.78256    -0.334959   -1.22672    -1.11643    0.233048    -2.12772
0.796957    -0.282075   1.11182 0.773499    0.954179    0.511363
0.956733    0.925203    1.65832 0.25006 -0.273526   1.89336
0.346049    0.0111112   1.57815 0.767076    1.48114 0.365872
-0.73198    -1.56574    -1.06783    -0.914841   -1.68338    -2.30272
0.221718    -0.175337   -0.0922871  1.25869 -1.05304    0.0268453
1.71033 0.0487565   -0.435238   -0.239226   1.08944 1.76248
0.936259    1.00507 1.56755 0.715845    1.50658 1.93177
-0.664651   0.531793    -0.150516   -0.577719   2.57178 -0.121927
-0.0847412  -1.14022    0.577469    0.694189    -1.02427    -1.2199
-1.30773    1.40016 -1.5949 0.506035    0.539175    0.0955259
-0.55336    1.93245 1.34462 1.15979 2.25317 1.38259
1.6934  0.192212    0.965777    0.283766    3.63855 1.86975
-0.715726   0.259011    -0.674307   0.864498    0.504759    -0.478025
-0.800315   -0.655506   0.0899015   -2.19869    -0.941662   -1.46332
-0.169604   -1.08992    -1.80457    -0.350718   0.818985    -1.2727
0.365721    1.10428 0.33128 -0.0163167  0.295945    1.48115
0.215779    2.233   0.33428 1.07424 0.815481    2.4511
1.07042 0.0490205   -0.195314   0.101451    -0.721812   1.11711
-0.478905   -0.438893   -1.54429    0.798461    -0.774219   -0.90456
1.2487  1.03267 0.958559    1.26925 1.31709 2.26846
-0.124634   -0.616711   0.334179    0.404281    0.531215    -0.747697
-1.82317    1.11467 0.407822    -0.937689   -1.90806    -0.723693
-1.34046    1.16957 0.271146    1.71505 0.910682    -0.176185

Учитывая, что я работаю над объяснением взаимосвязей между этими переменными и их важностью в прогнозировании y, говорит ли мне отсутствие коллинеарности в сущности того, что сказала мне начальная множественная линейная регрессия: что важны только две переменные? Если переменные действительно показывают коллинеарность, то будет ли это означать, что некоторые из них важны, но предоставляют сходную информацию? Пожалуйста, дайте мне знать, если я полностью упускаю суть - я ни в коем случае не эксперт по статистике.
cryptic_star

О, и я добавлю это в свой оригинальный пост, но мой n равен 24 (человеческие предметы работают, так что это довольно высоко). Исходя из вашего поста, я могу предположить, что именно поэтому мультиколлинеарность люди предлагают получать больше данных - чтобы лучше выделить различия.
cryptic_star

Я привожу новый пример, показывающий, как ваши явления могут происходить даже при . Его можно легко изменить так, чтобы все задействованные числа были положительными целыми числами: то есть. n=24
whuber

1
Ваш первый комментарий: коллинеарность предполагает, что некоторые объясняющие переменные (IV) могут быть избыточными, но это не обязательно так. Важны отношения между IV и зависимой переменной (DV). Возможно, что один из IV сильно зависит от других IV, но содержит уникальную полезную информацию, связанную с DV. Это критическое понятие: никакое количество анализа отношений между капельницы только не собирается вам сказать , какие переменные лучше объяснить DV. Отсутствие коллинеарности - свойство исключительно IVs - ничего не говорит о DV.
whuber

9

Есть ли у меня проблема мультиколлинеарности? Если я это сделаю, то как мне быть дальше?

Это не ситуация или ситуация. И я скептически отношусь к руководству «4 или 5». Для каждого из ваших предикторов стандартная ошибка коэффициента в 2,2-5,6 раза больше, чем если бы предиктор не коррелировал с остальными. И доля данного предиктора, которую нельзя объяснить другими, колеблется от 1 / 2,2 до 1 / 5,6 или от 18% до 45%. В целом, это кажется довольно существенным количеством коллинеарности.

Но давайте сделаем шаг назад на минуту. Вы действительно пытаетесь предсказать * Y *, а не пытаетесь объяснить это? Если первое, то я не думаю, что вам нужно заботиться о том, изменяется ли уровень значимости данной переменной, когда другие присутствуют в модели. Ваша работа действительно намного проще, чем если бы требовалось истинное объяснение.

Если ваша цель состоит в объяснении, вам нужно рассмотреть, как эти переменные взаимосвязаны - что требует больше, чем статистическая информация. Ясно , что они перекрывают друг друга так , как они относятся к Y , и это коллинеарности будет трудно установить, например, их ранг порядок значимости в учете Y . В этой ситуации нет единого четкого пути для вас.

В любом случае, я надеюсь, что вы рассматриваете методы перекрестной проверки.


Этот ответ, как и у Джона, кажется, смешивает низкие значения р с высокой корреляцией. Помните: стандартные ошибки коэффициентов уменьшаются с увеличением количества данных ( caeteris paribus ), поэтому низкие значения p могут быть достигнуты с данными, почти не имеющими корреляций, при условии наличия достаточного количества наблюдений.
whuber

Путать низкие значения р с высокой корреляцией? Pas du Tout!
rolando2

Затем, пожалуйста, объясните, как концепция строго p-значения («стандартная ошибка коэффициента в 2,2–5,6 раза больше, чем если бы предиктор не коррелировал с другими») приводит вас к выводу, что «это выглядит довольно существенным количество коллинеарности ", которая тесно связана с корреляцией (меры коллинеарности являются свойствами матрицы корреляции, когда переменные стандартизированы).
whuber

Я смотрю на это с другой стороны. Когда VIF составляет 5,6, 82% дисперсии в этом предикторе могут быть учтены другими предикторами. Я не понимаю, как это может зависеть от N.
rolando2

1
В качестве контрапункта этой пессимистической оценке (которая имеет некоторые практические правила, такие как требование в 5-10 раз больше наблюдений, чем переменных), следует отметить, что целые области моделирования и анализа данных возникли вокруг проблем, в которых мало наблюдений и многих предикторов, таких как DACE (разработка и анализ компьютерных экспериментов). См. Ressources-actuarielles.net/EXT/ISFA/1226.nsf/… для ознакомления с оригинальной статьей.
whuber

6

У вас есть мультиколлинеарность. Ваш первоначальный анализ продемонстрировал это. Насколько это проблема, это еще один вопрос, который, кажется, имеет много ответов в вашем случае.

Может быть, если бы вы поняли основную проблему лучше, было бы более очевидно, что делать? ...

Благодаря мультиколлинеарности ваши коэффициенты регрессии примерно соответствуют уникальному (гораздо ближе к уникальному) вкладу каждой переменной в вашу модель. Если некоторые из них связаны друг с другом, то уникальный вклад каждого из них будет меньше. Вероятно, отчасти это объясняет, почему ни один из них не важен, когда они все вместе, но при использовании по отдельности они могут быть.

Первое, что вам, вероятно, нужно сделать, это подумать, что означает взаимосвязь между вашими переменными. Например, у вас есть куча переменных, которые обозначают одно и то же? Вы только что измерили свои предикторы в плохом масштабе и получили случайные корреляции? Не пытайтесь исправить регрессию, попытайтесь понять ваши переменные.

Рассмотрим X1 и X2 с очень сильной корреляцией между ними, скажем, r = 0,90. Если вы поместите X1 в модель, и она является значимым предиктором, то, скорее всего, будет существенной и другая модель с одним X2, потому что это почти одно и то же. Если вы поместите их в модель вместе, по крайней мере один из них должен пострадать, потому что множественная регрессия решит их уникальный вклад. Они оба могут быть несущественными. Но дело не в этом, дело в том, чтобы понять, почему они так сильно перекрывают друг друга и говорят ли они что-то, отличное друг от друга, и нужны ли они вам или нет? Возможно, кто-то выражает идею более содержательно и в большей степени относится к вашей переменной ответа, чем другой. Возможно, вы придете к выводу, что это одно и то же с разными уровнями изменчивости.

Also, when looking at models of any kind, but especially with intercorrelated predictors, p-values are a terrible way to tell if a new predictor makes a meaningful contribution (if that's what you're trying to do... not sure what you're trying to do because it sounds like you're just trying to make the regression either A) simple, or B) come out the way you want... neither of which are feasible). You're probably best off looking at AIC to help you determine which predictors you should keep and which don't contribute anything.


Как низкие значения р демонстрируют мультиколлинеарность? Два понятия совершенно разные. Имея достаточно данных, вы можете иметь низкие значения p и почти не использовать коллинеарность.
whuber

Это именно то, что я оспариваю, Джон: в первом предложении вы пришли к выводу, что то, что описывает ОП, подразумевает «у вас мультиколлинеарность». Но это именно то, что ОП хочет знать: «Есть ли у меня проблема мультиколлинеарности»? Я утверждаю, что правильный ответ: «Вы не дали нам достаточно информации, но, вероятно, нет», потому что явления, описанные в этом вопросе, полностью соответствуют хорошо обусловленным проблемам. Действительно, низкие VIF, о которых сообщает OP, предполагают, что ваше утверждение неверно.
whuber

Я нигде этого не говорил. Возможно, вы имеете в виду то, что я сказал о первоначальном анализе. Первоначальный анализ состоял в том, что эффекты сильно меняются в зависимости от того, какие другие эффекты были добавлены. Это было из-за мультиколлинеарности (хотя это не количественно). Конечно, значение это другая проблема. Я действительно не знаю, к чему ты клонишь?
Джон

Извините, Whuber за обновление комментария, но ваш в любом случае работает нормально .... читатели, последние два выше поменялись местами, и это моя вина. Но я просто сосредоточился на слове «проблема». Мультиколлинеарность - это то, что вы определяете количественно. Есть некоторые. Это предлагает подумать о переменных независимо. Это также говорит о том, что причина, по которой аддитивные предикторы изменяются при добавлении или удалении, связана с этой мультиколлинеарностью. У меня не сложилось впечатления, что спрашивающий действительно хотел получить ответ о том, что это «проблема» расчета.
Джон

Возможно, мы интерпретируем вопрос по-разному, Джон. Поскольку я не хочу оставлять проблему, возможно, запутанной моими комментариями здесь, я добавил ответ, чтобы объяснить мою точку зрения.
whuber

2

Лично я бы использовал индексы условий и таблицу объяснений отклонений для анализа коллинеарности.

Я также не стал бы использовать значения p в качестве критерия для построения модели, и при сравнении моделей с 6 IV и моделей с 1 я бы посмотрел на изменения в величине эффекта параметра для переменной, которая является обеими.

Но вы, безусловно, можете получить результаты, которые вы упоминаете, без коллинеарности. Коллинеарность касается только переменных X и их взаимосвязи. Но две переменные могут иметь сильное отношение к Y, но не могут быть сильно связаны друг с другом.


1
This seems unintuitive to me, that two variables could relate strongly to Y without relating strongly to each other. Is there an example you could point me to, or a longer explanation?
cryptic_star

@Peter - with 1-(1/5.6) = 82% of the variance in that last predictor explained by the others, why do you say there might not be collinearity?
rolando2

3
Allie, that's a good question. Take two unrelated variables x1 and x2, of comparable variances, and form y=x1+x2. Now y is strongly related to each of x1 and x2 without x1 and x2 having any relation at all.
whuber

0

Regarding multicollinearity there are various thresholds being mentioned usually converging around a VIF of 10 corresponding to an underlying R Square value of 0.90 between the tested variable vs the other independent variables. The VIFs of your variables appear passable, and you could technically keep them in a model.

Yet, I would use a stepwise regression method to see which are the best combination of variables and how much more explanation (incremental increase in R Square) you get by adding variables. The arbitrating benchmark should be the Adjusted R Square value that adjusts the R Square value downward by penalizing the model for adding variables.

Your variables are somewhat correlated with each other. This is inevitable, it is just a matter of degree. Given the VIFs you mention, I suspect intuitively that you will get the vast majority of the information/explanation bit from the best 2 variable combination. And, that adding variables may add only marginal incremental value.

When looking at the combination of variables that are selected by the stepwise regression process, I would also look at what variables are selected and if their regression coefficient signs are consistent with their correlation with y. If they are not, it can be due to a legitmate interaction between the variables. But, it could also be a result of model overfitting and that the regression coefficients are spurious. They reflect a mathematical fit, but are meaningless in terms of underlying causality.

Another way to select your variables is to decide from a logic standpoint which ones are the main 2 or 3 variables that should be in the model. You start with those and then check how much more information do you get by adding a variable. Check the adjusted R Square, consistency of the regression coefficient relative to the original regression, and obviously test all the models with hold out period. Pretty soon, it will be evident what is your best model.


4
I disagree that an automatic stepwise selection procedure would be preferable. In such a case you would be selecting based on a random variable, which causes a lot of problems. I discuss this phenomenon here. If stepwise selection were applied anyway, I would recommend using the AIC, instead of Radj2, as the steeper penalty would be more appropriate; however, I do not recommend using stepwise selection.
gung - Reinstate Monica

Many of the problems you outline are common to linear regressions model in general. I am not sure that such technical problems are reasons to throw out all stepwise regression methods and linear regression in general. I am unclear why stepwise regression "is selecting based on a random variable, which causes a lot of problems." Stepwise finds the best fit, like any model does. What I think is more important is to ensure that the mathematical fit corresponds to the underlying theory or logic of the problem you are solving for.
Sympa

3
I can edit it if need be, but the problems quoted are not about linear models in general, just stepwise selection. I do not advocate throwing out linear regression. Stepwise algorithms return highly biased betas & inaccurate CIs that are largely impossible to correct. R2, Radj2, F, p, etc. are random variables: if you get more data from the same data generating process & fit an identical model repeatedly, these values will vary. Selecting a model based on them incorporates error in ways that eliminate the value of the model. I do agree w/ using theory & logic to select a model.
gung - Reinstate Monica

gung, I am not sure we are talking of the same thing. I am using Stepwise Regression in two ways. One is manual, you build a model using the best regressor. And, you add on to it using the 2nd best variable that best explain the error of the first model. And, you keep going till your AIC score deteriorates. The 2nd method I have used is using XLStat software that automates the process and was developed by Thierry Fahmy and his team. He has I understand a PhD in math along with others on his team. And, I am not confident they would have fallen into all the traps you mentioned.
Sympa

2
Gaetan, I think what @gung is trying to say is that stepwise methods may cause severe damage to the initial statistical regression framework (loss function, p-values, etc.). See Frank Harrell's response and comments here. Penalized regression, as discussed in several threads, might be a good alternative. "(...) software that automates the process" reminds me of R fortune(224): no troll here, just want to highlight that you don't necessarily need to trust what software automagically gives (or offers) you as an option.
chl

0

If your explanatory variables are count data, and it is not unreasonable to assume that they are normally distributed, you can transform them into standard normal variates using the R scale command. Doing this can reduce the collinearity. But that will probably not solve the whole problem.

A useful batch of R commands for analyzing and dealing with collinearity are found on Florian Jaeger's blog, including:

z. <- function (x) scale(x)
r. <- function (formula, ...) rstandard(lm(formula, ...))

The z. function converts a vector into a standard normal variate. The r. function returns standardized residuals for regressing one predictor against another. You can use this to effectively divide the model deviance into different tranches so that only some variables have access to the most senior tranche, then the next tranche will be offered to residualized variables. (Sorry for my homespun terminology) So if a model of the form

Y ~ A + B

suffers from multicollinearity, then you can run either of

Y ~ A + r.(B)
Y ~ r.(A) + B

so that only the residuals of the "junior tranche" variable (when regressed against the "senior tranche" variable) are fitted to the model. This way, you are shielded from multicollinearity, but have a more complicated set of parameters to report.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.