Im traditionellen Geburtstagsparadox lautet die Frage: "Wie hoch sind die Chancen, dass zwei oder mehr Personen in einer Gruppe von Personen einen Geburtstag haben?". Ich stecke in einem Problem, das eine Erweiterung davon ist.
Anstatt die Wahrscheinlichkeit zu kennen, dass zwei Personen einen Geburtstag haben, muss ich die Frage erweitern, um zu wissen, mit welcher Wahrscheinlichkeit oder mehr Personen einen Geburtstag haben. Mit können Sie dies tun, indem Sie die Wahrscheinlichkeit berechnen, dass sich keine zwei Personen einen Geburtstag teilen, und diese von abziehen , aber ich glaube nicht, dass ich diese Logik auf eine größere Anzahl von .
Um dies weiter zu erschweren, benötige ich auch eine Lösung, die für sehr große Zahlen für (Millionen) und (Tausende) funktioniert .
quelle
Antworten:
Dies ist ein Zählproblem: Es gibt mögliche Zuordnungen von Geburtstagen zu Personen. Von diesen sei die Anzahl von Aufgaben, für die kein Geburtstag von mehr als Personen geteilt wird, aber mindestens ein Geburtstag tatsächlich von Personen geteilt wird . Die Wahrscheinlichkeit, nach der wir suchen, kann durch Summieren von für geeignete Werte von und Multiplizieren des Ergebnisses mit . b n q ( k ; n , b ) k k q ( k ; n , b ) k b - nbn b n q(k;n,b) k k q(k;n,b) k b−n
Diese Zählungen können genau für Werte von kleiner als einige hundert gefunden werden. Sie werden jedoch keiner einfachen Formel folgen: Wir müssen die Muster der Art und Weise berücksichtigen, in der Geburtstage zugewiesen werden können . Ich werde dies veranschaulichen, anstatt eine allgemeine Demonstration zu liefern. Sei (dies ist die kleinste interessante Situation). Die Möglichkeiten sind:n = 4n n=4
Im Allgemeinen ist der Code ein Tupel von Zählungen, deren -Element angibt, wie viele unterschiedliche Geburtsdaten genau von Personen geteilt werden. So ist insbesonderek th k{a[1],a[2],…} kth k
Beachten Sie, dass es auch in diesem einfachen Fall zwei Möglichkeiten gibt, um maximal zwei Personen pro Geburtstag zu erreichen: eine mit dem Code und eine mit dem Code .{ 2 , 1 }{0,2} {2,1}
Wir können die Anzahl der möglichen Geburtstagszuweisungen, die einem bestimmten Code entsprechen, direkt zählen. Diese Zahl ist das Produkt von drei Begriffen. Einer ist ein multinomialer Koeffizient; Es zählt die Anzahl der Möglichkeiten, Personen in Gruppe von , Gruppe von usw. zu unterteilen. Da die Reihenfolge der Gruppen keine Rolle spielt, müssen wir diesen Multinomialkoeffizienten durch dividieren . sein Gegenseitigkeit ist der zweite Ausdruck. Schliesslich richten Sie die Gruppen aus und weisen ihnen jeweils einen Geburtstag zu: Es gibt Kandidaten für die erste Gruppe,a [ 1 ] 1 a [ 2 ] 2 a [ 1 ] ! a [ 2 ] ! ⋯ b b - 1 b ( a [ 1 ] + a [ 2 ] + ⋯ ) b ( m ) b ( b - 1 ) ⋯ ( b - m + 1 )n a[1] 1 a[2] 2 a[1]!a[2]!⋯ b b−1 für die zweite und so weiter. Diese Werte müssen multipliziert werden und bilden den dritten Term. Es ist gleich das "faktoriellen Produkt" wobei Mittel .b(a[1]+a[2]+⋯) b(m) b ( b - 1 ) ⋯ ( b - m + 1 )
Es gibt eine offensichtliche und ziemlich einfache Rekursion, die die Anzahl für ein Muster mit der Anzahl für das Muster . Dies ermöglicht eine schnelle Berechnung der Zählwerte für bescheidene Werte von . Insbesondere steht für Geburtsdatum, das genau von Personen geteilt wird. Nachdem diese Gruppen von Personen aus den Personen gezogen wurden, was auf verschiedene Arten (sagen wir) geschehen kann , bleibt die Anzahl der Arten zu zählen, wie das Muster erreicht werden kann{ a [ 1 ] , … , a [ k - 1 ] } n a [ k ] a [ k ] k a [ k ] k n x { a [ 1 ] , … , A [ k - 1 ] } x{a[1],…,a[k]} {a[1],…,a[k−1]} n a[k] a[k] k a[k] k n x {a[1],…,a[k−1]} unter den verbleibenden Menschen. Multiplizieren Sie dies mit die Rekursion zu erhalten.x
Ich bezweifle, dass es eine geschlossene Formel für , die durch Summieren der Zählwerte für alle Partitionen von deren maximaler Term gleich . Lassen Sie mich einige Beispiele anbieten:n kq(k;n,b) n k
Mit (fünf mögliche Geburtstage) und (vier Personen) erhalten wirn = 4b=5 n=4
Woher zum Beispiel die Wahrscheinlichkeit, dass drei oder mehr von vier Personen denselben "Geburtstag" (von möglichen Daten) haben, gleich .( 80 + 5 ) / 625 = 0,1365 (80+5)/625=0.136
Als weiteres Beispiel nehmen Sie und . Hier sind die Werte von für das kleinste (nur bis zu sechs Sig Feigen):n = 23 q ( k ; 23 , 365 ) kb=365 n=23 q(k;23,365) k
Mit dieser Technik können wir leicht berechnen, dass bei 87 Personen eine Wahrscheinlichkeit von etwa 50% (mindestens) einer Drei-Wege-Geburtstags-Kollision, bei 187 eine Wahrscheinlichkeit von 50% einer Vier-Wege-Kollision und eine Wahrscheinlichkeit von 50% besteht eine Fünf-Wege-Kollision zwischen 310 Menschen. Diese letzte Berechnung dauert (zumindest in Mathematica) einige Sekunden, da die Anzahl der zu berücksichtigenden Partitionen zu groß wird. Für wesentlich größere benötigen wir eine Näherung.n
Eine Annäherung ergibt sich aus der Poisson-Verteilung mit der Erwartung , da wir eine Geburtstagszuordnung als aus betrachten können, die sich aus nahezu (aber nicht ganz) unabhängigen Poisson-Variablen mit der Erwartung ergibt: der Variablen für einen gegebenen möglichen Geburtstag beschreibt, wie viele der Personen diesen Geburtstag haben. Die Verteilung des Maximums ist daher ungefähr wobei die Poisson-CDF ist. Dies ist kein strenges Argument, also lasst uns ein wenig testen. Die Näherung für , ergibtb n / b n F ( k ) b F n = 23 b = 365n/b b n/b n F(k)b F n=23 b=365
Ein Vergleich mit dem vorhergehenden zeigt, dass die relativen Wahrscheinlichkeiten schlecht sein können, wenn sie klein sind, aber die absoluten Wahrscheinlichkeiten sind vernünftigerweise gut auf ungefähr 0,5% angenähert. Tests mit einem weiten Bereich von und deuten darauf hin, dass die Approximation normalerweise ungefähr so gut ist.bn b
Betrachten wir zum Abschluss die ursprüngliche Frage: Nehmen Sie (Anzahl der Beobachtungen) und (Anzahl der möglichen "Strukturen", ungefähr). Die ungefähre Verteilung für die maximale Anzahl von "gemeinsamen Geburtstagen" istb = 1n=10,000 b=1000000
(Dies ist eine schnelle Berechnung.) Es ist klar, dass die Beobachtung einer Struktur bei 10 von 10.000 Strukturen von hoher Bedeutung ist. Da und beide groß sind, erwarte ich, dass die Approximation hier recht gut funktioniert.bn b
Im Übrigen können Simulationen nützliche Überprüfungen liefern, wie Shane angedeutet hat. Eine Mathematica-Simulation wird mit einer Funktion wie der folgenden erstellt
simulate[n_, b_] := Max[Last[Transpose[Tally[RandomInteger[{0, b - 1}, n]]]]];
Das wird dann iteriert und zusammengefasst, wie in diesem Beispiel, in dem 10.000 Iterationen des Falls , werden:b = 1n=10000 b=1000000
Tally[Table[simulate[10000, 1000000], {n, 1, 10000}]] // TableForm
Seine Ausgabe ist
Diese Frequenzen stimmen eng mit denen überein, die durch die Poisson-Näherung vorhergesagt wurden.
quelle
Es ist immer möglich, dieses Problem mit einer Monte-Carlo-Lösung zu lösen, obwohl dies bei weitem nicht die effizienteste ist. Hier ist ein einfaches Beispiel für das 2-Personen-Problem in R (aus einer Präsentation, die ich im letzten Jahr gegeben habe ; ich habe dies als Beispiel für ineffizienten Code verwendet), das leicht angepasst werden kann, um mehr als 2 zu berücksichtigen:
quelle
Dies ist ein Versuch einer allgemeinen Lösung. Da es einige Fehler geben kann, ist Vorsicht geboten!
Zuerst etwas Notation:
x nP(x,n) ist die Wahrscheinlichkeit, dass oder mehr Personen unter Personen einen Geburtstag haben,x n
y nP(y|n) ist die Wahrscheinlichkeit, dass genau Personen unter Personen einen Geburtstag haben.y n
Anmerkungen:
Der Missbrauch der Notation als Wird auf zwei verschiedene Arten verwendet.P(.)
Per Definition kann nicht den Wert 1 annehmen, da dies keinen Sinn ergibt und = 0 so interpretiert werden kann, dass niemand einen gemeinsamen Geburtstag hat.yy y
Dann ist die erforderliche Wahrscheinlichkeit gegeben durch:
Jetzt,
Hier ist die Logik: Sie brauchen die Wahrscheinlichkeit, dass genau Personen einen Geburtstag haben.y
Schritt 1: Sie können wählen Menschen in Wege.( ny (ny)
Schritt 2: Da sie gemeinsam Geburtstag haben, kann dies jeder der 365 Tage im Jahr sein. Wir haben also im Grunde 365 Möglichkeiten, die uns .(365365)y
Schritt 3: Die verbleibenden Personen sollten keinen Geburtstag mit den ersten Personen oder untereinander teilen . Diese Argumentation gibt uns .y ∏ k = n - y k = 1 ( 1 - kn−y y ∏k=n−yk=1(1−k365)
Sie können überprüfen, ob für = 2 die oben genannten Probleme mit der Standardlösung für Geburtstagsparadoxon zusammenhängen.x
quelle