Jeśli mam 58% szans na wygranie punktu, jaka jest szansa, że ​​wygram grę w ping ponga do 21, wygrywając do 2?

90

Mam zakład ze współpracownikiem, że na 50 gier w ping ponga (najpierw zdobędę 21 punktów, wygrywam 2) wygram wszystkie 50. Do tej pory rozegraliśmy 15 gier i średnio wygrywam 58% punkty, a ponadto wygrałem wszystkie gry do tej pory. Zastanawiamy się więc, czy mam 58% szansy na zdobycie punktu, a on ma 42% szansy na zdobycie punktu. Jaka jest procentowa szansa na wygraną? Czy istnieje wzór, w którym możemy podłączyć różnicy% szans?

Poszukiwaliśmy się na całym świecie, a nawet pytamy badaczy danych w naszej firmie, ale nie możemy znaleźć prostej odpowiedzi.

Edycja: Wow, zachwyca mnie dokładność odpowiedzi. Bardzo dziękuje Wam wszystkim!!! Jeśli ludzie są ciekawi, mam aktualizację dotyczącą mojego zakładu: wygrałem 18 z 50 gier, więc muszę wygrać jeszcze 32 gry. Wygrałem 58,7% wszystkich punktów, dlatego mój przeciwnik zdobył 41,3% punktów. Standardowe odchylenie dla mojego przeciwnika wynosi 3,52, jego średni wynik to 14,83, a jego mediana - 15,50. Poniżej znajduje się zrzut ekranu z dotychczasowych wyników każdej gry. Mogę aktualizować w miarę postępu zakładu, jeśli ludzie są zainteresowani.

Edycja nr 2 : Niestety, mogliśmy zagrać tylko w kilka innych gier, poniżej są wyniki. Zamierzam nadal wymieniać obraz, żeby nie mam kilku zrzutów ekranu z partytury.

Ostatnia aktualizacja : W końcu przegrałem ze współpracownikiem w grze nr 28. Pokonał mnie 21-13. Dzięki za całą twoją pomoc!

wprowadź opis zdjęcia tutaj

Richard
źródło
11
Nie ma wzór: w to jest w postaci razy wielomianem stopnia-20 21 Warunki we wszystkich (z dużymi współczynnikami największy przekraczającej ). Jeśli wszystkie punkty są niezależne, masz tylko szansy na wygranie następnych 35 gier. P 21 / ( 1 - 2 p + 2 s 2 ) 1,6 x 10 16 0,432 %p=0.58,p21/(12p+2p2)1.6×10160.432%
whuber
8
Wątpię, aby wszystkie punkty (i gry) były od siebie niezależne (z różnych powodów). Brak niezależności może mieć duży wpływ na odpowiedź.
Mark L. Stone,
8
Zakładając, że to ta sama gra, w którą grałem, pamiętam, że jedna porcja ma przewagę; więc ignorowanie wszystkiego o „gorącej ręce” może oznaczać, że wygrywasz 68% podczas serwowania i 48%, gdy nie - to wypaczy wszystkie prawdopodobieństwa; nawet jeśli wyrówna się do 58% Nie mamy więc wystarczających informacji.
Hans Olsson,
5
Tylko komentarz - 21 punktów? Tenis stołowy zmieniono na 11-punktowy, najlepszy z 7 gier, 2
serwery
5
Będę nadal publikować aktualizacje dotyczące tego zakładu co około 5 gier. Niestety gramy tylko kilka gier tygodniowo, ponieważ gramy tylko po pracy.
richard

Odpowiedzi:

119

