Se ho una probabilità del 58% di vincere un punto, qual è la possibilità che io vinca una partita di ping pong a 21, vinca per 2?


90

Ho una scommessa con un collega che su 50 partite di ping pong (prima per vincere 21 punti, per 2), vincerò tutti e 50. Finora abbiamo giocato 15 partite e in media ho vinto il 58% di i punti, in più ho vinto tutte le partite finora. Quindi ci chiediamo se ho il 58% di possibilità di vincere un punto e lui ha il 42% di possibilità di vincere un punto, qual è la percentuale di probabilità che io vinca la partita? Esiste una formula che possiamo collegare in% possibilità di differenza?

Abbiamo cercato su Google dappertutto e abbiamo persino chiesto ai data scientist della nostra azienda ma non siamo riusciti a trovare una risposta diretta.

Modifica: Wow, sono stupito dalla completezza delle risposte. Grazie mille !!! Nel caso in cui le persone siano curiose, ho un aggiornamento su come va la mia scommessa: ora ho vinto 18 partite su 50, quindi ho bisogno di vincere altre 32 partite. Ho vinto il 58,7% di tutti i punti e il mio avversario ha quindi vinto il 41,3% di punti. La deviazione standard per il mio avversario è 3,52, il suo punteggio medio è 14,83 e il suo punteggio mediano è 15,50. Di seguito è riportato uno screenshot del punteggio di ogni gioco finora. Posso continuare ad aggiornare mentre la scommessa continua, se le persone sono interessate.

Modifica n. 2 : purtroppo siamo stati in grado di giocare solo qualche altro gioco, di seguito sono riportati i risultati. Continuerò a sostituire l'immagine in modo da non avere un sacco di schermate della partitura.

Aggiornamento finale : alla fine ho perso con il mio collega nel gioco n. 28. Mi ha battuto 21-13. Grazie per tutto il vostro aiuto!

inserisci qui la descrizione dell'immagine


11
C'è una formula: per è nella forma volte un grado-20 polinomio: 21 termini in tutto (con grandi coefficienti, la più grande superiore ). Se tutti i punti sono indipendenti, hai solo una probabilità dello di vincere le prossime 35 partite. p 21 / ( 1 - 2 p + 2 p 2 ) 1.6 × 10 16 0.432 %p=0.58,p21/(12p+2p2)1.6×10160.432%
whuber

8
Dubito che tutti i punti (e i giochi) siano indipendenti l'uno dall'altro (per una serie di motivi). La non indipendenza potrebbe avere un grande impatto sulla risposta.
Mark L. Stone,

8
Supponendo che sia lo stesso gioco a cui ho giocato, ricordo che quello che serve ha un vantaggio; così ignorando tutto ciò che riguarda la "mano calda" potrebbe essere che tu vinca il 68% quando servi e il 48% quando no - ciò distorcerà tutte le probabilità; anche se pari al 58% Non abbiamo quindi abbastanza informazioni ..
Hans Olsson,

5
Solo un commento - 21 punti? Il tennis da tavolo è passato a un formato da 11 punti, il migliore di 7 partite, 2 per giocatore alla volta, nel 2001.
rcgldr

5
Continuerò a pubblicare aggiornamenti su questa scommessa ogni 5 giochi circa. Sfortunatamente possiamo giocare solo alcuni giochi a settimana poiché giochiamo solo dopo il lavoro.
Richard

Risposte:


119

L'analisi è complicata dalla prospettiva che il gioco vada in "straordinario" al fine di vincere con un margine di almeno due punti. (Altrimenti sarebbe semplice come la soluzione mostrata su https://stats.stackexchange.com/a/327015/919 .) Mostrerò come visualizzare il problema e utilizzarlo per scomporlo in contributi prontamente calcolati a la risposta. Il risultato, sebbene un po 'disordinato, è gestibile. Una simulazione conferma la sua correttezza.


Lasciate che sia la vostra probabilità di vincere un punto. p Supponiamo che tutti i punti siano indipendenti. La possibilità di vincere una partita può essere suddivisa in eventi (non sovrapposti) in base a quanti punti il ​​tuo avversario ha alla fine supponendo che tu non faccia gli straordinari ( ) o che tu faccia gli straordinari . In quest'ultimo caso è (o diventerà) evidente che ad un certo punto il punteggio era 20-20.0,1,,19

