crosstab

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

Синтаксис

tbl = crosstab(x1,x2)
tbl = crosstab(x1,...,xn)
[tbl,chi2,p] = crosstab(___)
[tbl,chi2,p,labels] = 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 = 3x3 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 пациентам больницы, включая фамилию, пол, возраст, вес, куря состояние и систолические и диастолические измерения кровяного давления.

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

[tbl,chi2,p,labels] = crosstab(hospital.Sex, hospital.Smoker)
tbl = 2×2

    40    13
    26    21

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

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

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

свернуть все

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

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

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

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

Входные векторы, заданные как векторы группирующих переменных. Если вы используете этот синтаксис, чтобы задать больше чем два входных вектора, то crosstab генерирует многомерную сводную таблицу. Все входные векторы, включая x1, x2..., 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 и так далее.

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

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