如何根据可变数量的比赛计算公平的整体比赛得分?

时间:2008-11-11 09:46:46

标签: math statistics

我有一个游戏,你可以在每场比赛中得分-40到+40。 用户可以玩任意数量的比赛。 我想计算一个隐含地考虑比赛次数的总分。

仅计算平均值是不公平的。 例如,如果彼得打四场比赛并且在每场比赛中获得40分,他将拥有相同的总数 得分为Janne,他只得到40分的一场比赛。

加上比赛得分也不公平。 彼得打2场比赛(每场比赛得40分),总得分80。 Janne打了8场比赛(每场比赛得10分),总得分80。

是否有(简单)公平的方式来计算总分? 我读过Elo& amp;用于国际象棋评级的Glicko系统,但两者均基于 球员评分历史和对手评分。

12 个答案:

答案 0 :(得分:4)

另一种方法是使用贝叶斯统计。模拟每个团队作为β分布获胜的概率,并计算一个分布中的样本大于另一个分布的样本的概率。这种方法用于测试癌症药物。它不仅考虑哪种药物具有更好的反应率,而且考虑哪种药物具有更多数据。比较两个球员或两个球队是完全相似的。

这可能听起来比实际上复杂,但是进行这些计算有free software,在某些情况下,计算很容易手工完成。

请参阅an introduction to random inequalities以及有关beta distribution inequalities的详细信息。

答案 1 :(得分:4)

这取决于你想要强调的内容,但我认为这既简单又有效:

平均得分+比赛

你可以稍微加权变量(例如2 *游戏,如果你想要产生更大的影响) - 但基本关系似乎是合理的。

在你的第一个例子中,彼得将有44,而简将有40 - 但如果彼得开始失分,简可以赶上。

答案 2 :(得分:3)

我认为没有好的方法可以在一个数字中创建这样的分数。

我建议计算平均成功并包括游戏数量。例如

  • 彼得得分40/2(2场比赛平均40分)
  • Janne得分10/8(8场比赛平均10分)

您可以快速查看第二个数字是否更大,第一个数字更准确。

否则使用ELO,但只有每位玩家至少玩10场比赛时才是准确的。

答案 3 :(得分:3)

你可以看看Microsofts TruSkill,几个月前我读到了它,我真的忘记了大部分的细节,所以我不确定它是否合适,但它可能是一个很好的灵感。

答案 4 :(得分:3)

答案 5 :(得分:2)

我建议将游戏分数设为95%置信区间的下限。在你玩很多游戏的限制中,你的游戏分数接近你的平均分数,但总是严格减少。这就像使用平均分数,但对那些只玩了几场比赛并且可能只是幸运的人持怀疑态度。

换句话说,这是对足够多的比赛后真实平均值的悲观估计。

如何在不存储整个分数列表的情况下计算95%置信区间: Computing a mean confidence interval without storing all the data points

或者,如果您跟踪所玩游戏的数量,该人的得分总和以及他们得分的平方和,您可以按如下方式计算标准错误:

SE = sqrt((ss - s^2/n) / (n-1) / n)

您可以将游戏分数设为:

,而不是打扰95%CI
s/n - SE

请注意,只有一个游戏玩过时,上面是负无穷大。这意味着你只给一个只玩过一个游戏的人作为他们的游戏分数得分最低。

另一个想法是明确显示人员排名时的置信区间(按低端排序)。然后人们会更多地贬低他们的CI并增加他们的平均值。

最后,对更多近期游戏进行加权可能更有意义,以便孤立的糟糕游戏更快地衰减。这样做的方法是选择大于1的折扣因子d,并使i游戏的权重为d^(i-1)。 (虽然我不再确定如何应用置信区间的想法。)

PS:我在这里扩展了这个想法:How to calculate mean based on number of votes/scores/samples/etc?

答案 6 :(得分:1)

使公式在游戏数量方面呈非线性。

让G为游戏数量,S为所有游戏分数的总和,然后, 总分数= G ^ 2 * S

玩弄它,直到找到合乎逻辑的东西。

答案 7 :(得分:1)

你可以检查胜利并给予连续胜利(+ 5,+ 10,+ 15 ......)奖励积分,所以(-10,+ 10,+ 10,+ 10,-10,+ 10)会给(-10,+ 10,+ 15,+ 20,-10,+ 10)。你也可以这样做而不关心跑步,这会给(-10,+ 10,+ 15,+ 20,-10,+ 25)。

另一种可能性是在开始时将奖励值设置为0,如果玩家输了则将其减少5,如果玩家获胜则将其增加5。

答案 8 :(得分:1)

你可以将得分设置为玩家过去30场比赛中最好的10场比赛的平均值(或者其他一些数字 - 也许只是最后10场比赛适合你)。

尚未玩过10场比赛的玩家可以获得他们已经玩过的游戏的平均值,但是然后将其加权为0,以补偿n

或计算每场比赛的全球平均得分(可能是0),并在计算少于10场比赛的球员的得分时加上(10-n)该数额的假分数。

答案 9 :(得分:1)

另一个出发点可能是关于ELO国际象棋排名系统的维基百科文章

答案 10 :(得分:1)

构造一个图形,每个人都用一个顶点表示。图中的每条边代表两个玩家之间的一系列匹配。现在应用某种类型的页面排名算法,为您提供顶点上的一组权重。这应该会给你你的排名。

现在棘手的部分是挑选pagerank中使用的边权重。对于有向边(u,v) - 从顶点u到顶点v - 我个人会指定一个权重,等于玩家u对玩家v获胜的点数。

您可以随时向图表添加顶点,但请记住,页面排名有利于较旧的顶点(即那些玩过更多游戏的顶点!)。无论如何参考:

http://dbpubs.stanford.edu:8090/pub/1999-66

另一种想法是使用ELO评级,并尝试通过为每个人分配相同的分数来引导它,然后向前传播分数。我不能说这完全令人满意。

答案 11 :(得分:0)

与分数相比,这取决于您想要对比赛进行加权的程度。你可以定义一个返回游戏重量的函数:一个游戏只有一小部分,很多游戏就有1个(例如1 - 1 /(2 * #Games)),累计得分是多个。