Analizę komplikuje perspektywa, że ​​gra przechodzi w „dogrywkę”, aby wygrać o margines co najmniej dwóch punktów. (W przeciwnym razie byłoby to tak proste, jak rozwiązanie pokazane na https://stats.stackexchange.com/a/327015/919 .) Pokażę, jak wizualizować problem i wykorzystać go do rozbicia go na łatwo obliczone wkłady do odpowiedź. Wynik, choć nieco niechlujny, jest wykonalny. Symulacja potwierdza jej poprawność.


Niech będzie twoim prawdopodobieństwem wygrania punktu. p Załóż, że wszystkie punkty są niezależne. Szansa na wygraną może zostać podzielona na (nie nakładające się) wydarzenia zgodnie z liczbą punktów, jaką ma przeciwnik na końcu, zakładając, że nie przejdziesz do dogrywki ( ) lub przejdziesz do dogrywki . W tym drugim przypadku jest (lub stanie się) oczywiste, że na pewnym etapie wynik wynosił 20-20.0,1,,19

Jest ładna wizualizacja. Niech wyniki w trakcie gry będą wykreślane jako punkty gdzie to twój wynik, a to wynik twojego przeciwnika. W trakcie gry wyniki przesuwają się wzdłuż siatki liczb całkowitych w pierwszym kwadrancie, rozpoczynając od , tworząc ścieżkę gry . Kończy się za pierwszym razem, gdy jeden z was zdobył przynajmniej punktów i ma margines co najmniej . Takie zwycięskie punkty tworzą dwa zestawy punktów, „granicę pochłaniającą” tego procesu, gdy ścieżka gry musi się zakończyć.x y ( 0 , 0 ) 21 2(x,y)xy(0,0)212

Postać

Ta figura pokazuje część pochłaniającej granicy (rozciąga się nieskończenie w górę i w prawo) wraz ze ścieżką gry, która przeszła w nadgodziny (niestety dla ciebie przegrana).

Policzmy. Liczba sposobów, w jakie gra może zakończyć się punktami dla przeciwnika, to liczba różnych ścieżek w sieci liczb całkowitych wyników rozpoczynających się od początkowego wyniku i kończących się na przedostatnim wyniku . Takie ścieżki zależą od tego, który z ponad punktów w wygranej grze. Odpowiadają zatem podzbiorom rozmiaru o liczbach , a jest ich . Ponieważ na każdej takiej ścieżce zdobyłeś punktów (z niezależnymi prawdopodobieństwami każdym razem, licząc ostatni punkt), a twój przeciwnik wygrał( x , y ) ( 0 , 0 ) ( 20 , y ) 20 + y 20 1 , 2 , , 20 + yy(x,y)(0,0)(20,y)20+y201,2,,20+y(20+y20)21pyPunkty (z niezależnymi prawdopodobieństwami każdym razem), ścieżki powiązane z stanowią całkowitą szansę na1py

f(y)=(20+y20)p21(1p)y.

Podobnie istnieją na reprezentujące remis 20-20. W tej sytuacji nie masz określonej wygranej. Możemy obliczyć szansę na twoją wygraną, przyjmując wspólną konwencję: zapomnij ile punktów zostało zdobytych do tej pory i zacznij śledzić różnicę punktów. Różnica w grze wynosi i zakończy się, gdy najpierw osiągnie lub , koniecznie przechodząc przez po drodze. Niech będzie szansą na wygraną, gdy różnica wynosi .(20+2020)(20,20)0+22±1g(i)i{1,0,1}

Ponieważ Twoja szansa na wygraną w dowolnej sytuacji wynosi , mamyp

g(0)=pg(1)+(1p)g(1),g(1)=p+(1p)g(0),g(1)=pg(0).

Unikalne rozwiązanie tego układu równań liniowych dla wektora implikuje(g(1),g(0),g(1))

g(0)=p212p+2p2.

To jest Twoja szansa na wygraną po osiągnięciu (co występuje z szansą ).(20,20)(20+2020)p20(1p)20

W rezultacie twoja szansa na wygraną jest sumą wszystkich tych rozłącznych możliwości, równych

y=019f(y)+g(0)p20(1p)20(20+2020)=y=019(20+y20)p21(1p)y+p212p+2p2p20(1p)20(20+2020)=p2112p+2p2(y=019(20+y20)(12p+2p2)(1p)y+(20+2020)p(1p)20).

Rzeczy w nawiasach po prawej to wielomian w . (Wygląda na to, że jego stopień to , ale wszystkie wiodące warunki anulują: jego stopień to ).p2120

Gdy , szansa na zwycięstwo jest bliskap=0.580.855913992.

Nie powinieneś mieć problemów z uogólnieniem tej analizy na gry, które kończą się dowolną liczbą punktów. Gdy wymagany margines jest większy niż wynik staje się bardziej skomplikowany, ale równie prosty.2

Nawiasem mówiąc , przy tych szansach na wygraną miałeś szansy na wygranie pierwszych gier. Nie jest to niespójne z tym, co zgłaszasz, co może zachęcić nas do dalszego zakładania, że ​​wyniki każdego punktu są niezależne. W ten sposób przewidujemy, że masz szansę(0.8559)159.7%15

(0.8559)350.432%

wygrać wszystkie pozostałe gier, zakładając, że będą postępować zgodnie z tymi wszystkimi założeniami. To nie brzmi jak dobry zakład, chyba że wypłata jest duża!35


Lubię sprawdzać taką pracę za pomocą szybkiej symulacji. Oto Rkod generujący dziesiątki tysięcy gier na sekundę. Zakłada się, że gra zakończy się w ciągu 126 punktów (bardzo niewiele gier musi trwać tak długo, więc to założenie nie ma istotnego wpływu na wyniki).

n <- 21      # Points your opponent needs to win
m <- 21      # Points you need to win
margin <- 2  # Minimum winning margin
p <- .58     # Your chance of winning a point
n.sim <- 1e4 # Iterations in the simulation

sim <- replicate(n.sim, {
  x <- sample(1:0, 3*(m+n), prob=c(p, 1-p), replace=TRUE)
  points.1 <- cumsum(x)
  points.0 <- cumsum(1-x)
  win.1 <- points.1 >= m & points.0 <= points.1-margin
  win.0 <- points.0 >= n & points.1 <= points.0-margin
  which.max(c(win.1, TRUE)) < which.max(c(win.0, TRUE))
})
mean(sim)

Kiedy to uruchomiłem, wygrałeś w 8570 przypadkach z 10 000 iteracji. Wynik Z (w przybliżeniu rozkład normalny) można obliczyć w celu przetestowania takich wyników:

Z <- (mean(sim) - 0.85591399165186659) / (sd(sim)/sqrt(n.sim))
message(round(Z, 3)) # Should be between -3 and 3, roughly.

Wartość w tej symulacji jest całkowicie zgodna z powyższym obliczeniem teoretycznym.0.31


Załącznik 1

W świetle aktualizacji pytania, które wymienia wyniki pierwszych 18 gier, oto rekonstrukcje ścieżek gier zgodne z tymi danymi. Widać, że dwie lub trzy gry były niebezpiecznie blisko strat. (Każda ścieżka kończąca się na jasnoszarym kwadracie jest dla ciebie stratą).

Rysunek 2

Potencjalne zastosowania tej liczby obejmują obserwację:

  • Ścieżki koncentrują się wokół nachylenia określonego przez stosunek 267: 380 całkowitych wyników, równy w przybliżeniu 58,7%.

  • Rozproszenie ścieżek wokół tego nachylenia pokazuje oczekiwaną zmienność, gdy punkty są niezależne.

    • Jeśli punkty są wykonane w postaci pasm, wówczas pojedyncze ścieżki mają tendencję do posiadania długich odcinków pionowych i poziomych.

    • W dłuższym zestawie podobnych gier spodziewaj się ścieżek, które mają tendencję do pozostawania w obrębie kolorowego zakresu, ale spodziewaj się, że kilka z nich będzie dalej.

    • Perspektywa gry lub dwóch, których ścieżka leży zasadniczo powyżej tego spreadu, wskazuje na możliwość, że twój przeciwnik ostatecznie wygra grę, prawdopodobnie wcześniej niż później.


Załącznik 2

Zażądano kodu do utworzenia figury. Tutaj jest (wyczyszczony, aby uzyskać nieco ładniejszą grafikę).

library(data.table)
library(ggplot2)

n <- 21      # Points your opponent needs to win
m <- 21      # Points you need to win
margin <- 2  # Minimum winning margin
p <- 0.58     # Your chance of winning a point
#
# Quick and dirty generation of a game that goes into overtime.
#
done <- FALSE
iter <- 0
iter.max <- 2000
while(!done & iter < iter.max) {
  Y <- sample(1:0, 3*(m+n), prob=c(p, 1-p), replace=TRUE)
  Y <- data.table(You=c(0,cumsum(Y)), Opponent=c(0,cumsum(1-Y)))
  Y[, Complete := (You >= m & You-Opponent >= margin) |
      (Opponent >= n & Opponent-You >= margin)]
  Y <- Y[1:which.max(Complete)]
  done <- nrow(Y[You==m-1 & Opponent==n-1 & !Complete]) > 0
  iter <- iter+1
}
if (iter >= iter.max) warning("Unable to find a solution. Using last.")
i.max <- max(n+margin, m+margin, max(c(Y$You, Y$Opponent))) + 1
#
# Represent the relevant part of the lattice.
#
X <- as.data.table(expand.grid(You=0:i.max,
                               Opponent=0:i.max))
X[, Win := (You == m & You-Opponent >= margin) |
    (You > m & You-Opponent == margin)]
X[, Loss := (Opponent == n & You-Opponent <= -margin) |
    (Opponent > n & You-Opponent == -margin)]
#
# Represent the absorbing boundary.
#
A <- data.table(x=c(m, m, i.max, 0, n-margin, i.max-margin),
                y=c(0, m-margin, i.max-margin, n, n, i.max),
                Winner=rep(c("You", "Opponent"), each=3))
#
# Plotting.
#
ggplot(X[Win==TRUE | Loss==TRUE], aes(You, Opponent)) +
  geom_path(aes(x, y, color=Winner, group=Winner), inherit.aes=FALSE,
            data=A, size=1.5) +
  geom_point(data=X, color="#c0c0c0") +
  geom_point(aes(fill=Win), size=3, shape=22, show.legend=FALSE) +
  geom_path(data=Y, size=1) +
  coord_equal(xlim=c(-1/2, i.max-1/2), ylim=c(-1/2, i.max-1/2),
              ratio=1, expand=FALSE) +
  ggtitle("Example Game Path",
          paste0("You need ", m, " points to win; opponent needs ", n,
                 "; and the margin is ", margin, "."))
Whuber
źródło
Jaka jest rozłączność ? Czy twoje powtarzane konfiguracje? Na przykład, gdy dwumianowy współczynnik wynosi . Gdy to . Ale jedna z ostatnich konfiguracji to dokładnie ta znaleziona dla (tj. 21 punktów zdobytych dla naszego gracza, 0 dla przeciwnika). Czy nie powinniśmy odejmować prawdopodobieństwa przecięcia? To przede wszystkim mnie zablokowało. f(y)y=01y=1(2120)=21y=0
Easymode44
1
@whuber: Świetnie, czy byłaby to również część „ładnej wizualizacji” r codeujawnienia dotyczącego implementacji? Wielkie dzięki.
Maksymilian
7
@Stefan Moja wartość została obliczona przy użyciu dokładnej racjonalnej arytmetyki (w Mathematica ) i zaokrąglona na końcu. Podejrzewam, że twój mógł zostać obliczony przy użyciu tylko zmiennoprzecinkowego podwójnej precyzji i dlatego zakładam, że kilka ostatnich cyfr jest niepoprawnych. Jako liczba wymierna wartość to
2494929816061114641968058046704583744174849151775019163577995310486129149305191822350025177001953125000000000000000000000000000000000000.
whuber
4
@Maximilian Wysłałem kod do wizualizacji.
whuber
3
Myślę, że prostszym sposobem radzenia sobie z nadgodzinami byłoby zbieranie punktów parami po osiągnięciu 20-20. Jedyne, co się liczy, to albo pierwszy gracz, który wygra oba (prawdopodobieństwo 0,58²), albo drugi, który wygra oba (0,42²). Jeśli coś innego się wydarzy, zignoruj ​​to i graj, dopóki nie pojawi się jedno z powyższych. Prawdopodobieństwo wygranej pierwszego gracza po 20-20 wynosi 0,58² / (0,58² + 0,42²), a drugiego gracza wynosi 0,42² / (0,58² + 0,42²).
supercat
25

Korzystanie z rozkładu dwumianowego i zakładanie, że każdy punkt jest niezależny:

  • Prawdopodobieństwo, że gracz osiągnie w pierwszych punktach (biorąc pod uwagę fakt, że ostatni punkt musi zostać wygrany) to58%2140n=2140(n120)0.58210.42n21 =k=2140(40k)0.58k0.4240k 0.80695

  • Prawdopodobieństwo, że gracz otrzyma z rozegranych punktów, to dwumianowy . prawdopodobieństwo wygranej przez gracza z dwupunktowym marginesem wynosi58%2040(4020)0.58200.42200.07463558%0.5820.582+0.4220.656006

Ogólne prawdopodobieństwo wygranej przez gracza wynosi około0,80695 + 0,074635 × 0,656006 0,855958%0.80695+0.074635×0.656006 0.8559

Prawdopodobieństwo wygrania przez pierwszych gier wynosi około co jest dość mało prawdopodobne. Prawdopodobieństwo wygrania przez graczy w ostatnich grach wynosi około co jest bardzo mało prawdopodobne. 15 0,85559 150,0969 58 % 35 0,85559 350,004358%150.85559150.096958%350.85559350.0043

Henz
źródło
2
Część „prawdopodobieństwo wygranej przez gracza z dwupunktowym marginesem wynosi ”0,58 2 / ( 0,58 2 + 0,42 2 ) 0,65600658%0.582/(0.582+0.422)0.656006 mogłaby jakieś wyjaśnienie, ponieważ jest to prawdopodobnie najtrudniejsza część w tym problem.
JiK
1
@JiK: Raz w lub późniejszej równości, prawdopodobieństwo decydującej pary punktów wynosi więc prawdopodobieństwo, że lepszy gracz uzyska dwa przewagi, a nie gorszy gracz to - w przeciwnym razie wracają do tej samej pozycji0,58 2 + 0,42 2 0,58 220200.582+0.4220.5820.582+0.422
Henry
3
O wiele bardziej zwięzła odpowiedź niż górna, ale myślę, że ponieważ nie miała zdjęć i została opublikowana 12 godzin później, dostaje 80 głosów mniej? = |
Attackfarm
17

Poszedłem z odpowiedzią obliczeniową. Oto funkcja R, która symuluje grę w ping-ponga, w której zwycięzca musi wygrać o 2. Jedynym argumentem jest prawdopodobieństwo wygrania punktu. Zwróci końcowy wynik tej gry:

## data simulation function ----------------------------------------------------
sim_game <- function(pt_chance) {
  them <- 0
  you <- 0
  while (sum((them < 21 & you < 21), abs(them - you) < 2) > 0) {
    if (rbinom(1, 1, pt_chance) == 1) {
      you <- you + 1
      them <- them + 0
    } else {
      you <- you + 0
      them <- them + 1
    }
  }
  return(list(them = them, you = you))
}

Najpierw upewnijmy się, że działa, symulując 10 000 gier, w których masz 50% szans na zdobycie każdego punktu. Powinniśmy zauważyć, że Twój procent wygranych wynosi około 50%:

## testing 10,000 games --------------------------------------------------------
set.seed(1839)
results <- lapply(1:10000, function(x) sim_game(.5))
results <- as.data.frame(do.call(rbind, results))
results$you_win <- unlist(results$you) > unlist(results$them)
mean(results$you_win)

Zwraca .4955, o tym, czego byśmy się spodziewali. Podłączmy więc 58%:

## simulate 10,000 games -------------------------------------------------------
set.seed(1839)
results <- lapply(1:10000, function(x) sim_game(.58))
results <- as.data.frame(do.call(rbind, results))
results$you_win <- unlist(results$you) > unlist(results$them)
mean(results$you_win)

Zwraca 0,8606. Masz około 86,06% szans na wygraną w jednej grze.

Możemy teraz przeprowadzić symulację w 35 partiach gry i zobaczyć, ile razy wygrałbyś wszystkie 35:

## how often do you win all 35? ------------------------------------------------
set.seed(1839)
won_all_35 <- c()
for (i in 1:10000) {
  results <- lapply(1:35, function(x) sim_game(.58))
  results <- as.data.frame(do.call(rbind, results))
  results$you_win <- unlist(results$you) > unlist(results$them)
  won_all_35[i] <- mean(results$you_win) == 1
}
mean(won_all_35)

Zwraca 0,0037, co oznacza, że ​​masz około 0,37% szansy na wygranie następnych 35 gier. Zakłada się, że wszystkie gry i wszystkie punkty są od siebie niezależne. Możesz to zaprogramować bezpośrednio w powyższej funkcji, jeśli chcesz.

Uwaga: robię to w locie. Jestem pewien, że istnieje bardziej wydajny obliczeniowo sposób programowania.

Mark White
źródło
Spróbuj pbetterwins <- pbinom(19,40,0.42) + dbinom(20,40,0.42) * 0.58^2/(0.58^2+0.42^2); pbetterwins; pbetterwins^35wykonać obliczenia przy użyciu rozkładu dwumianowego. Wystarczająco blisko twojej symulacji
Henry
15

Czy należy założyć, że 58% szans na wygraną jest stałe i że punkty są niezależne?

Uważam, że odpowiedź Whubera jest dobra , pięknie napisana i wyjaśniona, gdy bierze się pod uwagę, że każdy punkt jest niezależny od następnego . Uważam jednak, że w praktyce jest to tylko ciekawy punkt wyjścia (teoretyczny / wyidealizowany). Wyobrażam sobie, że w rzeczywistości punkty nie są od siebie niezależne, a to może sprawić, że prawdopodobieństwo, że twój przeciwnik współpracownika wygra co najmniej raz na 50, może być mniej lub bardziej prawdopodobne.

Na początku wyobrażałem sobie, że zależność punktów byłaby procesem losowym , tj. Nie kontrolowanym przez graczy (np. Gdy ktoś wygrywa lub przegrywa inaczej), a to powinno stworzyć większe rozproszenie wyników, z których korzystniej będzie mieć mniejszy gracz ten jeden punkt na pięćdziesiąt.

Druga myśl może jednak sugerować coś przeciwnego : fakt, że „osiągnąłeś” coś z 9,7% szansy, może dać pewne (ale tylko nieznaczne) korzyści, z punktu widzenia bayesowskiego, pomysłom na faworyzowanie mechanizmów, które prowadzą do wygrać więcej niż 85% prawdopodobieństwa wygrania gry (lub przynajmniej zmniejszyć prawdopodobieństwo, że przeciwnik ma znacznie wyższe prawdopodobieństwo niż 15%, jak argumentowano w dwóch poprzednich akapitach). Na przykład może się zdarzyć, że zdobędziesz lepszy wynik, gdy twoja pozycja jest gorsza (nie jest dziwne, że ludzie zdobywają znacznie więcej punktów meczowych, na korzyść lub przeciw, niż na zwykłych punktach). Możesz poprawić szacunki 85%, biorąc pod uwagę te dynamiki i być może masz ponad 85% prawdopodobieństwa wygrania gry.

Tak czy inaczej , użycie tej prostej statystyki punktowej do udzielenia odpowiedzi może być bardzo błędne . Tak, możesz to zrobić, ale nie będzie to właściwe, ponieważ przesłanki (niezależność punktów) niekoniecznie są poprawne i mają duży wpływ na odpowiedź . Statystyka 42/58 to więcej informacji, ale nie wiemy zbyt dobrze, jak z niej korzystać (poprawność modelu), a wykorzystanie informacji może dostarczyć odpowiedzi z dużą precyzją, której tak naprawdę nie ma.


Przykład

Przykład: równie rozsądny model o zupełnie innym wyniku

Tak więc hipotetyczne pytanie (zakładając niezależne punkty i znane teoretyczne prawdopodobieństwa dla tych punktów) jest samo w sobie interesujące i można na nie odpowiedzieć, ale po prostu być denerwujące i sceptyczne / cyniczne; odpowiedź na hipotetyczny przypadek nie odnosi się tak bardzo do twojego podstawowego / pierwotnego problemu i może być powodem, dla którego statystycy / naukowcy z twojej firmy niechętnie udzielają prostej odpowiedzi.

Wystarczy podać alternatywny przykład (niekoniecznie lepszy), który zawiera mylące (kontr-) stwierdzenie „P: jakie jest prawdopodobieństwo wygrania wszystkich 50 gier, jeśli wygrałem już 15?”. Jeśli nie zaczniemy myśleć, że „wyniki punktowe 42/58 są istotne lub dają nam lepsze prognozy”, zaczniemy przewidywać prawdopodobieństwo wygrania gry i przewidywania dotyczące wygrania kolejnych 35 gier wyłącznie na podstawie wcześniej wygranej 15 gier:

  • z techniką Bayesa dla twojego prawdopodobieństwa wygrania gry oznaczałoby to: co stanowi około 31% dla jednolitego przed f (x) = 1, chociaż może to być nieco zbyt optymistyczne. Ale nadal, jeśli weźmiesz pod uwagę rozkład wersji beta z między 1 a 5, możesz:p(win another 35 | after already 15)=01f(p)p5001f(p)p15β=α

szanse tylne jako funkcja wcześniejszej dystrybucji beta

co oznacza, że ​​nie byłbym tak pesymistyczny jak bezpośrednia prognoza 0,432% Fakt, że wygrałeś już 15 gier, powinien zwiększyć prawdopodobieństwo wygrania kolejnych 35 gier.


Uwaga na podstawie nowych danych

Na podstawie twoich danych dla 18 gier próbowałem dopasować model dwumianowy. Zmienianie i i obliczanie prawdopodobieństwa, aby dostać się do wyniku i, 21 (via i, 20) lub wyniku 20,20, a następnie zsumować ich logi do wynik logarytmu wiarygodności.α=μνβ=(1μ)ν

To pokazuje, że bardzo wysoki parametr (małe rozproszenie w leżącym u jego podstaw rozkładzie beta) ma większe prawdopodobieństwo, a zatem prawdopodobnie występuje niewielkie nadmierne rozproszenie. Oznacza to, że dane nie sugerują, że lepiej jest użyć zmiennego parametru dla prawdopodobieństwa wygrania punktu, zamiast ustalonej 58% szansy na wygraną. Te nowe dane zapewniają dodatkowe wsparcie dla analizy Whubera, która zakłada wyniki oparte na rozkładzie dwumianowym. Ale oczywiście nadal zakłada to, że model jest statyczny, a także, że ty i twój współpracownik zachowujesz się zgodnie z modelem losowym (w którym każda gra i punkt są niezależne).ν

Oszacowanie maksymalnego prawdopodobieństwa dla parametrów rozkładu beta zamiast stałej szansy na wygraną 58%:

oszacowanie maksymalnego prawdopodobieństwa dla dystrybucji beta szansy na wygraną 58p

P: Jak odczytać wykres „LogLikelihood dla parametrów mu i nu”?

ZA:

  • 1) Oszacowanie maksymalnego prawdopodobieństwa (MLE) jest sposobem na dopasowanie modelu. Prawdopodobieństwo oznacza prawdopodobieństwo danych, biorąc pod uwagę parametry modelu, a następnie szukamy modelu, który to maksymalizuje. Stoi za tym wiele filozofii i matematyki.
  • 2) Wykres jest leniwą metodą obliczeniową, aby uzyskać optymalny MLE. Po prostu obliczam wszystkie możliwe wartości na siatce i sprawdzam, co to jest valeu. Jeśli potrzebujesz być szybszy, możesz albo zastosować iteracyjną metodę / algorytm obliczeniowy, który szuka optymalnego, albo być może istnieje bezpośrednie rozwiązanie analityczne.
  • 3) Parametry i dotyczą dystrybucji beta https://en.wikipedia.org/wiki/Beta_distribution, która jest używana jako model dla p = 0,58 (aby nie była stała, ale zamiast tego zmieniała się od czasu do czas). Ta modelowana „beta-p” jest następnie łączona z modelem dwumianowym, aby uzyskać prognozy prawdopodobieństwa osiągnięcia określonych wyników. Jest prawie taki sam jak rozkład dwumianowy beta. Widać, że optimum wynosi około co nie jest zaskakujące. Wartość jest wysoka (co oznacza niską dyspersję). Wyobraziłem sobie / oczekiwałem przynajmniej trochę nadmiernej dyspersji.μνμ0.6ν

