Уменьшает ли стандартизация независимых переменных коллинеарность?

12

Я наткнулся на очень хороший текст о Bayes / MCMC. ИТ-специалисты предполагают, что стандартизация ваших независимых переменных сделает алгоритм MCMC (Metropolis) более эффективным, но также может снизить (мульти) коллинеарность. Это может быть правдой? Это то, что я должен делать как стандарт . (Извините).

Крушке 2011, Анализ байесовских данных. (AP)

редактировать: например

     > data(longley)
     > cor.test(longley$Unemployed, longley$Armed.Forces)

Pearson's product-moment correlation

     data:  longley$Unemployed and longley$Armed.Forces 
     t = -0.6745, df = 14, p-value = 0.5109
     alternative hypothesis: true correlation is not equal to 0 
     95 percent confidence interval:
     -0.6187113  0.3489766 
     sample estimates:
      cor 
     -0.1774206 

     > standardise <- function(x) {(x-mean(x))/sd(x)}
     > cor.test(standardise(longley$Unemployed), standardise(longley$Armed.Forces))

Pearson's product-moment correlation

     data:  standardise(longley$Unemployed) and standardise(longley$Armed.Forces) 
     t = -0.6745, df = 14, p-value = 0.5109
      alternative hypothesis: true correlation is not equal to 0 
     95 percent confidence interval:
      -0.6187113  0.3489766 
      sample estimates:
       cor 
     -0.1774206 

Это не уменьшило корреляцию или, следовательно, хотя и ограничило линейную зависимость векторов.

Что происходит?

р

Rosser
источник

Ответы:

19

Это не меняет коллинеарность между основными эффектами вообще. Масштабирование тоже не Любое линейное преобразование не сделает этого. Что это меняет, так это соотношение между основными эффектами и их взаимодействиями. Даже если A и B независимы с корреляцией 0, корреляция между A и A: B будет зависеть от масштабных коэффициентов.

Попробуйте следующее в консоли R. Обратите внимание, что rnormпросто генерирует случайные выборки из нормального распределения с установленными значениями совокупности, в данном случае 50 выборок. scaleФункция стандартизирует образец до среднего значения 0 и 1 SD.

set.seed(1) # the samples will be controlled by setting the seed - you can try others
a <- rnorm(50, mean = 0, sd = 1)
b <- rnorm(50, mean = 0, sd = 1)
mean(a); mean(b)
# [1] 0.1004483 # not the population mean, just a sample
# [1] 0.1173265
cor(a ,b)
# [1] -0.03908718

Случайная корреляция близка к 0 для этих независимых выборок. Теперь нормализовать до среднего 0 и SD 1.

a <- scale( a )
b <- scale( b )
cor(a, b)
# [1,] -0.03908718

Опять же, это точно такое же значение, хотя среднее значение равно 0, а SD = 1 для обоих aи b.

cor(a, a*b)
# [1,] -0.01038144

Это также очень близко к 0. (a * b можно считать членом взаимодействия)

Однако обычно SD и среднее значение предикторов немного отличаются, поэтому давайте изменимся b. Вместо того, чтобы брать новый образец, я изменю масштаб оригинала, bчтобы иметь среднее значение 5 и SD 2.

b <- b * 2 + 5
cor(a, b)
 # [1] -0.03908718

Опять же, это знакомое соотношение мы видели все это время. Масштабирование не влияет на соотношение между aи b. Но!!

cor(a, a*b)
# [1,] 0.9290406

Теперь это будет иметь существенную корреляцию, которую вы можете убрать, отцентрировав и / или стандартизировав. Я вообще хожу только с центрированием.

Джон
источник
1
+1 за исчерпывающий и понятный ответ (с кодом!)
Питер Флом - Восстановить Монику
1
Это также полезно, если вы хотите включить, скажем, квадратный термин.
Анико
абсолютно Анико
Джон
1
Лучший ответ - спасибо за это. Возможно, я тоже сделал книгу несправедливой, неправильно истолковав ее, но, возможно, стоило того, чтобы разоблачить мое невежество.
Росс
7

Как уже упоминали другие, стандартизация не имеет ничего общего с коллинеарностью.

Идеальная коллинеарность

XμXσX

ZX=XμXσX

имеет среднее и стандартное отклонение учитывая свойства ожидаемого значения и дисперсии, что , и , , где - rv, а - постоянные.σ Z = 1 E ( X + a ) = E ( X ) + aμZ=0σZ=1E(X+a)=E(X)+aE(bX)=bE(X)Var(X+a)=Var(X)Var(bX)=b2Var(X)Xa,b

Мы говорим , что две переменные и являются совершенно коллинеарны , если существует таких значений и чтоXYλ 1λ0λ1

