Ich versuche herauszufinden, mit welcher Wahrscheinlichkeit 8 Versuche hintereinander in einem Block von 25 Versuchen korrekt sind. Sie haben insgesamt 8 Blöcke (von 25 Versuchen), um 8 Versuche hintereinander korrekt zu machen. Die Wahrscheinlichkeit, dass ein Versuch aufgrund von Vermutungen korrekt ist, beträgt 1/3. Wenn 8 in einer Reihe korrekt sind, enden die Blöcke (mehr als 8 in einer Reihe korrekt zu sein, ist technisch nicht möglich). Wie würde ich vorgehen, um die Wahrscheinlichkeit für dieses Auftreten zu ermitteln? Ich habe darüber nachgedacht, (1/3) ^ 8 als Wahrscheinlichkeit dafür zu verwenden, dass 8 in einer Reihe korrekt sind. Es gibt 17 mögliche Chancen, in einem Block von 25 Versuchen 8 in einer Reihe zu erhalten, wenn ich 17 multipliziere Möglichkeiten * 8 Blöcke bekomme ich 136, würde mir 1- (1- (1/3) ^ 8) ^ 136 die Wahrscheinlichkeit geben, dass ich in dieser Situation 8 in einer Reihe richtig hinbekomme, oder fehle ich hier etwas Grundlegendes?
quelle
Antworten:
Wenn Sie den Überblick behalten, erhalten Sie eine genaue Formel .
Lassen Sie die Wahrscheinlichkeit des Erfolgs und k = 8 , die Anzahl der Erfolge in einer Zeile , die Sie zählen möchten. Diese sind für das Problem behoben. Variable Werte sind m , die Anzahl der im Block verbleibenden Versuche; und j die Anzahl der bereits beobachteten aufeinanderfolgenden Erfolge. Die Chance, letztendlich k Erfolge in Folge zu erzielen, bevor m Versuche erschöpft sind, sei f p , k ( j , m ) geschrieben . Wir suchen f 1 / 3 , 8 (p = 1 / 3 k = 8 m j k m fp , k( j , m ) .f1 / 3 , 8( 0 , 25 )
Angenommen, wir haben gerade unseren Erfolg in Folge mit m > 0 verbleibenden Versuchen gesehen. Der nächste Versuch ist entweder ein Erfolg, wobei die Wahrscheinlichkeit p - in diesem Fall j auf j + 1 - erhöht wird ; oder es ist ein Fehler mit der Wahrscheinlichkeit 1 - p -, in welchem Fall j auf 0 zurückgesetzt wird . In beiden Fällen nimmt m um 1 ab . Woherjth m > 0 p j j + 1 1 - p j 0 m 1
As starting conditions we have the obvious resultsfp,k(k,m)=1 for m≥0 (i.e., we have already seen k in a row) and fp,k(j,m)=0 for k−j>m (i.e., there aren't enough trials left to get k in a row). It is now fast and straightforward (using dynamic programming or, because this problem's parameters are so small, recursion) to compute
Whenp=1/3 this yields 80897/43046721≈0.0018793 .
Relatively fast
R
code to simulate this isNach 3 Sekunden Berechnung beträgt die Ausgabe . Obwohl dies hoch aussieht, sind es nur 1,7 Standardfehler. Ich führte weitere 10 6 Iterationen aus und ergab 0,001867 : nur 0,3 Standardfehler weniger als erwartet. (Da eine frühere Version dieses Codes einen subtilen Fehler aufwies , führte ich in Mathematica außerdem 400.000 Iterationen aus , um eine Schätzung von 0,0018475 zu erhalten .)0.00213 106 0.001867 0.3 0.0018475
Dieses Ergebnis ist weniger als ein Zehntel des Schätzwert von in Frage. Aber vielleicht habe ich nicht ganz verstanden es: eine andere Interpretation von „Sie haben insgesamt 8 Blöcke ... um 8 Versuche in einer Reihe korrigieren“ ist , dass die Antwort Sein Gleichen gesucht 1 - ( 1 - f 1 / 3 , 8 ( 0 , 25 ) ) 8 ) = 0,0149358 ... .1−(1−(1/3)8)136≈0.0205 1−(1−f1/3,8(0,25))8)=0.0149358...
quelle
While @whuber's excellent dynamic programming solution is well worth a read, its runtime isO(k2m) with respect to total number of trials m and the desired trial length k whereas the matrix exponentiation method is O(k3log(m)) . If m is much larger than k , the following method is faster.
Beide Lösungen betrachten das Problem als eine Markov-Kette mit Zuständen, die die Anzahl der korrekten Versuche am Ende des Strings darstellen, und einem Zustand zum Erreichen der gewünschten korrekten Versuche hintereinander. Die Übergangsmatrix ist so beschaffen, dass Sie bei einem Fehler mit der Wahrscheinlichkeit zum Zustand 0 zurückkehren und ansonsten mit der Wahrscheinlichkeit 1 - p zum nächsten Zustand gelangen (der Endzustand ist ein absorbierender Zustand). Durch Erhöhen dieser Matrix auf die n- te Potenz ist der Wert in der ersten Zeile und in der letzten Spalte die Wahrscheinlichkeit, k = 8 Köpfe in einer Zeile zu sehen. In Python:p 1−p n k=8
ergibt nach Wunsch 0,00187928367413.
quelle
According to this answer, I will explain the Markov-Chain approach by @Neil G a bit more and provide a general solution to such problems ink , the number of trials as n and a correct trial by W (win) and an incorrect trial by F (fail). In the process of keeping track of the trials, you want to know whether you already had a streak of 8 correct trials and the number of correct trials at the end of your current sequence. There are 9 states (k+1 ):
R
. Let's denote the desired number of correct trials in a row byThe probability of moving to stateB from state A is p=1/3 and with probability 1−p=2/3 we stay in state A . From state B , the probability of moving to state C is 1/3 and with probability 2/3 we move back to A . And so on. If we are in state I , we stay there.
From this, we can construct a9×9 transition matrix M (as each column of M sums to 1 and all entries are positive, M is called a left stochastic matrix):
Each column and row corresponds to one state. Aftern trials, the entries of Mn give the probability of getting from state j (column) to state i (row) in n trials. The rightmost column corresponds to the state I and the only entry is 1 in the right lower corner. This means that once we are in state I , the probability to stay in I is 1 . We are interested in the probability of getting to state I from state A in n=25 steps which corresponds to the lower left entry of M25 (i.e. M2591 ). All we have to do now is calculating M25 . We can do that in
R
with the matrix power function from theexpm
package:The probability of getting from stateA to state I in 25 steps is 0.001879284 , as established by the other answers.
quelle
Here is some R code that I wrote to simulate this:
I am getting values a little smaller than your formula, so one of us may have made a mistake somewhere.
quelle
Here is a Mathematica simulation for the Markov chain approach, note that Mathematica indexes by1 not 0 :
This would yield the analytical answer:
Evaluating atp=1.03.0
Will return0.00187928
This can also be evaluated directly using builtin
Probability
andDiscreteMarkovProcess
Mathematica functions:Which will get us the same answer:0.00187928
quelle