crosstab

Перекрестная табуляция

Описание

пример

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

пример

tbl = crosstab(x1,...,xn) возвращает многомерную перекрестную табуляцию, tbl, данных для нескольких входных векторов, x1, x2..., 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

The 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')

Figure contains an object of type heatmap. The chart of type heatmap has title Count of Sex vs. Smoker.

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

Если вы задаете два входных вектора, 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