C'è una bella visualizzazione. Consenti ai punteggi durante il gioco di essere tracciati come punti cui è il tuo punteggio e è il punteggio del tuo avversario. Mentre il gioco si svolge, i punteggi si spostano lungo il reticolo intero nel primo quadrante a partire da , creando un percorso di gioco . Termina la prima volta che uno di voi ha segnato almeno e ha un margine di almeno . Tali punti vincenti formano due serie di punti, il "limite assorbente" di questo processo, dove deve terminare il percorso di gioco.x y ( 0 , 0 ) 21 2(x,y)xy(0,0)212

figura

Questa figura mostra parte del confine assorbente (si estende all'infinito verso l'alto e verso destra) insieme al percorso di un gioco che è andato nello straordinario (purtroppo con una perdita per te).

Contiamo. Il numero di modi in cui il gioco può terminare con punti per il tuo avversario è il numero di percorsi distinti nel reticolo intero di punteggi che iniziano al punteggio iniziale e terminano al penultimo punteggio . Tali percorsi sono determinati da quale dei punti nel gioco hai vinto. Corrispondono quindi ai sottoinsiemi di dimensione dei numeri , e ne sono presenti . Dato che in ognuno di questi percorsi hai vinto punti (con probabilità indipendenti ogni volta, contando il punto finale) e il tuo avversario ha vinto( 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)21py punti (con probabilità indipendenti ogni volta), i percorsi associati a rappresentano una probabilità totale di1py

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

Allo stesso modo, ci sono modi per arrivare a rappresentano il pareggio 20-20. In questa situazione non hai una vittoria definitiva. Potremmo calcolare la possibilità della tua vittoria adottando una convenzione comune: dimentica quanti punti sono stati segnati finora e inizia a tracciare il differenziale di punti. Il gioco ha un differenziale di e termina quando raggiunge per la prima volta o , passando necessariamente attraverso lungo la strada. Sia la possibilità di vincere quando il differenziale è .(20+2020)(20,20)0+22±1g(i)i{1,0,1}

Dal momento che la tua possibilità di vincere in qualsiasi situazione è , abbiamop

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

La soluzione unica a questo sistema di equazioni lineari per il vettore implica(g(1),g(0),g(1))

g(0)=p212p+2p2.

Questa, quindi, è la tua possibilità di vincere una volta (che si verifica con una possibilità di ).(20,20)(20+2020)p20(1p)20

Di conseguenza, la tua possibilità di vincere è la somma di tutte queste possibilità disgiunte, pari a

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

La roba tra parentesi a destra è un polinomio in . (Sembra che il suo grado sia , ma i termini principali si annullano tutti: il suo grado è ).p2120

Quando , la possibilità di una vittoria è vicina ap=0.580.855913992.

Non dovresti avere problemi a generalizzare questa analisi a giochi che terminano con un numero qualsiasi di punti. Quando il margine richiesto è maggiore di il risultato diventa più complicato ma altrettanto semplice.2

Per inciso , con queste possibilità di vincita, hai avuto possibilità di vincere le prime partite. Ciò non è in contrasto con quanto riportato, il che potrebbe incoraggiarci a continuare a supporre che i risultati di ciascun punto siano indipendenti. Proietteremo quindi che tu ne abbia la possibilità(0.8559)159.7%15

(0.8559)350.432%

di vincere tutti i giochi rimanenti , supponendo che procedano secondo tutti questi presupposti. Non sembra una buona scommessa da fare a meno che il payoff non sia grande!35


Mi piace controllare il lavoro in questo modo con una rapida simulazione. Ecco il Rcodice per generare decine di migliaia di giochi in un secondo. Presuppone che il gioco finirà entro 126 punti (pochissimi giochi devono continuare così a lungo, quindi questa ipotesi non ha alcun effetto materiale sui risultati).

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)

Quando ho eseguito questo, hai vinto in 8.570 casi su 10.000 iterazioni. Un punteggio Z (con approssimativamente una distribuzione normale) può essere calcolato per testare tali risultati:

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

Il valore di in questa simulazione è perfettamente coerente con il precedente calcolo teorico.0.31


Appendice 1

Alla luce dell'aggiornamento alla domanda, che elenca i risultati dei primi 18 giochi, ecco le ricostruzioni dei percorsi di gioco coerenti con questi dati. Puoi vedere che due o tre dei giochi erano pericolosamente vicini alle perdite. (Qualsiasi percorso che termina su un quadrato grigio chiaro è una perdita per te.)

