用二元泊松模型预测2022年世界杯淘汰赛结果

简介: 双泊松模型有一个严重的缺陷,那就是它假设比赛中两队的比分是条件独立的。而我们都知道,在对抗性比赛中,两队的比分是存在关联的,双泊松模型可以描述比分的这种关联性,提高了比赛结果预测的准确度。

用二元泊松模型预测2022年世界杯淘汰赛结果

网上有很多文章用双泊松(Double Poisson)模型来预测世界杯比赛结果。但是双泊松模型有一个严重的缺陷,那就是它假设比赛中两队的比分是条件独立的。而我们都知道,在对抗性比赛中,两队的比分是存在关联的,因为两队都会根据场上的比分形势调整策略。比如足球比赛,当主队1:0领先,且距离比赛结束只剩10分钟时,落后的客队会孤注一掷,甘愿冒更大风险去争取平局。但如果主队3:0甚至4:0领先时,领先的主队可能会稍微放松下来,甚至教练会用新人换下主力,此时落后的客队更容易进1球(甚至主队会礼貌性让球)。所以比赛中两队比分是相关的,这种相关性可以通过依赖性参数来描述。

二元泊松(Bivariate Poisson)模型可以度量两队比分的依赖性参数,用二元泊松模型对比赛进行的预测准确率更高,在1/8决赛已经进行的4场比赛中,二元泊松模型预测正确率100%。

需要完整源代码的朋友可以关注私信我,或者评论留言索取。

1000.png

二元泊松模型

考虑随机变量$X_r, r \in {1,2,3}$服从独立泊松分布,其参数$\lambda_r > 0$,那么随机变量$X = X_1+X_3$和$Y=Y_2+Y_3$服从二元泊松分布$BP(\lambda_1,\lambda_2,\lambda_3)$,其联合概率为:

$$
\begin{aligned}
P_{X,Y}(x,y)&=Pr(X=x,Y=y)\
&=\exp{-(\lambda_1+\lambda_2+\lambda_3)}\frac{\lambda_1^x}{x!}\frac{\lambda2^y}{y!}\times\sum{k=0}^{min(x, y)}\begin{pmatrix}x\k\end{pmatrix}\begin{pmatrix}y\k\end{pmatrix}k!(\frac{\lambda_3}{\lambda_1\lambda_2})^k
\end{aligned}
$$

边缘概率上,每个随机变量服从泊松分布,期望$E(X) = \lambda_1+\lambda_3$,$E(Y) = \lambda_2+\lambda_3$,协方差$cov(X, Y) = \lambda_3$。这里$\lambda_3$就是度量两队进球之间相关性的指标。如果$\lambda_3=0$,则两个变量是条件独立的,此时二元泊松分布退化成两个独立泊松分布的乘积,即双泊松模型。

我们用$(x_n, y_n)$表示第$n$场比赛主队和客队的比分,那么带比分相关性的二元泊松模型的一般形式为:

$$
\begin{aligned}
X_n,Yn \mid \lambda{1n},\lambda{2n},\lambda{3n}&∼\text{BivPoisson}(\lambda{1n},\lambda{2n},\lambda{3n})\
\log(\lambda
{1n})&=\mu+home+att_{hn}+def{an}\
\log(\lambda
{2n})&=\mu+att_{an}+def{hn}\
\log(\lambda
{3n})&=\beta_0+\gamma1\beta{h_n}^{home}+\gamma2\beta{a_n}^{away}+\gamma_3\beta {w_n}
\end{aligned}
$$

其中:

$\lambda{1n}, \lambda{2n}$分别表示主队和客队的进球率

$\mu$表示截距项

$home$代表主场效应,众所周知在自己的主场踢球是由很多优势的(更熟悉场地、更适应气候、更热情的球迷...);

$att_t$ 和 $def_t$ 分别表示每只球队的进攻能力防守能力,公式中下标$t$写作$h_n, a_n$,分别表示主队和客队的第$n$场比赛;

$\beta_{hn}^{home}$ 和 $\beta{a_n}^{away}$ 分别代表主队和客队的参数;

$w_n$是第$n$场比赛的协方差向量,用于建模协方差项;

$\beta$ 是对应的回归系数向量;

