三凤南安定段位的贝叶斯估计
最近阅读了[1]鳳凰卓東南戦の真の安定段位をベイズ推定以及这篇文章引用的[2]【麻雀】安定段位をベイズ推定する,将这两篇文章里的方法推广至三麻。本文大部分是这两篇文章的概括。
声明:我数学学得不好,概念、解释等可能有误
原理
简单来说:
- 假设每次对局独立,令一名玩家的顺位率(真实水平吃1、2、3的概率)\({\boldsymbol{\theta} = (\theta_1, \theta_2, \theta_3)}\)
- 假设\(\boldsymbol{\theta}\)的先验分布为狄利克雷分布\(\mathrm{dirichlet}(\boldsymbol{\theta}\mid\boldsymbol{\alpha})\),其中\(\boldsymbol{\alpha} = (\alpha_1, \alpha_2, \alpha_3)\)为分布的参数。这个分布是我们对凤桌玩家的水平的信念。假设吃每个顺位的概率期望值是相等的,则\(\alpha_1 = \alpha_2 = \alpha_3\),\(\boldsymbol{\alpha}\)越大,对先验的信念就越强,即吃每个顺位的概率都更集中于1/3左右,通俗而不准确地说,就是更相信大家水平更集中于2.0平顺,更加不相信存在超高和超低水平的人。
- 令该玩家实际对局结果吃1、2、3的次数为\(\boldsymbol{N} = (N_1, N_2, N_3)\)。\(\boldsymbol{\theta}\)的后验分布,即根据对战结果将先验分布更新后的分布,也是一个狄利克雷分布:\(\mathrm{dirichlet}(\boldsymbol{\theta}\mid\boldsymbol{\alpha} + \boldsymbol{N})\)。设定一个\(\boldsymbol{\alpha}\),例如等于\((200, 200, 200)\),即可计算出该玩家的顺位率的后验分布
- 根据该玩家(真实水平的)顺位率的后验分布,进行很多次(例如一百万次)蒙特卡洛模拟,根据每次抽样出的顺位率,计算对应的安定段位。获得这一百万个安定段位后,我们可以求出中位数、95%置信区间等数据。
四凤南及三凤南\(\boldsymbol{\alpha}\)的取值
在四凤南,[2]的作者设定为200,[1]的作者沿用其值。我们用以下方法确定\(\boldsymbol{\alpha}\)的取值(这是我自己的方法,并非引用的文章里的,不知道是否科学):
获取凤南对局数在某个范围内的所有玩家的对局结果顺位率及安定段位,计算出标准差、百分位数,并画出直方图
令\(\boldsymbol{\alpha}\)等于某个值,对(真实水平)顺位率的先验分布进行蒙特卡洛模拟;对每次抽样出的(真实水平)顺位率,模拟一定数量的对局,计算出(对局结果的)顺位率以及安定段位,计算出这些数据的标准差、百分位数,并画出直方图
比较1和2中的数据和图,不断修改\(\boldsymbol{\alpha}\)使两者接近。
接下来使用以上方法分别确定四凤南和三凤南\(\boldsymbol{\alpha}\)的取值。
四凤南
对战数中等组
根据男冥利的数据,截至2024年4月,四凤南对战数1201-1700半庄共719个账号的(对局结果的)各顺位率及安定段位分布如下图:

\(\boldsymbol{\alpha}\)取200时,模拟100000个玩家,每个玩家对局1434半庄(四凤南1201-1700半庄所有账号的对局数平均值),(对局结果的)各顺位率及安定段位分布如下图:

