Как получить корреляцию между двумя категориальными переменными и категориальными переменными и непрерывными переменными?

63

Я строю регрессионную модель, и мне нужно вычислить ниже, чтобы проверить корреляции

  1. Корреляция между 2 многоуровневыми категориальными переменными
  2. Корреляция между многоуровневой категориальной переменной и непрерывной переменной
  3. VIF (коэффициент инфляции дисперсии) для многоуровневых категориальных переменных

Я считаю, что неправильно использовать коэффициент корреляции Пирсона для вышеупомянутых сценариев, потому что Пирсон работает только для 2 непрерывных переменных.

Пожалуйста, ответьте на следующие вопросы

  1. Какой коэффициент корреляции лучше всего подходит для вышеуказанных случаев?
  2. Расчет VIF работает только для непрерывных данных, так какова альтернатива?
  3. Какие предположения мне нужно проверить, прежде чем использовать предложенный вами коэффициент корреляции?
  4. Как реализовать их в SAS & R?
GeorgeOfTheRF
источник
4
Я бы сказал, что CV.SE - лучшее место для вопросов о такой теоретической статистике, как эта. Если нет, я бы сказал, что ответ на ваши вопросы зависит от контекста. Иногда имеет смысл объединить несколько уровней в фиктивные переменные, в других случаях стоит смоделировать ваши данные в соответствии с многочленным распределением и т. Д.
ffriend
Ваши категориальные переменные упорядочены? Если да, это может повлиять на тип корреляции, который вы хотите искать.
nassimhddd
я должен столкнуться с той же проблемой в моем исследовании. но я не смог найти правильный способ решить эту проблему. поэтому, пожалуйста, будьте любезны, дайте мне ссылки, которые вы нашли.
user89797
Вы имеете в виду p-значение такое же, как коэффициент корреляции r?
Айо Эмма
Решение выше с ANOVA для категориального и непрерывного хорошо. Небольшой икота. Чем меньше значение p, тем лучше «соответствие» между двумя переменными. А не наоборот.
Мюдельсон

Ответы:

73

Две категориальные переменные

Проверка, являются ли две категориальные переменные независимыми, может быть выполнена с помощью критерия независимости по критерию Хи-квадрат.

Это типичный тест хи-квадрат : если предположить, что две переменные независимы, то значения таблицы сопряженности для этих переменных должны быть распределены равномерно. И затем мы проверяем, насколько далеки от униформы фактические значения.

Также существует V Краммера, который является мерой корреляции, которая следует из этого теста

пример

Предположим, у нас есть две переменные

  • пол: мужской и женский
  • город: Блуа и Тур

Мы наблюдали следующие данные:

наблюдаемые значения

Являются ли пол и город независимыми? Давайте выполним тест Chi-Squred. Нулевая гипотеза: они независимы, Альтернативная гипотеза заключается в том, что они каким-то образом коррелированы.

При нулевой гипотезе мы предполагаем равномерное распределение. Итак, наши ожидаемые значения следующие

ожидаемое значение

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

Чтобы вычислить V Краммера, мы сначала находим нормирующий коэффициент chi-squared-max, который обычно равен размеру выборки, делим на него хи-квадрат и берем квадратный корень

Краммерс v

р

tbl = matrix(data=c(55, 45, 20, 30), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))

chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)

Здесь значение p составляет 0,08 - довольно мало, но все же недостаточно, чтобы отвергнуть гипотезу независимости. Таким образом, мы можем сказать, что «корреляция» здесь составляет 0,08

Мы также вычисляем V:

sqrt(chi2$statistic / sum(tbl))

И получить 0,14 (чем меньше V, тем ниже корреляция)

Рассмотрим другой набор данных

    Gender
City  M  F
   B 51 49
   T 24 26

Для этого это дало бы следующее

tbl = matrix(data=c(51, 49, 24, 26), nrow=2, ncol=2, byrow=T)
dimnames(tbl) = list(City=c('B', 'T'), Gender=c('M', 'F'))

chi2 = chisq.test(tbl, correct=F)
c(chi2$statistic, chi2$p.value)

sqrt(chi2$statistic / sum(tbl))

Значение p составляет 0,72, что намного ближе к 1, а v равно 0,03 - очень близко к 0

Категориальные и числовые переменные

Для этого типа мы обычно выполняем односторонний тест ANOVA : мы вычисляем внутригрупповую дисперсию и внутригрупповую дисперсию, а затем сравниваем их.

пример

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

пончики

Есть ли зависимость между переменными? Для этого мы проводим тест ANOVA и видим, что значение p составляет всего 0,007 - между этими переменными нет корреляции.

р

t1 = c(164, 172, 168, 177, 156, 195)
t2 = c(178, 191, 197, 182, 185, 177)
t3 = c(175, 193, 178, 171, 163, 176)
t4 = c(155, 166, 149, 164, 170, 168)

val = c(t1, t2, t3, t4)
fac = gl(n=4, k=6, labels=c('type1', 'type2', 'type3', 'type4'))

aov1 = aov(val ~ fac)
summary(aov1)

Выход

            Df Sum Sq Mean Sq F value  Pr(>F)   
fac          3   1636   545.5   5.406 0.00688 **
Residuals   20   2018   100.9                   
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Таким образом, мы можем принять значение p как меру корреляции и здесь.

Рекомендации

Алексей Григорьев
источник
1
Спасибо Алексею за детали. Основываясь на дополнительных исследованиях, я обнаружил полисериальную и полихлорную корреляцию. Как ваш подход лучше, чем эти? Пожалуйста, объясните
GeorgeOfTheRF
1
Я не знаю об этих вещах, извините.
Алексей Григорьев
Ответ Fasntastic от @Alexey. Я прочитал полихорические / многозначные корреляции онлайн после прочтения вашего комментария. Они представляют собой метод оценки корреляции между двумя скрытыми переменными по двум наблюдаемым переменным. Я не думаю, что вы просили об этом, и это не сравнимо с ответом Алексея.
KarthikS
1
Ваш первый пример НЕ о категориальном, а о категориальном, скорее это категориальный против числовой, на самом деле вы смотрите на город с числом мужчин (женщин, соответственно), которое является числовым. Категориальный против категориального был бы, скажем, город против цвета глаз или формы или что-то еще, но ни в коем случае не будет число представителя пола.
gented
1
@AlexeyGrigorev Если наши данные не распространяются нормально, следует kruskal-wallicиспользовать вместо one-way anova? Заранее спасибо.
Эбрахими