kod / obliczenia dla wykresu 1

posterior <- sapply(seq(1,5,0.1), function(x) {
    integrate(function(p) dbeta(p,x,x)*p^50,0,1)[1]$value/
    integrate(function(p) dbeta(p,x,x)*p^15,0,1)[1]$value
  }
)

prior <- sapply(seq(1,5,0.1), function(x) {
  integrate(function(p) dbeta(p,x,x)*p^35,0,1)[1]$value
}
)

layout(t(c(1,2)))


plot(  seq(1,5,0.1), posterior,
       ylim = c(0,0.32),
       xlab = expression(paste(alpha, " and ", beta ," values for prior beta-distribution")),
       ylab = "P(win another 35| after already 15)"
)
title("posterior probability assuming beta-distribution")

plot(  seq(1,5,0.1), prior,
       ylim = c(0,0.32),
       xlab = expression(paste(alpha, " and ", beta ," values for prior beta-distribution")),
       ylab = "P(win 35)"
)
title("prior probability assuming beta-distribution")

kod / obliczenia dla wykresu 2

library("shape")

# probability that you win and opponent has kl points
Pwl <- function(a,b,kl,kw=21) {
  kt <- kl+kw-1
  Pwl <- choose(kt,kw-1) * beta(kw+a,kl+b)/beta(a,b)
  Pwl
}

