crosstab

Перекрестное табулирование

Описание

пример

tbl = crosstab(x1,x2) возвращает перекрестное табулирование, tbl, из двух векторов из той же длины, x1 и x2.

пример

tbl = crosstab(x1,...,xn) возвращает многомерное перекрестное табулирование, tbl, из данных для нескольких входных векторов, x1x2 ..., xn.

пример

[tbl,chi2,p] = crosstab(___) также возвращает статистическую величину хи-квадрата, chi2, и его p - значение, p, для теста, что tbl независимо в каждой размерности. Можно использовать любой из предыдущих синтаксисов.

пример

[tbl,chi2,p,labels] = crosstab(___) также возвращает массив ячеек, labels, который содержит один столбец меток для каждого входного параметра, x1 ... xn.

Примеры

свернуть все

Создайте два вектора выборочных данных, содержа три и четыре отличных значения, соответственно.

x = [1 1 2 3 1];
y = [1 2 5 3 1];

Перекрестный плоский x и y.

table = crosstab(x,y)
table = 3×4

     2     1     0     0
     0     0     0     1
     0     0     1     0

Строки в table соответствуйте трем отличным значениям в x, и столбцы соответствуют четырем отличным значениям в y.

Сгенерируйте два независимых вектора, x1 и x2, каждый содержащий 50 дискретных универсальных случайных чисел в области значений 1:3.

rng default;  % for reproducibility
x1 = unidrnd(3,50,1);
x2 = unidrnd(3,50,1);

Перекрестный плоский x1 и x2.

[table,chi2,p] = crosstab(x1,x2)
table = 3×3

     1     6     7
     5     5     2
    11     7     6

chi2 = 7.5449
p = 0.1097

Возвращенный p значение 0.1097 указывает что, на 5%-м уровне значения, crosstab сбои, чтобы отклонить нулевую гипотезу, что table независимо в каждой размерности.

Загрузите выборочные данные, которые содержат измерения автомобилей большой модели в течение лет 1970-1982.

load carbig

Перекрестный сведите в таблицу данные автомобилей с четырьмя цилиндрами (cyl4) на основе модельного года (when) и страна происхождения (org).

[table,chi2,p,labels] = crosstab(cyl4,when,org);

Используйте labels определить местоположение индекса в table для количества автомобилей с четырьмя цилиндрами, сделанных в США в последний период данных.

labels
labels=3×3 cell array
    {'Other'   }    {'Early'}    {'USA'   }
    {'Four'    }    {'Mid'  }    {'Europe'}
    {0x0 double}    {'Late' }    {'Japan' }

Первый столбец labels соответствует данным в cyl4, и указывает на ту строку 2 из table содержит данные по автомобилям с четырьмя цилиндрами. Второй столбец labels соответствует данным в when, и указывает на тот столбец 3 из table содержит данные по автомобилям, сделанным в последний период. Третий столбец labels соответствует данным в org, и указывает на то местоположение 1 из третьей размерности table содержит данные по автомобилям, сделанным в США.

Поэтому table(2,3,1) содержит количество автомобилей с четырьмя цилиндрами, сделанных в США в последний период.

table(2,3,1)
ans = 38

Данные содержат 38 автомобилей с четырьмя цилиндрами, сделанных в США в последний период.

Создайте таблицу сопряженности из данных и визуализируйте таблицу в графике тепловой карты.

Загрузите данные больницы.

load hospital

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

Преобразуйте массив набора данных в таблицу MATLAB®.

Tbl = dataset2table(hospital);

Определите, независимо ли курение состояния от пола путем создания таблицы сопряженности 2 на 2 курильщиков и некурящих, сгруппированных полом.

[conttbl,chi2,p,labels] = crosstab(Tbl.Sex,Tbl.Smoker)
conttbl = 2×2

    40    13
    26    21

chi2 = 4.5083
p = 0.0337
labels = 2x2 cell
    {'Female'}    {'0'}
    {'Male'  }    {'1'}

Строки получившейся таблицы сопряженности conttbl соответствуйте терпеливому полу со строкой 1, содержащей данные для розеток и строки 2, содержащей данные для штекеров. Столбцы соответствуют терпеливому курящему состоянию со столбцом 1, содержащим данные для некурящих и столбца 2, содержащего данные для курильщиков. Возвращенный результат chi2 = 4.5083 значение тестовой статистической величины в квадрате хи для теста Пирсона в квадрате хи независимости. p- значение для теста p = 0.0337 предлагает, на 5%-м уровне значения, отклонении нулевой гипотезы, что пол и курение состояния независимы.

Визуализируйте таблицу сопряженности в тепловой карте. Постройте курящее состояние на x- ось и пол на yось.

heatmap(Tbl,'Smoker','Sex')

Входные параметры

свернуть все

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

Типы данных: single | double | char | string | logical

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

Типы данных: single | double | char | string | logical

Входные векторы в виде векторов из сгруппированных переменных. Если вы используете этот синтаксис, чтобы задать больше чем два входных вектора, то crosstab генерирует многомерную сводную таблицу. Все входные векторы, включая x1x2 ..., xn, должна быть та же длина.

Типы данных: single | double | char | string | logical

Выходные аргументы

свернуть все

Сводная таблица, возвращенная как матрица целочисленных значений.

Если вы задаете два входных вектора, x1 и x2, затем tbl m-by-n матрица, где m является количеством отличных значений в x1 и n является количеством отличных значений в x2.

Если вы задаете три или больше входных вектора, то tbl(i,j,...,n) количество индексов где grp2idx(x1) i, grp2idx(x2) j, grp2idx(x3) k, и так далее.

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

p-значение для тестовой статистической величины хи-квадрата, возвращенной как скалярное значение в области значений [0,1]. crosstab тесты, что tbl независимо в каждой размерности.

Метки данных, возвращенные как массив ячеек. Записи в первом столбце являются метками для строк tbl, записи во втором столбце являются метками для столбцов, и так далее, для многомерного tbl.

Алгоритмы

  • crosstab использование grp2idx присваивать положительное целое число каждому отличному значению. tbl(i,j) количество индексов где grp2idx(x1) i и grp2idx(x2) j. Числовой порядок grp2idx(x1) и grp2idx(x2) закажите строки и столбцы tbl, соответственно.

    В этом случае, возвращенное значение tbl(i,j,...,n) количество индексов где grp2idx(x1) i, grp2idx(x2) j, grp2idx(x3) k, и так далее.

  • crosstab вычисляет p - значение хи-квадрата тестирует статистическую величину с помощью формулы, которая асимптотически допустима для размера большой выборки. Приближение менее точно для небольших выборок или выборок с неравномерными предельными распределениями. Если ваша выборка включает только две переменные, и у каждого есть два уровня, можно использовать fishertest вместо этого. Эта функция выполняет точный тест Фишера, который не зависит от предположений распределения большой выборки.

Расширенные возможности

Представлено до R2006a