若者論を研究するブログ

打ち捨てられた知性の墓場

MENU

麻雀における平均順位・ラス率のシミュレーション

 「麻雀における平均順位のぶれ 」は信頼区間を用いて簡便に表すことができますが、より分かりやすく体感できるように簡易的なシミュレータをつくりました。以下のコードをRで実行すれば、任意の着順分布について、ある試合数(tt)における平均順位・ラス率のデータを任意の人数分(ss)得ることができます。

# tt:試行回数, ss:サンプルサイズ, hi~yo:1位~4位の確率分布です それぞれ任意の数字を設定してください
tt <- 1000
ss <- 100
hi <- 29
fu <- 27
mi <- 24 
yo <- 20

stopifnot(hi + fu + mi + yo == 100)

a <- c()
b <- c()
for (i in 1:ss){
  c <- c()
  for (i in 1:tt){
    s <- floor(runif(1, min=1, max=100+1))
    if (s <= hi){
      s <- 1
    } else if (s <= hi + fu){
      s <- 2
    } else if (s <= hi + fu + mi){
      s <- 3
    } else {
      s <- 4
    }
    c <- c(c, c(s))
  }
  t <- mean(c)
  a <- c(a, c(t)) # ss人分(1人当たり試行回数tt回)の平均順位データがここに格納されます
  u <- sum(c >= 4) /tt*100
  b <- c(b, c(u)) # ss人分(1人当たり試行回数tt回)のラス率データがここに格納されます
}
a
##   [1] 2.344 2.403 2.262 2.296 2.363 2.280 2.372 2.365 2.369 2.421 2.342 2.386
##  [13] 2.306 2.394 2.389 2.329 2.413 2.412 2.367 2.362 2.316 2.319 2.375 2.404
##  [25] 2.374 2.373 2.381 2.329 2.421 2.324 2.381 2.336 2.368 2.371 2.348 2.388
##  [37] 2.345 2.340 2.366 2.404 2.343 2.327 2.358 2.422 2.300 2.302 2.391 2.382
##  [49] 2.256 2.421 2.326 2.362 2.368 2.329 2.395 2.298 2.303 2.310 2.350 2.327
##  [61] 2.341 2.395 2.374 2.341 2.351 2.328 2.344 2.298 2.384 2.345 2.347 2.395
##  [73] 2.417 2.321 2.391 2.285 2.441 2.281 2.327 2.346 2.420 2.391 2.363 2.273
##  [85] 2.337 2.314 2.384 2.331 2.269 2.421 2.379 2.382 2.290 2.382 2.419 2.381
##  [97] 2.336 2.386 2.355 2.278
b
##   [1] 19.3 20.7 17.7 18.4 19.6 17.4 21.1 19.8 19.4 22.6 20.9 22.2 19.1 21.5 20.3
##  [16] 18.2 21.6 22.1 18.6 19.2 18.7 21.3 22.0 21.9 21.8 21.2 21.0 18.4 22.2 19.6
##  [31] 18.5 19.3 20.8 20.3 18.7 20.4 20.6 19.0 20.7 20.9 18.9 20.9 20.3 23.3 18.4
##  [46] 19.5 21.0 19.8 16.7 21.0 19.1 20.4 20.1 20.8 22.5 17.9 17.2 18.7 19.6 19.5
##  [61] 20.3 20.1 20.2 21.0 21.2 18.8 20.8 18.5 20.1 20.1 18.8 21.8 22.0 18.2 19.4
##  [76] 18.3 21.3 18.5 19.8 18.3 21.9 20.2 19.3 17.8 19.4 18.9 20.5 18.7 18.2 21.2
##  [91] 19.8 21.4 18.2 21.4 21.3 19.0 17.3 21.5 21.6 18.5
真の平均順位2.35(1位:29%, 2位:27%, 3位24%, 4位:20%), 真のラス率20%の人が1000本打った結果×100人分のデータです。思ったよりもぶれが大きいと感じる人が多いかもしれませんね。「1000戦は短期」はネタではなくガチだということです。たかだか1000本、2000本程度の結果に一喜一憂するのはやめて仏の心で麻雀を打ちましょう。
 
以下のデータはサンプルサイズを1000人にした場合の、平均順位・ラス率の最大値・最小値・標準偏差です。標準偏差(SD)とは簡単に言えば「平均的なぶれ」のことで、真の平均±1SDに約68%の人が、真の平均±2SDに約95%の人が含まれることになります。ちなみに順位分布を多少変えても標準偏差の値は殆ど変わりません。
(1*hi+2*fu+3*mi+4*yo)/100 # 真の平均順位です
## [1] 2.35
max(a) # 養分の平均順位です(サンプルの最大値) 
## [1] 2.468
min(a) # 鉄強の平均順位です(サンプルの最小値)
## [1] 2.235
sd(a)  # 平均順位の平均的なぶれです(標準偏差)
## [1] 0.03463891
yo     # 真のラス率です
## [1] 20
max(b) #フリーのイキリ小僧のラス率です(サンプルの最大値)
## [1] 24.7
min(b) #ラス回避の鬼のラス率です(サンプル最小値)
## [1] 16.2
sd(b)  #ラス率の平均的なぶれです(標準偏差)
## [1] 1.278075