Если у меня есть 58% шанс выиграть очко, какова вероятность того, что я выиграю игру в пинг-понг до 21, выиграю на 2?

90

У меня есть ставка с коллегой, что из 50 игр в пинг-понг (сначала выиграйте 21 очко, выиграйте 2) я выиграю все 50. До сих пор мы сыграли 15 игр, и в среднем я выиграл 58% очки, плюс я выиграл все игры до сих пор. Таким образом, мы задаемся вопросом, есть ли у меня 58% шанс выиграть очко, а у него 42% шанс выиграть очко, каков процентный шанс, что я выиграю игру? Есть ли формула, в которую мы можем добавить разницу в%?

Мы гуглили по всему и даже спрашивали ученых по данным в нашей компании, но не смогли найти прямой ответ.

Редактировать: Вау, я поражен тщательностью ответов. Большое спасибо всем вам!!! Если людям интересно, у меня есть информация о том, как проходит моя ставка: я выиграл 18 из 50 игр, поэтому мне нужно выиграть еще 32 игры. Я набрал 58,7% всех очков, и поэтому мой противник набрал 41,3% очков. Стандартное отклонение для моего оппонента - 3,52, его средний балл - 14,83, а его средний балл - 15,50. Ниже приведен скриншот оценки каждой игры. Я могу продолжать обновляться по мере продолжения ставки, если людям это интересно.

Редактирование № 2 : К сожалению, мы смогли сыграть еще несколько игр, ниже приведены результаты. Я просто собираюсь заменить картинку, чтобы у меня не было скриншотов партитуры.

Последнее обновление : я наконец проиграл своему коллеге в игре № 28. Он избил меня 21-13. Спасибо за всю твою помощь!

введите описание изображения здесь

Ричард
источник
11
Там вне формулы: для это в виде раз степень многочлена-20: 21 терминов во всех (с большими коэффициентами, наибольшие превышающим ). Если все очки независимы, у вас есть только шансов на победу в следующих 35 играх. р 21 / ( 1 - 2 р + 2 р 2 ) 1,6 × 10 16 0,432 %p=0.58,p21/(12p+2p2)1.6×10160.432%
whuber
8
Я сомневаюсь, что все точки (и игры) не зависят друг от друга (по разным причинам). Отсутствие независимости может оказать большое влияние на ответ.
Марк Л. Стоун
8
Предполагая, что это та же самая игра, в которую я играл, я помню, что у одной порции есть преимущество; поэтому, игнорируя все, что касается «горячей руки», вы можете выиграть 68% при подаче и 48% при отсутствии - это искажает все вероятности; даже если это сравнимо с 58%. Таким образом, у нас недостаточно информации ...
Ханс Олссон
5
Просто комментарий - 21 балл? Настольный теннис перешел на формат 11 очков, лучшее из 7 игр, по 2 подачи на игрока за раз, еще в 2001 году.
rcgldr
5
Я буду продолжать публиковать обновления по этой ставке каждые ~ 5 игр или около того. К сожалению, мы играем всего несколько игр в неделю, потому что играем только после работы.
Ричард

Ответы:

119

