Корреляционная матрица из категориальных и некатегориальных переменных (Matlab) - PullRequest
0 голосов
/ 07 ноября 2018

В Matlab у меня есть набор данных в таблице вида:

SCHOOL  SEX  AGE  ADDRESS  STATUS  JOB  GUARDIAN  HEALTH  GRADE
UR      F    12   U        FT      TEA  MOTHER    1       11
GB      M    22   R        FT      SER  FATHER    5       15
GB      M    12   R        FT      OTH  FATHER    3       12
GB      M    11   R        PT      POL  FATHER    2       10

Если некоторые переменные являются двоичными, некоторые являются категориальными, а некоторые числовыми. Можно ли извлечь из нее матрицу корреляции с коэффициентами корреляции между переменными? Я попытался использовать corrcoef и corrplot из набора инструментов эконометрики, но я сталкиваюсь с ошибками, такими как «наблюдаемые данные должны быть преобразованы в тип double».

Кто-нибудь хотел бы узнать, как это можно сделать? Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

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

    T.SCHOOL = categorical(T.SCHOOL);

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

Затем вы можете преобразовать ваши категориальные столбцы в двойные:

    T.SCHOOL = double(T.SCHOOL);

Будьте осторожны с double, поскольку он преобразует категориальные переменные в произвольные числа, см. форум matlab .

Также обратите внимание, что вы вводите порядок в свои категориальные переменные, если вы просто преобразуете их в числа. Так, если вы, например, преобразуете JOB 'TEA', 'SER', 'OTH' в 1, 2, 3 и т. Д., Вы делаете переменную порядковой. «ЧАЙ» значит .

Если вы хотите избежать этого, вы можете перекодировать категориальные столбцы в «двоичные» фиктивные переменные:

    dummy_schools = dummyvar(T.SCHOOL);

Возвращает матрицу размера nrows x unique (T.SCHOOL).

А потом идет целая дискуссия о том, полезно ли рассчитывать корреляции категориальных переменных. Как здесь .

Надеюсь, это поможет :)

0 голосов
/ 07 ноября 2018

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

SCHOOL  SEX  AGE  ADDRESS  STATUS  JOB  GUARDIAN  HEALTH  GRADE
1       1    12   1        1       1    1         1       11
2       2    22   2        1       2    2         5       15
2       2    12   2        1       3    2         3       12
2       2    11   2        2       4    2         2       10

и затем сделайте корреляцию.

...