Как сказано выше, вам сначала нужно преобразовать ваши категориальные и двоичные переменные в числовые значения.
Поэтому, если ваши данные находятся в таблице (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).
А потом идет целая дискуссия о том, полезно ли рассчитывать корреляции категориальных переменных. Как здесь .
Надеюсь, это поможет :)