Wenn ich richtig verstanden habe, besteht das Problem darin, eine Wahrscheinlichkeitsverteilung für den Zeitpunkt zu finden, zu dem der erste Lauf von oder mehr Köpfen endet.n
Bearbeiten Die Wahrscheinlichkeiten können mithilfe der Matrixmultiplikation genau und schnell bestimmt werden, und es ist auch möglich, den Mittelwert als und die Varianz als analytisch zu berechnen wobei , aber es gibt wahrscheinlich keine einfache geschlossene Form für die Distribution selbst. Ab einer bestimmten Anzahl von Münzwürfen ist die Verteilung im Wesentlichen eine geometrische Verteilung: Es wäre sinnvoll, diese Form für größere .σ 2 = 2 n + 2 ( μ - n - 3 ) - μ 2 + 5 μ μ = μ - + 1 tμ−=2n+1−1σ2=2n+2(μ−n−3)−μ2+5μμ=μ−+1t
Die zeitliche Entwicklung der Wahrscheinlichkeitsverteilung im Zustandsraum kann unter Verwendung einer Übergangsmatrix für Zustände modelliert werden , wobei die Anzahl aufeinanderfolgender Münzwürfe ist. Die Zustände sind wie folgt:n =k=n+2n=
- Zustand , keine KöpfeH0
- Zustand , Köpfe, i 1 ≤ i ≤ ( n - 1 )Hii1≤i≤(n−1)
- Zustand , oder mehr Köpfe nHnn
- Zustand , oder mehr Köpfe , gefolgt von einem Schwanz nH∗n
Sobald Sie in den Zustand , können Sie zu keinem der anderen Zustände zurückkehren.H∗
Die Zustandsübergangswahrscheinlichkeiten, um in die Zustände zu gelangen, sind wie folgt
- Zustand : Wahrscheinlichkeit von , , dh einschließlich sich selbst, aber nicht Zustand1H0 Hii=0,…,n-1Hn12Hii=0,…,n−1Hn
- Zustand : Wahrscheinlichkeit von1Hi Hi-112Hi−1
- Zustand : Wahrscheinlichkeit von , dh vom Zustand mit Köpfen und sich selbst1Hn Hn-1,Hnn-112Hn−1,Hnn−1
- Zustand : Wahrscheinlichkeit von und Wahrscheinlichkeit 1 von (selbst)1H∗ HnH∗12HnH∗
Für ergibt sich beispielsweise die Übergangsmatrixn=4
X=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪H0H1H2H3H4H∗H012120000H112012000H212001200H312000120H400001212H∗000001⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪
Für den Fall , der Anfangsvektor von Wahrscheinlichkeiten ist . Im Allgemeinen hat der Anfangsvektor
p p = ( 1 , 0 , 0 , 0 , 0 , 0 ) p i = { 1 i = 0 0 i > 0n=4pp=(1,0,0,0,0,0)
pi={10i=0i>0
Der Vektor ist die Wahrscheinlichkeitsverteilung im Raum für eine bestimmte Zeit. Das erforderliche cdf ist ein cdf in der Zeit und ist die Wahrscheinlichkeit, dass mindestens Münzwürfe zum Zeitpunkt enden . Es kann als , wobei zu beachten ist, dass wir den Zeitschritt 1 nach dem letzten in der Folge aufeinanderfolgender Münzwürfe erreichen. n t ( X t + 1 p ) k H ∗pnt(Xt+1p)kH∗
Die erforderliche pmf in der Zeit kann geschrieben werden als . Numerisch bedeutet dies jedoch, dass eine sehr kleine Zahl von einer viel größeren Zahl ( ) entfernt wird, und die Genauigkeit wird eingeschränkt. Daher ist es in Berechnungen besser, anstatt 1 zu setzen. Wenn Sie dann für die resultierende Matrix schreiben , ist die pmf . Dies ist , was unten in dem einfachen R - Programm implementiert, die für alle funktioniert , ≤ 1 X k , k = 0 X ' X ' = X | X k , k = 0 ( X ' t + 1 p ) k n ≥ 2(Xt+1p)k−(Xtp)k≈1Xk,k=0X′X′=X|Xk,k=0(X′t+1p)kn≥2
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")
Das obere Diagramm zeigt die PMF zwischen 0 und 100. Die unteren beiden Diagramme zeigen die PMF zwischen 10 und 110 sowie zwischen 1010 und 1110, was die Selbstähnlichkeit und die Tatsache veranschaulicht, dass die Verteilung, wie @Glen_b sagt, so aussieht, wie sie sein kann angenähert durch eine geometrische Verteilung nach einer Einschwingzeit.
Es ist möglich, dieses Verhalten mithilfe einer Eigenvektorzerlegung von weiter zu untersuchen . Dabei zeigt , dass das für hinreichend große , , wobei ist die Lösung der Gleichung . Diese Annäherung wird mit zunehmendem besser und eignet sich hervorragend für im Bereich von etwa 30 bis 50, abhängig vom Wert von , wie in der nachstehenden Darstellung des Protokollfehlers für die Berechnung von (Regenbogenfarben, rot auf dem links fürXtpt+1≈c(n)ptc(n)2n+1cn(c−1)+1=0ntnp100n=2). (Aus numerischen Gründen wäre es tatsächlich besser, die geometrische Näherung für Wahrscheinlichkeiten zu verwenden, wenn größer ist.)t
Ich vermute (ed), dass möglicherweise eine geschlossene Form für die Verteilung verfügbar ist, da die Mittelwerte und Abweichungen, wie ich sie berechnet habe, wie folgt sind
n2345678910Mean715316312725551110232047Variance241447363392147206169625344010291204151296
(Ich musste die Zahl im Zeithorizont erhöhen, t=100000
um dies zu erhalten, aber das Programm lief immer noch für alle in weniger als ungefähr 10 Sekunden.) Die Mittel folgen insbesondere einem sehr offensichtlichen Muster; die Abweichungen weniger. Ich habe in der Vergangenheit ein einfacheres 3-Zustands-Übergangssystem gelöst, aber bisher habe ich kein Glück mit einer einfachen analytischen Lösung für dieses. Vielleicht gibt es eine nützliche Theorie, die mir nicht bekannt ist, z. B. in Bezug auf Übergangsmatrizen.n=2,…,10
Bearbeiten : Nach vielen Fehlstarts habe ich mir eine Wiederholungsformel ausgedacht. Sei die Wahrscheinlichkeit, zum Zeitpunkt im Zustand zu sein . Sei die kumulative Wahrscheinlichkeit , sich zum Zeitpunkt im Zustand , dh im Endzustand . NBpi,tHitq∗,tH∗t
- Für jedes gegebene sind und eine Wahrscheinlichkeitsverteilung über den Raum , und unmittelbar darunter verwende ich die Tatsache, dass ihre Wahrscheinlichkeiten zu 1 addieren.tpi,t,0≤i≤nq∗,ti
- p∗,t bilden eine Wahrscheinlichkeitsverteilung über die Zeit . Später verwende ich diese Tatsache, um die Mittelwerte und Abweichungen abzuleiten.t
Die Wahrscheinlichkeit, zum Zeitpunkt im ersten Zustand zu sein , dh keine Köpfe, ergibt sich aus den Übergangswahrscheinlichkeiten von Zuständen, die ab dem Zeitpunkt (unter Verwendung des Satzes der Gesamtwahrscheinlichkeit).
Aber um vom Zustand zu nimmt Stufe, somit und
Noch einmal durch den Satz der Gesamtwahrscheinlichkeit die Wahrscheinlichkeit von im Zustandt+1t
p0,t+1=12p0,t+12p1,t+…12pn−1,t=12∑i=0n−1pi,t=12(1−pn,t−q∗,t)
H0Hn−1n−1pn−1,t+n−1=12n−1p0,tpn−1,t+n=12n(1−pn,t−q∗,t)
Hnzum Zeitpunkt ist
and unter Verwendung der Tatsache, dass ,
Ändern Sie daher ,
t+1pn,t+1=12pn,t+12pn−1,t=12pn,t+12n+1(1−pn,t−n−q∗,t−n)(†)
q∗,t+1−q∗,t=12pn,t⟹pn,t=2q∗,t+1−2q∗,t2q∗,t+2−2q∗,t+1=q∗,t+1−q∗,t+12n+1(1−2q∗,t−n+1+q∗,t−n)
t→t+n2q∗,t+n+2−3q∗,t+n+1+q∗,t+n+12nq∗,t+1−12n+1q∗,t−12n+1=0
Diese Wiederholungsformel überprüft die Fälle und . ZB für ergibt ein Diagramm dieser Formel unter Verwendung der Genauigkeit der Maschinenreihenfolge.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
Bearbeiten Ich kann nicht sehen, wohin ich gehen muss, um eine geschlossene Form aus dieser Wiederholungsbeziehung zu finden. Es ist jedoch möglich, eine geschlossene Form für den Mittelwert zu erhalten.
Ausgehend von und unter Hinweis darauf, dass ,
Nehmen Sie Summen von bis und wenden Sie die Formel für den Mittelwert und notieren Sie, dass ist eine Wahrscheinlichkeitsverteilung gibt
(†)p∗,t+1=12pn,t
pn,t+12n+1(2p∗,t+n+2−p∗,t+n+1)+2p∗,t+1=12pn,t+12n+1(1−pn,t−n−q∗,t−n)(†)=1−q∗,t
t=0∞E[X]=∑∞x=0(1−F(x))p∗,t2n+1∑t=0∞(2p∗,t+n+2−p∗,t+n+1)+2∑t=0∞p∗,t+12n+1(2(1−12n+1)−1)+22n+1=∑t=0∞(1−q∗,t)=μ=μ
Dies ist der Mittelwert zum Erreichen des Zustands ; Der Mittelwert für das Ende des Kopflaufs ist eins weniger als dieser.
H∗
Bearbeiten Ein ähnlicher Ansatz unter Verwendung der Formelaus dieser Frage ergibt sich die Varianz.
E[X2]=∑∞x=0(2x+1)(1−F(x))
∑t=0∞(2t+1)(2n+1(2p∗,t+n+2−p∗,t+n+1)+2p∗,t+1)2∑t=0∞t(2n+1(2p∗,t+n+2−p∗,t+n+1)+2p∗,t+1)+μ2n+2(2(μ−(n+2)+12n+1)−(μ−(n+1)))+4(μ−1)+μ2n+2(2(μ−(n+2))−(μ−(n+1)))+5μ2n+2(μ−n−3)+5μ2n+2(μ−n−3)−μ2+5μ=∑t=0∞(2t+1)(1−q∗,t)=σ2+μ2=σ2+μ2=σ2+μ2=σ2+μ2=σ2
Die Mittelwerte und Abweichungen können leicht programmgesteuert generiert werden. ZB um die Mittelwerte und Abweichungen aus der obigen Tabelle zu überprüfen
n=2:10
m=c(0,2**(n+1))
v=2**(n+2)*(m[n]-n-3) + 5*m[n] - m[n]^2
Schließlich bin ich mir nicht sicher, was Sie wollten, als Sie geschrieben haben
Wenn ein Schwanz den Streifen der Köpfe trifft und bricht, beginnt die Zählung ab dem nächsten Flip erneut.
Wenn Sie gemeint haben, wie hoch die Wahrscheinlichkeitsverteilung für das nächste Mal ist, bei dem der erste Lauf von oder mehr Köpfen endet, dann ist der entscheidende Punkt in diesem Kommentar von @Glen_b enthalten , dh der Prozess beginnt erneut nach einem Schwanz (vgl anfängliches Problem, bei dem Sie sofort einen Lauf von oder mehr Köpfen bekommen könnten ).nn
Dies bedeutet, dass beispielsweise die mittlere Zeit bis zum ersten Ereignis ist, die mittlere Zeit zwischen Ereignissen jedoch immer (die Varianz ist dieselbe). Es ist auch möglich, eine Übergangsmatrix zu verwenden, um die langfristigen Wahrscheinlichkeiten eines Zustands zu untersuchen, nachdem sich das System "beruhigt" hat. Um die entsprechende Übergangsmatrix zu erhalten, setzen Sie und damit das System vom Zustand sofort in den Zustand . Dann gibt der skalierte erste Eigenvektor dieser neuen Matrix die stationären Wahrscheinlichkeiten an . Mit diese stationären Wahrscheinlichkeitenμ−1μ+1Xk,k,=0X1,k=1H0H∗n=4
H0H1H2H3H4H∗probability0.484848480.242424240.121212120.060606060.060606060.03030303
Die erwartete Zeit zwischen Zuständen wird durch den Kehrwert der Wahrscheinlichkeit angegeben. Die erwartete Zeit zwischen den Besuchen von .
H∗=1/0.03030303=33=μ+1
Anhang : Python-Programm zum Generieren exakter Wahrscheinlichkeiten für n
= Anzahl aufeinanderfolgender 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()