ポイントを獲得する可能性が58%の場合、ピンポンゲームで21を獲得し、2で勝つ可能性はどのくらいですか?


90

同僚と賭けをして、50のピンポンゲーム(最初に21ポイントを獲得し、2で勝った)のうち、50をすべて勝ち取るという賭けをしました。ポイントに加えて、私はこれまでにすべてのゲームに勝ちました。私はポイントを獲得する可能性が58%であり、ポイントを獲得する可能性が42%あるかどうか疑問に思っています。ゲームに勝つ可能性は何パーセントですか?確率の差を埋めることができる公式はありますか?

私たちはあちこちでグーグル検索を行い、会社のデータサイエンティストに尋ねさえしましたが、正解は見つかりませんでした。

編集:うわー、私は応答の徹底に感銘を受けています。本当にありがとうございました!!! 人々が好奇心を抱いている場合には、賭け方の最新情報があります。50試合中18試合に勝ったので、さらに32試合に勝つ必要があります。私はすべてのポイントの58.7%を獲得したため、対戦相手は41.3%のポイントを獲得しました。私の対戦相手の標準偏差は3.52、彼の平均スコアは14.83、彼の中央値は15.50です。以下は、これまでの各ゲームのスコアのスクリーンショットです。人々が興味を持っている場合、賭けが進むにつれて更新を続けることができます。

編集#2:残念ながら、まだいくつかのゲームしかプレイできませんでした。結果は以下のとおりです。スコアのスクリーンショットの束がないように、写真を交換し続けるだけです。

最終更新:ゲーム#28で同僚についに負けました。彼は私を21-13でbeatった。ご協力ありがとうございます!

ここに画像の説明を入力してください


11
そこである式:のためにそれは、フォームに情報全部で21項(大きい係数を有する、超える最大:倍程度-20多項式)。すべてのポイントが独立している場合、次の35ゲームに勝つ可能性はだけです。p 21 /1 2 p + 2 p 21.6 × 10 16 0.432 p=0.58,p21/(12p+2p2)1.6×10160.432%
whuber

8
すべてのポイント(およびゲーム)が互いに独立しているとは思えません(さまざまな理由で)。非独立性は答えに大きな影響を与える可能性があります。
マークL.ストーン

8
私がプレイしたのと同じゲームであると仮定すると、1つのサービングがアドバンテージを持っていることを覚えています。「ホットハンド」に関するすべてを無視すると、サービング時に68%、そうでないときに48%が勝つ可能性があります。これはすべての確率をゆがめます。それは58%にならしても、私たちは、このように十分な情報を持っていない...
ハンス・オルソン

5
ただのコメント-21ポイント?卓球は7つのゲームの最高の、2は2001年に戻って、一度にプレイヤーごとに役立つ、11小数点形式に切り替え
rcgldr

5
〜5ゲーム程度ごとにこのベットの更新を投稿し続けます。残念ながら、私たちは仕事の後にしかプレイしないため、週に数回しかゲームをプレイできません。
リチャード

回答:


119

分析は、ゲームが少なくとも2ポイントのマージンで勝つために「残業」に入るという見通しによって複雑になります。 (それ以外の場合はhttps://stats.stackexchange.com/a/327015/919に示されているソリューションと同じくらい簡単です。)問題を視覚化し、それを使用して、簡単に計算できる貢献に分解する方法を示します。答え。結果は、少し面倒ですが、扱いやすいです。シミュレーションはその正確性を裏付けています。


してみましょうポイントを獲得するあなたの確率があること。p すべてのポイントが独立していると仮定します。ゲームに勝つチャンスは、オーバータイムにならない()かオーバータイムになったと仮定して、対戦相手が最後に持っているポイント数に応じて(オーバーラップしない)イベントに分割できます。後者の場合、ある段階でスコアが20〜20だったことは明らかです(または明らかになります)。0,1,,19

素晴らしい視覚化があります。 ゲーム中のスコアをポイントとしてプロットされてみましょうあなたのスコアとある相手の得点です。ゲームが展開すると、スコアはで始まる最初の象限の整数格子に沿って移動し、ゲームパスを作成します。あなたの1人が少なくともを獲得し、少なくともマージンを持っているとき、それは終了します。このような勝ち点は、このプロセスの「吸収境界」である2セットの点を形成し、ゲームパスが終了する必要があります。のX Y 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).

