Varianz einer Verteilung von mehrstufigen kategorialen Daten


8

Ich analysiere derzeit große Datenmengen mit verschiedenen Merkmalen (z. B. Stadt). Ich wollte ein Maß finden, das im Wesentlichen sagt, wie viel oder wie wenig Abweichung zwischen den Daten besteht. Dies wäre viel nützlicher, als nur die Anzahl der verschiedenen Elemente zu ermitteln.

Betrachten Sie beispielsweise die folgenden Daten:

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

Ich kann sehen, dass es 4 verschiedene Städte gibt, aber das sagt mir nicht, wie viel Verteilung es gibt. Eine 'Formel', die ich mir ausgedacht habe, war die Summe der Brüche des Gesamtdatensatzes für jedes Element. In diesem Fall wäre es (2/10)^2 + (1/10)^2 + (3/10)^2 + (4/10)^2. Ich habe keinen wirklichen mathematischen Beweis dafür, sondern habe nur darüber nachgedacht.

In diesem Fall wäre beispielsweise in einem Satz mit 10 Elementen die Zahl, wenn 9 gleich und 1 unterschiedlich wäre (9/10)^2 + (1/10)^2. Wenn es jedoch halb und halb wäre, wäre es (5/10)^2 + (5/10)^2.

Ich wollte eine Meinung dazu bekommen, welche ähnlichen Formeln und Studienbereiche es gibt. Mit ein paar schnellen Google-Suchen konnte ich wirklich nichts finden.

Antworten:


10

Ich denke, was Sie wahrscheinlich wollen, ist (Shannons) Entropie . Es wird wie folgt berechnet: Dies ist eine Art, über die Informationsmenge in einer kategorialen Variablen nachzudenken.

H(x)=xip(xi)log2p(xi)

In Rkönnen wir dies wie folgt berechnen:

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

Daraus können wir erkennen, dass die Länge des Vektors keine Rolle spielt. Die Anzahl der möglichen Optionen ('Ebenen' einer kategorialen Variablen) erhöht sie. Wenn es nur eine Möglichkeit gäbe, wäre der Wert (so niedrig wie möglich). Der Wert ist für eine bestimmte Anzahl von Möglichkeiten am größten, wenn die Wahrscheinlichkeiten gleich sind. 0

Etwas technischer und mit mehr möglichen Optionen sind mehr Informationen erforderlich, um die Variable darzustellen und gleichzeitig den Fehler zu minimieren. Mit nur einer Option enthält Ihre Variable keine Informationen. Selbst mit mehr Optionen, aber wenn fast alle tatsächlichen Instanzen eine bestimmte Ebene haben, gibt es nur sehr wenige Informationen. Schließlich kann man nur "Moskau" erraten und fast immer Recht haben.

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

Ihre vorgeschlagene Metrik ist die Summe der quadratischen Wahrscheinlichkeiten. In gewisser Weise verhält es sich ähnlich (z. B. beachten Sie, dass es für die Länge der Variablen unveränderlich ist), beachten Sie jedoch, dass es mit zunehmender Anzahl von Ebenen oder mit zunehmendem Ungleichgewicht der Variablen abnimmt . Es bewegt sich umgekehrt zur Entropie, aber die Einheiten - Größe der Inkremente - unterscheiden sich. Ihre Metrik wird durch und gebunden , während die Entropie von bis unendlich reicht. Hier ist eine Handlung ihrer Beziehung: 010

Geben Sie hier die Bildbeschreibung ein


3
Die Entropie, wie Sie sie definieren, ist für Kategorien durch . Natürlich kann so groß werden, wie man möchte, aber bei den meisten Problemen dieser Art ist es klein oder mäßig und die Entropie ist somit endlich. Slog2SS
Nick Cox

9

Die Summe der Quadrate der Brüche (damit Ihr Text mit Ihrer Arithmetik übereinstimmt) ist in der Tat ein viel neu entdecktes oder neu erfundenes Maß für die Konzentration von Verteilungen, die in verschiedene Kategorien unterteilt sind. Es ist jetzt mindestens in seinem zweiten Jahrhundert und erlaubt ein wenig Spielraum, seine Ergänzung und seine Gegenseitigkeit unter einem Dach zusammenzufassen: Alle drei Versionen haben einfache Interpretationen und Verwendungen. Es gibt (wilde Vermutungen) vielleicht zwanzig verschiedene Namen dafür, die allgemein verwendet werden. Schreiben wir generisch für Proportionen oder Wahrscheinlichkeiten, wobei notwendigerweise und .p1ps0s=1Sps1

Ihre Maßnahme ist . Zumindest für Biologen ist der Index für Arten mnemonisch. Dann ist diese Summe für Ökologen der Simpson-Index (nach EH Simpson, 1922-2019, der Person, nach der Simpsons Paradoxon benannt ist); für Ökonomen ist es der Herfindahl-Hirschman-Index; und so weiter. Es hat eine lange Geschichte in der Kryptographie, die oft jahrzehntelang durch die Verwendung bei klassifizierten Problemen geheim gehalten wurde, aber am bekanntesten ist AM Turing. IJ Good (der wie Simpson im Zweiten Weltkrieg mit Turing zusammengearbeitet hat) nannte es die Wiederholungsrate, die das Symbol oben motiviert ; für DJC MacKay ist es die Übereinstimmungswahrscheinlichkeit.s=1Sps2=:Rs=1,,SR

Angenommen, wir die Proportionen . Dann wächst an einem Extrem auf und die anderen schrumpfen auf und dann ist . Ein anderes Extrem ist gleich Wahrscheinlichkeit , so dass . Die beiden Grenzen fallen natürlich für . Somit beträgt für Arten bzw. .p1pSp11ps0R=11/SR=S(1/S2)=1/SS=12,10,100R0.5,0.1,0.01

