コインを弾く確率の深刻で深刻な問題


10

コインを1枚投げるとします。連続して4つ以上の連続したヘッドを得るのに必要なフリップの確率を知りたいのですが。

カウントは次のように機能します。連続する1回のフリップのカウントは、ヘッドのみ(4ヘッド以上)です。テールがヒットしてヘッドのストリークを壊すと、カウントは次のフリップから再開します。これは、10,000回のフリップで繰り返されます。

4連以上の頭だけでなく、6頭以上10頭以上の確率を知りたい。9ヘッドのストリークが達成されているかどうかを明確にするために、2つの別々のストリークではなく、1ストリークを4以上(および/または6以上)として集計します。たとえば、コインがTHTHTHTHHHHHH /// THAHTHT ....であった場合、カウントは13になり、次のテイルで再び始まります。

データが右側に大きく歪んでいるとしましょう。平均が40フリップであるので、ストリークが4以上になるには平均がかかり、分布はu = 28です。明らかにゆがんでいます。

現時点では何も見つからない場合を除いて、説明的なデータから意味のある方法を見つけるために最善を尽くしています。

私はそれからある意味のある確率を得る何らかの方法を見つけたいです。+/- 1 SDが68%である通常の曲線のように、ログの正規化を調べましたが、これは実際には私の目標ではないパラメトリックテストにのみ使用されています。

私はベータ版のディストリビューションについて教えられましたが、私がこれまでに提案したことはすべてかなり混乱しています。私は1年前にこの質問をして、いくつかの洞察を得ましたが、残念ながら、私にはまだ答えがありません。アイデアをお持ちの方、ありがとうございました。


もう少しはっきりさせておきましょう。1)歪んだデータセットからの1000フリップ(通常のカーブ確率+/- 1 SD = 68%のようなもの)で4を超える連続したヘッドの量の説明的なデータを理解するために離れた場所を探しています。2)ベータ版ディストリビューションの使用をお勧めしますが、他の提案は素晴らしいでしょう!
ダン

1
ダン、あなたの頭と尾の例のセットに「A」が含まれていることに気づきました。
Glen_b-モニカを2014

行った編集は大きな改善ですが、さらに変更を加える必要があります。「分布がu = 28である」と言う場合、正確にはどういう意味ですか?中央値について話していますか?
Glen_b-モニカを2014

@Danベータは、ベイジアンアプローチを使用してヘッドの確率を推定し、その分布(および関連する不確実性)を、指定した問題の数学的結果に適用する場合にのみ、この問題を考慮に入れることができます。
AdamO 2014年

回答:


12

私が正しく理解していれば、問題は個以上のヘッドの最初の実行が終了する時間の確率分布を見つけることです。n

編集確率は、行列乗算を使用して正確かつ迅速に決定することができ、分析的に平均値を計算することも可能であるなどのとのような分散σ 2 = 2 N + 2μ - N - 3 - μ 2 + 5 μ μ = μ - + 1μ=2n+11σ2=2n+2(μn3)μ2+5μμ=μ+1、しかしおそらくディストリビューション自体のための単純な閉じたフォームはありません。特定の数のコインフリップを超えると、分布は基本的に幾何学的な分布になります。このフォームを使用してを大きくすることは理にかなっています。t

状態空間の確率分布の時間発展は、状態の遷移行列を使用してモデル化できます。ここで、n =連続するコインフリップの数です。状態は次のとおりです。k=n+2n=

  • 状態、頭なしH0
  • 状態Iヘッド、1 I N - 1 Hii1i(n1)
  • 状態n以上のヘッドHnn
  • 状態n個以上の頭の後に尾が続くHn

あなたは、状態に入るたらあなたは、他のいずれかの状態に戻って取得することはできません。H

状態に入る状態遷移確率は次のとおりです

  • 状態:確率1H0 Hiから、i=0n1、つまりそれ自体を含むが状態Hnは含まない12Hii=0,,n1Hn
  • 状態:確率1HiHi1から 212Hi1
  • 状態:確率1HnからのHN-1HNを有する状態から、すなわち、N-1つのヘッド自体12Hn1,Hnn1
  • 状態:確率1HからのHNから確率1H*(自体)12HnH

したがって、たとえば、場合、これは遷移行列を与えますn=4

X={H0H1H2H3H4HH01212121200H11200000H20120000H30012000H400012120H0000121}