参数$\gamma_1, \gamma_2, \gamma_3$是取值为0或1的二进制指示符,可激活线性预测的不同来源。因此,当$\gamma_1=\gamma_2=\gamma_3=0$时,我们得到常数协方差;而当$(\gamma_1, \gamma_2,\gamma_3)=(1,1,0)$时,我们假设协方差仅取决于团队的参数,跟比赛协方差无关。

为了实现模型的可识别性,攻击/防御参数都是零和的

$$
\sum_{t=1}^Tattt=0, \qquad \sum{t=1}^Tdef_t=0
$$

这条约束大量出现在足球文献中,即假设第$T$只球队的能力等于其他球队能力和的负值,即能力的零和性。

$$
attT = -\sum{t=1}^{T-1}att_t, \qquad defT = -\sum{t=1}^{T-1}def_t
$$

有了上面的理论基础,我们就可以构造并训练我们的模型了。

最大似然法

给定参数向量 $\theta = ({att_t, deft, t=1,\dots, T}, \mu, home, \beta{hn}^{home}, \beta{a_n}^{away}, \beta_0, \beta)$ ,二元泊松模型的似然函数为:

$$
L(\theta) = \prod{n=1}^N\exp{-(\lambda{1n}+\lambda{2n}+\lambda{3n})}\frac{\lambda_{1n}^{x_n}}{xn!}\frac{\lambda{2n}^{y_n}}{yn!}\times\sum{k=0}^{min(x_n, y_n)}\begin{pmatrix}x_n\k\end{pmatrix}\begin{pmatrix}yn\k\end{pmatrix}k!(\frac{\lambda{3n}}{\lambda{1n}\lambda{2n}})^k
$$

最大似然参数估计只要找到最大似然估计函数 $\hat\theta$ 即可:

$$
\hat\theta = \underset{\theta \in \Theta} {argmax} L(\theta)
$$

这个过程可以用求导解决:

$$
l'(\theta)=0
$$

Wald检验+偏置信区间也可以构造最大似然估计$\hat\theta$,95%的Wald类型区间满足:

$$
\hat \theta ±1.96 se(\hat \theta)
$$

最大似然法仅适用于静态模型,因为静态模型复杂度不高。当使用动态模型时,随着参数空间的增长,最大似然法的计算量会非常大,且输出结果也不可靠。所以我们会更关注另一种方法——贝叶斯法。

贝叶斯法

贝叶斯分析的目标是从联合后验分布$\pi(\theta \mid D)$中得出推断结论,这里$D=(x_n,yn) {n=1,…,N}$ 表示$N$场比赛的观测数据集合。联合后验分布满足:

$$
\pi(\theta \mid D) = \frac{p(\theta \mid D)\pi(\theta)}{p(D)} \propto p(D \mid \theta)\pi(\theta)
$$

其中 $p(D \mid \theta)$ 是模型采样分布(与似然函数成比例),$\pi(\theta)$ 是 $\theta$ 的联合先验分布。$p(D) = \int_\Theta p(D \mid \theta)\pi(\theta)d\theta$ 是不依赖于$\theta$的边际似然。

在大多数情况下,$\pi(\theta \mid D)$不具有闭合形式,因此,我们需要通过模拟对其进行近似。处理这种情况的最主流的方法是马尔可夫链蒙特卡罗模拟

就推断结论而言,我们通常对单一参数的边际后验分布(后验均值、中值、可信区间等)感兴趣。我们可以将上述二元泊松模型的后验分布公式写成:

$$
\pi(\theta \mid D) \propto \pi(\theta) \prod{n=1}^N \text{BivPoisson}(\lambda{1n},\lambda{2n},\lambda{3n})
$$

其中$\pi(\theta)=\pi(att)\pi(def)\pi(\mu)\pi(home)\pi(\beta_{hn}^{home})\pi(\beta{a_n}^{away})\pi(\beta_0)\pi(\beta)$ 是先验独立参数分量假设下的联合最优分布。

标准方法是将一些信息量较弱的先验分布分配给团队的某些特定能力。这些参数在两个常见(先验)分布中可以交换:

$$
\begin{aligned}
&\text{att}t∼N(\mu{att},\sigma_{att})\
&\text{def}t∼N(\mu{def},\sigma_{def}), t= 1,\dots,T
\end{aligned}
$$

这里面 $mu{att},\sigma{att}, \mu{def},\sigma{def}$ 都是超参,通过向其余参数分配一些信息量较弱的先验来完成模型公式化。

用模型预测8强

