У меня есть 6 переменных ( ), которые я использую для предсказания . При выполнении анализа данных я сначала попробовал множественную линейную регрессию. Из этого, только две переменные были значительными. Однако, когда я запустил линейную регрессию, сравнивая каждую переменную в отдельности с , все, кроме одного, были значимыми ( где-то от менее 0,01 до менее 0,001). Было высказано предположение, что это связано с мультиколлинеарностью. у у р
Мое первоначальное исследование этого вопроса предполагает проверку мультиколлинеарности с использованием VIF . Я скачал соответствующий пакет из R и в итоге получил VIF: 3.35, 3.59, 2.64, 2.24 и 5.56. Согласно различным интернет-источникам, точка, которую вы должны беспокоить по поводу мультиколлинеарности с вашими VIF, составляет 4 или 5.
Теперь я озадачен тем, что это значит для моих данных. Есть ли у меня проблема мультиколлинеарности? Если я это сделаю, то как мне быть дальше? (Я не могу собрать больше данных, а переменные являются частями модели, которые явно не связаны между собой) Если у меня нет этой проблемы, то что мне следует брать из моих данных, особенно тот факт, что эти переменные имеют большое значение индивидуально, но не значимо вообще, когда объединено.
Изменить: некоторые вопросы были заданы относительно набора данных, и поэтому я хотел бы расширить ...
В данном конкретном случае мы стремимся понять, как конкретные социальные сигналы (жест, взгляд и т. Д.) Влияют на вероятность того, что кто-то произнесет другой сигнал. Мы хотели бы, чтобы наша модель включала все существенные атрибуты, поэтому мне неудобно удалять некоторые, которые кажутся излишними.
Сейчас нет никаких гипотез с этим. Скорее проблема не изучена, и мы стремимся лучше понять, какие атрибуты важны. Насколько я могу судить, эти атрибуты должны быть относительно независимы друг от друга (нельзя просто сказать, что взгляд и жесты одинаковы, или один является подмножеством другого). Было бы хорошо иметь возможность сообщать значения p для всего, так как мы хотели бы, чтобы другие исследователи поняли, что было рассмотрено.
Изменить 2: так как он появился где-то ниже, мой 24.
источник
Ответы:
Чтобы понять, что может продолжаться, полезно генерировать (и анализировать) данные, которые ведут себя описанным образом.
Для простоты давайте забудем об этой шестой независимой переменной. Итак, вопрос описывает регрессии одной зависимой переменной против пяти независимых переменных x 1 , x 2 , x 3 , x 4 , x 5 , в которыхY Икс1, х2, х3, х4, х5
Каждая обычная регрессия значима на уровнях от 0,01 до менее 0,001 .Y∼ хя 0,01 0,001
Множественная регрессия дает значимые коэффициенты только для x 1 и x 2 .Y∼ х1+ ⋯ + x5 Икс1 Икс2
Все коэффициенты инфляции дисперсии (VIF) являются низкими, что указывает на хорошее кондиционирование в матрице проектирования (то есть отсутствие коллинеарности среди ).Икся
Давайте сделаем это следующим образом:
Генерируйте нормально распределенных значений для x 1 и x 2 . (Мы выберем п позже.)N Икс1 Икс2 N
Пусть где ε - независимая нормальная ошибка среднего 0 . Некоторый метод проб и ошибок необходим, чтобы найти подходящее стандартное отклонение для ε ; 1 / +100 работает отлично (и весьма драматично: у является очень хорошо коррелируют с х 1 и х 2 , несмотря на то, что только умеренно коррелирует с х 1 и х 2 индивидуально).Y= х1+ х2+ ε ε 0 ε 1 / 100 Y Икс1 Икс2 Икс1 Икс2
Пусть = х 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,x5 x1 x1 y y xj
Вот в чем проблема: если мы сделаем достаточно большим, эти небольшие корреляции приведут к значительным коэффициентам, даже если y почти полностью «объясняется» только первыми двумя переменными.n y
Я обнаружил, что прекрасно работает для воспроизведения сообщенных значений p. Вот матрица рассеяния всех шести переменных:n=500
Изучив правый столбец (или нижний ряд), вы можете увидеть, что имеет хорошую (положительную) корреляцию с x 1 и x 2, но мало очевидную корреляцию с другими переменными. Изучив остальную часть этой матрицы, вы можете увидеть, что независимые переменные x 1 , … , x 5 кажутся взаимно некоррелированными (случайное число δy x1 x2 x1,…,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 и хy x1 x2 y x3 y x4 y x5 y x1 , единственное, что осталось «объяснить», - это небольшая величина ошибки в невязках, которая будет приблизительноравна ε , и эта ошибка почти полностью не связана с оставшимися значениями x i . («Почти» верно: существует очень крошечная зависимость, вызванная тем фактом, что остатки были вычислены частично из значений x 1 и x 2, а x i , i = 3 , 4 , 5 , имеют некоторые слабые отношение к x 1 и x 2. Это остаточное отношение практически не обнаружено, как мы видели.)x2 ε xi x1 x2 xi i=3,4,5 x1 x2
Число кондиционирования матрицы дизайна составляет всего 2,17: это очень мало, что не свидетельствует о высокой мультиколлинеарности. (Совершенное отсутствие коллинеарности будет отражаться в условном числе 1, но на практике это видно только с помощью искусственных данных и разработанных экспериментов. Числа кондиционирования в диапазоне 1-6 (или даже выше, с большим количеством переменных) непримечательны.) На этом симуляция завершена: она успешно воспроизвела все аспекты проблемы.
Важные идеи, которые предлагает этот анализ, включают
Значения p ничего не говорят нам напрямую о коллинеарности. Они сильно зависят от объема данных.
Отношения между p-значениями в множественных регрессиях и p-значениями в связанных регрессиях (включая подмножества независимой переменной) являются сложными и обычно непредсказуемыми.
Следовательно, как утверждают другие, p-значения не должны быть вашим единственным руководством (или даже вашим основным руководством) для выбора модели.
редактировать
Для появления этих явлений необязательно, чтобы было равно 500 .n 500 Вдохновленный дополнительной информацией в вопросе, ниже приводится набор данных, построенный аналогичным образом с (в этом случае x j = 0,4 x 1 + 0,4 x 2 + δ для j = 3 , 4 , 5 ). Это создает корреляции от 0,38 до 0,73 между x 1 - 2 и x 3 - 5n=24 xj=0.4x1+0.4x2+δ j=3,4,5 x1−2 x3−5 , Номер условия дизайна матрицы составляет 9,05: немного высокий, но не ужасный. (Некоторые эмпирические правила говорят, что числа условий до 10 в порядке.) Значения p отдельных регрессий по отношению к составляют 0,002, 0,015 и 0,008: от значительного до очень значимого. Таким образом, возникает некоторая мультиколлинеарность, но она не настолько велика, чтобы ее можно было изменить. Основная идея остается прежнейx3,x4,x5 : значимость и мультиколлинеарность - это разные вещи; между ними существуют только мягкие математические ограничения; и возможно, что включение или исключение даже одной переменной окажет глубокое влияние на все p-значения, даже если серьезная мультиколлинеарность не является проблемой.
источник
Это не ситуация или ситуация. И я скептически отношусь к руководству «4 или 5». Для каждого из ваших предикторов стандартная ошибка коэффициента в 2,2-5,6 раза больше, чем если бы предиктор не коррелировал с остальными. И доля данного предиктора, которую нельзя объяснить другими, колеблется от 1 / 2,2 до 1 / 5,6 или от 18% до 45%. В целом, это кажется довольно существенным количеством коллинеарности.
Но давайте сделаем шаг назад на минуту. Вы действительно пытаетесь предсказать * Y *, а не пытаетесь объяснить это? Если первое, то я не думаю, что вам нужно заботиться о том, изменяется ли уровень значимости данной переменной, когда другие присутствуют в модели. Ваша работа действительно намного проще, чем если бы требовалось истинное объяснение.
Если ваша цель состоит в объяснении, вам нужно рассмотреть, как эти переменные взаимосвязаны - что требует больше, чем статистическая информация. Ясно , что они перекрывают друг друга так , как они относятся к Y , и это коллинеарности будет трудно установить, например, их ранг порядок значимости в учете Y . В этой ситуации нет единого четкого пути для вас.
В любом случае, я надеюсь, что вы рассматриваете методы перекрестной проверки.
источник
У вас есть мультиколлинеарность. Ваш первоначальный анализ продемонстрировал это. Насколько это проблема, это еще один вопрос, который, кажется, имеет много ответов в вашем случае.
Может быть, если бы вы поняли основную проблему лучше, было бы более очевидно, что делать? ...
Благодаря мультиколлинеарности ваши коэффициенты регрессии примерно соответствуют уникальному (гораздо ближе к уникальному) вкладу каждой переменной в вашу модель. Если некоторые из них связаны друг с другом, то уникальный вклад каждого из них будет меньше. Вероятно, отчасти это объясняет, почему ни один из них не важен, когда они все вместе, но при использовании по отдельности они могут быть.
Первое, что вам, вероятно, нужно сделать, это подумать, что означает взаимосвязь между вашими переменными. Например, у вас есть куча переменных, которые обозначают одно и то же? Вы только что измерили свои предикторы в плохом масштабе и получили случайные корреляции? Не пытайтесь исправить регрессию, попытайтесь понять ваши переменные.
Рассмотрим 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 в качестве критерия для построения модели, и при сравнении моделей с 6 IV и моделей с 1 я бы посмотрел на изменения в величине эффекта параметра для переменной, которая является обеими.
Но вы, безусловно, можете получить результаты, которые вы упоминаете, без коллинеарности. Коллинеарность касается только переменных X и их взаимосвязи. Но две переменные могут иметь сильное отношение к Y, но не могут быть сильно связаны друг с другом.
источник
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.
источник
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.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:
The
z.
function converts a vector into a standard normal variate. Ther.
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 formY ~ 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.
источник