場合について、確率の初期ベクトルpがあり、P = 1 0 0 0 0 0 。一般に、初期ベクトルは p i = { 1 i = 0 0 i > 0です。n=4pp=(1,0,0,0,0,0)

pi={1i=00i>0

ベクトルは、任意の時間における空間内の確率分布です。必要な累積分布関数は、時間内の累積分布関数であり、時間tまでに少なくともn回のコインフリップが終了した確率です。これは、X t + 1 p kと書くことができ、連続するコインフリップの最後の実行の最後から状態H 1タイムステップに到達することに注意してください。pnt(Xt+1p)kH

時間の必要PMFは、以下のように書くことができる。しかし数値これは、はるかに大きな数(から非常に少数奪う含む1)と精度を制限します。したがって、計算では、1よりもX k k = 0を設定することをお勧めします。次に、結果の行列X = X |に対してX を書き込みます。X k k = 0(Xt+1p)k(Xtp)k1Xk,k=0XX=X|Xk,k=0、PMFは。これは、任意の作品以下の単純なRプログラムで実装されているものであり、N 2(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")

上のプロットは、0から100の間のpmfを示しています。下の2つのプロットは、10から110の間および1010から1110の間のpmfを示し、自己相似性と、@ Glen_bが言うように、分布が次のように見えるという事実を示しています整定期間後の幾何分布によって近似されます。

ここに画像の説明を入力してください

Xtpt+1c(n)ptc(n)2n+1cn(c1)+1=0ntnp100n=2t

ここに画像の説明を入力してください

次のように計算した平均と分散が原因で、分布に使用できる閉じた形式があると思われます。

nMeanVariance2724315144431736563339261271472072556169685112534409102310291201020474151296

t=100000n=2,,10

pi,tHitq,tHt

  • tpi,t,0inq,ti
  • p,tt

t+1t

p0,t+1=12p0,t+12p1,t+12pn1,t=12i=0n1pi,t=12(1pn,tq,t)
H0Hn1n1pn1,t+n1=12n1p0,t
pn1,t+n=12n(1pn,tq,t)
Hnt+1
pn,t+1=12pn,t+12pn1,t=12pn,t+12n+1(1pn,tnq,tn)()
q,t+1q,t=12pn,tpn,t=2q,t+12q,t
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

ここに画像の説明を入力してください

編集この繰り返し関係から閉じたフォームを見つけるためにどこに行くべきかわかりません。ただし、平均の閉じた形式を取得すること可能です。

()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

平均と分散はプログラムで簡単に生成できます。たとえば、上記の表の平均と分散を確認するために使用します

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

最後に、あなたが書いたときにあなたが何を望んでいたのかわかりません

テールがヒットしてヘッドのストリークを壊すと、カウントは次のフリップから再開します。

nn

μ1μ+1Xk,k,=0X1,k=1H0Hn=4

probabilityH00.48484848H10.24242424H20.12121212H30.06060606H40.06060606H0.03030303
H=1/0.03030303=33=μ+1

付録:正確な確率を生成するために使用されるPythonプログラムn= Nトス上の連続した頭の数。

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

ベータ版がこの問題に対処する方法として特に適しているとは思えません-「までの再生回数」は明らかに重要です。これは整数であり、正の確率が得られる値に上限はありません。

対照的に、ベータ分布は連続的であり、限られた間隔であるため、異常な選択であるように思われます。スケーリングされたベータに瞬間的に一致する場合、累積分布関数は、分布の中心本体でそれほど悪くない可能性があります。ただし、他のいくつかの選択は、どちらか一方のテールの方がかなり良くなる可能性があります。

確率の式または分布からのシミュレーション(近似ベータを見つけるためにおそらく必要となる)がある場合、なぜそれらを直接使用しないのですか?


必要なトスの数の確率または確率分布の式を見つけることに関心がある場合、おそらく最も簡単なアイデアは、確率生成関数を使用することです。これらは、確率間の再帰的な関係から関数を導出するのに役立ちます。この関数(pgf)は、必要な確率を抽出できるようにします。

これは代数的アプローチを採用した良い答えの投稿です。これは、難しさとpgfsと再帰関係の両方をうまく利用しています。「連続した2つの成功」の場合の平均と分散の特定の式があります。

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

p=12

-

数値的な答えだけが必要な場合、シミュレーションは比較的簡単です。確率推定値を直接使用することもできますが、シミュレートされた確率を平滑化することも妥当です。

近似分布を使用する必要がある場合は、かなりうまくいくものを選択できます。

負の二項式(「成功の数」バージョンではなく「試行回数」バージョン)を混合することは合理的である可能性があります。2つまたは3つのコンポーネントは、極端な尾部以外のすべてで良好な近似を与えることが期待されます。

近似のために単一の連続分布が必要な場合は、ベータ分布よりも良い選択肢があるかもしれません。調査する必要があります。


さて、私はそれ以来、少し代数を実行しました、いくつかは再帰関係、いくつかのシミュレーション、そして少しでも考えました。

非常に良い近似として、最初の4つのゼロ以外の確率を指定する(これは簡単です)だけで、次の数握りの値を再帰によって計算し(これも簡単です)、再帰関係が確立したら幾何学的な尾を使用することで解決できると思います。最初はスムーズでなかった確率の進行をスムーズにしました。

幾何学的な尾を使用して、k = 20以降の非常に高い精度で使用できるように見えますが、たとえば4桁の精度だけが心配な場合は、それをより早く導入できます。

これにより、pdfとcdfを正確に計算できます。

私は少し心配です-私の計算では、トスの平均数は30.0で、標準偏差は27.1です。「x」と「u」が何を意味するのか理解できたら、40と28のトスで勝ちました。28は大丈夫に見えますが、40は私が得たものからかなり離れているようです...それは私が何か間違ったことをしたことを心配させます。

====

注:初めて発生したときとその後発生したときの複雑さを考えると、同じことを数えているので、絶対に確信したいだけです。

以下は短いシーケンスで、「4つ以上のH」シーケンスの終わりがマークされています(最後のHの直後のフリップ間のギャップを指しています)

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

これら2つのマークの間に23フリップを数えます。つまり、Hの前のシーケンス(この場合は6)が終了するとすぐに、直後のTからカウントを開始し、次に次のシーケンスを終了する5つのH(この場合)のシーケンスの終わりまでカウントします。 、この場合23のカウントを与えます。

それはあなたがそれらを数える方法ですか?


上記が正しい場合、これは、少なくとも4つのヘッドの1回の実行が完了してから次の少なくとも4つのヘッドの実行が完了するまでのトス数の確率関数が次のようになることを示しています。

コインプロブ

一見すると、最初のいくつかの値ではフラットであるように見え、その後、幾何学的な尾部がありますが、その印象は正確ではありません。効果的な幾何学的な尾部に落ち着くまでには時間がかかります。

私は、このプロセスに関連する確率についての疑問に答えるために使用できる適切な近似を考え出し、可能な限りシンプルであると同時に正確に処理しています。私はうまくいくかなり良い近似を持っています(10億コインの投げのシミュレーションに対してすでにチェック済みです)が、近似が範囲の一部で与える確率にはいくつかの(小さいが一貫している)バイアスがあります。精度をさらに上げることができるかどうかを確認します。

それを行うための最良の方法は、単純に確率関数のテーブルとcdfを与え、それを超えて幾何分布を使用できるようにすることです。

ただし、近似を使用する必要がある対象の範囲についてある程度のアイデアを提供できれば、役に立ちます。


私はpgfのアプローチを続けたいと思っていますが、他の誰かが私よりも上手で、4ケースだけでなく他のケースもできる可能性があります。


物事をさらに明確にするために。4つのより成功したヘッドの流動を考慮に入れてシミュレーションを調整または承認する分布が理想的です。たとえば、populatoinの平均値が150の場合、4つの連続した頭で反転します。4枚以上のヘッドが8枚目のフリップで来た場合。別の4つ以上のヘッドが別の20程度でフリップしない(私は推測しているだけ)とは考えられず、平均値に近い可能性があります。予想される4つの連続した頭が特定の範囲のトスで発生する可能性を私に与える何かは素晴らしいでしょう。
ダン

4つのヘッドがあったときに、5番目のヘッドを取得した場合、その最新の4つのセットが別の4つのセットとしてカウントされるか、カウントがリセットされるため、最初のヘッドから再び開始します(表示されるとすぐに) 1)?
Glen_b-モニカを復活させる2013

(これまでのところ、4つのシーケンスを多数生成した場合、重複がないと想定しました。4を取得すると、Sのカウントは0にリセットされます。)
Glen_b -Reinstate Monica

その4ヘッド以上なので、4ヘッド後にストリークが止まるとすぐに、ストリークは止まります。その後、4つのヘッド以上が連続して表示されるまで、カウントが再開されます。
ダン

4頭以上 -それは質問で実際に言っていることだと思いますが、私はそれを正しく理解していませんでした。したがって、9頭は4頭の2ロットとしてカウントされません。それは私がしていた計算を完全に変えます。私が使用していた繰り返し関係が間違っています。基本的なコンセプト-幾何学的な尾を持つ必要があります-それでもそれは成り立ちます。
Glen_b-2013

0

幾何分布が必要です。ウィキペディアから:

X

XX=4X

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

Y=X1

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

y=0,1,2,3...p=0.5

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

nnα

α=i=0n1P(Y=i)

YZ

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

p=0.5

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

nZY


2
あなたが見逃したかもしれない質問のいくつかの詳細があると思います。私がその質問をひどく誤解していない限り、それは単に幾何学的ではありません。
Glen_b-モニカを

有限nを処理するように更新しました。そして、はい、彼は正確なカウントではなくウィンドウを移動したいと思ったことがわかりました。鉱山はチェーンでのみ機能し、チェーン間の時間では機能しません。
clintonmonk 2014年

最初の良いステップは、@ Glen_bの投稿のグラフを見て、それを再現できるかどうかを確認することです。正確な確率をチェックするために書いたPythonプログラムも追加しました。これを実行できる場合は、一致を出力する行のコメントを外して、N5から7の間のどこかに減らしてください。必要なイベントの感触がよくなります(pylabプロットにのみ必要です)。
TooTone 2014年

πi

はい、定常解である場合、テールの連続確率が一定値に収束する比率について話している場合、以前の両方の答えが述べたように、定常解は確かに幾何学的です。
Glen_b-モニカを2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.