Das Komplement war eines von verschiedenen Maßstäben für die Heterogenität, die von Corrado Gini verwendet wurden. Achten Sie jedoch auf eine ernsthafte Überlastung der Begriffe in verschiedenen Literaturen: Der Begriff Gini-Index oder -Koeffizient wurde auf mehrere unterschiedliche Maße angewendet. Es wird beim maschinellen Lernen als Maß für die Verunreinigung von Klassifikationen verwendet. umgekehrt misst die Reinheit. Ökologen sprechen normalerweise von Vielfalt: misst die Vielfalt umgekehrt und misst sie direkt. Für Genetiker ist die Heterozygotie.1RRR1R1R

Das reziproke hat eine "Zahlenäquivalent" -Interpretation. Stellen Sie sich wie oben jeden Fall vor, in dem Arten mit jedem gleich häufig sind . Dann . Durch die Erweiterung Maßnahmen eine äquivalente Anzahl gleich allgemeine Kategorien, so dass beispielsweise die Plätze von give , der eine Anschauung übereinstimmt , dass die Verteilung zwischen dem und in Konzentration oder Diversität.1/RSps=1/S1/R=1/s=1S(1/S)2=S1/R1/6,2/6,3/61/R2.572/6,2/6,2/63/6,3/6,0

(Die für die Shannon-Entropie äquivalenten Zahlen sind nur ihr Antilogarithmus, beispielsweise oder für die Basen bzw. )H2H,exp(H)10H2,e=exp(1)10

Es gibt verschiedene Verallgemeinerungen der Entropie, die diese Maßnahme zu einer größeren Familie machen; eine einfache von IJ Good gegebene definiert die Menagerie aus der unser Maß ergibt; ist Shannon-Entropie; gibt , die Anzahl der vorhandenen Arten. Dies ist die einfachste Messung der möglichen Diversität und eine mit mehreren Vorzügen.spsa [ln(1/ps)]ba=2,b=0a=1,b=1a=0;b=0S


Wow, davon scheint es viel zu geben. Es ist nicht mein Fachgebiet, daher bin ich nur am Rande damit vertraut, obwohl ich mich erinnere, von einigen dieser Namen gehört zu haben. Wie wird berechnet? Ist es immer oder nur, wenn die Arten gleich wahrscheinlich sind? S1/R
Gung - Reinstate Monica

S ist nur, wie viele Arten vorhanden sind. Manchmal nehmen Sie eine Klassifizierung an (z. B. Männer und Frauen, also ), die für die Datenerfassung vordefiniert ist, außer dass auch in diesem Beispiel andere Schemata möglich sind. Manchmal ist es, wie viele Arten sich präsentieren; Stellen Sie sich vor, Sie sind Botaniker oder Ornithologe und suchen nach Baum- oder Vogelarten. Natürlich ist der Begriff Art generisch (schwaches biologisches Wortspiel); in der Wirtschaft, die Sektoren der Wirtschaft, Arten von gehandelten Produkten oder Dienstleistungen usw. sein könnten. In der Demographie könnten es ethnische Kategorien sein, etc.S=2
Nick Cox

Für die Städte Beispieldaten ist also ? Das scheint keine so gute Metrik zu sein wie die anderen. S=4
Gung - Reinstate Monica

Das stimmt im einfachen Beispiel. Angenommen, Sie und ich vergleichen, wie viele Länder wir jemals besucht haben. Sie sagen 78, ich sage 23. Das ist informativ. Und in diesem Beispiel kann ich wirklich keine genauen Informationen darüber finden, wie viele Tage ich in jedem verbracht habe. Der Ökologe, der einem anderen Ökologen mitteilt, dass auf zwei Inseln 78 und 23 Vogelarten gefunden wurden, handelt mit nützlichen Daten.
Nick Cox

1

Interessante Frage ... Es hängt wirklich davon ab, was Sie mit dieser Metrik tun möchten - wenn Sie eine Liste nur nach "am variabelsten" ordnen möchten, können viele Dinge funktionieren. Die von Ihnen erstellte Metrik erscheint vernünftig. Ich würde nicht sagen, dass Sie einen mathematischen "Beweis" brauchen: Beweis für was? Sie könnten eine Frage stellen wie "Ist es wahrscheinlich, dass dieser Datensatz aus einer gleichmäßigen Verteilung stammt?". Ich finde eine intuitive Anziehungskraft in "Wie groß ist die Wahrscheinlichkeit, dass zwei zufällige Ziehungen aus dieser Liste gleich sind?". Sie könnten das in R so machen:

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

Wobei der 'Mittelwert'-Teil den Mittelwert eines Vektors mit einigen hundert zufälligen Einträgen wie TRUE, TRUE, FALSE, TRUE, FALSE ... angibt, der zum Mittelwert von 1, 1, 0, 1, 0 usw. Wird

1 minus dieser Wahrscheinlichkeit könnte jedoch eine bessere Vorstellung von "Varianz" geben (dh wahrscheinlich sind zwei Zufälle unterschiedlich, daher bedeutet eine höhere Zahl vielfältiger). Einige dieser Mengen könnten wahrscheinlich ohne großen Aufwand berechnet werden. Es ist wahrscheinlich so etwas wie P (eine zufällige Auswahl ist Moskau) * P (eine Sekunde ist Moskau) + P (eine zufällige Auswahl ist NYC) * P (eine Sekunde ist NYC) + ..., also denke ich, es ist nur proportion_moscow ^ 2 + proportion_nyc ^ 2, was in der Tat das wäre, was Sie sich ausgedacht haben!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.