Анализ усложняется тем, что игра переходит в «сверхурочное время», чтобы выиграть с разницей не менее двух очков. (В противном случае это было бы так же просто, как решение, показанное на https://stats.stackexchange.com/a/327015/919 .) Я покажу, как визуализировать проблему и использовать ее, чтобы разбить ее на легко вычисляемые вклады в ответ. Результат, хотя и немного грязный, вполне управляем. Симуляция подтверждает его правильность.


Пусть будет вашей вероятностью выиграть очко. p Предположим, что все точки независимы. Вероятность того, что вы выиграете игру, может быть разбита на (не перекрывающиеся) события в зависимости от того, сколько очков ваш противник набрал в конце, при условии, что вы не входите в сверхурочное время ( ) или в сверхурочное время. , В последнем случае (или станет) очевидно, что на каком-то этапе счет был 20-20.0,1,,19

Есть приятная визуализация. Пусть результаты во время игры будут отображаться в виде точек где - ваш счет, а - счет вашего оппонента. Когда игра разворачивается, счета движутся вдоль целочисленной решетки в первом квадранте, начинающемся с , создавая игровой путь . Он заканчивается в первый раз, когда один из вас набрал по крайней мере и имеет запас по крайней мере . Такие выигрышные очки формируют два набора очков, «поглощающую границу» этого процесса, когда игровой путь должен заканчиваться.х у ( 0 , 0 ) 21 2(x,y)xy(0,0)212

фигура

На этом рисунке показана часть поглощающей границы (она продолжается бесконечно вверх и вправо), а также путь игры, которая ушла в сверхурочное время (увы, для вас потеря).

Давай посчитаем. Количество способов, которыми игра может закончиться с очками для вашего оппонента, - это количество различных путей в целочисленной решетке баллов, начиная с начального и заканчивая предпоследним . Такие пути определяются тем, какие из очков в игре вы выиграли. Следовательно, они соответствуют подмножествам размера чисел , и их существует . Поскольку на каждом таком пути вы выиграли очко (с независимыми вероятностями каждый раз, считая конечную точку), а ваш оппонент выиграл( 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 точек (с независимой вероятностью каждый раз), пути, связанные с составляют общую вероятность1py

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

Точно так же есть способов достичь представляющих 20-20 . В этой ситуации у вас нет определенной победы. Мы можем рассчитать шанс вашей победы, приняв общее соглашение: забудьте, сколько очков было набрано до сих пор, и начните отслеживать разницу в баллах. Игра имеет дифференциал и закончится, когда она впервые достигнет или , обязательно пройдя через по пути. Пусть будет шансом на победу, когда дифференциал равен .(20+2020)(20,20)0+22±1g(i)i{1,0,1}

Так как ваш шанс на победу в любой ситуации равен , мы имеемp

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

Единственное решение этой системы линейных уравнений для вектора подразумевает(g(1),g(0),g(1))

g(0)=p212p+2p2.

Таким образом, это ваш шанс на победу после (что происходит с шансом ).(20,20)(20+2020)p20(1p)20

Следовательно, ваш шанс на победу - это сумма всех этих непересекающихся возможностей, равная

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

Материал в скобках справа является полиномом от . (Похоже, его степень равна , но все главные термины отменяются: его степень равна )21 20p2120

Когда , вероятность выигрыша близка к0,855913992.p=0.580.855913992.

У вас не должно возникнуть проблем с обобщением этого анализа для игр, которые заканчиваются любым количеством очков. Когда требуемый запас больше результат становится более сложным, но таким же простым.2

Кстати , с этими шансами на победу у вас был шанс выиграть первые игр. Это не противоречит тому, что вы сообщаете, что может побудить нас продолжать предполагать, что результаты каждого пункта независимы. Тем самым мы прогнозируем, что у вас есть шанс15(0.8559)159.7%15

(0.8559)350.432%

выиграть все оставшиеся игр, предполагая, что они действуют в соответствии со всеми этими предположениями. Не стоит делать хорошую ставку, если выигрыш не велик!35


Мне нравится проверять работу с помощью быстрой симуляции. Вот Rкод для генерации десятков тысяч игр в секунду. Предполагается, что игра будет закончена в течение 126 очков (очень немногие игры должны продолжаться так долго, поэтому это предположение не оказывает существенного влияния на результаты).

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)

Когда я запустил это, вы выиграли в 8 570 случаях из 10 000 итераций. Z-оценка (с приблизительно нормальным распределением) может быть вычислена для проверки таких результатов:

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

Значение в этом моделировании полностью согласуется с вышеизложенным теоретическим расчетом.0.31


Приложение 1

В свете обновления вопроса, в котором перечислены результаты первых 18 игр, здесь приведены реконструкции игровых путей, соответствующих этим данным. Вы можете видеть, что две или три игры были опасно близки к потерям. (Любой путь, заканчивающийся на светло-сером квадрате, для вас потеря.)

фигура 2

Потенциальное использование этой фигуры включает в себя наблюдение:

  • Трассы концентрируются вокруг склона, определяемого соотношением 267: 380 от общего количества баллов, равным приблизительно 58,7%.

  • Разброс траекторий вокруг этого наклона показывает ожидаемое изменение, когда точки независимы.

    • Если точки сделаны в виде полос, то отдельные пути имеют тенденцию иметь длинные вертикальные и горизонтальные участки.

    • В более длинном наборе подобных игр ожидайте увидеть пути, которые, как правило, остаются в пределах цветного диапазона, но также ожидайте, что некоторые простираются за его пределы.

    • Перспектива одной или двух игр, путь которых обычно превышает этот спред, указывает на вероятность того, что ваш противник в конечном итоге выиграет игру, вероятно, скорее, чем позже.


Приложение 2

Код для создания рисунка был запрошен. Вот оно (очищено для получения немного более приятного рисунка).

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
источник
Как пересекается? Не ваши повторные конфигурации? Например, когда биномиальный коэффициент равен . Когда то . Но одной из последних конфигураций является именно та, которая найдена для (то есть 21 очко, выигранное для нашего игрока, 0 для оппонента). Разве мы не должны вычитать вероятности пересечений? Это то, что заблокировало меня в первую очередь. y = 0 1 y = 1 ( 21f(y)y=01y=1у=0(2120)=21y=0
Easymode44
1
@whuber: Отлично, будет ли «хорошая визуализация» частью r codeраскрытия реализации? Большое спасибо.
Максимилиан
7
@Stefan Мое значение было вычислено с использованием точной рациональной арифметики (в Mathematica ) и округлено в конце. Я подозреваю, что ваши могли быть вычислены с использованием только плавающей запятой двойной точности, и поэтому предположим, что последние несколько цифр неверны. В качестве рационального числа используется значение
2494929816061114641968058046704583744174849151775019163577995310486129149305191822350025177001953125000000000000000000000000000000000000.
whuber
4
@Maximilian Я разместил код для визуализации.
whuber
3
Я думаю, что более простой способ справиться с овертаймом - это набирать очки в парах после достижения 20-20. Единственное, что имеет значение, это либо первый игрок, выигравший оба (вероятность 0,58 ²), либо второй игрок, выигравший оба (0,42 ²). Если что-то еще случится, проигнорируйте это и продолжайте играть, пока не произойдет одно из вышеупомянутых. Таким образом, вероятность выигрыша первого игрока после 20-20 составляет 0,58² / (0,58² + 0,42²), а второго - 0,42² / (0,58² + 0,42²).
суперкат
25

Используя биномиальное распределение и предполагая, что каждая точка независима:

  • Вероятность того, что игрок доберется до в первые очков (принимая во внимание тот факт, что последний балл должен быть выигран), равна58%2140n=2140(n120)0.58210.42n21 =k=2140(40k)0.58k0.4240k 0.80695

  • Вероятность того, что игрок получит из сыгранных очков, является биномом . При условии, что вероятность того, что игрок тогда выиграет с разницей в два очка, будет58%2040(4020)0.58200.42200.07463558%0.5820.582+0.4220.656006

Таким образом, общая вероятность того, что игрок выиграет , составляет примерно58%0.80695+0.074635×0.656006 0.8559

Вероятность того, что игроков первые игр, составит около что маловероятно. Вероятность того, что игроков последние игр, составляет около что маловероятно. 58%150.85559150.096958%350.85559350.0043

Генри
источник
2
Часть "вероятность того, что игрока выиграет с разницей в два очка, составляет ",58%0.582/(0.582+0.422)0.656006 может использовать некоторое объяснение, поскольку это, вероятно, самая трудная часть в этом проблема.
JiK
1
@JiK: Однажды при равенстве или позже вероятность решающей пары очков равна и поэтому вероятность того, что лучший игрок получит на два вперед больше, чем худший, сделает это - в противном случае они возвращаются в одну и ту же позицию20200.582+0.4220.5820.582+0.422
Генри
3
Гораздо более краткий ответ, чем самый верхний, но, думаю, поскольку на нем нет картинок, и он был опубликован через 12 часов, он набрал на 80 голосов меньше? = |
Attackfarm
17

Я пошел с вычислительным ответом. Вот функция R, которая имитирует игру в пинг-понг, где победитель должен выиграть на 2. Единственный аргумент - вероятность того, что вы выиграете очко. Он вернет итоговый счет этой игры:

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

Давайте сначала убедимся, что он работает, имитируя 10000 игр, в которых у вас есть 50% шанс выиграть каждое очко. Мы должны отметить, что ваш процент выигрыша составляет около 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)

Это возвращает .4955, о чем мы ожидали. Итак, давайте подключим ваши 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)