右側の括弧内は、多項式です。(次数はように見えますが、主要な用語はすべてキャンセルされます。次数はです。)p2120

場合、勝つ可能性は近いp=0.580.855913992.

この分析を任意の数のポイントで終了するゲームに一般化するのに問題はないはずです。必要なマージンがより大きい場合、結果はより複雑になりますが、同じくらい簡単です。2

ちなみに、これらの勝利のチャンスがあると、最初のゲームに勝つチャンスはでした。それはあなたが報告するものと矛盾しないので、各ポイントの結果が独立していると仮定し続けることを奨励するかもしれません。それにより、あなたが(0.8559)159.7%15

(0.8559)350.432%

残りのゲームすべてに勝つこと、これらのすべての仮定に従って進むと仮定します。ペイオフが大きくない限り、それは良い賭けのようには聞こえません!35


このような作業を簡単なシミュレーションで確認したいです。R1秒間に何万ものゲームを生成するコードを 次に示します。ゲームが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)

これを実行すると、10,000回の反復のうち8,570件で勝ちました。このような結果をテストするために、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つまたは3つのゲームが危険に近いほど損失に近かったことがわかります。(明るい灰色の正方形で終わるパスは、損失です。)

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

はどのようにばらばらですか?繰り返し設定しませんか?たとえば、の場合、二項係数はです。場合次に。ただし、後者の構成の1つは、見つかったものとまったく同じです(つまり、プレーヤーで21ポイント、対戦相手で0ポイント)。交差点の確率を差し引くべきではありませんか?これがそもそも私をブロックしたものです。f(y)y=01y=1(2120)=21y=0
Easymode44

1
@whuber:素晴らしい、r code実装の開示の「素敵な視覚化」の部分でもありますか?どうもありがとう。
マクシミリアン

7
@Stefan私の値は(Mathematicaで)正確な有理数計算を使用して計算され、最後に丸められました。倍精度浮動小数点のみを使用して計算された可能性があるため、最後の数桁が間違っていると想定しています。有理数として、値は
2494929816061114641968058046704583744174849151775019163577995310486129149305191822350025177001953125000000000000000000000000000000000000.
whuber

4
@Maximilian視覚化のためのコードを投稿しました。
whuber

3
残業を処理するより簡単な方法は、20-20に達したらペアでポイントを取ることだと思います。重要なのは、最初のプレイヤーが両方に勝つ(確率0.58²)か、2番目に両方に勝つ(0.42²)のいずれかです。他に何かが起こった場合、それを無視して、上記のいずれかが発生するまでプレイを続けます。したがって、20-20の後の最初のプレーヤーの勝率は0.58²/(0.58²+0.42²)であり、2番目のプレーヤーの勝率は0.42²/(0.58²+0.42²)です。
supercat

25

二項分布を使用し、すべての点が独立していると仮定します。

  • プレイヤーが最初のポイントでになる確率(最後のポイントが勝たなければならないという事実を考慮して)は58%2140n=2140(n120)0.58210.42n21 =k=2140(40k)0.58k0.4240k 0.80695

  • プレイヤーがプレイしたポイントからを獲得する確率は、二項式です。それを条件として、プレイヤーが2ポイントマージンで勝つ確率は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
一部「確率プレイヤーは、2つのポイントマージンであるとの勝ち」58%0.582/(0.582+0.422)0.656006それはおそらく、この中で最も難しい部分であるとして、いくつかの説明を使用することができます問題。
-JiK

1
@JiK:以降の平等になると、決定的なポイントのペアの確率はであるため、より良いプレーヤーがそうするよりも、より良いプレーヤーが2つ先に進む確率は -それ以外の場合は同じ位置に戻ります20200.582+0.4220.5820.582+0.422
ヘンリー

