Bir puan kazanma şansım% 58 ise, 21'e bir ping pong oyunu kazanma şansım nedir, 2'ye kadar kazanma şansım nedir?


90

Bir meslektaşla 50 ping pong oyunundan (ilk önce 21 puan, 2 ile kazanacağım), 50 tanenin hepsini kazanacağım üzerine bir bahis oynarım. Şimdiye kadar 15 maç oynadık ve ortalama olarak% 58 kazandı. puan, artı şimdiye kadar tüm oyunları kazandım. Yani,% 58 puan kazanma şansım olup olmadığını ve% 42 puan kazanma şansım olup olmadığını merak ediyor, oyunu kazanma şansım yüzde kaç? % Şansı farklılaştırabileceğimiz bir formül var mı?

Her yerde googleddik ve hatta şirketimizdeki veri bilim adamlarına sorduk ancak net bir cevap bulamadık.

Düzenleme: Vay, yanıtların titizliği ile şaşırdım. Hepinize çok teşekkür ederim!!! İnsanlar meraklıysa, bahislerimin gidişatı hakkında bir güncellemem var: 50 oyundan 18'ini kazandım, bu yüzden 32 oyun daha kazanmam gerekiyor. Tüm puanların% 58.7'sini kazandım ve bu yüzden rakibim puanların% 41.3'ünü kazandı. Rakibimin standart sapması 3.52, ortalama puanı 14.83 ve ortanca puanı 15.50. Aşağıda, şu ana kadarki oyunların puanlarının ekran görüntüsü verilmiştir. İnsanlar ilgilenirse, bahis devam ettikçe güncellenmeye devam edebilirim.

Düzenleme # 2 : Maalesef, sonuç olarak, birkaç oyun daha oynayabildik. Sadece fotoğrafı değiştirmeye devam edeceğim, böylece skorla ilgili bir sürü ekran görüntüsüne sahip değilim.

Son Güncelleme : Sonunda 28 numaralı oyundaki iş arkadaşımla kayboldum. Beni 21-13 yendi. Tüm yardımlarınız için teşekkürler!

görüntü tanımını buraya girin


11
Orada olduğu bir formül: için bu şekilde de bu , tüm 21 terimler (büyük katsayılı, büyük aşan: kez derece-20 polinom ). Tüm puanlar bağımsızsa, sonraki 35 oyunu kazanma şansı . p 21 / ( 1 - 2 s + 2 s 2 ) 1.6 x 10 16 0.432 %p=0.58,p21/(12p+2p2)1.6×10160.432%
whuber

8
Bütün puanların (ve oyunların) birbirinden bağımsız olduğundan (çeşitli nedenlerden dolayı) şüpheliyim. Bağımsız olmama, cevap üzerinde büyük bir etkiye sahip olabilir.
Mark L. Stone

8
Oynadığım oyunun aynı olduğunu farz edersem, servis yapan kişinin bir avantajı olduğunu hatırlarım; “sıcak el” ile ilgili her şeyi görmezden gelmek, hizmet ederken% 68 ve yokken% 48 kazanmanız olabilir - bu tüm olasılıkları çarpıtır; % 58'e yükselse bile, bu yüzden yeterli bilgiye sahip değiliz ..
Hans Olsson,

5
Sadece bir yorum - 21 puan? Masa tenisi 11 puan biçimine geçti, en iyi 7 maç, 2001 yılında oyuncu başına bir seferde 2 porsiyon yaptı.
rcgldr

5
Bu bahisle ilgili ~ ~ her oyunda bir güncelleme yayınlamaya devam edeceğim. Ne yazık ki sadece işten sonra oynadığımız için haftada sadece birkaç oyun oynayabiliyoruz.
richard

Yanıtlar:


119

