Poważny dogłębny problem prawdopodobieństwa rzutu monetą


10

Powiedzmy, że robię 10 000 rzutów monetą. Chciałbym wiedzieć, ile razy potrzeba na przewrócenie 4 lub więcej kolejnych głów z rzędu.

Liczba będzie działać w następujący sposób, policzysz jedną kolejną rundę przewrotów, które są tylko głowami (4 lub więcej głów). Gdy reszka uderza i łamie pasmo głów, liczenie zaczyna się od następnego obrotu. Powtórzyłoby to następnie dla 10.000 rzutów.

Chciałbym poznać prawdopodobieństwo nie tylko 4 lub więcej głów z rzędu, ale 6 lub więcej i 10 lub więcej. Aby wyjaśnić, czy uda się uzyskać serię 9 głów, zostanie ona zliczona jako 1 seria 4 lub więcej (i / lub 6 lub więcej), a nie 2 osobne serie. Na przykład, jeśli moneta przyniesie THTHTHHHHHH /// THAHTHT .... liczba wyniesie 13 i zacznie się od nowa z następnymi ogonami.

Powiedzmy, że dane są mocno przekrzywione w prawo; średnia wynosi średnio 40 rzutów, aby osiągnąć serię 4 lub więcej, a rozkład wynosi u = 28. Oczywiście wypaczony.

Robię co w mojej mocy, aby znaleźć sposób na zrozumienie danych opisowych, chyba że na razie nic nie znalazłem.

Chcę znaleźć sposób na uzyskanie rozsądnego prawdopodobieństwa. Jak normalna krzywa, gdzie +/- 1 SD wynosi 68% itd. Zajrzałem do normalizacji logów i to tak naprawdę służy tylko do testowania parametrycznego, co nie jest moim celem.

Powiedziano mi dystrybucje beta, ale każda moja sugestia była dość myląca. Zadałem to pytanie rok temu i uzyskałem wgląd, ale niestety nadal nie mam odpowiedzi. Dziękuję każdemu z was, który ma pomysły.


Prawdopodobnie powinienem trochę wyjaśnić. 1) Szukam odwagi, aby zrozumieć opisowe dane dotyczące ilości kolejnych głowic powyżej 4 na 1000 przerzutów (podobnie jak coś w rodzaju prawdopodobieństwa normalnej krzywej +/- 1 SD = 68%) z wypaczonego zestawu danych. 2) Zaleca się stosowanie wersji beta, ale DOWOLNA inna sugestia byłaby świetna!
Dan

1
Dan, właśnie zauważyłem, że twój przykładowy zestaw głów i ogonów zawiera „A”.
Glen_b

Wprowadzona przez Ciebie zmiana jest dużym ulepszeniem, ale musimy wprowadzić jeszcze więcej zmian. Kiedy mówisz „a rozkład wynosi u = 28”, co dokładnie masz na myśli? Czy mówisz o medianie?
Glen_b

@ Czy beta może brać pod uwagę ten problem tylko wtedy, gdy zastosujesz podejście bayesowskie i oszacujesz prawdopodobieństwo głów, a następnie zastosujesz ten rozkład (i związaną z nim niepewność) do wyniku matematycznego opisanego problemu.
AdamO

Odpowiedzi:


12

Jeśli dobrze zrozumiałem, problem polega na znalezieniu rozkładu prawdopodobieństwa dla czasu, w którym kończy się pierwsza seria lub więcej głowic.n

Edycja Prawdopodobieństwa można szybko i dokładnie określić za pomocą mnożenia macierzy, a także można obliczyć analitycznie średnią jako a wariancję jako gdzie , ale prawdopodobnie nie ma prostej zamkniętej formy dla samej dystrybucji. Powyżej pewnej liczby rzutów monet rozkład jest zasadniczo rozkładem geometrycznym: sensowne byłoby użycie tej formy dla większego .μ=2n+11μ = μ - + 1 tσ2=2n+2(μn3)μ2+5μμ=μ+1t

