過去の投稿に画像リンク切れ多数ありご迷惑おかけしています.

カテゴライズについて

JMP

ご質問を頂いたので,今日はそれについてお答え,といったらいいのか補足といったらいいのかわからないけど,を書きます.詳細は伏せるけど,データの観測値が階級範囲でくくられているけど,もとの連続量に戻したほうがよいか?という質問.ローデータでは連続尺度の変数だったのが,前処理の過程で順序尺度化されているケースです.そりゃ不可逆だから,ローデータが入手できればそれに越したことないのは明らかだよね.これだけだと素気ないから,以下思ってることをダラダラと書きます.

英語ではカテゴライズと呼ぶことが多いけど,その特殊なケースがヒストグラムを描くために階級間隔を決めて,観測値を分類すること.exclusive(ダブらず)exhaustive(抜けなく)いわゆるMECE(Mutually Exclusive, Collectively Exhaustive)が大原則なのはご存じの通り.

JMPのような統計ソフトがなかった時代,社会科学の分野ではガイドラインがあって,カテゴリー数が少なくとも3か4,多くても20以下にすることなんて昔の教科書には書かれてます.カテゴリーの数を決めたら,次に階級間隔を決めるんだけど,その際のガイドラインとして,1)(累積度数の計算が楽にできるように)小数を避けるということと,2)階級間隔の最低値は階級数の倍数にする,というのもどこかで読んだ記憶がある.後者は慣例的なものらしいけど.

JMPでヒストグラムを描くと自動でカテゴライズしてくれるから,通常は意識することはないと思います.といっても,デフォルトがデータの姿と思ってはいけなくて,マウスのドラッグ操作でbinサイズやオフセットを変えることは『JMPではじめるデータサイエンス』でも推奨しました.因みに,「Iris.jmp」の「花弁の長さ」で試してみるとこんな感じになる.

一番左がデフォルトのヒストグラムで階級数は12で階級幅は0.5ですね.因みに,その隣は列メニューから,「ユーティリティ>カテゴリ化の計算式の作成」でカテゴライズした結果です.不思議と同じにならないのは,binサイズが1でデフォルトで-0.8のオフセットがかかっているから.計算式は0.8 + Floor( :Petal length – 0.8 )となってます.

階級数を求めるスタージェスの公式というのがあって,データ分析の入門書なんかにもっともらしく紹介されているけど,おそらくデータ分析を実際にはやったことない人が書いたんだろうなって思います.だって,あまり訳に立たないもんね.Herbert A. SturgesがThe Choice of a Class Intervalという題名の論文をJournal of the American Statistical Associationにパブリッシュしたのが1926年です.ピアソンがヒストグラムを考案した(少なくとも命名した)のが1800年代の終わりだから,誕生して30年くらい経っていたことになる.階級幅をどう決めるかという悩みが当時もあったんだろうな.

このデータはサイズ150だから,k=1+log2150=1+7.228=8.228 と計算できて,階級数は8にすればいいことになる.上の図の左から三番目がそのヒストグラムです.このデータでは大きな違いはないようですね.

ついでに紹介しておくと,「カテゴリ化の計算式の作成」では右上のプルダウンからラベルの表示形式が選べます.この中に中間値があって,それをラベルとしたのが上図の一番右のヒストグラムです.これが一番のお気に入りかな.

データを見ながらカテゴライズできるのが素晴らしいけど,binサイズが一様なのが残念ですね.JMPならそれぞれの階級を可変できても面白いんだけどな.「一変量の分布」と違って分布形状を見るための機能ではないから,binサイズを一様にする必要はないんです.まあ,計算式を書けばいいんだけど.

観測値だけを見てカテゴライズするなら,このように機械的に実施することもできるけど,観測値の意味するところ,そのデータの背景を考えなければならないこともあります.例えば,今コロナ流行で懸念されている病床数を例にとってみる.

病院の大きさって,従業員数でも資本金でも売り上げでもなくて,病床数が指標とされるんです.知ってました?法律としては,医療法だったかな?20床に区切りがあって,20床未満が「診療所」で20床以上が「病院」と呼ぶことになってます.法律の区分以外に,その医療機関のパワーを図る指標もあります.それは診療報酬額による区分なんだけど,この場合の区切りは,病床数200と400ですね.200床未満の病院では再診料が適用されたり,病床数400以上の医療機関の受診に紹介状を義務付けたりしてます.(紹介状なければ5000円とられるんだったかな?)

もちろん医療政策が先にあって,法律的にこのように区分されているわけだけど,その区分によって対象の実態が変わってきます.何らかの特性,例えば院内感染の発生件数と医療機関の規模との関係性なんかを検証するには,これら20床,200床,400床を意識したカテゴライズが必要になるよね.経年で変化を追うような場合は,更に,2016年度の診療報酬改定で以前ではこの400床は500床であったことも知っておく必要がある.もちろんJMPはそんなこと知らないから,分析者が主導する必要しなくちゃならない.

それで短い回答を引き延ばしてしまったけど,そのカテゴライズは誰がやったのかが重要になります.その誰かが分析の目的とデータの背景を熟知していればそのカテゴリーをそのまま踏襲するのもいいけど,そうでなければやはり自分でカテゴライズできるようにローデータに戻るのがいいと思いますよ.

それではまた.

統計的問題解決研究所

コメント