Это возвращает 0,8606. Таким образом, у вас есть шанс 86,06% выиграть одну игру.

Теперь мы можем смоделировать 35 партий игры и посмотреть, сколько раз вы выиграете все 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)

Это возвращает 0,0037, что означает, что у вас есть приблизительно 0,37% шансов на победу в следующих 35 играх. Это предполагает, что все игры и все очки независимы друг от друга. Вы можете запрограммировать это явно в функции выше, если хотите.

Примечание: я делаю это на лету. Я уверен, что есть более эффективный способ программирования.

Марк Уайт
источник
Попробуйте pbetterwins <- pbinom(19,40,0.42) + dbinom(20,40,0.42) * 0.58^2/(0.58^2+0.42^2); pbetterwins; pbetterwins^35для расчета с использованием биномиального распределения. Достаточно близко к вашей симуляции
Генри
15

Должны ли мы предполагать, что вероятность выигрыша 58% фиксирована, а очки независимы?

Я считаю, что ответ Уубера хороший , и прекрасно написан и объяснен, если учесть, что каждый пункт не зависит от следующего . Однако я считаю, что на практике это только интересная отправная точка (теоретическая / идеализированная). Я полагаю, что в действительности очки не являются независимыми друг от друга, и это может сделать более или менее вероятным, что ваш противник-коллега выиграет хотя бы один раз из 50.

