マルチレベルのカテゴリカルデータの分布の分散


8

現在、さまざまな特性(都市など)を持つ大規模なデータセットを分析しています。私は、データ全体でどの程度の差異があったか、またはほとんどなかったかを示すメジャーを見つけたかったのです。これは、単純に異なる要素の数を数えるよりもはるかに便利です。

たとえば、次のデータについて考えます。

City
----
Moscow
Moscow
Paris
London
London
London
NYC
NYC
NYC
NYC

4つの異なる都市があることがわかりますが、分布がどれほどあるかはわかりません。私が思いついた「式」の1つは、各要素の合計データセットの割合の合計を取ることでした。この場合は、になります(2/10)^2 + (1/10)^2 + (3/10)^2 + (4/10)^2。私にはこれに対する実際の数学的証明はありませんが、それについて考えました。

この場合、たとえば、10要素のセットで、9が同じで1が異なる場合、その数はになります(9/10)^2 + (1/10)^2。しかし、それが半分であるならば、それはそうなるでしょう(5/10)^2 + (5/10)^2

似たような公式や研究分野について意見を求めたかったのです。いくつかのグーグル検索で本当に何も見つけることができませんでした。

回答:


10

おそらくあなたが望んでいるのは(シャノンの)エントロピーだと思います。これは次のように計算されます これは、カテゴリ変数の情報量についての考え方を表します。

Hバツ=Σバツpバツログ2pバツ

ではR、次のように計算できます。

City = c("Moscow", "Moscow", "Paris", "London", "London", 
         "London", "NYC", "NYC", "NYC", "NYC")
table(City)
# City
# London Moscow    NYC  Paris 
#      3      2      4      1 
entropy = function(cat.vect){
  px  = table(cat.vect)/length(cat.vect)
  lpx = log(px, base=2)
  ent = -sum(px*lpx)
  return(ent)
}
entropy(City)                                             # [1] 1.846439
entropy(rep(City, 10))                                    # [1] 1.846439
entropy(c(    "Moscow",       "NYC"))                     # [1] 1
entropy(c(    "Moscow",       "NYC", "Paris", "London"))  # [1] 2
entropy(rep(  "Moscow", 100))                             # [1] 0
entropy(c(rep("Moscow",   9), "NYC"))                     # [1] 0.4689956
entropy(c(rep("Moscow",  99), "NYC"))                     # [1] 0.08079314
entropy(c(rep("Moscow",  97), "NYC", "Paris", "London"))  # [1] 0.2419407

これから、ベクトルの長さが問題ではないことがわかります。可能なオプションの数(カテゴリ変数の「レベル」)により、その数は増加します。可能性が1つしかなかった場合、値は(可能な限り低い)です。確率が等しい場合、指定された数の可能性について、値が最大になります。 0

多少技術的には、より多くの可能なオプションを使用すると、エラーを最小限に抑えながら変数を表すためにより多くの情報が必要になります。オプションが1つしかない場合、変数には情報がありません。より多くのオプションがあっても、ほとんどすべての実際のインスタンスが特定のレベルである場合、情報はほとんどありません。結局のところ、あなたは「モスクワ」を推測することができ、ほとんど常に正しいです。

your.metric = function(cat.vect){
  px   = table(cat.vect)/length(cat.vect)
  spx2 = sum(px^2)
  return(spx2)
}
your.metric(City)                                             # [1] 0.3
your.metric(rep(City, 10))                                    # [1] 0.3
your.metric(c(    "Moscow",       "NYC"))                     # [1] 0.5
your.metric(c(    "Moscow",       "NYC", "Paris", "London"))  # [1] 0.25
your.metric(rep(  "Moscow", 100))                             # [1] 1
your.metric(c(rep("Moscow",   9), "NYC"))                     # [1] 0.82
your.metric(c(rep("Moscow",  99), "NYC"))                     # [1] 0.9802
your.metric(c(rep("Moscow",  97), "NYC", "Paris", "London"))  # [1] 0.9412

推奨されるメトリックは、確率の2乗の合計です。いくつかの点で同様に動作します(たとえば、変数の長さに不変であることに注意してください)が、レベル数が増加するか、変数がより不均衡になると減少することに注意してください。エントロピーとは逆に移動しますが、単位(増分のサイズ)は異なります。メトリックはとによってバインドされますが、エントロピーはから無限大の範囲です。ここにそれらの関係のプロットがあります: 010

ここに画像の説明を入力してください


3
あなたが定義するエントロピーは S カテゴリ別 log2S。明らかにS好きなだけ大きくすることができますが、この種のほとんどの問題では、それは小さいか中程度であり、エントロピーは有限です。
Nick Cox

9

分数の二乗の合計(テキストを算術に合わせるため)は、実際に、再発見または再考された、分布の濃度を個別のカテゴリに分割した測定値です。現在は少なくとも2世紀に入っており、少しの自由度を同じ傘の下に含めて、その補数と相互関係を含めることができます。3つのバージョンはすべて、簡単に解釈して使用できます。一般的に使用されている(ワイルドな推測)おそらく20の異なる名前があります。一般的に書いてみましょうp 割合または確率、必要な場合 1ps0 そして Σs=1Sps1