# probability to end in the 20-20 score
Pww <- function(a,b,kl=20,kw=20) {
  kt <- kl+kw
  Pww <- choose(kt,kw) * beta(kw+a,kl+b)/beta(a,b)
  Pww
}

# probability that you lin with kw points
Plw <- function(a,b,kl=21,kw) {
  kt <- kl+kw-1
  Plw <- choose(kt,kw) * beta(kw+a,kl+b)/beta(a,b)
  Plw
}

# calculation of log likelihood for data consisting of 17 opponent scores and 1 tie-position 
# parametezation change from mu (mean) and nu to a and b 
loglike <- function(mu,nu) { 
  a <- mu*nu
  b <- (1-mu)*nu
  scores <- c(18, 17, 11, 13, 15, 15, 16, 9, 17, 17, 13, 8, 17, 11, 17, 13, 19) 
  ps <- sapply(scores, function(x) log(Pwl(a,b,x)))
  loglike <- sum(ps,log(Pww(a,b)))
  loglike
}

#vectors and matrices for plotting contour
mu <- c(1:199)/200
nu <- 2^(c(0:400)/40)
z <- matrix(rep(0,length(nu)*length(mu)),length(mu))
for (i in 1:length(mu)) {
  for(j in 1:length(nu)) {
    z[i,j] <- loglike(mu[i],nu[j])
  }
}

