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


123

У меня есть датафрейм со многими наблюдениями и многими переменными. Некоторые из них являются категориальными (неупорядоченными), а другие числовыми.

Я ищу ассоциации между этими переменными. Я был в состоянии вычислить корреляцию для числовых переменных (корреляция Спирмена), но:

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

Кто-нибудь знает, как это можно сделать? Если да, существуют ли функции R, реализующие эти методы?


Ответы:


113

Это зависит от того, какой смысл корреляции вы хотите. Когда вы запускаете прототипную корреляцию момента продукта Пирсона, вы получаете меру силы ассоциации и тест на значимость этой ассоциации. Однако, как правило, тест значимости и мера величины эффекта различаются.

Тесты значимости:

Размер эффекта (сила ассоциации):


5
Здесь можно найти очень подробное объяснение непрерывного и номинального случая: корреляция между номинальной (IV) и непрерывной (DV) переменной .
gung

3
В случае двоичного и интервального интервалов существует точечно-двоичная корреляция .
Glen_b

Что может быть лучшей альтернативой критерию хи-квадрат для больших выборок?
Вальдир Леонсио

2
п<+0,055%

1
Как указал @gung, корреляция между номинальной (IV) и непрерывной (DV) переменной является отличной связью для того, как можно сделать корреляцию для смешанных переменных. Hmisc::rcorrделает это красиво, и мы можем проверить это (для кадра данных со смешанными переменными) следующим образом:as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$P) as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$r)
KarthikS

15

Я видел следующую таблицу, связанную ранее:

https://stats.idre.ucla.edu/other/mult-pkg/whatstat/

Это может быть полезно для вас. Там даже есть ссылки на конкретные библиотеки R.


3
Проблема с этой таблицей состоит в том, что она касается только категориальных / порядковых / интервальных переменных. Я ищу метод, позволяющий мне использовать как числовые, так и категориальные независимые переменные.
Климент Ф

6

Если вам нужна матрица корреляции категориальных переменных, вы можете использовать следующую функцию-обертку (требуется пакет 'vcd'):

catcorrm <- function(vars, dat) sapply(vars, function(y) sapply(vars, function(x) assocstats(table(dat[,x], dat[,y]))$cramer))

Где:

vars строковый вектор категориальных переменных, которые вы хотите коррелировать

dat это data.frame, содержащий переменные

Результатом является матрица V Крамера.


6

ИксКTяКязнак равно1,...,пИксTяр2

Такой анализ можно рассматривать как обобщение анализа множественной корреспонденции и известен под многими именами, такими как канонический корреляционный анализ, анализ однородности и многие другие. Реализация в R находится в homalsпакете (на CRAN). поиск по некоторым из этих имен даст массу информации, есть полная книга: Альберт Гифи, «Нелинейный многомерный анализ». Удачи!


1
1

Я буду редактировать, чтобы учесть этот комментарий.
kjetil b halvorsen

2

У меня была похожая проблема, и я попробовал критерий хи-квадрат, как было предложено, но я очень запутался в оценке P-значений по отношению к гипотезе NULL.

Я объясню, как я интерпретировал категориальные переменные. Я не уверен, насколько это актуально в вашем случае. У меня была переменная отклика Y и две переменные предиктора X1 и X2, где X2 - категориальная переменная с двумя уровнями, скажем, 1 и 2. Я пытался подобрать линейную модель

ols = lm(Y ~ X1 + X2, data=mydata)

Но я хотел понять, насколько другой уровень X2 соответствует приведенному выше уравнению. Я наткнулся на функцию R ()

by(mydata,X2,function(x) summary(lm(Y~X1,data=x)))

Этот код пытается вписаться в линейную модель для каждого уровня X2. Это дало мне все P-значение и R-квадрат, Остаточную стандартную ошибку, которую я понимаю и могу интерпретировать.

Опять же, я не уверен, что это то, что вы хотите. Я как бы сравнил разные значения X2 в прогнозировании Y.


1

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

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


2
Добро пожаловать на сайт @DaSilvaLionel. Вы можете заметить, что использование критерия хи-квадрат с двумя категориальными переменными уже было предложено выше.
gung
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.