Сначала я представлял, что зависимость очков будет случайным процессом , то есть не контролируется игроками (например, когда кто-то выигрывает или проигрывает по-разному), и это должно создать большую дисперсию результатов, принося пользу меньшему игроку, чтобы получить это одно очко из пятидесяти.

Вторая мысль, однако, может предположить обратное : тот факт, что вы уже «достигли» чего-то с вероятностью 9,7%, может дать некоторую (но незначительную) выгоду с байесовской точки зрения идеям о том, чтобы отдавать предпочтение механизмам, которые заставляют вас выиграть более 85% вероятности выиграть игру (или, по крайней мере, снизить вероятность того, что у вашего противника вероятность намного выше, чем 15%, как указывалось в предыдущих двух параграфах). Например, может случиться так, что вы набираете больше очков, когда ваша позиция менее хороша (это не странно для людей, которые набирают очки в матчах, в пользу или против, гораздо больше, чем в обычных очках). Вы можете улучшить оценки на 85%, приняв во внимание эту динамику, и, возможно, у вас более 85% вероятности выиграть игру.

В любом случае, было бы очень неправильно использовать эту простую статистику точек, чтобы дать ответ. Да, вы можете сделать это, но это не будет правильно, так как предпосылки (независимость баллов) не обязательно правильны и сильно влияют на ответ . Статистика 42/58 является дополнительной информацией, но мы не очень хорошо знаем, как ее использовать (правильность модели), и использование этой информации может дать ответы с высокой точностью, которых на самом деле нет.


пример

Пример: одинаково разумная модель с совершенно другим результатом

Таким образом, гипотетический вопрос (предполагающий наличие независимых точек и известные теоретические вероятности для этих точек) сам по себе интересен, и на него можно ответить, но он просто раздражает и скептически / циничен; ответ на гипотетический случай не так уж сильно связан с вашей основной / исходной проблемой и может быть причиной того, что статистики / специалисты по данным в вашей компании не хотят давать прямой ответ.