\(\boldsymbol{\alpha}\)取400时:
标准差、百分位数等数据:
对局结果顺位率 | 10% | 中位数 | 90% | 标准差 |
---|---|---|---|---|
凤桌1位率 | 0.231 | 0.250 | 0.269 | 0.0153 |
凤桌2位率 | 0.232 | 0.251 | 0.268 | 0.0136 |
凤桌3位率 | 0.231 | 0.251 | 0.269 | 0.0154 |
凤桌4位率 | 0.229 | 0.249 | 0.268 | 0.0154 |
alpha=200各顺位率 | 0.226 | 0.250 | 0.275 | 0.0190 |
alpha=400各顺位率 | 0.230 | 0.250 | 0.270 | 0.0157 |
对局结果安定段位 | 10% | 中位数 | 90% | 标准差 |
---|---|---|---|---|
凤桌 | 6.21 | 7.05 | 8.09 | 0.746 |
alpha=200 | 5.68 | 7.00 | 8.57 | 1.139 |
alpha=400 | 5.89 | 7.00 | 8.26 | 0.931 |
对战数较多组
根据男冥利的数据,截至2024年4月,四凤南对战数2101-2900半庄共390个账号的(对局结果的)各顺位率及安定段位分布如下图:

\(\boldsymbol{\alpha}\)取200时,模拟100000个玩家,每个玩家对局2457半庄(四凤南2101-2900半庄所有账号的对局数平均值),(对局结果的)各顺位率及安定段位分布如下图:

\(\boldsymbol{\alpha}\)取400时:
标准差、百分位数等数据:
对局结果顺位率 | 10% | 中位数 | 90% | 标准差 |
---|---|---|---|---|
凤桌1位率 | 0.237 | 0.254 | 0.270 | 0.0129 |
凤桌2位率 | 0.238 | 0.252 | 0.265 | 0.0107 |
凤桌3位率 | 0.235 | 0.250 | 0.264 | 0.0123 |
凤桌4位率 | 0.229 | 0.245 | 0.261 | 0.0128 |
alpha=200各顺位率 | 0.228 | 0.250 | 0.273 | 0.0176 |
alpha=400各顺位率 | 0.232 | 0.250 | 0.268 | 0.0139 |
对局结果安定段位 | 10% | 中位数 | 90% | 标准差 |
---|---|---|---|---|
凤桌 | 6.53 | 7.28 | 8.17 | 0.665 |
alpha=200 | 5.76 | 7.00 | 8.44 | 1.052 |
alpha=400 | 6.01 | 7.00 | 8.11 | 0.822 |
总结
从图像和数据来看,\(\boldsymbol{\alpha}\)取400时比\(\boldsymbol{\alpha}\)取200时更接近于凤桌结果。\(\boldsymbol{\alpha}\)取400时,模拟出的数据范围和标准差还是比凤桌结果更大,但由于根据对战数进行了筛选,玩家的实际水平也会同时被筛选,在2101-2900半庄的数据中尤为明显,安定段中位数位7.28,打得多的人水平较高。因此,虽然\(\boldsymbol{\alpha}\)取400时标准差还是比凤桌高,我也不再增大alpha的值了。
三凤南
由于我比较懒,只放凤桌结果和\(\boldsymbol{\alpha}\)取300的数据了
对战数较少组
根据男冥利的数据,截至2024年4月,三凤南601-900半庄共350个账号的(对局结果的)各顺位率及安定段位分布如下图:

\(\boldsymbol{\alpha}\)取300时,模拟100000个玩家,每个玩家对局739半庄(三凤南601-900半庄所有账号的对局数平均值),(对局结果的)各顺位率及安定段位分布如下图:

标准差、百分位数等数据:
对局结果顺位率 | 10% | 中位数 | 90% | 标准差 |
---|---|---|---|---|
凤桌1位率 | 0.307 | 0.331 | 0.354 | 0.0189 |
凤桌2位率 | 0.302 | 0.332 | 0.359 | 0.0231 |
凤桌3位率 | 0.311 | 0.336 | 0.367 | 0.0225 |
alpha=300各顺位率 | 0.303 | 0.333 | 0.364 | 0.0235 |
对局结果安定段位 | 10% | 中位数 | 90% | 标准差 |
---|---|---|---|---|
凤桌 | 5.70 | 6.78 | 7.99 | 0.927 |
alpha=300 | 5.69 | 7.00 | 8.53 | 1.115 |
对战数中等组
根据男冥利的数据,截至2024年4月,三凤南1001-2000半庄共354个账号的(对局结果的)各顺位率及安定段位分布如下图:

