Estoy tratando de encontrar la probabilidad de obtener 8 intentos seguidos correctos en un bloque de 25 intentos, tiene 8 bloques totales (de 25 intentos) para obtener 8 intentos correctos seguidos. La probabilidad de obtener una prueba correcta basada en adivinar es 1/3, después de obtener 8 en una fila correcta, los bloques terminarán (por lo que técnicamente no es posible obtener más de 8 en una fila correcta). ¿Cómo haría para encontrar la probabilidad de que esto ocurra? He estado pensando en el sentido de usar (1/3) ^ 8 como la probabilidad de obtener 8 en una fila correcta, hay 17 posibilidades posibles de obtener 8 en una fila en un bloque de 25 intentos, si multiplico 17 posibilidades * 8 bloques Obtengo 136, ¿1- (1- (1/3) ^ 8) ^ 136 me da la probabilidad de obtener 8 en una fila correcta en esta situación o me estoy perdiendo algo fundamental aquí?
fuente
Respuestas:
Al realizar un seguimiento de las cosas, puede obtener una fórmula exacta .
Deje que la probabilidad de éxito y k = 8 el número de éxitos en una fila que desea contar. Estos están arreglados para el problema. Los valores variables son m , el número de intentos restantes en el bloque; y j , el número de éxitos sucesivos ya observados. Deje que la posibilidad de lograr eventualmente k éxitos seguidos antes de que se agoten las pruebas m se escriba f p , k ( j , m ) . Buscamos f 1 / 3 , 8 (p=1/3 k=8 m j k m fp,k(j,m) f1/3,8(0,25) .
Suppose we have just seen ourjth success in a row with m>0 trials to go. The next trial is either a success, with probability p --in which case j is increased to j+1 --; or else it is a failure, with probability 1−p --in which case j is reset to 0 . In either case, m decreases by 1 . Whence
Como condiciones iniciales tenemos los resultados obvios para m ≥ 0 ( es decir , ya hemos visto k en una fila) y f p , k ( j , m ) = 0 para k - j > m ( es decir , no quedan suficientes pruebas para obtenerfp,k(k,m)=1 m≥0 k fp,k(j,m)=0 k−j>m k en una fila). Ahora es rápido y sencillo (usando programación dinámica o, debido a que los parámetros de este problema son muy pequeños, recursividad) para calcular
Cuando esta rendimientos 80.897 mil / 43.046721 millones ≈ 0,0018793 .p=1/3 80897/43046721≈0.0018793
El
R
código relativamente rápido para simular esto esAfter 3 seconds of calculation, the output is0.00213 . Although this looks high, it's only 1.7 standard errors off. I ran another 106 iterations, yielding 0.001867 : only 0.3 standard errors less than expected. (As a double-check, because an earlier version of this code had a subtle bug, I also ran 400,000 iterations in Mathematica, obtaining an estimate of 0.0018475 .)
Este resultado es de menos de un décimo de la estimación de en la pregunta. Pero tal vez no he entendido plenamente: otra interpretación de "usted tiene 8 bloques totales ... para corregir 8 ensayos en una fila" es que el ser iguales respuesta buscó 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...
fuente
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.
Ambas soluciones consideran el problema como una cadena de Markov con estados que representan el número de intentos correctos al final de la cadena hasta el momento, y un estado para lograr los intentos correctos deseados en una fila. La matriz de transición es tal que ver una falla con probabilidad lo devuelve al estado 0 y, de lo contrario, con probabilidad 1 - p lo lleva al siguiente estado (el estado final es un estado absorbente). Al elevar esta matriz a la n ésima potencia, el valor en la primera fila, y la última columna es la probabilidad de ver k = 8 cabezas en una fila. En Python:p 1−p n k=8
produce 0.00187928367413 según se desee.
fuente
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 byEach 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.
fuente
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.
fuente
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
fuente