Просто для того, чтобы привести альтернативный пример (не обязательно лучший), который дает сбивающее с толку (контр) утверждение : «Какова вероятность выиграть все 50 игр, если я уже выиграл 15?» Если мы не начнем думать, что «очки 42/58 являются релевантными или дают нам более точные прогнозы», тогда мы начнем делать прогнозы вашей вероятности выиграть игру и прогнозы выиграть еще 35 игр исключительно на основе ваших ранее выигранных 15 игр:

  • с байесовской техникой для вашей вероятности выиграть игру это будет означать: что примерно равно 31% для равномерного априорного f (x) = 1, хотя это может быть слишком оптимистичным. Но все же, если вы рассматриваете бета-дистрибутив с между 1 и 5, тогда вы получите: β=αp(win another 35 | after already 15)=01f(p)p5001f(p)p15β=α

апостериорные шансы как функция предшествующего бета-распределения

Это означает, что я не был бы таким пессимистичным, как прямое предсказание 0,432%. Тот факт, что вы уже выиграли 15 игр, должен повысить вероятность того, что вы выиграете следующие 35 игр.


Примечание на основе новых данных

Основываясь на ваших данных для 18 игр, я попытался установить бета-биномиальную модель. Изменяя и и вычисляя вероятности, чтобы получить оценку i, 21 (через i, 20) или оценку 20,20, а затем суммировать их журналы в логарифмическая оценка вероятности.β = ( 1 - μ ) να=μνβ=(1μ)ν

Это показывает, что очень высокий параметр (небольшая дисперсия в базовом бета-распределении) имеет более высокую вероятность и, таким образом, вероятно, небольшая избыточная дисперсия. Это означает, что данные не предполагают, что лучше использовать переменный параметр для вашей вероятности выиграть очко, а не фиксированную вероятность выигрыша в 58%. Эти новые данные предоставляют дополнительную поддержку для анализа Whuber, который предполагает оценки на основе биномиального распределения. Но, конечно, это все еще предполагает, что модель статична, а также что вы и ваш коллега ведете себя в соответствии со случайной моделью (в которой каждая игра и точка независимы).ν

Оценка максимального правдоподобия для параметров бета-распределения вместо фиксированного 58% шанса на выигрыш:

оценка максимального правдоподобия для бета-распределения 58p шансов на победу

Вопрос: как мне прочитать график «LogLikelihood для параметров mu и nu»?

A:

  • 1) Оценка максимального правдоподобия (MLE) - это способ соответствовать модели. Вероятность означает вероятность получения данных с учетом параметров модели, и затем мы ищем модель, которая максимизирует это. За этим стоит много философии и математики.
  • 2) Сюжет - это ленивый вычислительный метод для достижения оптимального MLE. Я просто вычисляю все возможные значения в сетке и вижу, что такое valeu. Если вам нужно быть быстрее, вы можете использовать вычислительный итерационный метод / алгоритм, который ищет оптимальный вариант, или, возможно, может быть прямое аналитическое решение.
  • 3) Параметры и относятся к бета-дистрибутиву https://en.wikipedia.org/wiki/Beta_distribution, который используется в качестве модели для p = 0,58 (чтобы он не был фиксированным, а вместо этого изменялся от времени к время). Этот смоделированный «бета-р» затем объединяется с биномиальной моделью для получения прогнозов вероятностей для достижения определенных показателей. Это почти то же самое, что и бета-биномиальное распределение. Вы можете видеть, что оптимум составляет около что неудивительно. Значение высокое (имеется в виду низкая дисперсия). Я предполагал / ожидал, по крайней мере, некоторой чрезмерной дисперсии.νμννμ0.6ν

код / ​​расчет для графа 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")

