離散データと連続データに関するこの質問に答える際、カテゴリデータを連続データとして扱うことはほとんど意味がないと断言しました。
一見すると自明のように思えますが、直観はしばしば統計の貧弱なガイドであり、少なくとも私の場合はそうです。だから今私は疑問に思う:それは本当ですか?または、カテゴリデータから連続体への変換が実際に役立つ分析が確立されていますか?データが序数である場合、違いが生じますか?
離散データと連続データに関するこの質問に答える際、カテゴリデータを連続データとして扱うことはほとんど意味がないと断言しました。
一見すると自明のように思えますが、直観はしばしば統計の貧弱なガイドであり、少なくとも私の場合はそうです。だから今私は疑問に思う:それは本当ですか?または、カテゴリデータから連続体への変換が実際に役立つ分析が確立されていますか?データが序数である場合、違いが生じますか?
回答:
「カテゴリ」変数は実際には順序変数を表していると想定します。そうでなければ、@ Robが指すバイナリ変数(0/1でコード化)でない限り、連続したものとして扱うことはあまり意味がありません。次に、カテゴリデータ分析のための多くのモデルがこれまでに開発されましたが、問題は変数を扱う方法ほどではないと言います。たとえば、「順序付きカテゴリデータの分析:概要と最近の調査」を参照してください。LiuとAgrestiからの開発 -、我々が想定する基礎となる測定スケールより。私の回答はこの2番目のポイントに焦点を当てますが、最初に変数のカテゴリまたはレベルへの数値スコアの割り当てについて簡単に説明します。
順序変数の単純な数値記録を使用することにより、変数に間隔プロパティがあると仮定しています(Stevens、1946によって与えられた分類の意味で)。測定理論の観点(心理学)から、これはしばしばあまりにも強い仮定かもしれませんが、基礎研究(つまり、単一の項目を使用して明確な言葉遣いで毎日の活動に関する意見を表現する場合) 。コクラン(1954)はすでに
実験の結果を参照せずに作成された場合、任意のスコアのセットが有効なテストを提供します。順序付けされた分類の実際の根底にある数値スケールをひどくゆがめるという点で、スコアのセットが貧弱な場合、テストは敏感ではありません。したがって、スコアは、分類が構築および使用された方法に関して利用可能な最高の洞察を具体化する必要があります。(p。436)
(彼のコメントの1つを通してこのことを思い出させてくれた@whuberに感謝します。これにより、この引用が出されたAgrestiの本を読み直すことになりました。)
実際、いくつかのテストでは、そのような変数を暗黙的に間隔スケールとして扱います。たとえば、線形トレンドをテストするための統計(単純な独立性の代替として)は、相関アプローチ(、Agresti、2002、p。87)。M 2 = (n − 1 )r 2
まあ、不規則な範囲で変数を再コーディングするか、そのレベルの一部を集計することもできますが、この場合、再コーディングされたカテゴリ間の強い不均衡により、前述のトレンドテストなどの統計テストが歪む可能性があります。カテゴリ間の距離を割り当てるための優れた代替案は、@ Jeromyによってすでに提案されています。つまり、最適なスケーリングです。
ここで、2つ目のポイントである基礎となる測定モデルについて説明します。この種の質問を見るとき、私は「心理測定」タグを追加することをいつもためらっています。なぜなら、測定スケールの構築と分析は心理測定理論の下にあるからです(Nunnally and Bernstein、1994、きちんとした概要について)。実際にItem Response Theoryの下にあるすべてのモデルについては説明しません。興味のある読者には、I。Partchevのチュートリアル、アイテム応答理論のビジュアルガイドをご参照ください。、IRTの簡単な紹介、および可能なIRT分類法の最後にリストされている参考文献(5〜8)を参照してください。非常に簡単に言えば、アイデアは、変数カテゴリ間に任意の距離を割り当てるのではなく、潜在的なスケールを想定し、個人の能力または責任とともに、その連続体上の位置を推定するというものです。簡単な例は数学的な表記に値するので、次の項目を考えてみましょう(EORTC QLQ-C30健康関連の生活の質に関するアンケートから):
心配しましたか?
「まったくない」から「非常に多い」までの4段階のスケールでコーディングされています。生スコアは、一つの意味次に、いわゆるスケールスコアを得るために一緒に添加することができる同じスケールに属する項目に4スコアに1のスコアを割り当てることによって計算されるランクをここに(下層の構築に、メンタルヘルスコンポーネント)。このような集計されたスケールスコアは、採点の容易さ(開業医または看護師にとって)のため非常に実用的ですが、離散(順序付けられた)スケールにすぎません。
上記のI. Partchevのチュートリアルで説明されているように、特定の応答カテゴリを支持する確率は、何らかのロジスティックモデルに従うと考えることもできます。基本的に、この考え方は一種のしきい値モデル(比例または累積オッズモデルに関して同等の定式化につながる)であり、1つ以上のスコアのオッズではなく、1つの応答カテゴリに属するオッズをモデル化します。特定のカテゴリ、潜在特性上の被験者の位置を条件とします。さらに、潜在的なスケール(これはレーティングスケールモデルです)で応答カテゴリが等間隔に配置されることを課す場合があります-これは規則的な間隔の数値スコアを割り当てることで行う方法です-しない(これは部分クレジットモデルです) 。
明らかに、順序変数が数値変数として扱われる古典テスト理論にはあまり追加していません。ただし、連続スケール(間隔プロパティ)を想定し、測定の特定の誤差を考慮することができる確率モデルを導入し、これらの要因スコアを任意の回帰モデルにプラグインできます。
参照資料
カテゴリが2つしかない場合、それらを(0,1)に変換するのは理にかなっています。実際、これは一般に、結果のダミー変数が回帰モデルで使用される場合に行われます。
3つ以上のカテゴリがある場合、データが序数である場合にのみ意味があり、特定の状況でのみ意味があると思います。たとえば、回帰を行っており、ノンパラメトリックな非線形関数をordinal-cum-numeric変数に当てはめた場合、それは大丈夫だと思います。しかし、線形回帰を使用する場合、順序変数の連続する値の相対的な差について非常に強い仮定を立てており、通常はそれを行うことに消極的です。
多くのカテゴリを持つ順序付きカテゴリ変数を連続として扱うのが一般的な方法です。この例:
そして、「連続として扱う」とは、連続的なランダム変数を想定するモデルに変数を含めることを意味します(たとえば、線形回帰の従属変数として)。問題は、これが合理的な単純化の仮定であるために必要なスケールポイントの数であると思います。
他のいくつかの考え:
多くの読者の経験の範囲内にあるはずの非常に単純な例はしばしば見落とされますが、学術的な仕事に与えられたマークや成績に関係します。多くの場合、個々の割り当てのマークは、慣例として、パーセントマークまたは最大5のスケール(おそらく小数点も含む)のマークとして指定されている場合でも、本質的な判断に基づく順序測定にあります。つまり、教師はエッセイ、論文、論文、論文を読んで、42%、4、その他何でもよいと判断するかもしれません。マークが詳細な評価スキームに基づいている場合でも、スケールは間隔または比率測定スケールからある程度離れたルートにあります。
しかし、多くの機関は、これらのマークやグレードが十分にある場合、それらを平均化(グレードポイント平均など)し、さらに詳細に分析することすら完全に合理的であると考えています。そのため、ある時点で、序数の測定値がサマリースケールに変化し、それが連続的であるかのように扱われます。
皮肉な愛好家は、多くの学科や学校の統計コースが、これが全学規模の手順として実施されている間、よく疑わしく、最悪の間違いであることをしばしば教えていることに気付くでしょう。
私は、真にカテゴリー的な非順序変数を連続として扱うことが時々意味があると主張します。
大きなデータセットに基づいてデシジョンツリーを構築している場合、カテゴリ変数をダミー変数に変換する処理能力とメモリの点でコストがかかる場合があります。さらに、一部のモデル(randomForest
Rなど)では、多くのレベルのカテゴリ変数を処理できません。
これらの場合、ツリーベースのモデルは、連続変数としてコーディングされている場合でも、非常に重要なカテゴリを識別できる必要があります。不自然な例:
set.seed(42)
library(caret)
n <- 10000
a <- sample(1:100, n, replace=TRUE)
b <- sample(1:100, n, replace=TRUE)
e <- runif(n)
y <- 2*a + 1000*(b==7) + 500*(b==42) + 1000*e
dat1 <- data.frame(y, a, b)
dat2 <- data.frame(y, a, b=factor(b))
yは連続変数、aは連続変数、bはカテゴリ変数です。ただし、dat1
bでは連続として扱われます。
これら2つのデータセットに決定木を当てはめると、dat1
以下よりもわずかに悪いことがわかりますdat2
。
model1 <- train(y~., dat1, method='rpart')
model2 <- train(y~., dat2, method='rpart')
> min(model1$results$RMSE)
[1] 302.0428
> min(model2$results$RMSE)
[1] 294.1411
2つのモデルを見ると、それらは非常に似ていることがわかりますが、model1はb == 42の重要性を見逃しています。
> model1$finalModel
n= 10000
node), split, n, deviance, yval
* denotes terminal node
1) root 10000 988408000 614.0377
2) a< 42.5 4206 407731400 553.5374 *
3) a>=42.5 5794 554105700 657.9563
6) b>=7.5 5376 468539000 649.2613 *
7) b< 7.5 418 79932820 769.7852
14) b< 6.5 365 29980450 644.6897 *
15) b>=6.5 53 4904253 1631.2920 *
> model2$finalModel
n= 10000
node), split, n, deviance, yval
* denotes terminal node
1) root 10000 988408000 614.0377
2) b7< 0.5 9906 889387900 604.7904
4) a< 42.5 4165 364209500 543.8927 *
5) a>=42.5 5741 498526600 648.9707
10) b42< 0.5 5679 478456300 643.7210 *
11) b42>=0.5 62 5578230 1129.8230 *
3) b7>=0.5 94 8903490 1588.5500 *
ただし、model1はmodel2の約1/10の時間で実行されます。
> model1$times$everything
user system elapsed
4.881 0.169 5.058
> model2$times$everything
user system elapsed
45.060 3.016 48.066
もちろん、問題のパラメーターを微調整して、dat2
はるかに優れたdat1
、またはdat1
わずかに優れた状況を見つけることができますdat2
。
一般にカテゴリ変数を連続として扱うことは推奨していませんが、そうすることで予測精度を低下させることなく、モデルの適合に要する時間を大幅に短縮できる状況が見つかりました。
このトピックの非常に素晴らしい要約はここにあります:
mijkerhemtulla.socsci.uva.nl PDF
「いつカテゴリー変数を連続として扱うことができますか?準最適条件下でのロバストな連続およびカテゴリーSEM推定法の比較。」
ミケ・レムチュラ、パトリシアÉ。Brosseau-Liard、Victoria Savalei
彼らはそれを行うための約60ページの価値のある方法を調査し、それがいつ役に立つか、どのアプローチを取るべきか、そして特定の状況に合う各アプローチの長所と短所について洞察を提供します。それらはすべてをカバーしているわけではありません(私が学んでいる限り、無限の量があるようです)が、カバーしているものは十分にカバーしています。
理にかなっている別のケースがあります:データが連続データからサンプリングされるとき(たとえば、アナログ-デジタルコンバーターを介して)。古い機器の場合、ADCは多くの場合10ビットであり、名目上は1024のカテゴリ序数データを提供しますが、ほとんどの目的では実数として扱うことができます(ただし、スケールの下限近くに値のアーティファクトがあります)。現在、ADCは16ビットまたは24ビットが一般的です。65536または16777216の「カテゴリ」を話すまでには、データを連続として扱うのに問題はありません。