Analiz, oyunun en az iki puanlık bir farkla kazanmak için "fazla mesai" ye girme ihtimaliyle karmaşıklaşıyor. (Aksi takdirde, https://stats.stackexchange.com/a/327015/919 adresinde gösterilen çözüm kadar basit olacaktır.) Sorunu nasıl görselleştireceğinizi ve bunu kolayca hesaplanan katkılara ayırmak için nasıl kullanacağımı göstereceğim. cevap. Sonuç, biraz dağınık olmasına rağmen yönetilebilir. Bir simülasyon doğruluğunu ortadan kaldırır.


puan kazanma ihtimaliniz olsun . p Tüm noktaların bağımsız olduğunu varsayalım. Bir oyunu kazanma şansı, rakibinizin fazla mesai yapmadığınızı (fazla ) veya fazla mesai yapmadığınızı varsayarak, sonunda ne kadar puan kazandığına göre (örtüşmeyen) etkinliklere bölünebilir. . İkinci durumda, bir aşamada skorun 20-20 olduğu açıktır (veya olacaktır).0,1,,19

Güzel bir görselleştirme var. Oyun sırasında puanları noktaları olarak çizilebilir edelim puanınız ve bir rakibin puanı almaktadır. Oyun ilerledikçe, skorlar başlayan birinci kadrandaki tamsayı kafes boyunca ilerleyerek bir oyun yolu oluşturur . Biriniz en az ve ilk en az puan almışsa ilk defa sona erer . Bu tür kazanma puanları, oyun sürecinin sona ermesi gereken, bu sürecin "emici sınırı" olan iki puan setini oluşturur.x y ( 0 , 0 ) 21 2(x,y)xy(0,0)212

şekil

Bu şekil, fazla mesai içine giren bir oyunun yoluyla (sizin için ne yazık ki) (sınırsız ve sağa doğru uzanan) emme sınırının bir bölümünü gösterir.

Hadi sayalım. Oyunu ile sona erebilir yolları sayısı rakibin noktalarının tam sayı kafes belirgin yolların sayısıdır , ilk puanı başlayarak puanları , sondan bir önceki puanı verme ve . Bu yollar kazandığınız oyunda puanından hangisi ile belirlenir . Bu nedenle, sayılarının boyutundaki alt kümelerine karşılık gelir ve bunlardan vardır. Böyle bir yolda puan kazandınız ( her seferinde bağımsız olasılıklar , son puanı sayıyorsunuz) ve rakibiniz kazandı( x , y ) ( 0 , 0 ) ( 20 , y ) 20 + y 20 1 , 2 , ... , 20 + yy(x,y)(0,0)(20,y)20+y201,2,,20+y 21(20+y20)21y 1 - p ypy puanları ( her seferinde bağımsız olasılıklar ), ile ilişkili yollar toplam şansı1py

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

Benzer şekilde, 20-20 bağı temsil eden , ye ulaşmak için yolları vardır . Bu durumda kesin bir kazancınız yok. Ortak bir kural benimseyerek kazanma şansınızı hesaplayabiliriz: şu ana kadar kaç puan kazanıldığını unutun ve puan farkını izlemeye başlayın. Oyun farkında ve ilk önce veya ulaştığında sona erecek , mutlaka yol boyunca geçecek . Let Eğer diferansiyel olduğu zaman kazanma şansın . (20,20)0+2-2±1g(i)i{-1,0,1}(20+2020)(20,20)0+22±1g(i)i{1,0,1}

Her durumda kazanma şansınız , bizp

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

Vektör için bu doğrusal denklem sistemine özgü çözüm anlamına gelir(g(1),g(0),g(1))

g(0)=p212p+2p2.

Bu nedenle, bir kez kazanma şansınız olur (bu, şansıyla gerçekleşir ).( 20 + 20(20,20)(20+2020)p20(1p)20

Sonuç olarak kazanma şansınız, tüm bu ayrık olasılıkların toplamına eşittir.

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

Sağdaki parantez içinde kalanlar cinsinden bir polinomdur . (Derecesi gibi gözüküyor , ancak önde gelen terimlerin tümü iptal edildi: derecesi )p2120

Ne zaman , bir galibiyet şansı yakındırp=0.580.855913992.

Bu analizi, herhangi bir sayıdaki puanla sona eren oyunlara genellemekte sorun yaşamazsınız. Gerekli marj daha büyük olduğu zaman sonuç daha karmaşık hale ama tıpkı basittir.2

Bu arada , kazanma şansınızla ilk maçı kazanma şansınız . Bu, bildirdiğinizle tutarsız değil, bu da her bir noktanın sonuçlarının bağımsız olduğunu varsaymaya devam etmemizi teşvik edebilir. Böylelikle bir şansın olduğunu tahmin ederdik.(0.8559)159.7%15

(0.8559)350.432%

kalan tüm oyunu kazanma , bu varsayımlara göre devam ettikleri varsayılarak. Kazanç büyük olmadıkça yapmak için iyi bir bahis gibi görünmüyor!35


Böyle bir çalışmayı hızlı bir simülasyonla kontrol etmeyi seviyorum. İşte Rsaniyede onbinlerce oyun üretecek kod. Oyunun 126 puan içinde biteceğini varsayar (çok az oyunun bu kadar uzun sürmesi gerekir, bu nedenle bu varsayımın sonuçlar üzerinde önemli bir etkisi yoktur).

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)

Bunu koştuğumda, 10.000 tekrardan 8.570 vakada kazandın. Bu tür sonuçları test etmek için bir Z-puanı (yaklaşık olarak Normal dağılımla birlikte) hesaplanabilir:

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

Bu simülasyondaki değeri , yukarıdaki teorik hesaplama ile mükemmel bir şekilde tutar.0.31


ek 1

İlk 18 oyunun sonuçlarını listeleyen soruya yapılan güncellemeler ışığında, bu verilerle uyumlu oyun yollarının yeniden yapılanması. Oyunların iki veya üçünün tehlikeli bir şekilde kayıplara yakın olduğunu görebilirsiniz. (Açık gri bir karede sona eren herhangi bir yol sizin için bir kayıptır.)

şekil 2

Bu rakamın potansiyel kullanımları şunları gözlemlemeyi içerir:

  • Yollar, toplam puanların 267: 380 oranı ile yaklaşık% 58.7'ye eşit bir eğim etrafında yoğunlaşmaktadır.

  • Bu eğimin etrafındaki patikaların dağılması, noktalar bağımsız olduğunda beklenen değişimi gösterir.

    • Noktalar çizgiler halinde yapılırsa, bireysel yollar uzun dikey ve yatay uzantılara sahip olma eğilimindedir.

    • Daha uzun bir benzer oyun kümesinde, renkli aralıkta kalma eğiliminde olan yollar görmeyi bekleyin, ancak birkaçının da ötesine geçmesini bekleyin.

    • Genelde yolu bu yayılmanın üzerinde olan bir ya da iki oyunun olasılığı, rakibinizin nihayetinde bir maçtan kazanma olasılığını, muhtemelen daha sonra değil.


Ek 2

Şekil oluşturmak için kod istendi. İşte (biraz daha güzel bir grafik üretmek için temizlenir).

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

nasıl ayrılır? Tekrar yapılandırmalarınız yok mu? Örneğin, olduğunda , binom katsayısı . Zaman daha sonra . Fakat son yapılanmalardan biri, tam olarak için (yani, oyuncumuz için 21 puan, rakip için 0 puan). Kavşak olasılığını çıkarmamalı mıyız? Bu beni ilk etapta engelledi. f(y)y=01y=1(2120)=21y=0
Easymode44

1
@whuber: Harika, aynı zamanda r codeuygulama açıklamasının "güzel görselleştirme" kısmı da olur mu? Çok teşekkürler.
Maximilian

7
@Stefan Değerim, rasyonel aritmetik ( Mathematica'da ) kullanılarak hesaplandı ve sonunda yuvarlandı. Sizinkinin sadece çift duyarlıklı kayan nokta kullanarak hesaplandığından şüpheleniyorum ve bu nedenle son birkaç rakamınızın yanlış olduğunu varsayalım. Rasyonel bir sayı olarak, değer
2494929816061114641968058046704583744174849151775019163577995310486129149305191822350025177001953125000000000000000000000000000000000000.
whuber

4
@Maximilian Görselleştirme için kod gönderdim.
whuber

3
Fazla mesai yapmanın daha basit bir yolunun 20-20'ye ulaşıldığında çiftler halinde puan almak olacağını düşünüyorum. Önemli olan tek şey ya ikisini de kazanan ilk oyuncu (olasılık 0.58²) ya da ikincisi de her ikisi de (0.42²). Başka bir şey olursa, yok sayın ve yukarıdakilerden biri gerçekleşene kadar oynamaya devam edin. İlk oyuncunun 20-20 sonrasında kazanma olasılığı 0,58 ² / (0,58 ² + 0,42 ²) ve ikinci oyuncunun 0,42 ² / (0,58 ² + 0,42 ²) olması.
supercat

25

Binom dağılımını kullanmak ve her noktayı varsaymak bağımsızdır:

  • İlk puanda oyuncunun olması ihtimali (son puanın kazanılması gerektiği gerçeği dikkate alınarak)58%2140n=2140(n120)0.58210.42n21 =k=2140(40k)0.58k0.4240k 0.80695

  • Olasılık oyuncusu alır ila binom oynanan noktaları . Buna bağlı olarak, oyuncunun daha sonra iki puan payıyla kazanması ihtimali58%2040(4020)0.58200.42200.07463558%0.5820.582+0.4220.656006

Yani oyuncunun kazandığı genel olasılık yaklaşık58 0.80695 + 0.074635 × 0.656006 0.855958%0.80695+0.074635×0.656006 0.8559

İlk maçı kazanan oyuncunun kazanma olasılığı yaklaşık . Olasılığı nihai kazanan oyuncu oyun hakkında çok olası değildir. 15 0,85559 150,0969 58 % 35 0,85559 350.004358%150.85559150.096958%350.85559350.0043


2
Parçası "olasılık oyuncusu daha sonra iki nokta marjı ile kazanır olduğu "58 0.58 2 / ( 0.58 2 + 0.42 2 ) 0.65600658%0.582/(0.582+0.422)0.656006 bu muhtemelen en zor kısmıdır gibi bazı açıklama kullanabilirsiniz sorun.
JiK

1
@JiK: ya da üstü eşitlikte bir kez belirleyici bir kaç nokta olasılığı ve bu nedenle daha iyi oyuncunun en kötü oyuncunun yapmasından ziyade ikiye katlama olasılığı - aksi takdirde aynı pozisyona geri döner0.58 2 + 0.42 2 0.58 220200.582+0.4220.5820.582+0.422
Henry

3
En iyi yanıttan çok daha kısa ve öz bir cevap var, ama sanırım resimleri olmadığından ve 12 saat sonra gönderildiğinden 80 daha az oy alır mı? = |
Attackfarm

17

Hesaplamalı bir cevapla gittim. İşte kazananın 2 kazanması gereken bir Masa Tenisi oyununu simüle eden bir R fonksiyonu. Tek tartışma, bir puan kazanma ihtimaliniz. Bu oyunun final skorunu döndürür:

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

İlk önce% 50 kazanma şansınız olan 10.000 oyunu simüle ederek çalışacağından emin olalım. Kazanma oranınızın yaklaşık% 50 olduğunu gözlemlemeliyiz:

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

Bu beklediğimizle ilgili olarak. Öyleyse% 58'inizi bağlayalım:

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

Bu döndürür. Yani% 86.06 oranında bir oyun kazanma şansınız var .

Şimdi 35 oyun gruplar arasında simüle ve kazanabileceğinizi kaç kez görebilirsiniz tüm 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)

Bu döndürür .0037, sonraki 35 oyunu kazanma şansınız% 0.37. Bu, tüm oyunların ve tüm puanların birbirinden bağımsız olduğunu varsayar. İsterseniz, açıkça yukarıdaki fonksiyona programlayabilirsiniz.

Not: Bunu anında yapıyorum. Bunu programlamanın daha verimli bir yolu olduğuna eminim.


pbetterwins <- pbinom(19,40,0.42) + dbinom(20,40,0.42) * 0.58^2/(0.58^2+0.42^2); pbetterwins; pbetterwins^35Binom dağılımını kullanarak bir hesaplama yapmayı deneyin . Simülasyonunuza yeterince yakın
Henry,

15

% 58 kazanma şansının sabit olduğunu ve puanların bağımsız olduğunu varsaymalı mıyız?

Whuber'in cevabının iyi olduğuna inanıyorum ve her şeyin bir sonrakten bağımsız olduğu düşünülürse, güzelce yazılmış ve açıklanmış . Ancak pratikte bunun sadece ilginç bir başlangıç ​​noktası olduğuna inanıyorum (teorik / idealize). Aslında gerçekte puanların birbirinden bağımsız olmadığını ve iş arkadaşınızın rakibinin 50 üzerinden en az bir kez kazanması olasılığını artıracağını hayal ediyorum.

İlk başta puanların bağımlılığının rasgele bir süreç olacağını , yani oyuncular tarafından kontrol edilmediğini (örneğin biri farklı şekilde oynarken kazanırken veya kaybettikçe) olacağını hayal ettim ve bu, elde etmek için daha az oyuncuya yararlanan sonuçların daha büyük bir dağılımını yaratmalıdır. bu bir elli üzerinden işaret ediyor.

Bununla birlikte, ikinci bir düşünce, bunun tam tersini önerebilir :% 9,7 şansı olan bir şeyi "başarmış" olmanız gerçeği, sizi Bayesian bakış açısından, sizi yönlendiren mekanizmaları destekleme fikirlerine bir miktar yarar sağlayabilir (ancak çok az) Bir oyunu kazanma olasılığını% 85'ten fazla kazanma (veya en azından rakibinizin önceki iki paragrafta belirtildiği gibi% 15'ten daha yüksek bir olasılığa sahip olma olasılığını azaltması). Örneğin, konumunuz daha az iyi olduğunda daha iyi puan almış olabilirsiniz (maç puanlarında, lehte veya aleyhte normal puanlardan daha fazla puan alan insanlar için garip değildir). Bu dinamikleri dikkate alarak% 85 tahminlerini artırabilirsiniz ve muhtemelen bir oyunu kazanma olasılığınızın% 85'inden daha fazlasına sahipsiniz.

