如何证明 Elo 评级或页面排名对我的设置有意义?

机器算法验证 拟合优度 排行 评分
2022-03-15 19:52:59

我有一组球员。他们互相对抗(成对)。随机选择成对的玩家。在任何游戏中,一个玩家赢,另一个玩家输。玩家互相玩有限数量的游戏(一些玩家玩更多游戏,一些玩家玩更少)。所以,我有数据(谁赢了谁,赢了多少次)。现在我假设每个玩家都有一个决定获胜概率的排名。

我想检查这个假设是否真的是真的。当然,我可以使用Elo 评分系统PageRank 算法来计算每个玩家的评分。但是通过计算收视率,我并不能证明它们(收视率)确实存在或它们意味着什么。

换句话说,我想有一种方法来证明(或检查)球员确实有不同的优势。我该怎么做?

添加

更具体地说,我有 8 名球员,只有 18 场比赛。所以,有很多配对的球员没有互相交手,也有很多配对的球员只交手过一次。因此,我无法估计给定一对玩家获胜的概率。例如,我还看到有一个球员在 6 场比赛中赢了 6 次。但也许这只是一个巧合。

4个回答

你需要一个概率模型。

排名系统背后的理念是,一个数字足以代表球员的能力。我们可以称这个数字为他们的“实力”(因为“排名”在统计中已经意味着特定的东西)。我们可以预测,当力量(A)超过力量(B)时,玩家 A 将击败玩家 B。但是这个陈述太弱了,因为(a)它不是量化的,并且(b)它没有考虑到一个较弱的玩家偶尔会击败一个较强的玩家的可能性。我们可以通过假设 A 击败 B 的概率仅取决于他们的实力差异来克服这两个问题。 如果是这样,那么我们可以重新表达所有必要的优势,以便优势差异等于获胜的对数几率。

具体来说,这个模型是

logit(Pr(A beats B))=λAλB

其中,根据定义,是对数赔率,我写来表示玩家 A 的实力等。logit(p)=log(p)log(1p)λA

这个模型的参数和玩家一样多(但自由度少了一个,因为它只能识别相对强度,所以我们将其中一个参数固定为任意值)。它是一种广义线性模型(在二项式家族中,带有 logit 链接)。

可以通过最大似然估计参数。同样的理论提供了一种在参数估计周围建立置信区间并检验假设的方法(例如,根据估计,最强的玩家是否明显强于估计的最弱的玩家)。

具体来说,一组游戏的可能性是产品

all gamesexp(λwinnerλloser)1+exp(λwinnerλloser).

在固定其中一个的值之后,其他的估计值就是使这种可能性最大化的值。因此,改变任何估计值都会降低其最大值的可能性。如果减少太多,则与数据不一致。通过这种方式,我们可以找到所有参数的置信区间:它们是改变估计值不会过度降低对数似然度的限制。一般假设可以类似地进行检验:假设约束强度(例如通过假设它们都相等),这个约束限制了可能性的大小,如果这个限制的最大值与实际最大值相差太远,假设是被拒绝。λ


在这个特殊问题中,有 18 个游戏和 7 个自由参数。一般来说,参数太多了:有很大的灵活性,可以在不改变最大似然度的情况下完全自由地改变参数。因此,应用 ML 机器很可能证明是显而易见的,即可能没有足够的数据对强度估计有信心。

如果您想检验每个玩家在每场比赛中获胜或失败的可能性均等的零假设,我认为您需要对由赢家与输家制表形成的列联表的对称性进行检验。

设置数据,使您有两个变量,“赢家”和“输家”,其中包含每场比赛的赢家和输家的 ID,即每个“观察”都是一场比赛。然后,您可以构建赢家与输家的列联表。您的零假设是您希望这张桌子是对称的(在重复的比赛中平均)。在您的情况下,您将获得一个 8×8 表,其中大多数条目为零(对应于从未见过的玩家),即。该表将非常稀疏,因此几乎可以肯定需要进行“精确”测试,而不是依赖于渐近线。

在 Stata 中可以使用对称命令进行这种精确的测试在这种情况下,语法为:

symmetry winner loser, exact

毫无疑问,它也在我不太熟悉的其他统计包中实现。

你检查过马克·格利克曼的一些出版物吗?这些似乎相关。 http://www.gliko.net/

评分的标准差中隐含的是游戏的期望值。(此标准偏差在基本 Elo 中固定为特定数字,在 Glicko 系统中是可变的)。我说的是期望值,而不是平局获胜的概率。了解您拥有的任何 Elo 评级的关键是基本分布假设(例如,正态或逻辑)和假设的标准偏差。

Elo 公式的逻辑版本表明,110 分的评分差异的预期值为 0.653,例如玩家 A 为 1330,玩家 B 为 1220。

http://en.wikipedia.org/wiki/Elo_rating_system (好的,这是维基百科的参考,但我已经在这个答案上花费了太多时间。)

所以现在我们有了基于每个玩家评分的每场比赛的期望值,以及基于比赛的结果。

在这一点上,我要做的下一件事是通过将差距从低到高排列,并将预期结果和实际结果相加,以图形方式检查这一点。因此,对于前 5 场比赛,我们的总分可能为 2,预期得分为 1.5。对于前 10 场比赛,我们的总分可能是 8,预期分是 8.8,等等。

通过累积绘制这两条线(就像您对 Kolmogorov-Smirnov 检验所做的那样),您可以查看预期累积值和实际累积值是否相互跟踪良好或差。很可能其他人可以提供更正式的测试。

测试评分系统中估计方法的准确性的最著名的例子可能是国际象棋评分 - Elo 与Kaggle上的世界其他地区比赛,其结构如下:

参赛者使用包含 8,631 名顶级选手的 65,000 多个近期结果的训练数据集来训练他们的评分系统。然后参与者使用他们的方法来预测另外 7,809 场比赛的结果。

获胜者是Elo++

从理论上讲,这似乎是一个很好的满足您需求的测试方案,即使 18 匹配不是一个很好的测试基础。您甚至可以检查各种算法的结果之间的差异(这里是我们的排名系统 rankade 和最知名的Elo GlickoTrueskill之间比较)。