あなたの測定は Σs=1Sps2=:R。少なくとも生物学者にとってはインデックスs=1S種のニーモニックです。次に、その合計は、エコロジスト向けのシンプソンインデックスです(EHシンプソン、1922-2019以降、シンプソンのパラドックスの名前が付けられた人物)。経済学者にとっては、それはハーフィンダール・ヒルシュマン指数です。等々。暗号化には長い歴史があり、分類された問題での使用により、何十年にもわたって秘密にされがちですが、最も有名なのはAMチューリングの機能です。IJグッド(シンプソンのように第二次世界大戦でチューリングとともに働いた)は、シンボルを動機づけるリピート率と呼びましたR上記; DJC MacKayの場合、これは一致確率です。

比率をランク付けするとします p1pS。その後、極端にp1 に成長する 1 その他 ps 縮小する 0 その後 R=1。もう1つの極端は、確率が等しいことです1/S そのため R=S1/S2=1/S。2つの制限は当然のことながら一致しますS=1。したがって、210100R0.50.10.01 それぞれ。

補完 1Rは、Corrado Giniが使用する不均一性のさまざまな指標の1つでしたが、さまざまな文献で用語の深刻な過負荷に注意してください。Giniインデックスまたは係数という用語は、いくつかの異なる指標に適用されています。これは、分類の不純さの尺度として機械学習で機能します。逆にR純度を測定します。生態学者は通常多様性について話します:R 多様性を逆に測定し、 1R直接測定します。遺伝学者のために1R ヘテロ接合性です。

相互 1/R「同等の数値」の解釈があります。上記のようなケースを想像してくださいS 種はそれぞれに等しく共通です ps=1/S。その後1/R=1/Σs=1S1/S2=S。拡張によって 1/R 同等の数の等しく一般的なカテゴリを測定するため、たとえば 1/62/6/6 与える 1/R2.57 これは、分布の間にある直観に一致します 2/62/62/6 そして /6/60 集中力や多様性。

(シャノンエントロピーに相当する数 H ちょうどその対数です 2HexpH または 10H 拠点用 2e=exp1 そして 10 それぞれ。)

エントロピーにはさまざまな一般化があり、これにより、この測定はより広範なファミリの1つになります。IJグッドによって与えられた単純なものは動物園を定義しますΣspsa [ln1/ps]b そこから a=2b=0 私たちの測定値を与えます。 a=1b=1 シャノンのエントロピーです。 a=0;b=0 戻り値 S、存在する種の数。これは、多様性の最も簡単な測定であり、いくつかのメリットがあります。


うわー、これはたくさんあるようです。それは私の分野ではないので、私はこれらの名前のいくつかを聞いたことを覚えていますが、私はそれを周辺にのみ精通しています。いかがですかS計算された?いつもですか1/R、または種が同確率である場合のみ?
ガン-モニカの復活

S存在する種の数です。分類を採用する場合があります(例:男性と女性、S=2)そのため、データ収集用に事前定義されていますが、この例では他のスキームも可能です。時々それはいくつの種が彼ら自身を表すかです。あなたが木または鳥の種を探している植物学者または鳥類学者であると想像してください。当然のことながら、種という用語は一般的なものです(生物学的に弱々しい)。経済の分野、取引される製品やサービスなどの種類である可能性があります。人口統計では、民族のカテゴリなどである可能性があります
Nick Cox

都市の例のデータについては、 S=4?それは他のものほど良い指標ではないようです。
ガン-モニカの復活

単純な例ではそうです。しかし、あなたと私がこれまでに訪れた国の数を比較するとします。あなたは78と言います、私は23と言います。それは有益です。そして、その例では、それぞれに何日費やしたかについて正確な情報を掘り出すことは本当にできません。別の生態学者に2つの島で78種と23種の鳥が見つかったと伝える生態学者は、有用なデータを取引しています。
Nick Cox 2016年

1

興味深い質問...これは、この指標で何をしたいかによって本当に異なります。「最も変数」でリストをランク付けしたいだけの場合、多くのことが機能する可能性があります。作成したメトリックは妥当なようです。数学的な「証明」が必要だとは言えません。何の証明ですか?「このデータセットは均一分布からのものである可能性が高いですか?」のような質問をすることができます。私は「このリストからの2つのランダムな抽選が等しい確率はどのくらいか」に直感的な魅力があると思います。あなたはそのようにRでそれを行うことができます:

set.seed(1)
cities <- c("Moscow", "Moscow", "NYC", "London")
# Gives .3525
prob_equal = mean(sample(rep(cities, 100)) == sample(rep(cities, 100)))
citiesTwo <- c(rep("Moscow", 100), rep("NYC", 100)) # Gave .497
citiesTwo <- c(rep("Moscow", 100), rep("NYC", 10)) # Gave .833

「平均」の部分は、1、1、0、1、0などの平均になるTRUE、TRUE、FALSE、TRUE、FALSEなどの数百のランダムなエントリのベクトルの平均を示します。

1からその確率を引くと、 "分散"の概念がよりよくなる可能性があります(つまり、確率2つのランダム値は異なるため、数値が大きいほど、多様性が高くなります)。そのような量はおそらく、あまり努力せずに計算できます。おそらくP(ランダム選択はモスクワ)* P(1秒はモスクワ)+ P(ランダム選択はNYC)* P(1秒はNYC)+ ...のようなものです。 +プロポーション_nyc ^ 2、これは実際に思いついたものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.