Her neyse, cevap vermek için bu basit noktaları istatistik olarak kullanmak çok yanlış olabilir . Evet, bunu yapabilirsiniz, ancak bu doğru olmaz çünkü öncül (noktaların bağımsızlığı) mutlaka doğru değildir ve cevabı çok etkiler . 42/58 istatistiği daha fazla bilgi içermektedir ancak nasıl kullanılacağını çok iyi bilmiyoruz (modelin doğruluğu) ve bilgiyi kullanmak, aslında sahip olmadıkları yüksek hassasiyete sahip cevaplar sağlayabilir.


Örnek

Örnek: tamamen farklı sonuçlara sahip eşit derecede makul bir model

Dolayısıyla, varsayımsal soru (bağımsız noktalar varsayar ve bilinen, teorik, bu noktalar için olasılıklar varsayarsak) kendi başına ilginçtir ve cevaplanabilir, Ama sadece sinir bozucu ve şüpheci / alaycı olmak; Varsayımsal davanın cevabı, asıl / asıl sorununuzla o kadar ilgili değildir ve şirketinizdeki istatistikçilerin / veri bilimcilerin doğru cevap vermekte isteksiz olmalarının nedeni olabilir.

Sadece kafa karıştırıcı (karşı-) bir açıklama yapan alternatif bir örnek vermek gerekirse (zorunlu olarak daha iyi değil) 'S: Zaten 15 kazanırsam toplam 50 oyunu kazanma ihtimalim nedir?' Eğer '42/58 puan puanları alakalı veya bize daha iyi tahminler veriyor' diye düşünmeye başlamazsak, o zaman oyunu kazanma olasılığınızın tahminlerini yapmaya ve daha önce kazanmış olduğunuz kazanma dayalı bir başka 35 maç kazanma tahminlerini yapmaya başlarız. 15 oyun:

  • Bir oyunu kazanma olasılığınız için bir Bayesian tekniği ile bunun anlamı şudur: üniform bir önceki f (x) = 1 için kabaca% 31'dir, ancak bu biraz fazla iyimser olabilir. Ancak , 1 ile 5 arasında ile beta dağılımını düşünüyorsanız, o zaman şunları elde edersiniz: β=αp(win another 35 | after already 15)=01f(p)p5001f(p)p15β=α

