Категоризируйте числовые данные

Примечание

nominal и типы данных массива ordinal могут быть удалены в будущем релизе. Чтобы представлять упорядоченный и неупорядоченные дискретные, нечисловые данные, используйте Категориальные массивы (MATLAB) тип данных вместо этого.

Категоризируйте числовые данные

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

Загрузка демонстрационных данных.

Массив набора данных, hospital, содержит переменные, измеренные на выборке пациентов. Вычислите минимум, медиану и максимум переменной Age.

load hospital
quantile(hospital.Age,[0,.5,1])
ans = 1×3

    25    39    50

Терпеливые возрасты колеблются от 25 до 50.

Преобразуйте числовой массив в порядковый массив.

Пациенты группы в категории возраста Under 30, 30-39, Over 40.

hospital.AgeCat = ordinal(hospital.Age,{'Under 30','30-39','Over 40'},...
                       [],[25,30,40,50]);
getlevels(hospital.AgeCat)
ans = 1x3 ordinal array
     Under 30      30-39      Over 40 

Последний входной параметр к ordinal имеет конечные точки для категорий. Первая категория начинается в 25 лет, второе в 30 лет, и так далее. Последняя категория содержит возрасты 40 и выше, поэтому начинается в 40 и заканчивается в 50 (максимальный возраст в наборе данных). Чтобы задать три категории, необходимо задать четыре конечных точки (последняя конечная точка является верхней границей последней категории).

Исследуйте категории.

Отобразите категорию возраста и возраста для второго пациента.

dataset({hospital.Age(2),'Age'},...
        {hospital.AgeCat(2),'AgeCategory'})
ans = 
    Age    AgeCategory
    43     Over 40    

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

Категоризируйте числовой массив в квартили.

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

p = 0:.25:1;
breaks = quantile(hospital.Weight,p);
hospital.WeightQ = ordinal(hospital.Weight,{'Q1','Q2','Q3','Q4'},...
                   [],breaks);
getlevels(hospital.WeightQ)
ans = 1x4 ordinal array
     Q1      Q2      Q3      Q4 

Исследуйте категории.

Отобразите вес и квартиль веса для второго пациента.

dataset({hospital.Weight(2),'Weight'},...
        {hospital.WeightQ(2),'WeightQuartile'})
ans = 
    Weight    WeightQuartile
    163       Q3            

Итоговая статистика, сгруппированная по категориям уровни.

Вычислите среднее систолическое и диастолическое кровяное давление для каждого возраста и весовой категории.

grpstats(hospital,{'AgeCat','WeightQ'},'mean','DataVars','BloodPressure')
ans = 
                   AgeCat      WeightQ    GroupCount    mean_BloodPressure
    Under 30_Q1    Under 30    Q1          6            123.17      79.667
    Under 30_Q2    Under 30    Q2          3            120.33      79.667
    Under 30_Q3    Under 30    Q3          2             127.5        86.5
    Under 30_Q4    Under 30    Q4          4               122          78
    30-39_Q1       30-39       Q1         12            121.75       81.75
    30-39_Q2       30-39       Q2          9            119.56      82.556
    30-39_Q3       30-39       Q3          9               121      83.222
    30-39_Q4       30-39       Q4         11            125.55      87.273
    Over 40_Q1     Over 40     Q1          7            122.14      84.714
    Over 40_Q2     Over 40     Q2         13            123.38      79.385
    Over 40_Q3     Over 40     Q3         14            123.07      84.643
    Over 40_Q4     Over 40     Q4         10             124.6        85.1

Переменная BloodPressure является матрицей с двумя столбцами. Первый столбец является систолическим кровяным давлением, и второй столбец является диастолическим кровяным давлением. Группа в выборке с самым высоким средним диастолическим кровяным давлением, 87.273, в возрасте 30–39 и в самом высоком квартиле веса, 30-39_Q4.

Смотрите также

|

Связанные примеры

Больше о