#plotting
levs <- c(-900,-800,-700,-600,-500,-400,-300,-200,-100,-90,-80,-70,-60,-55,-52.5,-50,-47.5)
# contour plot
filled.contour(mu,log(nu),z,
               xlab="mu",ylab="log(nu)",         
               #levels=c(-500,-400,-300,-200,-100,-10:-1),
               color.palette=function(n) {hsv(c(seq(0.15,0.7,length.out=n),0),
                                              c(seq(0.7,0.2,length.out=n),0),
                                              c(seq(1,0.7,length.out=n),0.9))},
               levels=levs,
               plot.axes= c({
                 contour(mu,log(nu),z,add=1, levels=levs)
                 title("loglikelihood for parameters mu and nu")
                 axis(1)
                 axis(2)
               },""),
               xlim=range(mu)+c(-0.05,0.05),
               ylim=range(log(nu))+c(-0.05,0.05)
)
Martijn Weterings
źródło
2
+1 Doceniam nową perspektywę. Podważałbym jednak twierdzenie, że zależność między punktami zwiększa prawdopodobieństwo wygranej przeciwnika w kolejnych 35 grach. W rzeczywistości może pójść w obie strony. Prawdopodobnym mechanizmem przeciwnego wniosku jest to, że jesteś o wiele silniejszy niż sugeruje to przewaga 58-42 punktów, i gdy go wzywają, zawsze możesz zmobilizować się, aby wygrać dowolną grę, nawet jeśli jest daleko w tyle. Rzeczywisty problem braku zakładania niezależności dotyczy sposobu modelowania nie-niezależności.
whuber
@ whuber, masz rację. Opieram się także na oba sposoby. 1) Moje pierwsze myśli poszły w jednym kierunku, zależność byłaby losowa, np. Ludzie mają niekontrolowane wzloty i upadki, dobre i złe chwile, i to, jak sądzę, spowoduje większe rozproszenie wyników, zwiększając prawdopodobieństwo mniejszego gracza. 2) Jednak wtedy myślałem o zasadach bayesowskich i o tym, jak 15 wygranych gier może wpłynąć na analizę (przynajmniej pytanie w poście różni się od pytania w tytule) i mogą istnieć możliwe mechanizmy, które przyniosą korzyści silniejszy gracz.
Martijn Weterings
1
W drugiej połowie mojego postu podam tylko jeden przykład, który dowodzi, że prawdopodobieństwo wygranej powinno być większe niż 86%. Ale choć cała ta matematyka brzmi bardzo precyzyjnie, w rzeczywistości nie jesteśmy tak pewni, ponieważ nasze modele są złe (z dużą ilością dodatkowych, zmniejszających dokładność, subiektywnych informacji), biorąc pod uwagę tak małą ilość informacji.
Martijn Weterings
2
@ whuber Zredagowałem swoją odpowiedź. To był dobry komentarz i mam nadzieję, że teraz odpowiedź jest bardziej przejrzysta.
Martijn Weterings
1
2) Wykres jest leniwą metodą obliczeniową, aby uzyskać optymalny MLE. Po prostu obliczam wszystkie możliwe wartości na siatce i sprawdzam, co to jest valeu. Jeśli potrzebujesz być szybszy, możesz albo zastosować iteracyjną metodę / algorytm obliczeniowy, który szuka optymalnego, albo być może istnieje bezpośrednie rozwiązanie analityczne.
Martijn Weterings
12

