每逢欧洲杯、世界杯等国际大赛,各种关于比赛结果或冠军归属的预测便纷至沓来。其中既有“章鱼保罗”这样的玄学加持,也有Penn(2022)等学者这样的“一本正经的胡说八道”。随着今天凌晨H组最后两场小组赛终场哨响,本届世界杯十六强对阵名单也已然确定。上半区荷兰、阿根廷、巴西等豪强逐鹿,下半区英法葡西上演欧洲内战。相信经过小组赛的严格“筛选”,目前仍旧在天台上傲然屹立、俯瞰楼下众多炮灰的一定都是赌中好手、盘口宠儿。秉持着看热闹不嫌事大的原则,本人第一时间焚香沐浴、开坛做法,祭出本门不外传的统计绝学,来预测一下淘汰赛阶段的走向,以期为诸位的“求财之路”提供可资借鉴的参考。
有道是“大道至简”,前有萧峰以一套太祖长拳力战聚贤庄群雄,后有独孤求败“重剑无锋,大巧不工,草木竹石均可为剑”,所以本次预测不涉及诸如机器学习或深度学习等高深武学,而是仅仅基于泊松分布这一常见统计分布。首先回顾一下泊松分布:若离散随机变量\(X\)的PMF为
\(f_{X}(x|\lambda)=e^{-\lambda}\frac{\lambda^x}{x!}\)
其中\(\lambda>0\),则称该随机变量服从泊松分布Poisson(\(\lambda\))。参数\(\lambda\)称作“强度参数(Intensity Parameter)”。现实生活中,泊松分布是除正态分布外最为常见的统计分布,例如每年飞机坠毁次数、某地区患病人数、核物质每秒放射性衰变次数,甚至普法战争期间普鲁士士兵被马踢死的人数等等均近似服从泊松分布。自然而然,足球比赛中的进球个数也可以通过泊松分布加以刻画。诚然,一场比赛的胜负除了取决于比分,也取决于运气【注:此处的运气包括天气、球员的心理状态、VAR是否正常工作、主教练是不是李铁等各种偶发因素】。因此,所谓的预测,就是在不确定性中寻求确定性的过程。
应用泊松分布需要满足一定的前提条件。首先,随机变量的支撑是所有非负整数的集合,换言之,一场比赛的进球数可以是1个、2个或更多,但不能是0.5个或者-1个;其次,在任意两个相等的时间区间内,产生\(n\)个进球的概率相等,即满足平稳性;再次,进球发生的概率相互独立,即满足独立增强性;最后,在一个很小的时间区间内不可能同时出现两粒或更多进球,即满足次序性。可以看到,第一个和最后一个条件必然成立,而其余两个条件至多是部分成立。不过出于预测的目的,假定所有条件均满足。
现在,考虑如何量化比赛双方的实力。作为一名DND爱好者,这里我想到了攻击加值(Attack Bonus)和防御等级(Armor Class)的概念:一次攻击是否命中取决于AB和投骰结果是否大于目标的AC。那末,一支球队也可以有类似“进攻指数”和“防守指数”这样的概念。不过由于球队的防守质量与失球数量成反比关系,所以此处无法单纯地比较大小。稍作改进,我选择计算球队进攻指数与防守指数之积。举例而言,假设A球队的进攻指数是12、防守指数是0.1,B球队的进攻指数是6、防守指数是0.2,那末一场比赛中两队的比分“理论上”是\(12*0.2:6*0.1=2.4:0.6\),约略一下就是2:1。如前所述,既然是在不确定性中寻求确定性,就一定有不确定性存在,则2:1也仅是最有可能出现的结果,因此将A球队的进球数视作服从均值为2.4的泊松分布,而B球队的进球数视作服从均值为0.6的泊松分布。
以上便是本次预测的全部理论基础。操作化方面,我收集了本届世界杯十六强队伍历届世界杯的进球数和失球数数据(如下图),据此计算球队的进攻指数和防守指数。
通过定义一个getWinner函数便可预测每场比赛的胜者,代码如下【注:由于十分简单,故不再加以说明】:
def getWinner(data, home, away):
lamb_home = data.at[home, 'Avg.GS'] * data.at[away, 'Avg.GC']
lamb_away = data.at[away, 'Avg.GS'] * data.at[home, 'Avg.GC']
prob_home, prob_away, prob_draw = 0, 0, 0
for i in range(11):
for j in range(11):
p = poisson.pmf(i, lamb_home) * poisson.pmf(j, lamb_away)
if i == j:
prob_draw += p
elif i > j:
prob_home += p
else:
prob_away += p
points_home = 3 * prob_home + prob_draw
points_away = 3 * prob_away + prob_draw
if points_home > points_away:
winner = home
else:
winner = away
return winner
反复调用getWinner函数,预测结果如下图所示。现在,请大声告诉我,谁是冠军?!
参考文献
[1]Hansen B E. Probability and Statistics for Economists[M]. Princeton University Press, 2022.
[2]Penn M J, Christl A D. Analysis of a double Poisson model for predicting football results in Euro 2020[J]. Plos One, 2022, 17(5): e0268511.
[创作不易,转载请注明出处。另,享受足球,远离博彩]
0 Comments Latest Comment
No Comments for Now