Önceden beta dağılımının fonksiyonu olarak posterior şanslar

bu demek oluyor ki,% 0,3232 tahmininde olduğu kadar karamsar olmazdım. Zaten 15 maç kazanmış olmanız, sonraki 35 oyunu kazanma olasılığınızı arttırmalı.


Yeni verilere dayalı not

18 oyun hakkındaki verilerinize dayanarak bir beta-binom model kurmaya çalıştım. Değişen ve ve (i ile 20, i) 21, bir skora almak veya 20,20 skoru ve daha sonra kendi kayıtlarını toplanacak olasılıkları hesaplama log-olabilirlik puanı.β = ( 1 - μ ) να=μνβ=(1μ)ν

Çok yüksek bir parametresinin (altta yatan beta dağılımındaki az dağılımın) daha yüksek bir olasılığa sahip olduğunu ve bu nedenle muhtemelen fazla dağılma olduğunu gösterir. Bu, verilerin% 58 kazanma şansı yerine puan kazanma ihtimaliniz için değişken bir parametre kullanmanın daha iyi olduğu anlamına gelmez. Bu yeni veri, bir binom dağılımına dayanan puanlar alan Whuber'in analizi için ekstra destek sağlıyor. Fakat elbette, bu yine de modelin statik olduğunu ve ayrıca sizin ve iş arkadaşınızın rastgele bir modele (her oyun ve puanın bağımsız olduğu) göre davrandığını varsayar.ν

