数値データの分類
メモ
nominal
配列データ型および ordinal
配列データ型は推奨されません。順序付きおよび順序付けのない離散非数値データを表すには、代わりにcategorical 配列データ型を使用します。
数値データの分類
この例では、ordinal
を使用して数値データを categorical 順序配列に分類する方法を示します。この方法は、連続データを離散化する場合に便利です。
標本データを読み込みます。
データセット配列 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
Under 30 30-39 Over 40
ordinal
の最後の入力引数にはカテゴリのエンドポイントが指定されています。最初のカテゴリは 25 歳から始まり、2 番目のカテゴリは 30 歳から始まる、といった形式が続きます。最後のカテゴリは 40 歳以上が対象なので、40 から始まり 50 (このデータセットでの最高年齢) で終わります。3 つのカテゴリを指定する場合、4 つのエンドポイントを指定しなければなりません (最後のエンドポイントは最後のカテゴリの上限となります)。
カテゴリを調査します。
2 番目の患者の年齢と年齢カテゴリを表示します。
dataset({hospital.Age(2),'Age'},... {hospital.AgeCat(2),'AgeCategory'})
ans = Age AgeCategory 43 Over 40
数値配列をカテゴリに離散化すると、categorical 配列から実際の数値に関するすべての情報が失われます。この例では、AgeCat
は数値ではなく、生データの値をここから復元することはできません。
数値配列を四分位に分類します。
変数 Weight
にはサンプル患者の体重の測定値が格納されています。患者の体重を四分位ごとに 4 つのカテゴリに分類します。
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
Q1 Q2 Q3 Q4
カテゴリを調査します。
2 番目の患者の体重と体重四分位を表示します。
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
は 2 列の行列です。最初の列は収縮期血圧で、2 番目の列は拡張期血圧です。この標本の中で、平均拡張期血圧が最も高い 87.273
のグループは、年齢が 30 ~ 39 歳の患者であり、体重が最も重い四分位 (30-39_Q4
) になっています。