Уменьшает ли стандартизация независимых переменных коллинеарность?
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
Это не уменьшило корреляцию или, следовательно, хотя и ограничило линейную зависимость векторов.
Это не меняет коллинеарность между основными эффектами вообще. Масштабирование тоже не Любое линейное преобразование не сделает этого. Что это меняет, так это соотношение между основными эффектами и их взаимодействиями. Даже если 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
Теперь это будет иметь существенную корреляцию, которую вы можете убрать, отцентрировав и / или стандартизировав. Я вообще хожу только с центрированием.
Лучший ответ - спасибо за это. Возможно, я тоже сделал книгу несправедливой, неправильно истолковав ее, но, возможно, стоило того, чтобы разоблачить мое невежество.
Как уже упоминали другие, стандартизация не имеет ничего общего с коллинеарностью.
Идеальная коллинеарность
ИксμИксσИкс
ZИкс= Х- μИксσИкс
имеет среднее и стандартное отклонение учитывая свойства ожидаемого значения и дисперсии, что , и , , где - rv, а - постоянные.σ Z = 1 E ( X + a ) = E ( X ) + aμZ= 0σZ= 1Е( Х+ а ) = Е( Х) + аЕ( б х) = bЕ( Х)V a r (X+ а ) = V a r ( X)V a r (bX) = b2V a r (X)Икса , б
Мы говорим , что две переменные и являются совершенно коллинеарны , если существует таких значений и чтоИксYλ 1λ0λ1
Y= λ0+ λ1Икс
что следует, если имеет среднее значение и стандартное отклонение , то имеет среднее значение и стандартное отклонение . Теперь, когда мы стандартизируем обе переменные (убираем их средние значения и делим на стандартные отклонения), мы получаем ...μ X σ X Y μ Y = λ 0 + λ 1 μ XИксμИксσИксYμY= λ0+ λ1μИксZ X = Z XσY= λ1σИксZИкс= ZИкс
корреляция
Конечно, идеальная коллинеарность - это не то, что мы часто видим, но сильно коррелированные переменные также могут быть проблемой (и они являются родственными видами с коллинеарностью). Так влияет ли стандартизация на корреляцию? Пожалуйста, сравните следующие графики, показывающие две коррелированные переменные на двух графиках до и после масштабирования:
Вы можете заметить разницу? Как вы можете видеть, я намеренно удалил метки осей, чтобы убедить вас, что я не изменяю, посмотрите графики с добавленными метками:
С о г г ( ZИкс, ZY)знак равноE[ ( ZИкс- 0 ) ( ZY- 0 ) ]1 × 1= C o v ( ZИкс, ZY) = V a r ( ZИкс) = 1
так как ...ZИксзнак равноZY
Наконец, обратите внимание, что то, о чем говорит Крушке, состоит в том , что стандартизация переменных облегчает жизнь сэмплера Гиббса и приводит к снижению корреляции между перехватом и наклоном в регрессионной модели, которую он представляет. Он не говорит, что стандартизация переменных уменьшает коллинеарность между переменными.
Стандартизация не влияет на соотношение между переменными. Они остаются точно такими же. Корреляция фиксирует синхронизацию направления переменных. В стандартизации нет ничего, что могло бы изменить направление переменных.
Если вы хотите устранить мультиколлинеарность между вашими переменными, я предлагаю использовать Анализ основных компонентов (PCA). Как вы знаете, PCA очень эффективно устраняет проблему мультиколлинеарности. С другой стороны, PCA делает объединенные переменные (главные компоненты P1, P2 и т. Д.) Довольно непрозрачными. Модель PCA всегда гораздо сложнее объяснить, чем более традиционную многомерную модель.
Я проверил выбор переменных между стандартными пошаговыми алгоритмами и LASSO. И LASSO приходит в очень отдаленную секунду. LASSO наказывает переменные влияния, он может выбирать слабые переменные по более сильным переменным. Это может даже привести к изменению признаков переменных. И это разрушает всю структуру статистической значимости, доверительных интервалов и интервалов прогнозирования. LASSO может иногда работать. Но посмотрите очень внимательно на графики MSE против лямбды и графики коэффициентов против лямбды. Вот где вы можете визуально наблюдать, сработала ли ваша модель LASSO.
Добро пожаловать на сайт. В настоящее время это больше комментарий, чем ответ. Вы можете расширить ее, возможно, предоставив сводную информацию по ссылке, или мы можем преобразовать ее в комментарий для вас. Кроме того, мое чтение связанного поста не совсем то, что стандартизация уменьшает VIF без уменьшения коллинеарности. Их пример очень конкретный и более нюансированный.
Стандартизация является распространенным способом уменьшения коллинеарности. (Вы должны быть в состоянии очень быстро проверить, что это работает, испытав его на паре пар переменных.) То, будете ли вы делать это регулярно, зависит от того, насколько коллинеарность проблемы находится в ваших анализах.
Изменить: я вижу, я был по ошибке. Однако стандартизация сводит на нет коллинеарность с условиями продукта (условиями взаимодействия).
Хм, не могли бы вы объяснить? Стандартизация просто изменяет среднее значение и дисперсию случайной величины (до 0 и 1 соответственно). Это не должно изменить соотношение между двумя переменными. Я вижу, как стандартизация может повысить эффективность вычислений, но не то, как она уменьшает мультиколлинеарность.
Нет, я заблудился ... как это может изменить линейную зависимость элементов столбца в матрице предикторов. (Разве не в этом и заключается коллинеарность?)
Хотя неверно, что стандартизация изменяет коллинеарность в чисто математическом смысле, она может улучшить численную устойчивость алгоритмов для решения линейных систем. Это может быть источником путаницы в этом ответе.