我用2018-2022年期间的所有国际比赛,以及2022年世界杯小组赛的数据,通过Hamilton Monte Carlo采样、2000次迭代训练了一个模型。其思路是提供一个动态预测场景:在每个比赛日结束时,重新调整模型以预测剩余的比赛。对2022年世界杯淘汰赛第一轮的16场比赛的预测,每只球队的动态先验会集中关注参赛球队小组赛3场比赛的进攻防守数据,前三场比赛将作为一个单独独立的时间段,而不是作为三个不同的时间段来考虑。这里有一个因素需要考虑,就是小组赛的最后一场比赛中,一些球队已经晋级,他们可能没有派主力阵容或没有全力去踢,所以对这样的球队(比如葡萄牙),在先验数据上会进行一些微调。

用上述模型的后验预测分布的后验匹配概率见下表:

强队 弱队 最可能结果
荷兰 美国 0.471 0.298 0.231 1-0 (0.164)
阿根廷 澳大利亚 0.665 0.246 0.089 1-0 (0.208)
法国 波兰 0.620 0.235 0.145 1-0 (0.145)
英格兰 塞内加尔 0.632 0.235 0.132 1-0 (0.162)
日本 克罗地亚 0.363 0.288 0.349 1-1 (0.122)
巴西 韩国 0.740 0.190 0.070 1-0 (0.171)
西班牙 摩洛哥 0.562 0.270 0.168 1-0 (0.173)
葡萄牙 瑞士 0.486 0.273 0.241 1-0 (0.141)

上表中,胜/负针对的都是强队,最可能结果后面的括号表示后验概率。

更加直观可视化的结果见下图:

第2页-1.PNG

上图中越深的颜色表示越可能出现的结果,x轴是强队,y轴是弱队。

从预测结果看,目前已经结束的4场1/8决赛全部预测正确:

比赛 预测 实际结果
荷兰-美国 ✅荷兰胜 (0.471) 3:1 荷兰胜
阿根廷-澳大利亚 ✅阿根廷胜 (0.665) 2:1 阿根廷胜
法国-波兰 ✅法国胜 (0.620) 3:1 法国胜
英格兰-塞内加尔 ✅英格兰胜 (0.632) 3:0 英格兰胜

12月6日更新

昨晚今晨进行的日本-克罗地亚和巴西-韩国的两场八分之决赛中,日本-克罗地亚120分钟踢平,点球大战中日本队2:4负于克罗地亚。这个结果与模型的预测相同。模型预测120分钟的最可能结果是1-1战平。另一场巴西-韩国毫无悬念,巴西4:1战胜韩国,这与模型预测巴西有74%的概率获胜一致。

比赛 预测 实际结果
日本-克罗地亚 ✅120分钟战平
日本胜(0.363) - 平局(0.288 ) - 克罗地亚胜(0.349)
最可能结果:1-1(0.122)
2:4 克罗地亚胜(点球)
巴西-韩国 ✅巴西胜 (0.740) 4:1 巴西胜

12月7日更新

12月7日的比赛,模型预测西班牙有56.2%的胜率,结果120分钟踢平,点球西班牙0:3输给摩洛哥,算是爆了个小冷门。葡萄牙的比赛结果跟预期一致,葡萄牙胜。只是没有料到会是6:1的大比分。

比赛 预测 实际结果
西班牙-摩洛哥 ❌西班牙(0.562) 0:3 摩洛哥胜(点球)
葡萄牙-瑞士 ✅葡萄牙胜 (0.486) 6:1 葡萄牙胜

总结

至此,1/8决赛全部完成,模型预测仅错1场(西班牙-摩洛哥),整体准确率还是比较理想的。下面我会紧锣密鼓给出1/4决赛的预测。

用模型预测4强

下面是对1/4决赛的预测(2022-12-09 17:05 更新)

强队 弱队 最可能结果
巴西 克罗地亚 0.676 0.220 0.104 1-0 (0.160)
阿根廷 荷兰 0.414 0.264 0.322 0-0 (0.172)
葡萄牙 摩洛哥 0.536 0.191 0.273 1-0 (0.160)
英格兰 法国 0.361 0.292 0.348 0-0 (0.126)

第2页-2.PNG

12月10日更新

比赛 预测 实际结果
巴西-克罗地亚 ❌巴西胜(0.676) 2:4 克罗地亚胜(点球)
阿根廷-荷兰 ✅120分钟战平
阿根廷胜(0.414) - 平局(0.264) - 荷兰胜(0.322 )
最可能结果:0-0(0.172)
4:3 阿根廷胜(点球)