код / ​​вычисление для графа 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 Я ценю новую перспективу. Но я бы оспорил утверждение, что зависимость между точками повышает вероятность победы противника в следующих 35 играх. На самом деле, это может пойти в любую сторону. Правдоподобный механизм для противоположного вывода состоит в том, что вы намного сильнее, чем можно предположить в 58-42, и что при вызове вы всегда можете выиграть любую игру, даже если сильно отстали. Реальная проблема в том, чтобы не предполагать независимость, состоит в том, как моделировать независимость.
whuber
@ whuber, ты прав. Я также спорю в любом случае. 1) Мои первые мысли были направлены на то, чтобы зависимость была случайной, например, у людей были неконтролируемые взлеты и падения, хорошие и плохие моменты, и это, я думаю, создаст большую дисперсию результатов, увеличивая вероятность меньшего игрока. 2) Однако тогда я думал о байесовских принципах и о том, как 15 выигранных игр могут повлиять на анализ (по крайней мере, вопрос в посте отличается от вопроса в названии), и могут быть возможные механизмы, которые принесут пользу более сильный игрок.
Секст Эмпирик
1
Во второй половине моего поста я приведу только один пример, в котором утверждается, что вероятность выигрыша должна быть больше 86%. Но в то время как вся эта математика звучит очень точно, на самом деле мы не очень уверены в этом, поскольку наши модели плохие (с большим количеством дополнительной, снижающей точность, субъективной информации) с учетом этого небольшого количества информации.
Секст Эмпирик
2
@whuber Я отредактировал свой ответ. Это был хороший комментарий, и я надеюсь, что теперь он более понятен в ответе.
Sextus Empiricus
1
2) Сюжет - это ленивый вычислительный метод для достижения оптимального MLE. Я просто вычисляю все возможные значения в сетке и вижу, что такое valeu. Если вам нужно быть быстрее, вы можете использовать вычислительный итерационный метод / алгоритм, который ищет оптимальный вариант, или, возможно, может быть прямое аналитическое решение.
Секст Эмпирик
12

Много усилий можно было бы потратить на идеальную модель. Но иногда плохая модель лучше. И ничто не говорит о плохой модели, такой как центральная предельная теорема - все является нормальной кривой.

Мы будем игнорировать «сверхурочные». Мы будем моделировать сумму отдельных точек как нормальную кривую. Мы будем моделировать игру в 38 раундов, и тот, у кого больше очков, выигрывает, а не с первого до 20. Это очень похоже на игру!

И, слепо, я буду утверждать, что мы приближаемся к правильному ответу.

Пусть - распределение точки. имеет значение 1, когда вы получаете очко, и 0, когда вы этого не делаете.XXX

Таким образом, = ~ и = = ~ .E(X)0.58Var(X)E(X)(1E(X))0.24

Если являются независимыми точками, то - это очки, которые вы получаете после игры в 38 раундов.Xii=138Xi

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

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

и = = ~SD(i=138Xi) 3.0238Var(X))3.02

В нашей грубой модели мы проигрываем, если и выигрываем, если .Σ 38 я = 1 X я > 19i=138Xi<19i=138Xi>19

1,0115,62%22.04193.02 составляет стандартного отклонения от среднего значения, что вероятность отказа в после ознакомления с диаграммой z-баллов .1.0115.62%

Если сравнивать с более точными ответами, это примерно на от правильного значения.1%

Как правило, лучше проверить надежность вероятности победы , чем более строгую модель, которая предполагает вероятность и идеально ее моделирует.58 %58%58%

Yakk
источник
@Yakk, откуда, черт возьми, 38 пришли ?? Также я уверен, что var (38 * x) = 38 ^ 2 * var (X), а не 38 * var (X). Как ваша «очень хорошая задняя часть расчета конверта» сохраняется после исправления этой ошибки?
use_norm_approx
@use_ Я использую небрежный 38 * X как «сумму 38 независимых X», а не «один X умноженный на 38». 38 происходит от того, «кто получит более 19 побед, тот вначале выигрывает игру». Я мог бы использовать 39 игр и первый> 19,5 вместо; результат будет похожим.
Якк
3

Исходя из симуляции, похоже, что вероятность выигрыша в любой конкретной игре составляет около 85,5%.

Вероятность выигрыша ровно в 2 раза (именно так я читаю заголовок, но не похоже на то, что вы спрашиваете) составляет около 10,1%.

Запустите код ниже.

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
within_person
источник
1
Это очень близко к аналитическому решению Whuber: 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%
Sextus Empiricus