Y=λ0+λ1X

что следует, если имеет среднее значение и стандартное отклонение , то имеет среднее значение и стандартное отклонение . Теперь, когда мы стандартизируем обе переменные (убираем их средние значения и делим на стандартные отклонения), мы получаем ...μ X σ X Y μ Y = λ 0 + λ 1 μ XXμXσXYμY=λ0+λ1μXZ X = Z XσY=λ1σXZX=ZX

корреляция

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

Вы можете заметить разницу? Как вы можете видеть, я намеренно удалил метки осей, чтобы убедить вас, что я не изменяю, посмотрите графики с добавленными метками:

введите описание изображения здесь

Математически говоря, если корреляция является

Corr(X,Y)=Cov(X,Y)Var(X)Var(Y)

тогда с коллинеарными переменными мы имеем

Corr(X,Y)=E[(XμX)(YμY)]σXσY=E[(XμX)(λ0+λ1Xλ0λ1μX)]σXλ1σX=E[(XμX)(λ1Xλ1μX)]σXλ1σX=E[(XμX)λ1(XμX)]σXλ1σX=λ1E[(XμX)(XμX)]σXλ1σX=E[(XμX)(XμX)]σXσX

теперь, поскольку ,Cov(X,X)=Var(X)

=Cov(X,X)σX2=Var(X)Var(X)=1

Хотя со стандартизованными переменными

Corr(ZX,ZY)=E[(ZX0)(ZY0)]1×1=Cov(ZX,ZY)=Var(ZX)=1

так как ...ZX=ZY

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

Тим
источник
0

Стандартизация не влияет на соотношение между переменными. Они остаются точно такими же. Корреляция фиксирует синхронизацию направления переменных. В стандартизации нет ничего, что могло бы изменить направление переменных.

Если вы хотите устранить мультиколлинеарность между вашими переменными, я предлагаю использовать Анализ основных компонентов (PCA). Как вы знаете, PCA очень эффективно устраняет проблему мультиколлинеарности. С другой стороны, PCA делает объединенные переменные (главные компоненты P1, P2 и т. Д.) Довольно непрозрачными. Модель PCA всегда гораздо сложнее объяснить, чем более традиционную многомерную модель.

Sympa
источник
Современная альтернатива, часто лучше, это регуляризация.
kjetil b halvorsen
Я проверил выбор переменных между стандартными пошаговыми алгоритмами и LASSO. И LASSO приходит в очень отдаленную секунду. LASSO наказывает переменные влияния, он может выбирать слабые переменные по более сильным переменным. Это может даже привести к изменению признаков переменных. И это разрушает всю структуру статистической значимости, доверительных интервалов и интервалов прогнозирования. LASSO может иногда работать. Но посмотрите очень внимательно на графики MSE против лямбды и графики коэффициентов против лямбды. Вот где вы можете визуально наблюдать, сработала ли ваша модель LASSO.
Sympa
0

Это не уменьшает коллинеарность, это может уменьшить VIF. Обычно мы используем VIF как индикатор для проблем коллинеарности.

Источник: http://blog.minitab.com/blog/adventures-in-statistics-2/what-are-the-effects-of-multicollinearity-and-when-can-i-ignore-them

Билл Чен
источник
2
Добро пожаловать на сайт. В настоящее время это больше комментарий, чем ответ. Вы можете расширить ее, возможно, предоставив сводную информацию по ссылке, или мы можем преобразовать ее в комментарий для вас. Кроме того, мое чтение связанного поста не совсем то, что стандартизация уменьшает VIF без уменьшения коллинеарности. Их пример очень конкретный и более нюансированный.
gung - Восстановить Монику
-3

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

Изменить: я вижу, я был по ошибке. Однако стандартизация сводит на нет коллинеарность с условиями продукта (условиями взаимодействия).

rolando2
источник
Хм, не могли бы вы объяснить? Стандартизация просто изменяет среднее значение и дисперсию случайной величины (до 0 и 1 соответственно). Это не должно изменить соотношение между двумя переменными. Я вижу, как стандартизация может повысить эффективность вычислений, но не то, как она уменьшает мультиколлинеарность.
Чарли
Нет, я заблудился ... как это может изменить линейную зависимость элементов столбца в матрице предикторов. (Разве не в этом и заключается коллинеарность?)
rosser
Хотя неверно, что стандартизация изменяет коллинеарность в чисто математическом смысле, она может улучшить численную устойчивость алгоритмов для решения линейных систем. Это может быть источником путаницы в этом ответе.
whuber
Стандартизация просто не уменьшает мультиколлинеарность. Как правило, это вообще не меняет соотношение между переменными.
Симпа