\(\boldsymbol{\alpha}\)取300时,模拟100000个玩家,每个玩家对局1393半庄(三凤南1001-2000半庄所有账号的对局数平均值),(对局结果的)各顺位率及安定段位分布如下图:

标准差、百分位数等数据:
对局结果顺位率 | 10% | 中位数 | 90% | 标准差 |
---|---|---|---|---|
凤桌1位率 | 0.313 | 0.335 | 0.356 | 0.0169 |
凤桌2位率 | 0.309 | 0.334 | 0.356 | 0.0185 |
凤桌3位率 | 0.308 | 0.331 | 0.354 | 0.0187 |
alpha=300各顺位率 | 0.307 | 0.333 | 0.360 | 0.0202 |
对局结果安定段位 | 10% | 中位数 | 90% | 标准差 |
---|---|---|---|---|
凤桌 | 6.09 | 7.06 | 8.19 | 0.846 |
alpha=300 | 5.87 | 7.00 | 8.29 | 0.952 |
贝叶斯估计安定段位的例子
三凤南\(\boldsymbol{\alpha}\)取300
玩家A\(\boldsymbol{N} = (10, 5, 0)\),即吃了10个1和5个2和0个3,(对局结果的)安定段位\(+\infty\),贝叶斯估计(真实水平的)安定段位中位数7.30,95%置信区间为5.94-8.90
玩家B\(\boldsymbol{N} = (0, 5, 10)\),(对局结果的)安定段位负2.00,贝叶斯估计(真实水平的)安定段位中位数6.71,95%置信区间为5.43-8.21
玩家C\(\boldsymbol{N} = (333, 334, 333)\),共1000半庄,(对局结果的)安定段位7.00,贝叶斯估计(真实水平的)安定段位中位数7.00,95%置信区间为6.06-8.05
玩家D\(\boldsymbol{N} = (1000, 1000, 1000)\),共3000半庄,(对局结果的)安定段位7.00,贝叶斯估计(真实水平的)安定段位中位数7.00,95%置信区间为6.33-7.72
玩家E\(\boldsymbol{N} = (360, 342, 324)\),共1026半庄,(对局结果的)安定段位8.00,贝叶斯估计(真实水平的)安定段位中位数7.52,95%置信区间为6.53-8.62
玩家F\(\boldsymbol{N} = (1060, 1007, 954)\),共3021半庄,(对局结果的)安定段位8.00,贝叶斯估计(真实水平的)安定段位中位数7.76,95%置信区间为7.04-8.54
玩家G\(\boldsymbol{N} = (374, 340, 306)\),共1020半庄,(对局结果的)安定段位9.00,贝叶斯估计(真实水平的)安定段位中位数8.01,95%置信区间为6.97-9.17
玩家H\(\boldsymbol{N} = (1100, 1000, 900)\),共3000半庄,(对局结果的)安定段位9.00,贝叶斯估计(真实水平的)安定段位中位数8.50,95%置信区间为7.72-9.34
上述玩家E(千战安8)比玩家C(千战安7)更强的概率为76.1%,更弱的概率为23.9%
玩家E(千战安8)比玩家D(三千战安7)更强的概率为79.5%,更弱的概率为20.5%
玩家F(三千战安8)比玩家E(千战安8)更强的概率为64.3%,更弱的概率为35.7%
玩家F(三千战安8)比玩家D(三千战安7)更强的概率为99.3%,更弱的概率为0.7%
玩家I\(\boldsymbol{N} = (123, 107, 63)\),共293半庄,(对局结果的)安定段位14.57,贝叶斯估计(真实水平的)安定段位中位数8.49,95%置信区间为7.12-10.07
玩家J\(\boldsymbol{N} = (8876, 8495, 7842)\),共25213半庄,(对局结果的)安定段位8.19,贝叶斯估计(真实水平的)安定段位中位数8.14,95%置信区间为7.85-8.45