ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

crosstab

説明

tbl = crosstab(x1,x2) は同じ長さの 2 つのベクトル x1x2 のクロス集計 tbl を返します。

tbl = crosstab(x1,...,xn) は複数の入力ベクトル x1x2、...、xn のデータの多次元クロス集計 tbl を返します。

[tbl,chi2,p] = crosstab(___) は、カイ二乗統計量 chi2 とその p 値 p も返します。これらは tbl が各次元で独立であるかどうかの検定に使用されます。前述の構文のいずれも使用できます。

[tbl,chi2,p,labels] = crosstab(___) は、各入力引数 x1 ... xn に対する 1 列のラベルが含まれている cell 配列 labels も返します。

すべて折りたたむ

異なる 3 つの値と 4 つの値を含む 2 つの標本データ ベクトルを作成します。

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

xy をクロス集計します。

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

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

table の行は x の 3 つの異なる値に対応し、列は y の 4 つの異なる値に対応しています。

2 つの独立したベクトル x1 および x2 を生成します。各ベクトルは 1:3 の範囲で離散一様分布する 50 個の乱数を含んでいます。

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

x1x2 をクロス集計します。

[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% の有意水準において、table が各次元で独立しているという帰無仮説を、crosstab が棄却できないことを示しています。

標本データを読み込みます。1970 ~ 1982 年の間の大型自動車に関する測定値が含まれています。

load carbig

モデルの年度 (when) と生産国 (org) に基づいて 4 気筒の自動車 (cyl4) のデータをクロス集計します。

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

labels を使用して、データの期間の後半に米国で製造された 4 気筒の自動車の台数に対する table のインデックスの位置を特定します。

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

labels の最初の列は cyl4 のデータに対応し、table の行 2 に4 気筒の自動車のデータが格納されていることを示しています。labels の 2 番目の列は when のデータに対応し、期間の後半に製造された自動車のデータは、table の列 3 に格納されていることを示しています。labels の 3 番目の列は org のデータに対応し、米国で製造された自動車のデータは table の 3 番目の次元の位置 1 に格納されていることを示しています。

つまり、table(2,3,1) には、期間の後半に米国で製造された 4 気筒の自動車の台数が格納されていることになります。

table(2,3,1)
ans = 38

このデータは、期間の後半に米国で製造された 4 気筒の自動車が 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 値の近似値です。

入力引数

すべて折りたたむ

入力ベクトル。グループ化変数のベクトルとして指定します。x1x2、...、xn を含むすべての入力ベクトルは同じ長さでなければなりません。

データ型: single | double | char | string | logical

入力ベクトル。グループ化変数のベクトルとして指定します。x1x2、...、xn を含むすべての入力ベクトルは同じ長さでなければなりません。

データ型: single | double | char | string | logical

入力ベクトル。グループ化変数のベクトルとして指定します。この構文を使用して 3 つ以上の入力ベクトルを選択する場合、crosstab は多次元クロス集計表を生成します。x1x2、...、xn を含むすべての入力ベクトルは同じ長さでなければなりません。

データ型: single | double | char | string | logical

出力引数

すべて折りたたむ

クロス集計表。整数値行列として返されます。

2 つの入力ベクトル x1x2 を指定する場合、tbl は m 行 n 列の行列です。ここで m は x1 内の異なる値の数で、n は x2 内の異なる値の数です。

3 つ以上の入力ベクトルを指定する場合、tbl(i,j,...,n) はインデックス数です。ここで grp2idx(x1)igrp2idx(x2)jgrp2idx(x3)k、以降も同様です。

カイ二乗統計量。正のスカラー値として返されます。帰無仮説は、「tbl のどのエントリでもその比率は各次元での比率の積である」です。

カイ二乗検定統計量の p 値。[0,1] の範囲のスカラー値として返されます。crosstabtbl が各次元で独立しているかどうかを検定します。

データ ラベル。cell 配列として返されます。多次元 tbl では、1 番目の列のエントリは tbl の各行のラベル、2 番目の列のエントリは各列のラベルとなり、以降も同様です。

アルゴリズム

crosstabgrp2idx を使用して正の整数を異なる値に割り当てます。tbl(i,j) はインデックス数です。ここで grp2idx(x1)i で、grp2idx(x2)j です。grp2idx(x1)grp2idx(x2) の数値順序が tbl の行と列の順序を決めます。

この場合、tbl(i,j,...,n) の返された値はインデックス数です。ここで、grp2idx(x1)igrp2idx(x2)jgrp2idx(x3)k、以降も同様です。

拡張機能

R2006a より前に導入