Wiele wysiłku można by poświęcić na stworzenie idealnego modelu. Ale czasami zły model jest lepszy. I nic nie mówi o złym modelu, takim jak centralne twierdzenie graniczne - wszystko jest krzywą normalną.

Zignorujemy „nadgodziny”. Będziemy modelować sumę poszczególnych punktów jako normalną krzywą. Będziemy modelować, grając w 38 rund, a kto zdobędzie najwięcej punktów, wygrywa, zamiast najpierw do 20. Jest to całkiem podobna gra!

I na ślepo twierdzę, że zbliżamy się do właściwej odpowiedzi.

Niech będzie rozkładem punktu. ma wartość 1, gdy otrzymasz punkt, a 0, gdy nie.XX

Zatem = ~ i = = ~ .E(X)0.58Var(X)E(X)(1E(X))0.24

Jeśli to niezależne punkty, to to punkty, które otrzymasz po rozegraniu 38 rund.Xii=138Xi

E(i=138Xi) = = ~38E(X)22.04

X 9.12Var(i=138Xi) = 38 * Var ( ) = ~X9.12

i = = ~SD(i=138Xi) 3,0238Var(X))3.02

W naszym surowym modelu przegrywamy, jeśli i wygrywamy, jeśli .38 i = 1 X i > 19i=138Xi<19i=138Xi>19