3
一番上の回答よりもはるかに簡潔な回答ですが、写真がなく、12時間後に投稿されたので、投票数が80減ったのではないでしょうか。= |
アタックファーム

17

私は計算上の答えに行きました。勝者が2で勝たなければならないピンポンゲームをシミュレートする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))
}

まず、各ポイントを獲得する確率が50%の10,000ゲームをシミュレートして、それが機能することを確認しましょう。勝率は約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)

これは.8606を返します。したがって、1つのゲームに勝つ可能性は約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)

これにより.0037が返されます。つまり、次の35ゲームで約0.37%の確率で勝ちます。これは、すべてのゲームとすべてのポイントが互いに独立していることを前提としています。必要に応じて、上記の関数に明示的にプログラムできます。

注:これをオンザフライで実行しています。これをプログラミングするためのより計算的に効率的な方法があると確信しています。


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%の勝率は固定されており、ポイントは独立していると仮定すべきですか?

すべてのポイントが次のポイントから独立しているという考慮事項がある場合、Whuberの答えは良いものであり、美しく書かれ説明されていると信じています。しかし、実際にはそれは興味深い出発点(理論的/理想化された)に過ぎないと信じています。実際には、ポイントは互いに独立しているわけではないため、同僚の対戦相手が少なくとも50回のうち1回は勝つ可能性が高いと思われます。

最初は、ポイントの依存性はランダムなプロセスであると想像しました。つまり、プレーヤーによって制御されない(たとえば、勝ち方や負け方が異なる場合)。これは50点のうち1点です。

しかし、2番目の考えは反対を示唆するかもしれません:あなたがすでに9.7%のチャンスで何かを「達成した」という事実は、ベイジアンの観点から、あなたをゲームに勝つ確率が85%を超える(または、少なくとも、前の2つの段落で述べたように、対戦相手が15%よりもはるかに高い確率を持つ可能性を低くする)。たとえば、自分の位置があまり良くない場合に得点が上がる可能性があります(通常のポイントよりも、賛成でも反対でも、マッチポイントで得点が大きく異なる人にとっては奇妙なことではありません)。これらのダイナミクスを考慮に入れることで85%の推定値を改善でき、ゲームに勝つ確率が85%を超える可能性があります。

とにかく、この単純なポイント統計を使用して答えを出すことは非常に間違っているかもしれません。はい、できますが、前提(ポイントの独立性)が必ずしも正しくなく、回答に大きな影響を与えるため、正しくありません。42/58統計はより多くの情報ですが、その使用方法(モデルの正確性)についてはよくわかりません。情報を使用すると、実際にはない正確な回答が得られる場合があります。


例:完全に異なる結果を持つ同等に合理的なモデル

したがって、仮説的な質問(独立したポイントとこれらのポイントの既知の理論的確率を仮定)は、それ自体興味深いものであり、答えることができますが、単に迷惑で懐疑的/冷笑的です。仮説的なケースへの答えは、あなたの根底にある/元の問題にそれほど関連しておらず、あなたの会社の統計学者/データ科学者がまっすぐな答えを提供したがらない理由かもしれません。

ただ、精製して、代替紛らわしい(反)のステートメントを提供例(ないneccesarily良い)「Q:?私はすでに15を獲得した場合は50試合の合計のすべてを獲得する確率は何である」を 「ポイントスコア42/58が関連している、またはより良い予測を提供している」と思わない場合は、ゲームに勝つ確率の予測と、以前に勝ったことに基づいてさらに35ゲームを勝つ予測を行います15ゲーム:

  • :これが意味するであろうゲームに勝つためにあなたの確率のベイズ手法にこれは、前の一様なf(x)= 1の場合、およそ31%ですが、少し楽観的かもしれません。しかし、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μ)ν

これは、非常に高いパラメーター(基礎となるベータ分布の分散が小さい)の可能性が高いことを示しているため、おそらく過分散はほとんどありません。つまり、データは、勝つ可能性を固定した58%の確率の代わりに、ポイントを勝ち取る可能性のために変数パラメーターを使用する方が良いことを示唆していないことを意味します。この新しいデータは、二項分布に基づいてスコアを想定するWhuberの分析の追加サポートを提供しています。しかし、もちろん、これはまだモデルが静的であり、あなたとあなたの同僚がランダムなモデル(すべてのゲームとポイントが独立している)に従って振る舞うと仮定しています。ν