Sabit% 58 kazanma şansı yerine beta dağılım parametreleri için maksimum olasılık tahmini:

58p kazanma şansı beta dağılımı için maksimum olabilirlik tahmini

S: "mu ve nu parametreleri için LogLikelihood" grafiğini nasıl okurum?

C:

  • 1) Maksimum olabilirlik tahmini (MLE) bir modele uymanın bir yoludur. Olabilirlik, modelin parametreleri verilen verinin olasılığı anlamına gelir ve sonra bunu maksimize eden modeli ararız. Arkasında çok fazla felsefe ve matematik var.
  • 2) Arsa, optimum MLE'ye ulaşmak için tembel bir hesaplama yöntemidir. Sadece bir ızgaradaki tüm olası değerleri hesaplarım ve değerin ne olduğunu görüyorum. Daha hızlı olmanız gerekiyorsa, optimum olan bir hesaplama yinelemeli yöntem / algoritma kullanabilirsiniz ya da muhtemelen doğrudan bir analitik çözüm olabilir.
  • 3) ve parametreleri , p = 0.58 için bir model olarak kullanılan https://en.wikipedia.org/wiki/Beta_distribution beta parametresiyle ilgilidir (zamanın değişmemesini sağlamak için zamanla değişebilir) süresi). Bu 'beta-p' modeli, belirli puanlara ulaşma olasılıklarının tahminlerini almak için binom modeliyle birleştirilmiştir. Neredeyse beta-binom dağılımı ile aynı. şaşırtıcı olmadığından civarında olduğunu görebilirsiniz . değeri (düşük dağılım anlamına gelir) yüksektir. En azından biraz fazla dağılma olduğunu hayal etmiştim / bekliyordum.νμννμ0.6ν