figura 2

I potenziali usi di questa figura includono l'osservazione:

  • I percorsi si concentrano attorno a una pendenza data dal rapporto 267: 380 dei punteggi totali, pari a circa 58,7%.

  • La dispersione dei percorsi attorno a quella pendenza mostra la variazione prevista quando i punti sono indipendenti.

    • Se i punti vengono creati in strisce, i singoli percorsi tendono ad avere lunghi tratti verticali e orizzontali.

    • In una serie più lunga di giochi simili, aspettati di vedere percorsi che tendono a rimanere all'interno della gamma colorata, ma si aspettano anche che alcuni si estendano oltre.

    • La prospettiva di una o due partite il cui percorso si trova generalmente al di sopra di questo spread indica la possibilità che il tuo avversario alla fine vincerà una partita, probabilmente prima piuttosto che dopo.


Appendice 2

È stato richiesto il codice per creare la figura. Eccolo (ripulito per produrre un grafico leggermente più bello).

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, "."))

In che modo la disgiunta? Le tue configurazioni ripetute? Ad esempio, quando il coefficiente binomiale è . Quando quindi . Ma una di queste ultime configurazioni è esattamente quella trovata per (ovvero 21 punti vinti per il nostro giocatore, 0 per l'avversario). Non dovremmo sottrarre le probabilità di incroci? Questo è ciò che mi ha bloccato in primo luogo. f(y)y=01y=1(2120)=21y=0
Easymode44,

1
@whuber: Fantastico, sarebbe anche la parte "bella visualizzazione" della r codedivulgazione dell'implementazione? Grazie molto.
Massimiliano,

7
@Stefan Il mio valore è stato calcolato usando l'aritmetica razionale esatta (in Mathematica ) e arrotondata alla fine. Ho il sospetto che il tuo potrebbe essere stato calcolato utilizzando solo la virgola mobile a precisione doppia, e quindi presumo che le tue ultime cifre siano errate. Come numero razionale il valore è
2494929816061114641968058046704583744174849151775019163577995310486129149305191822350025177001953125000000000000000000000000000000000000.
whuber

4
@Maximilian Ho pubblicato il codice per la visualizzazione.
whuber

3
Penso che un modo più semplice per gestire gli straordinari sarebbe quello di prendere punti in coppia una volta raggiunti i 20-20. Le uniche cose che contano sono il primo giocatore che vince entrambi (probabilità 0,58²) o il secondo che vince entrambi (0,42²). Se succede qualcos'altro, ignoralo e continua a giocare fino a quando si verifica quanto sopra. La probabilità di vincita del primo giocatore dopo 20-20 è quindi 0,58² / (0,58² + 0,42²) e il secondo giocatore è 0,42² / (0,58² + 0,42²).
supercat,

25

L'uso della distribuzione binomiale e l'assunzione di ogni punto è indipendente:

  • La probabilità che il giocatore arrivi a nei primi punti (tenendo conto del fatto che l'ultimo punto deve essere vinto) è58%2140n=2140(n120)0.58210.42n21 =k=2140(40k)0.58k0.4240k 0.80695

  • La probabilità che giocatori ottenga da punti giocati è il binomio . In base a ciò, la probabilità che il giocatore del vinca quindi con il margine di due punti è58%2040(4020)0.58200.42200.07463558%0.5820.582+0.4220.656006

Quindi la probabilità complessiva che il giocatori vince è di circa58%0.80695+0.074635×0.656006 0.8559

La probabilità che il giocatori vinca le prime partite è quindi circa che è abbastanza improbabile. La probabilità che il giocatori vinca le ultime partite è circa che è molto improbabile. 58%150.85559150.096958%350.85559350.0043


2
La parte "la probabilità che il giocatore del vinca quindi con un margine di due punti è "58%0.582/(0.582+0.422)0.656006 potrebbe usare una spiegazione, poiché è probabilmente la parte più difficile in questo problema.
JiK,

1
@JiK: una volta alla parità di o successiva, la probabilità di una coppia decisiva di punti è e quindi la probabilità che il giocatore migliore faccia due in vantaggio anziché il giocatore peggiore che lo fa è - altrimenti ritornano nella stessa posizione20200.582+0.4220.5820.582+0.422
Henry,

3
Una risposta molto più concisa della risposta migliore, ma immagino che non avendo foto ed è stata pubblicata 12 ore dopo, ottiene 80 voti in meno? = |
Attackfarm,

17

Sono andato con una risposta computazionale. Ecco una funzione R che simula una partita di ping-pong in cui il vincitore deve vincere per 2. L'unico argomento è la probabilità di vincere un punto. Restituirà il punteggio finale di quel gioco:

## 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))
}

Per prima cosa assicurati che funzioni simulando 10.000 giochi in cui hai il 50% di possibilità di vincere ogni punto. Dobbiamo osservare che la percentuale di vincita è di circa il 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)