固定58%の勝率の代わりにベータ分布のパラメーターの最尤推定:

58pの勝率のベータ分布の最尤推定

Q:「パラメーターmuおよびnuのLogLikelihood」グラフを読むにはどうすればよいですか?

A:

  • 1)最尤推定(MLE)は、モデルに適合する方法です。尤度とは、モデルのパラメーターが与えられたデータの確率を意味し、これを最大化するモデルを探します。その背後には多くの哲学と数学があります。
  • 2)プロットは、最適なMLEに到達するための遅延計算法です。グリッド上のすべての可能な値を計算し、その価値を確認します。より高速にする必要がある場合は、最適な方法を探す計算反復法/アルゴリズムを使用するか、直接分析ソリューションが存在する可能性があります。
  • 3)パラメーターおよびは、p = 0.58のモデルとして使用されるベータ分布https://en.wikipedia.org/wiki/Beta_distributionに関連しています(修正されないように、代わりに時間によって異なります)時間)。このモデル化された「ベータ-p」は、特定のスコアに到達する確率の予測に到達するために二項モデルと組み合わせられます。これは、ベータ二項分布とほぼ同じです。最適な値は付近であることがわかりますが、これは驚くことではありません。値が(低分散を意味する)高いです。少なくともいくらかの過剰分散を想像/予想していました。μνμ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%を超えるべきであると主張する例を1つだけ挙げます。しかし、このすべての数学は非常に正確に聞こえますが、実際には、この少量の情報を考えると、モデルが(多くの追加の、精度を低下させる、主観的な情報を伴う)不良であるため、実際には確かではありません。
マーティンウェタリング

2
@whuber回答を編集しました。それは良いコメントでしたが、答えがより明確になったと思います。
マーティンウェタリング

1
2)プロットは、最適なMLEに到達するための遅延計算法です。グリッド上のすべての可能な値を計算し、その価値を確認します。より高速にする必要がある場合は、最適な方法を探す計算反復法/アルゴリズムを使用するか、直接分析ソリューションが存在する可能性があります。
マーティンウェタリング

12

完璧なモデルに多くの労力を費やすことができます。しかし、時には悪いモデルの方が良い場合があります。そして、中心極限定理のような悪いモデルを言うものは何もありません-すべてが正常な曲線です。

「残業」は無視します。個々のポイントの合計を正規曲線としてモデル化します。最初の20ラウンドではなく、38ラウンドをプレイし、最も多くのポイントを獲得したモデルをプレイします。これは非常によく似たゲームです。

そして、やみくもに、正しい答えに近づいたと主張します。

してみましょう地点の分布も。 は、ポイントを取得すると値1を取得し、取得しないと値0を取得します。XX

したがって、 =および = =。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)38Var(X))3.02

当社の粗モデルでは、我々は、もし負けして勝てば。i=138Xi<19i=138Xi>19

22.04193.02は、平均から標準偏差離れており、zスコアチャートを参照した後、失敗する確率がなります。1.0115.62%

より厳密な回答と比較した場合、これは正しい値から約オフです。1%

あなたは一般の信頼性を検討したほうが良いと思います勝利のチャンスではなく、想定しているより厳密なモデルチャンスと完璧なモデルを。58%58%


@ Yakk、38はどこから来たのですか?? また、38 * var(X)ではなく、var(38 * x)= 38 ^ 2 * var(X)であると確信しています。このエラーを修正した後、「エンベロープ計算の非常に良いバック」はどのように保持されますか?
use_norm_approx

@use_「1 X×38」ではなく、「38個の独立したXの合計」としてずさんな38 * Xを使用しています。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

1
これはWhuberの分析ソリューションに非常に近づきます:dbinom(20,40,0.58)*0.58^2/(1-2*0.58+2*0.58^2)+dbinom(20,39,0.58)*0.5810.04%を与える
Martijn Weterings
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.