1,0115,62%22.04193.02 jest odchylenia standardowe od średniej, co przekłada się na o szansy na niepowodzenie po konsultacji z wykresu score .1.0115.62%

Jeśli porównamy z bardziej rygorystycznymi odpowiedziami, jest to około zniżki od prawidłowej wartości.1%

Na ogół lepiej byłoby sprawdzić wiarygodność szansy na zwycięstwo w wysokości niż bardziej rygorystyczny model, który zakłada szansę na i idealnie go modeluje.58 %58%58%

Jak
źródło
@ Yakk, skąd, u diabła, 38 pochodzi? Jestem też całkiem pewien, że var (38 * x) = 38 ^ 2 * var (X), a nie 38 * var (X). Jak Twoje „bardzo ładne obliczenie koperty” utrzymuje się po naprawieniu tego błędu?
use_norm_approx
@ use_ Używam niechlujnego 38 * X jako „sumy 38 niezależnych X”, a nie „jednego X razy 38”. 38 pochodzi od „kto wygra więcej niż 19, ten wygrywa jako pierwszy”. Zamiast tego mogłem użyć 39 gier, a pierwsza> 19,5; wynik byłby podobny.
Jak
3

Na podstawie symulacji wygląda na to, że prawdopodobieństwo wygrania dowolnej gry wynosi około 85,5%.

Prawdopodobieństwo wygranej o dokładnie 2 (tak czytam tytuł, ale wydaje się, że nie o to pytasz) wynosi około 10,1%.

Uruchom poniższy kod.

set.seed(328409)
sim.game <- function(p)
{
 x1 = 0 
 x2 = 0 
 while( (max(c(x1,x2)) < 21) | abs(x1-x2)<2  ) 
 {
   if(runif(1) < p) x1 = x1 + 1 else x2 = x2 + 1 
 }
 return( c(x1,x2) ) 
}

S <- matrix(0, 1e5, 2)
for(k in 1:1e5) S[k,] <- sim.game(0.58)

mean( (S[,1]-S[,2]) == 2 ) #chance of winning by 2
mean(S[,1]>S[,2]) #chance of winning
w obrębie osoby
źródło
1
To bardzo zbliża się do rozwiązania analitycznego Whubera: dbinom(20,40,0.58)*0.58^2/(1-2*0.58+2*0.58^2)+dbinom(20,39,0.58)*0.58daje 10,04%
Martijn Weterings