Próbuję znaleźć prawdopodobieństwo prawidłowego wykonania 8 prób z rzędu w bloku 25 prób, masz 8 wszystkich bloków (z 25 prób), aby uzyskać 8 prób z rzędu. Prawdopodobieństwo, że jakakolwiek próba będzie poprawna w oparciu o zgadywanie, wynosi 1/3, po uzyskaniu poprawności 8 z rzędu bloki się zakończą (więc uzyskanie więcej niż 8 z rzędu poprawności nie jest technicznie możliwe). Jak mógłbym zająć się znalezieniem prawdopodobieństwa tego wystąpienia? Zastanawiałem się nad zastosowaniem (1/3) ^ 8 jako prawdopodobieństwa prawidłowego otrzymania 8 z rzędu, istnieje 17 możliwych szans na uzyskanie 8 z rzędu w bloku 25 prób, jeśli pomnożę 17 możliwości * 8 bloków Dostaję 136, czy 1- (1- (1/3) ^ 8) ^ 136 dałoby mi prawdopodobieństwo uzyskania 8 w rzędzie poprawnej w tej sytuacji, czy też brakuje mi tutaj czegoś fundamentalnego?
źródło
Odpowiedzi:
Śledząc rzeczy, możesz uzyskać dokładną formułę .
Niech jest prawdopodobieństwo sukcesu i k = 8 jest liczba sukcesów w rzędzie chcesz liczyć. Zostały one naprawione dla problemu. Zmienne wartości to m , liczba prób pozostałych w bloku; oraz j , liczba zaobserwowanych sukcesów. Niech szansa na osiągnięcie k sukcesów z rzędu przed wyczerpaniem m prób zostanie zapisana f p , k ( j , m ) . Dążyć F 1 / 3 , 8 (p=1/3 k=8 m j k m fp,k(j,m) .f1/3,8(0,25)
Załóżmy, że właśnie widzieliśmy nasz sukces z rzędu z m > 0 próbami do przejścia. Kolejna próba jest albo sukcesem, z prawdopodobieństwem p - w którym przypadku j wzrasta do j + 1 -; albo jest to awaria, z prawdopodobieństwem 1 - p --W tym przypadku j jest resetowany do 0 . W obu przypadkach m zmniejsza się o 1 . Skądjth m>0 p j j+1 1−p j 0 m 1
Jako warunki początkowe mamy oczywiste wyniki dla m ≥ 0 ( tj. Widzieliśmy już k w rzędzie) i f p , k ( j , m ) = 0 dla k - j > m ( tzn. nie ma wystarczającej liczby prób, aby uzyskać kfap , k( k , m ) = 1 m ≥ 0 k fap , k( j , m ) = 0 k - j > m k z rzędu). Jest teraz szybki i prosty (przy użyciu programowania dynamicznego lub, ponieważ parametry tego problemu są tak małe, rekurencja) do obliczeń
Gdy Daje to 80.897 / 43.046.721 ≈ 0,0018793 .p=1/3 80897/43046721≈0.0018793
Jest to stosunkowo szybki
R
kod do symulacjiPo 3 sekundach obliczeń wyjście wynosi . Chociaż wygląda to wysoko, to tylko 1,7 standardowych błędów jest wyłączonych. Przeprowadziłem kolejne 10 6 iteracji, uzyskując 0,001867 : tylko 0,3 błędy standardowe mniej niż oczekiwano. (Jako podwójną kontrolę, ponieważ wcześniejsza wersja tego kodu zawierała subtelny błąd, uruchomiłem również 400 000 iteracji w Mathematica, uzyskując szacunkową wartość 0,0018475 .)0.00213 106 0.001867 0.3 0.0018475
Wynik ten jest mniejszy niż jedna dziesiąta Oszacowanie w pytaniu. Ale może jeszcze nie w pełni zrozumiałe go: kolejna interpretacja „masz 8 Wszystkie bloki ... aby uzyskać 8 prób skorygowania w rzędzie” jest to, że istota odpowiedź poszukiwane jest równa 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 ...
źródło
Chociaż doskonałe rozwiązanie do programowania dynamicznego @ Whuber jest warte przeczytania, jego czas działania wynosi w odniesieniu do całkowitej liczby prób m i pożądanej długości próby k, podczas gdy metoda potęgowania macierzy to O ( k 3 log ( m ) ) . Jeśli m jest znacznie większe niż k , następująca metoda jest szybsza.O ( k2)m ) m k O ( k3)log( m ) ) m k
Oba rozwiązania traktują problem jako łańcuch Markowa ze stanami reprezentującymi do tej pory liczbę poprawnych prób na końcu łańcucha oraz stanem do osiągnięcia pożądanych poprawnych prób z rzędu. Macierz przejścia jest taka, że zobaczenie awarii z prawdopodobieństwem odsyła cię z powrotem do stanu 0, a w przeciwnym razie z prawdopodobieństwem 1 - p przechodzi do następnego stanu (stanem ostatecznym jest stan pochłaniania). Podnosząc tę macierz do potęgi n , wartość w pierwszym rzędzie i ostatniej kolumnie jest prawdopodobieństwem zobaczenia k = 8 główek z rzędu. W Pythonie:p 1 - p n k = 8
daje pożądane 0,00187928367413.
źródło
Zgodnie z tą odpowiedzią wyjaśnię podejście Markov-Chain autorstwa @Neil G i przedstawię ogólne rozwiązanie takich problemów wk n W. fa k + 1
R
. Oznaczmy pożądaną liczbę poprawnych prób z rzędu przez , liczbę prób jako n oraz prawidłową próbę przez W (wygrana) i niepoprawną próbę przez F (niepowodzenie). W trakcie śledzenia prób chcesz wiedzieć, czy masz już serię 8 poprawnych prób i liczbę poprawnych prób na końcu bieżącej sekwencji. Istnieje 9 stanów ( k + 1 ):: Nie mieliśmy 8 poprawnych prób jeszcze w rzędzie, a ostatnia próba była F .ZA 8 fa
: Nie mieliśmy 8 poprawnych prób jeszcze w rzędzie, a dwie ostatnie próby były F szer .b 8 faW.
: Nie miał 8 właściwych prób w rzędzie jednak, a ostatnie trzy próby były M W W .do 8 faW.W.
: Nie miał 8 właściwych prób w rzędzie a i osiem ostatnich badaniach były C W W W W W W W .H. 8 faW.W.W.W.W.W.W.
: Przeprowadziliśmy 8 poprawnych prób z rzędu!ja 8
Prawdopodobieństwo przejścia do stanu ze stanu A jest P = 1 / 3 i prawdopodobieństwo 1 - P = 2 / 3 pobyt w stan A . Od stanu B , prawdopodobieństwo przejścia do stanu C wynosi 1 / 3 oraz z prawdopodobieństwem 2 / 3 ruszamy z powrotem do A . I tak dalej. Jeśli jesteśmy w stanie I , zostajemy tam.b ZA p = 1 / 3 1 - P = 2 / 3 ZA b do 1 / 3 2 / 3 ZA ja
Na tej podstawie możemy zbudować macierz przejściową M (ponieważ każda kolumna M sumuje się do 1, a wszystkie wpisy są dodatnie, M nazywa się lewą macierzą stochastyczną ):9 × 9 M. M. 1 M
R
expm
źródło
Oto kod R, który napisałem, aby to zasymulować:
Dostaję wartości nieco mniejsze niż twoja formuła, więc jedno z nas mogło gdzieś popełnić błąd.
źródło
Można to również ocenić bezpośrednio za pomocą funkcji wbudowanych
Probability
iDiscreteMarkovProcess
Mathematica :źródło