Questo restituisce .4955, su ciò che ci aspetteremmo. Quindi inseriamo il tuo 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)

Questo restituisce .8606. Quindi hai circa l'86,06% di possibilità di vincere una partita.

Ora possiamo simulare tra 35 lotti di gioco e vedere quante volte vinceresti tutti e 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)

Ciò restituisce 0,0037, il che significa che hai circa una probabilità dello 0,37% di vincere le prossime 35 partite. Ciò presuppone che tutti i giochi e tutti i punti siano indipendenti l'uno dall'altro. Puoi programmarlo esplicitamente nella funzione sopra, se lo desideri.

Nota: lo sto facendo al volo. Sono sicuro che esiste un modo più efficiente dal punto di vista computazionale di programmare questo.


Prova pbetterwins <- pbinom(19,40,0.42) + dbinom(20,40,0.42) * 0.58^2/(0.58^2+0.42^2); pbetterwins; pbetterwins^35a calcolare usando la distribuzione binomiale. Abbastanza vicino alla tua simulazione
Henry,

15

Dovremmo supporre che la probabilità del 58% di vincere sia fissa e che i punti siano indipendenti?

Credo che la risposta di Whuber sia buona , e ben scritta e spiegata, quando si considera che ogni punto è indipendente da quello successivo . Tuttavia credo che, in pratica, sia solo un punto di partenza interessante (teorico / idealizzato). Immagino che in realtà i punti non siano indipendenti l'uno dall'altro, e ciò potrebbe rendere più o meno probabile che il tuo avversario collaboratore ottenga una vittoria almeno una volta su 50.

All'inizio ho immaginato che la dipendenza dei punti sarebbe un processo casuale , cioè non controllato dai giocatori (ad esempio quando uno sta vincendo o perdendo il gioco in modo diverso), e questo dovrebbe creare una maggiore dispersione dei risultati a beneficio del giocatore minore per ottenere questo punto su cinquanta.

Un secondo pensiero potrebbe suggerire il contrario : il fatto che tu abbia già "ottenuto" qualcosa con un 9,7% di probabilità può dare qualche (ma solo lieve) beneficio, dal punto di vista bayesiano, alle idee su come favorire meccanismi che ti spingono a vincere più dell'85% di probabilità di vincere una partita (o almeno rendere meno probabile che il tuo avversario abbia una probabilità molto più alta del 15%, come sostenuto nei due paragrafi precedenti). Ad esempio, è possibile che tu ottenga un punteggio migliore quando la tua posizione è meno buona (non è strano per le persone segnare molto più diverse sui punti di incontro, a favore o contro, rispetto ai punti normali). Puoi migliorare le stime dell'85% prendendo in considerazione queste dinamiche e probabilmente hai più dell'85% di probabilità di vincere una partita.

Ad ogni modo, potrebbe essere molto sbagliato usare questa semplice statistica dei punti per fornire una risposta. Sì, puoi farlo, ma non sarà giusto poiché le premesse (indipendenza dei punti) non sono necessariamente corrette e influenzano fortemente la risposta . La statistica 42/58 è più informazioni ma non sappiamo molto bene come usarla (la correttezza del modello) e l'uso delle informazioni potrebbe fornire risposte con la massima precisione che in realtà non ha.


Esempio

Esempio: un modello altrettanto ragionevole con un risultato completamente diverso

Quindi la domanda ipotetica (ipotizzando punti indipendenti e probabilità note, teoriche, per questi punti) è in sé interessante e può essere risolta, ma solo per essere fastidiosa e scettica / cinica; una risposta al caso ipotetico non si riferisce molto al problema sottostante / originale e potrebbe essere il motivo per cui gli statistici / data scientist della vostra azienda sono riluttanti a fornire una risposta diretta.