Ewolucję rozkładu prawdopodobieństwa w czasie w przestrzeni stanu można modelować za pomocą macierzy przejścia dla stanów , gdzie liczba kolejnych rzutów monetą. Stany są następujące:n =k=n+2n=

  • Stan , brak główH0
  • Stan , i głowice, 1 i ( n - 1 )Hii1i(n1)
  • Stan , lub więcej głowic nHnn
  • Stan , lub więcej głowic następnie ogona nHn

Po wejściu w stan nie możesz wrócić do żadnego z innych stanów.H

Prawdopodobieństwa przejścia stanu w stan są następujące

  • Stan : prawdopodobieństwo z , , tj. siebie, ale nie stan1H0 Hii=0,,n-1Hn12Hii=0,,n1Hn
  • Stan : prawdopodobieństwo z1Hi Hi-112Hi1
  • Stan : prawdopodobieństwo z , tj. Ze stanu z głowicami i samym sobą1Hn Hn-1,Hnn-112Hn1,Hnn1
  • Stan : prawdopodobieństwo z i prawdopodobieństwo 1 z (samo)1H HnH12HnH

Na przykład dla daje to macierz przejścian=4

X={H0H1H2H3H4HH01212121200H11200000H20120000H30012000H400012120H0000121}

W przypadku początkowym wektorem prawdopodobieństw p jest p = ( 1 , 0 , 0 , 0 , 0 , 0 ) . Ogólnie wektor początkowy ma p i = { 1 i = 0 0 i > 0n=4pp=(1,0,0,0,0,0)

pi={1i=00i>0

Wektor to rozkład prawdopodobieństwa w przestrzeni dla danego czasu. Wymagane cdf jest cdf w czasie i jest prawdopodobieństwem, że przynajmniej rzuci monetą do końca . Można go zapisać jako , zauważając, że osiągamy stan 1 odliczania czasu po ostatnim w serii kolejnych rzutów monetą.pnt(Xt+1p)kH

Wymagane pmf w czasie można zapisać jako . Jednak liczbowo obejmuje to odjęcie bardzo małej liczby od znacznie większej liczby ( ) i ogranicza precyzję. Dlatego w obliczeniach lepiej jest ustawić zamiast 1. Następnie zapisujemy dla uzyskanej macierzy , pmf to . To jest zaimplementowane w prostym programie R poniżej, który działa dla każdego ,1 X k , k = 0 X X = X | X k , k = 0 ( X t + 1 p ) k n 2(Xt+1p)k(Xtp)k1Xk,k=0XX=X|Xk,k=0(Xt+1p)kn2

n=4
k=n+2
X=matrix(c(rep(1,n),0,0, # first row
           rep(c(1,rep(0,k)),n-2), # to half-way thru penultimate row
           1,rep(0,k),1,1,rep(0,k-1),1,0), # replace 0 by 2 for cdf
         byrow=T,nrow=k)/2
X

t=10000
pt=rep(0,t) # probability at time t
pv=c(1,rep(0,k-1)) # probability vector
for(i in 1:(t+1)) {
  #pvk=pv[k]; # if calculating via cdf
  pv = X %*% pv;
  #pt[i-1]=pv[k]-pvk # if calculating via cdf
  pt[i-1]=pv[k] # if calculating pmf
}

m=sum((1:t)*pt)
v=sum((1:t)^2*pt)-m^2
c(m, v)

par(mfrow=c(3,1))
plot(pt[1:100],type="l")
plot(pt[10:110],type="l")
plot(pt[1010:1110],type="l")

Górny wykres pokazuje pmf od 0 do 100. Dolne dwa wykresy pokazują pmf od 10 do 110, a także od 1010 do 1110, ilustrując samopodobieństwo i fakt, że jak mówi @Glen_b, rozkład wygląda na to, że może być aproksymowane rozkładem geometrycznym po okresie osiadania.

enter image description here

Jest to możliwe, aby zbadać ten problem dalej za pomocą rozkładu wektor własny . Wykonanie tego pokazuje, że dla wystarczająco dużego t , p t + 1c ( n ) p t , gdzie c ( n ) jest rozwiązaniem równania 2 n + 1 c n ( c - 1 ) + 1 = 0 . To przybliżenie staje się lepsze wraz ze wzrostem n i jest doskonałe dla tXtpt+1c(n)ptc(n)2n+1cn(c1)+1=0ntw zakresie od około 30 do 50, w zależności od wartości , jak pokazano na wykresie błędu logarytmicznego poniżej dla obliczenia p 100 (kolory tęczy, czerwony po lewej stronie dla n = 2 ). (W rzeczywistości z powodów numerycznych lepiej byłoby użyć przybliżenia geometrycznego dla prawdopodobieństw, gdy t jest większe.)np100n=2t

enter image description here

Podejrzewam (red.), Że może istnieć zamknięty formularz do dystrybucji, ponieważ średnie i wariancje, jak je obliczyłem w następujący sposób

nMeanVariance2724315144431736563339261271472072556169685112534409102310291201020474151296

(Aby to uzyskać, musiałem podnieść liczbę w górę w stosunku do horyzontu czasowego, t=100000ale program nadal działał dla wszystkich w mniej niż około 10 sekund.) W szczególności środki są zgodne z bardzo oczywistym wzorcem; wariancje mniej. W przeszłości rozwiązałem prostszy, 3-stanowy system przejścia, ale jak dotąd nie mam szczęścia z prostym analitycznym rozwiązaniem tego. Być może istnieje jakaś użyteczna teoria, o której nie wiem, np. Odnosząca się do macierzy przejściowych.n=2,,10

Edycja : po wielu fałszywych startach wymyśliłem formułę powtarzalności. Niech oznacza prawdopodobieństwo, że jest w stan H ı w czasie t . Niech q , t będzie skumulowanym prawdopodobieństwem bycia w stanie H , tj. Stanie końcowym, w czasie t . NBpi,tHitq,tHt

  • Dla dowolnego , p i , t , 0 i n i q , t jest rozkładem prawdopodobieństwa w przestrzeni i , a tuż poniżej używam faktu, że ich prawdopodobieństwa zwiększają się do 1.tpi,t,0inq,ti
  • tworzą rozkład prawdopodobieństwa w czasie t . Później wykorzystuję ten fakt, czerpiąc środki i wariancje.p,tt

Prawdopodobieństwo bycia w pierwszym stanie w czasie , tj. Brak głów, wynika z prawdopodobieństwa przejścia ze stanów, które mogą do niego powrócić z czasu t (przy użyciu twierdzenia o całkowitym prawdopodobieństwie). p 0 , t + 1t+1t Ale przejście ze stanuH0doHn-1zajmujen-1kroków, stądpn-1,t+n-1=1

p0,t+1=12p0,t+12p1,t+12pn1,t=12i=0n1pi,t=12(1pn,tq,t)
H0Hn1n1oraz pn-1,t+n=1pn1,t+n1=12n1p0,t Jeszcze raz przez twierdzenie o całkowitym prawdopodobieństwie prawdopodobieństwo bycia w stanieHnw czasiet+1wynosi p n , t + 1
pn1,t+n=12n(1pn,tq,t)
Hnt+1 i wykorzystując fakt, żeq,t+1-q,t=1
pn,t+1=12pn,t+12pn1,t=12pn,t+12n+1(1pn,tnq,tn)()
, 2 q , t + 2 - 2 q , t + 1q,t+1q,t=12pn,tpn,t=2q,t+12q,t Stąd zmianatt+n, 2q,t+n+2-3q,t+n+1+q,t+n+1
2q,t+22q,t+1=q,t+1q,t+12n+1(12q,tn+1+q,tn)
tt+n
2q,t+n+23q,t+n+1+q,t+n+12nq,t+112n+1q,t12n+1=0

n=4n=6n=6t=1:994;v=2*q[t+8]-3*q[t+7]+q[t+6]+q[t+1]/2**6-q[t]/2**7-1/2**7

enter image description here

Edytuj Nie widzę, gdzie się udać, aby znaleźć zamknięty formularz z tej relacji powtarzalności. Jednakże, to jest możliwe, aby uzyskać zamkniętą formę dla średniej.

()p,t+1=12pn,t

pn,t+1=12pn,t+12n+1(1pn,tnq,tn)()2n+1(2p,t+n+2p,t+n+1)+2p,t+1=1q,t
t=0E[X]=x=0(1F(x))p,t
2n+1t=0(2p,t+n+2p,t+n+1)+2t=0p,t+1=t=0(1q,t)2n+1(2(112n+1)1)+2=μ2n+1=μ
H

E[X2]=x=0(2x+1)(1F(x))

t=0(2t+1)(2n+1(2p,t+n+2p,t+n+1)+2p,t+1)=t=0(2t+1)(1q,t)2t=0t(2n+1(2p,t+n+2p,t+n+1)+2p,t+1)+μ=σ2+μ22n+2(2(μ(n+2)+12n+1)(μ(n+1)))+4(μ1)+μ=σ2+μ22n+2(2(μ(n+2))(μ(n+1)))+5μ=σ2+μ22n+2(μn3)+5μ=σ2+μ22n+2(μn3)μ2+5μ=σ2

The means and variances can easily be generated programmatically. E.g. to check the means and variances from the table above use

n=2:10
m=c(0,2**(n+1))
v=2**(n+2)*(m[n]-n-3) + 5*m[n] - m[n]^2

Finally, I'm not sure what you wanted when you wrote

when a tails hits and breaks the streak of heads the count would start again from the next flip.

If you meant what is the probability distribution for the next time at which the first run of n or more heads ends, then the crucial point is contained in this comment by @Glen_b, which is that the process begins again after one tail (c.f. the initial problem where you could get a run of n or more heads immediately).

This means that, for example, the mean time to the first event is μ1, but the mean time between events is always μ+1 (the variance is the same). It's also possible to use a transition matrix to investigate the long-term probabilities of being in a state after the system has "settled down". To get the appropriate transition matrix, set Xk,k,=0 and X1,k=1 so that the system return immediately to state H0 from state H. Then the scaled first eigenvector of this new matrix gives the stationary probabilities. With n=4 these stationary probabilities are

probabilityH00.48484848H10.24242424H20.12121212H30.06060606H40.06060606H0.03030303
The expected time between states is given by the reciprocal of the probability. So the expected time between visits to H=1/0.03030303=33=μ+1.

Appendix: Python program used to generate exact probabilities for n = number of consecutive heads over N tosses.

import itertools, pylab

def countinlist(n, N):
    count = [0] * N
    sub = 'h'*n+'t'
    for string in itertools.imap(''.join, itertools.product('ht', repeat=N+1)):
        f = string.find(sub)
        if (f>=0):
            f = f + n -1 # don't count t, and index in count from zero 
            count[f] = count[f] +1
            # uncomment the following line to print all matches
            # print "found at", f+1, "in", string
    return count, 1/float((2**(N+1)))

n = 4
N = 24
counts, probperevent = countinlist(n,N)
probs = [count*probperevent for count in counts]

for i in range(N):
    print '{0:2d} {1:.10f}'.format(i+1,probs[i]) 
pylab.title('Probabilities of getting {0} consecutive heads in {1} tosses'.format(n, N))
pylab.xlabel('toss')
pylab.ylabel('probability')
pylab.plot(range(1,(N+1)), probs, 'o')
pylab.show()

7

I am not sure the beta will be likely to be particularly suitable as a way of dealing with this problem -- "The number of plays until ..." is clearly a count. It's an integer, and there is no upper limit on values where you get positive probability.

By contrast the beta distribution is continuous, and on a bounded interval, so it would seem to be an unusual choice. If you moment match a scaled beta, the cumulative distribution functions might perhaps approximate not so badly in the central body of the distribution. However, some other choice is likely to substantially better further into either tail.

If you have either an expression for the probabilities or simulations from the distribution (which you presumably need in order to find an approximating beta), why would you not use those directly?


If your interest is in finding expressions for probabilities or the probability distribution of the number of tosses required, probably the simplest idea is to work with probability generating functions. These are useful for deriving functions from recursive relationships among probabilities, which functions (the pgf) in turn allow us to extract whatever probabilities we require.

Here's a post with a good answer taking the algebraic approach, which explains both the difficulties and makes good use of pgfs and recurrence relations. It has specific expressions for mean and variance in the "two successes in a row" case:

/math/73758/probability-of-n-successes-in-a-row-at-the-k-th-bernoulli-trial-geometric

The four successes case will be substantially more difficult of course. On the other hand, p=12 does simplify things somewhat.

--

If you just want numerical answers, simulation is relatively straightforward. The probability estimates could be used directly, or alternatively it would be reasonable to smooth the simulated probabilities.

If you must use an approximating distribution, you can probably choose something that does pretty well.

It's possible a mixture of negative binomials (the 'number of trials' version rather than 'the number of successes' version) might be reasonable. Two or three components should be expected to give a good approximation in all but the extreme tail.

If you want a single continuous distribution for an approximation, there may be better choices than the beta distribution; it would be something to investigate.


Okay, I've since done a little algebra, some playing with recurrence relations, some simulation and even a little thinking.

To a very good approximation, I think you can get away with simply specifying the first four nonzero probabilities (which is easy), computing the next few handfuls of values via recurrence (also easy) and then using a geometric tail once the recurrence relation has smoothed out the initially less smooth progression of probabilities.

It looks like you can use the geometric tail to very high accuracy past k=20, though if you're only worried about say 4 figure accuracy you could bring it in earlier.

This should let you compute the pdf and cdf to good accuracy.

I'm a little concerned - my calculations give that the mean number of tosses is 30.0, and the standard deviation is 27.1; if I understood what you mean by "x" and "u", you got 40 and 28 in your tossing. The 28 looks okay but the 40 seems quite a way off what I got... which makes me worry I did something wrong.

====

NOTE: Given the complexities between first time and subsequent times that we encountered, I just want to be absolutely certain now that we are counting the same thing.

Here's a short sequence, with the ends of the '4 or more H' sequences marked (pointing to the gap between flips immediately after the last H)

       \/                     \/
TTHHHHHHTTHTTTTTHHTTHTTHHTHHHHHT...
       /\                     /\

Between those two marks I count 23 flips; that is as soon as the previous sequence of (6 in this case) H's ends, we start counting at the immediately following T and then we count right to the end of the sequence of 5 H's (in this case) that ends the next sequence, giving a count of 23 in this case.

Is that how you count them?


Given the above is correct, this is what the probability function of the number of tosses after one run of at least 4 heads is complete until the next run of at least 4 heads is complete looks like:

Coin probs

At first glance it looks like it's flat for the first few values, then has a geometric tail, but that impression is not quite accurate - it takes a while to settle down to an effectively geometric tail.

I am working on coming up with a suitable approximation you can use to answer whatever questions you'd have about probabilities associated with this process to good accuracy that is at the same time as simple as possible. I have a pretty good approximation that should work (that I have already checked against a simulation of a billion coin tosses) but there's some (small but consistent) bias in the probabilities the approximation gives in part of the range and I'd like to see if I can get an extra digit of accuracy out of it.

It may be that the best way to do it is simply to give you a table of the probability function and cdf out to a point beyond which a geometric distribution can be used.

However, it would help if you can give some idea of the range of things you need to use the approximation for.


I hope to follow through on the pgf approach, but it's possible someone else will be more proficient with them than me and can do not just the 4-case but other cases.


To perhaps clarify things further. A distribution that adjusts or appromixate simulation that takes into account the fluxuation of 4 more successful heads would be ideal. For example, if the populatoin mean is 150 flips for 4 consecutive heads. If 4 or more heads came at the 8th flip. It's unlikely that another 4 or more heads wouldn't come in another 20 or so flips (I'm just guessing) and perhaps be closer to the mean. Something that would get me the probability for when its probable 4 consecutive heads will occur within a certain range of tosses would be AMAZING.
Dan

When you've just had 4 head, if you get a 5th head, does that most recent set of 4 count as another set of 4, or does the count reset, so you start again from the first head (as soon as you see one)?
Glen_b -Reinstate Monica

(I assumed so far that if you generate many sequences of four then there's no overlap - once you get 4, the count of S's resets to 0.)
Glen_b -Reinstate Monica

Its 4 heads or more so as soon as you'd get a tail after 4 heads the streak would stop. Then the count would restart until you see 4 heads or more again consecutively.
Dan

4 heads or more - I see that's actually what it says in the question, I just hadn't understood it quite right. So 9 heads wouldn't count as two lots of 4 heads. That totally changes the calculations I was doing. The recurrence relation I was using is wrong. The basic concept - that it should have a geometric tail - that will still hold though.
Glen_b -Reinstate Monica

0

You want the geometric distribution. From Wikipedia:

The probability distribution of the number X of Bernoulli trials needed to get one success, supported on the set { 1, 2, 3, ...}.

Let heads H be a failure and tails T be a success. The random variable X is then the number of coin flips needed to see the first tails. For example, X=4 will be the sequence HHHT. Here is the probability distribution for X:

P(X=x)=(1p)x1p

However, we only want the number of heads. Let's instead define Y=X1 as the number of heads. Here is it's distribution:

P(Y+1=x)=(1p)x1pP(Y=x1)=(1p)x1pP(Y=y)=(1p)yp

for y=0,1,2,3.... We assume a fair coin, making p=0.5. Therefore:

P(Y=y)=(0.5)y(0.5)=0.5y+1

This all assumes the number of flips n is sufficiently large (like 10,000). For smaller (finite) n, we would need to add a normalization factor to the expression. Put simply, we need to ensure that the total sum is equal to 1. We can do this by dividing by the sum of all probabilities, defined here as α:

α=i=0n1P(Y=i)

This means the corrected form of Y, denoted Z, will be:

P(Z=z)=1α(1p)zp=1i=0n1(1p)ip(1p)zp

Again, with p=0.5, we can reduce this even further, using a geomoetric series summation:

P(Z=z)=1i=0n10.5i+10.5z+1=110.5n0.5z+1=0.5z+110.5n

And we can see that, as n, our modified version Z approaches Y from earlier.


2
I think there are some details of the question you may have missed. Unless I've badly misunderstood the question, it's not simply geometric.
Glen_b -Reinstate Monica

I updated it to handle finite n. And yes, I see now that he wanted to move a window rather than exact counts. Mine only works for chains, not the time between them.
clintonmonk

A good first step is to have a look at the graph in @Glen_b's post, and see if you can replicate that. I've also added the Python program I wrote to check the exact probabilities. If you are able to run this, uncomment the line that prints matches, decreasing N to somewhere between 5 and 7, and you'll get a good feel for the events that are required (note pylab is only required for plotting).
TooTone

Unfortunately I'm not around a PC that I can test that with currently. I started to use a Markov process to show the stationary sol'n was geometric (and E[time to return] = 1/πi), but I didn't have time to fully flesh it out.
clintonmonk

Yes, if by stationary solution, you're talking about the ratio of consecutive probabilities in the tail converging to a constant, then the stationary solution is indeed geometric, as both previous answers have said.
Glen_b -Reinstate Monica
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.