grafik için kod / hesaplama 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")

Grafik 2 için kod / hesaplama

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 Yeni bakış açısını takdir ediyorum. Ancak puanlar arasındaki bağımlılığın, sonraki 35 maçta rakibinin kazanmasını daha muhtemel hale getirdiği iddiasına meydan okurdum. Aslında, iki şekilde de gidebilirdi. Bunun tam tersi için makul bir mekanizma, puanların 58-42 kenarından daha güçlü olduğunuzu ve çağrıldığında, çok geride olsa bile herhangi bir oyunu kazanmak için her zaman toplanabilmenizdir. Bağımsızlığı varsaymamaktaki asıl sorun, bağımsızlığın nasıl modelleneceği ile ilgilidir.
whuber

@whuber, haklısın. Ayrıca her iki şekilde de tartışırım. 1) İlk düşüncelerim bir yöne gitti, bağımlılık rastlantısal olurdu, örneğin insanlar kontrolsüz iniş ve çıkışlarda iyi anlar ve kötü anlar var ve bunun daha az oyuncunun olasılığını artıran sonuçların daha büyük bir dağılımını yaratacağını hayal ediyorum. 2) Bununla birlikte, Bayesian ilkelerini ve 15 oyunun kazandığı oyunları analizi nasıl etkileyebileceğini düşünüyordum (en azından mesajdaki soru, başlıktaki sorudan farklı bir durumdur) ve Daha güçlü oyuncu
Martijn Weterings