Solo per fare un esempio alternativo (non necessariamente migliore) che fornisce una dichiarazione confusa (contro): "D: qual è la probabilità di vincere tutto il totale di 50 partite se ne ho già vinte 15?" Se non iniziamo a pensare che "i punti punteggio 42/58 sono rilevanti o ci forniscono previsioni migliori", inizieremmo a fare previsioni sulla tua probabilità di vincere la partita e previsioni per vincere altre 35 partite esclusivamente sulla base delle tue vincite in precedenza 15 giochi:

  • con una tecnica bayesiana per la tua probabilità di vincere una partita ciò significherebbe: che è all'incirca il 31% per un precedente uniforme f (x) = 1, anche se potrebbe essere un po 'troppo ottimista. Tuttavia, se si considera una distribuzione beta con tra 1 e 5, si arriva a:p(win another 35 | after already 15)=01f(p)p5001f(p)p15β=α

possibilità posteriori in funzione della precedente distribuzione beta

il che significa che non sarei così pessimista come la semplice previsione dello 0,432% Il fatto che tu abbia già vinto 15 partite dovrebbe aumentare la probabilità che tu vinca le prossime 35 partite.


Nota basata sui nuovi dati

Sulla base dei tuoi dati per i 18 giochi ho provato ad adattare un modello beta-binomiale. Variando e e calcolando le probabilità per ottenere un punteggio i, 21 (tramite i, 20) o un punteggio 20,20 e quindi sommare i loro log in un punteggio di verosimiglianza.α=μνβ=(1μ)ν

Mostra che un parametro molto elevato (poca dispersione nella distribuzione beta sottostante) ha una probabilità più alta e quindi probabilmente c'è poca dispersione eccessiva. Ciò significa che i dati non suggeriscono che è meglio utilizzare un parametro variabile per la probabilità di vincere un punto, invece della probabilità fissa del 58% di vincere. Questi nuovi dati forniscono ulteriore supporto all'analisi di Whuber, che presuppone punteggi basati su una distribuzione binomiale. Naturalmente, ciò presuppone che il modello sia statico e che tu e il tuo collega vi comportiate secondo un modello casuale (in cui ogni gioco e punto sono indipendenti).ν

Stima della massima verosimiglianza per i parametri della distribuzione beta al posto della probabilità di vincita fissa del 58%:

stima della massima verosimiglianza per la distribuzione beta delle probabilità di vincita 58p

D: come posso leggere il grafico "LogLikelihood per parametri mu e nu"?

UN:

  • 1) La stima della massima verosimiglianza (MLE) è un modo per adattarsi a un modello. Probabilità significa la probabilità dei dati dati i parametri del modello e quindi cerchiamo il modello che massimizza questo. C'è molta filosofia e matematica dietro.
  • 2) La trama è un metodo di calcolo pigro per arrivare al MLE ottimale. Ho solo calcolato tutti i possibili valori su una griglia e ho visto qual è il valore. Se è necessario essere più veloci, è possibile utilizzare un metodo / algoritmo iterativo computazionale che cerca l'ottimale, oppure potrebbe esserci una soluzione analitica diretta.
  • 3) I parametri e riferiscono alla distribuzione beta https://en.wikipedia.org/wiki/Beta_distribution che viene utilizzata come modello per p = 0,58 (per renderlo non riparato ma invece variare da tempo a tempo). Questo 'beta-p' modellato viene poi combinato con un modello binomiale per arrivare a previsioni di probabilità per raggiungere determinati punteggi. È quasi uguale alla distribuzione beta-binomiale. Potete vedere che l'ottimale è intorno a che non sorprende. Il valore è alto (che significa bassa dispersione). Avevo immaginato / aspettato almeno un po 'di dispersione eccessiva.μνμ0.6ν

codice / calcolo per il grafico 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")

codice / calcolo per il grafico 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)
)

2
+1 Apprezzo la nuova prospettiva. Ma sfiderei l'affermazione che la dipendenza tra i punti rende più probabile l'avversario nelle prossime 35 partite. In effetti, potrebbe andare in entrambi i modi. Un meccanismo plausibile per la conclusione opposta è che sei molto più forte del vantaggio del 58-42 in punti, e che quando viene chiamato, puoi sempre radunarti per vincere qualsiasi partita anche se molto indietro. Il vero problema nel non assumere l'indipendenza riguarda come modellare la non indipendenza.
whuber