12月11日更新

比赛 预测 实际结果
葡萄牙-摩洛哥 ❌葡萄牙胜(0.536 ) 0:1 摩洛哥胜
英格兰-法国 ❌120分钟战平
英格兰胜(0.361) - 平局(0.292) - 法国胜(0.348)
最可能结果:0-0 (0.126)
1:2 法国胜

总结

至此1/4决赛全部结束,4场比赛只预测对1场,摩洛哥成为最大的黑马,葡萄牙被摩洛哥淘汰是所有人都始料不及的,然而,这就是足球!

半决赛预测

下面是对半决赛的预测(2022-12-13 23:27 更新)

强队 弱队 最可能结果
阿根廷 克罗地亚 0.580 0.263 0.157 1-0 (0.170)
法国 摩洛哥 0.503 0.302 0.195 1-0 (0.180)

第2页-3.PNG

12月14日更新

比赛 预测 实际结果
阿根廷-克罗地亚 ✅阿根廷胜 (0.580) 3:0 阿根廷胜

12月15日更新

比赛 预测 实际结果
法国-摩洛哥 ✅法国胜 (0.503) 2:0 法国胜

总结

至此半决赛已经结束,两场比赛全部预测正确!

决赛预测

下面是对决赛的预测(2022-12-17 21:27 更新)

强队 弱队 最可能结果
阿根廷 法国 0.417 0.321 0.262 0-0 (0.171)
克罗地亚 摩洛哥 0.345 0.310 0.345 0-0 (0.153)

第2页-4.PNG

冠军预测

比赛进行至此,我们可以计算入围半决赛的球队的夺冠概率:
| 球队 | 夺冠概率 |
|--------|-----------------|
| 阿根廷| 45% |
| 法国 | 35% |
| 克罗地亚 | 12% |
| 摩洛哥 | 8% |

$$
\ast \ast \ast
$$

需要完整源代码的朋友可以关注私信我,或者评论留言索取。

目录
相关文章
|
7月前
|
机器学习/深度学习 数据可视化
R语言MCMC的lme4二元对数Logistic逻辑回归混合效应模型分析吸烟、喝酒和赌博影响数据
R语言MCMC的lme4二元对数Logistic逻辑回归混合效应模型分析吸烟、喝酒和赌博影响数据
|
7月前
|
机器学习/深度学习
数据分享|R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟-1
数据分享|R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟
|
7月前
|
算法 Python
R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列
R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列
|
7月前
|
机器学习/深度学习 人工智能 算法
数据分享|R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟-2
数据分享|R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟
|
7月前
|
机器学习/深度学习
R语言非线性回归和广义线性模型:泊松、伽马、逻辑回归、Beta回归分析机动车事故、小鼠感染、蛤蜊数据、补剂钠摄入数据|数据分享(上)
R语言非线性回归和广义线性模型:泊松、伽马、逻辑回归、Beta回归分析机动车事故、小鼠感染、蛤蜊数据、补剂钠摄入数据|数据分享
|
7月前
|
机器学习/深度学习 数据可视化
R语言非线性回归和广义线性模型:泊松、伽马、逻辑回归、Beta回归分析机动车事故、小鼠感染、蛤蜊数据、补剂钠摄入数据|数据分享(下)
R语言非线性回归和广义线性模型:泊松、伽马、逻辑回归、Beta回归分析机动车事故、小鼠感染、蛤蜊数据、补剂钠摄入数据|数据分享
|
7月前
|
机器学习/深度学习 人工智能 算法
数据分享|R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟
数据分享|R语言广义线性模型GLM:线性最小二乘、对数变换、泊松、二项式逻辑回归分析冰淇淋销售时间序列数据和模拟
|
7月前
|
数据采集
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
R语言用线性模型进行臭氧预测: 加权泊松回归,普通最小二乘,加权负二项式模型,多重插补缺失值
|
7月前
R语言贝叶斯Poisson泊松-正态分布模型分析职业足球比赛进球数
R语言贝叶斯Poisson泊松-正态分布模型分析职业足球比赛进球数
|
7月前
|
机器学习/深度学习 算法 数据可视化
R语言逻辑回归和泊松回归模型对发生交通事故概率建模
R语言逻辑回归和泊松回归模型对发生交通事故概率建模