1
Görevimin ikinci yarısında, kazanma ihtimalinin% 86'dan büyük olması gerektiğini savunan bir örnek verdim. Fakat tüm bu matematik çok kesin gibi gözükse de, gerçekte modellerimizin bu kadar az miktarda bilgi verildiği için kötü olduğundan (pek çok ek, doğruluk azalması, öznel bilgi ile) emin olduğundan emin değiliz.
Martijn Weterings

2
@whuber Cevabımı düzenledim. Bu iyi bir yorumdu ve umarım şimdi cevabında daha açık bir şekilde anlaşılmaktadır.
Martijn Weterings

1
2) Arsa, optimum MLE'ye ulaşmak için tembel bir hesaplama yöntemidir. Sadece bir ızgaradaki tüm olası değerleri hesaplarım ve değerin ne olduğunu görüyorum. Daha hızlı olmanız gerekiyorsa, optimum olan bir hesaplama yinelemeli yöntem / algoritma kullanabilirsiniz ya da muhtemelen doğrudan bir analitik çözüm olabilir.
Martijn Weterings,

12

Mükemmel bir model için çok fazla çaba harcanabilir. Ancak bazen kötü bir model daha iyidir. Ve hiçbir şey merkezi limit teoremi gibi kötü bir model söylemez - her şey normal bir eğridir.

"Fazla mesai" yi görmezden geleceğiz. Bireysel noktaların toplamını normal bir eğri olarak modelleyeceğiz. 38 tur oynamayı modelleyeceğiz ve ilk 20'ye geçmek yerine en çok puanı kim kazanırsa oynarız. Bu oldukça benzer bir oyundur!

Ve kör olarak, doğru cevaba yaklaştığımızı iddia edeceğim.

bir noktanın dağılımı olsun . Bir puan aldığınızda değeri 1, almadığınızda 0 değeri vardır.XXX

Yani = ~ ve = = ~ .0.58 V a r ( X ) E ( X ) ( 1 - E ( X ) ) 0.24E(X)0.58Var(X)E(X)(1E(X))0.24

Eğer bağımsız , 38 tur oynadıktan sonra elde ettiğiniz puandır.Xii=138Xi

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

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

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

Ham modelimizde, ise ve .38 i = 1 X i > 19i=138Xi<19i=138Xi>19

1.01%15.6222.04193.02 , ortalamadan uzağa standart sapmadır ve bu, z skor çizelgesine danıştıktan sonra başarısızlık şansına yol açar .1.0115.62%

Daha katı cevaplarla karşılaştırırsak, bu doğru değerin yaklaşık .1%

Genel olarak şansı olan ve onu mükemmel şekilde modelleyen daha titiz bir modelden ziyade zafer şansının güvenilirliğini incelemekten daha iyi olurdu .58 %58%58%


@Yakk, halt 38 geldi nereden ?? Ayrıca, eminim var (38 * x) = 38 ^ 2 * var (X), 38 * var (X) değil. Bu hatayı düzelttikten sonra "zarf hesaplamanızın çok güzel tarafı" ne kadar dayanıyor?
use_norm_approx

@use_ "Bir X çarpı 38" değil, "38 bağımsız X toplamı" olarak eğimli bir 38 * X kullanıyorum. 38, kim kazanırsa 19'u kazanan ilk oyuncu kazanır. Bunun yerine 39 oyun ve ilk> 19.5 kullanabilirdim; sonuç benzer olurdu.
Yakk

3

Simülasyona dayanarak, verilen herhangi bir oyunu kazanma olasılığı yaklaşık% 85,5 gibi görünüyor.

Tam olarak 2 kazanma olasılığı (bu şekilde başlığı okudum, ama istediğin gibi görünmüyor) yaklaşık% 10,1.

Aşağıdaki kodu çalıştırın.

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
Bu Whuber'in analitik çözümüne çok yaklaşıyor: dbinom(20,40,0.58)*0.58^2/(1-2*0.58+2*0.58^2)+dbinom(20,39,0.58)*0.58% 10.04
Martijn Weterings
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.