L'analyse est compliquée par la perspective que le jeu passe en "prolongation" afin de gagner avec une marge d'au moins deux points. (Sinon, ce serait aussi simple que la solution présentée à l' adresse https://stats.stackexchange.com/a/327015/919 .) Je montrerai comment visualiser le problème et comment l'utiliser pour le décomposer en contributions faciles à calculer: la réponse. Le résultat, bien qu'un peu brouillon, est gérable. Une simulation confirme son exactitude.
Soit votre probabilité de gagner un point. p Supposons que tous les points sont indépendants. La chance que vous gagnez une partie peut être décomposée en événements (non-interchangeables) en fonction du nombre de points que votre adversaire a à la fin en supposant que vous n'effectuez pas de temps supplémentaire ( ) ou que vous le faites en temps supplémentaire. Dans ce dernier cas, il est (ou deviendra) évident que, à un moment donné, le score était de 20-20.0 , 1 , … , 19
Il y a une belle visualisation. Laissez les scores de la partie sous forme de points où x est votre score et y le score de votre adversaire. Au fur et à mesure du déroulement du jeu, les scores se déplacent le long du réseau entier du premier quadrant commençant à ( 0 , 0 ) , créant ainsi un chemin de jeu . Il se termine la première fois que l’un d’entre vous a marqué au moins 21 et a une marge d’au moins 2 . Ces points gagnants forment deux ensembles de points, la "limite d'absorption" de ce processus, à laquelle le chemin de jeu doit se terminer.( x , y)Xy( 0 , 0 )212
Cette figure montre une partie de la limite d'absorption (elle s'étend infiniment vers le haut et vers la droite) ainsi que le tracé d'un match en prolongation (avec une perte pour vous, hélas).
Comptons. Le nombre de façons dont le jeu peut se terminer avec des points pour votre adversaire est le nombre de chemins distincts dans le réseau entier de scores ( x , y ) commençant au score initial ( 0 , 0 ) et se terminant à l'avant-dernier score ( 20 , y ) . Ces chemins sont déterminés par lequel des 20 + y points du jeu que vous avez gagnés. Ils correspondent donc aux sous-ensembles de taille 20 des nombres 1 , 2 , … , 20 +y( x , y)( 0 , 0 )( 20 , y)20 + y20 , et il y a ( 20 + y1 , 2 , … , 20 + y d'entre eux. Etant donnédans chaque cheminvous avez gagné21points(avecprobabilités indépendantespchaque fois,comptant le dernier point) et votre adversaire gagnéypoints (avecprobabilités indépendantes1-pchaque fois), les chemins associés àycompte pourune chance total de( 20+y20)21py1 - py
F( y) = ( 20 + y20) p21( 1 - p )y.
De même, il y a façons d’arriver à(20,20)représentant le match nul 20-20. Dans cette situation, vous n'avez pas de victoire définitive. Nous pouvons calculer les chances de votre victoire en adoptant une convention commune: oubliez le nombre de points marqués jusqu'à présent et commencez à suivre le différentiel de points. Le jeu est à un différentiel de0et se terminera quand il atteindra pour la première fois+2ou-2, en passant nécessairement par±1 encours de route. Soitg(i)la chance que tu gagnes quand le différentiel esti∈{-1( 20+2020)( 20 , 20 )0+ 2- 2± 1g( i ) .i ∈ { - 1 , 0 , 1 }
Puisque votre chance de gagner dans n'importe quelle situation est , nous avonsp
g( 0 )g( 1 )g( - 1 )= p g(1)+(1−p)g(−1),=p+(1−p)g(0),=pg(0).
La solution unique à ce système d’équations linéaires pour le vecteur implique( g( - 1 ) , g( 0 ) , g( 1 ) )
g(0)=p21−2p+2p2.
C’est donc votre chance de gagner une fois atteinte (ce qui se produit avec une chance de ( 20 + 20)(20,20)).(20+2020)p20(1−p)20
Par conséquent, votre chance de gagner est la somme de toutes ces possibilités disjointes, égale à
==∑y=019f(y)+g(0)p20(1−p)20(20+2020)∑y=019(20+y20)p21(1−p)y+p21 - 2p+2p2p20( 1 -p)20(20+2020)p211 - 2 p +2p2(∑y=019( 20+y20) (1-2p+2p2) ( 1 - p)y+ ( 20 +2020) p(1-p )20) .
Le contenu entre les parenthèses sur la droite est un polynôme dans . (Il semble que son degré soit égal à 21 , mais les termes principaux s’annulent tous: son degré est égal à 20. )p2120
Lorsque , les chances de gagner sont proches de 0,855913992.p = 0,580,855913992.
Vous ne devriez pas avoir de difficulté à généraliser cette analyse aux jeux qui se terminent par un nombre de points quelconque. Lorsque la marge requise est supérieure à le résultat devient plus compliqué mais reste tout aussi simple.2
Incidemment , avec ces chances de gagner, vous aviez chances de gagner les 15 premiers matchs. Cela n’est pas incompatible avec ce que vous rapportez, ce qui pourrait nous encourager à continuer à supposer que les résultats de chaque point sont indépendants. Nous projeterions ainsi que vous avez une chance de( 0.8559 … )15≈ 9,7 %15
( 0.8559 … )35≈ 0,432 %
de remporter tous les jeux restants , en supposant qu'ils procèdent en fonction de toutes ces hypothèses. Cela ne semble pas être un bon pari, à moins que le gain soit important!35
J'aime vérifier un travail comme celui-ci avec une simulation rapide. Voici le R
code pour générer des dizaines de milliers de jeux en une seconde. Cela suppose que le jeu sera terminé dans un délai de 126 points (extrêmement peu de jeux ont besoin de continuer aussi longtemps, cette hypothèse n'a donc aucun effet matériel sur les résultats).
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)
Quand j’ai couru ça, vous avez gagné dans 8 570 cas sur 10 000 itérations. Un score Z (avec approximativement une distribution normale) peut être calculé pour tester de tels résultats:
Z <- (mean(sim) - 0.85591399165186659) / (sd(sim)/sqrt(n.sim))
message(round(Z, 3)) # Should be between -3 and 3, roughly.
La valeur de dans cette simulation est parfaitement cohérente avec le calcul théorique précédent.0,31
Annexe 1
À la lumière de la mise à jour de la question, qui répertorie les résultats des 18 premiers jeux, voici des reconstructions de chemins de jeu cohérents avec ces données. Vous pouvez voir que deux ou trois des jeux ont été dangereusement proches des pertes. (Tout chemin se terminant sur un carré gris clair est une perte pour vous.)
Les utilisations potentielles de cette figure incluent:
Les chemins se concentrent autour d'une pente donnée par le ratio 267: 380 du total des scores, soit environ 58,7%.
La dispersion des chemins autour de cette pente montre la variation attendue lorsque les points sont indépendants.
Si les points sont faits en traînées, les trajectoires individuelles auront tendance à avoir de longues étendues verticales et horizontales.
Dans une série plus longue de jeux similaires, attendez-vous à voir des chemins qui tendent à rester dans la plage colorée, mais attendez-vous également à ce que quelques-uns s'étendent au-delà.
La perspective d’une ou deux parties dont le chemin se situe généralement au-dessus de cet écart indique la possibilité que votre adversaire finisse par gagner une partie, probablement le plus tôt possible.
Annexe 2
Le code pour créer la figure a été demandé. La voici (nettoyée pour produire un graphique légèrement plus joli).
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, "."))