@whuber, hai ragione. Discuto anche per entrambi i modi. 1) I miei primi pensieri sono andati in una direzione in cui la dipendenza sarebbe stata casuale, ad esempio le persone hanno alti e bassi incontrollati momenti positivi e momenti negativi, e questo immagino creerà una maggiore dispersione dei risultati aumentando la probabilità del giocatore minore. 2) Tuttavia, allora stavo pensando ai principi bayesiani e al modo in cui i 15 giochi vinti possono influenzare l'analisi (almeno la domanda nel post è una situazione diversa dalla domanda nel titolo) e potrebbero esserci possibili meccanismi a beneficio del giocatore più forte.
Sisto Empirico

1
Nella seconda metà del mio post faccio solo un esempio che sostiene che la probabilità di vincere dovrebbe essere maggiore dell'86%. Ma mentre tutta questa matematica sembra molto precisa, in realtà non siamo così sicuri dato che i nostri modelli sono cattivi (con molte informazioni addizionali che diminuiscono la precisione e soggettive) data questa piccola quantità di informazioni.
Sisto Empirico

2
@whuber Ho modificato la mia risposta. È stato un buon commento e spero che ora sia più chiaro nella risposta.
Sisto Empirico

1
2) La trama è un metodo di calcolo pigro per arrivare al MLE ottimale. Ho solo calcolato tutti i possibili valori su una griglia e ho visto qual è il valore. Se è necessario essere più veloci, è possibile utilizzare un metodo / algoritmo iterativo computazionale che cerca l'ottimale, oppure potrebbe esserci una soluzione analitica diretta.
Sesto Empirico,

12

Molto sforzo potrebbe essere speso per un modello perfetto. Ma a volte un modello cattivo è meglio. E nulla dice modello cattivo come il teorema del limite centrale: tutto è una curva normale.

Ignoreremo il "lavoro straordinario". Modelleremo la somma dei singoli punti come una curva normale. Faremo il modello giocando 38 round e chiunque vincerà il maggior numero di punti, anziché il primo a 20. Questo è un gioco abbastanza simile!

E, alla cieca, dirò che ci avviciniamo alla risposta giusta.

Lascia che sia la distribuzione di un punto. ha valore 1 quando ottieni un punto e 0 quando non lo fai.XX

Quindi = ~ e = = ~ .E(X)0.58Var(X)E(X)(1E(X))0.24

Se sono punti indipendenti, allora sono i punti che ottieni dopo aver giocato 38 round.Xii=138Xi

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

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

e = = ~SD(i=138Xi)38Var(X))3.02

Nel nostro modello grezzo, perdiamo if e vinciamo se .38 i = 1 X i > 19i=138Xi<19i=138Xi>19

1,0115,62%22.04193.02 è deviazioni standard dalla media, il che comporta una probabilità del di insuccesso dopo aver consultato un grafico con punteggio z .1.0115.62%

Se confrontiamo con le risposte più rigorose, questo è circa l' sconto sul valore corretto.1%

In genere sarebbe meglio esaminare l'affidabilità della probabilità di vittoria del piuttosto che un modello più rigoroso che presuppone una probabilità del e la modella perfettamente.58 %58%58%


@Yakk, da dove diavolo sono venuti i 38 ?? Inoltre sono abbastanza sicuro var (38 * x) = 38 ^ 2 * var (X), non 38 * var (X). In che modo il "bel retro del calcolo della busta" regge dopo aver corretto l'errore?
use_norm_approx il

@use_ Sto usando un 38 * X sciatto come "somma di 38 X indipendenti", non "una X per 38". 38 deriva da "chi ottiene più di 19 vittorie vince per primo il gioco". Avrei potuto usare 39 giochi e il primo> 19,5 invece; il risultato sarebbe simile.
Yakk,

3

Basato sulla simulazione, sembra che la probabilità di vincere un dato gioco sia dell'85,5% circa.

La probabilità di vincere esattamente 2 (che è il modo in cui ho letto il titolo, ma non sembra essere quello che stai chiedendo) è di circa il 10,1%.

Esegui il codice qui sotto.

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

1
Questo si avvicina molto alla soluzione analitica di Whuber: dbinom(20,40,0.58)*0.58^2/(1-2*0.58+2*0.58^2)+dbinom(20,39,0.58)*0.58dare il 10,04%
Sisto Empirico
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.