预测某个时间点的游戏结果

时间:2011-03-31 19:05:38

标签: sql-server-2005 probability

您好我试图根据过去的信息来衡量我在MSSQL数据库中根据所用的分钟数和得分线在任何时间点预测足球比赛的结果(主队的胜利,平局或失利)

我设想的输出就像fangraphs对棒球一样 http://www.fangraphs.com/scoreboard.aspx?date=2010-11-01

虽然有两行,因为有三种而不是两种可能的结果

从数据和现有表格中我可以创建像这样的游戏记录

Time   TeamID Venue   MatchID  Result
 6    TOT     H       5        W
27    ASV     A       5        W
58    ASV     A       5        W
66    TOT     H       5        W
77    TOT     H       5        W

因此,对于这场比赛的图表,主队TOT将以45%左右的胜利线(基于主场胜利的历史概率)开始,当他们进球时会飙升,在两次ASV得分后显着下降但是当他们得分上升到3-2然后在90分钟的时间内轻轻上升到100%时可能会超过90%

所以我想通过我有数据的7500场比赛,并根据他们建立90分钟比赛的每一分钟,根据这些结果,主队获胜,平局或失利的几率是多少? / p>

例如,在最简单的情况下,经过1分钟的比赛,实际上有44支主队得分,其中33人获胜,6人并列,5人失利。客场球队得分的相应情况已经为主队取得9胜8平23负。但是,我无法理解如何获得所有90分钟的得分线并将其与最终结果进行比较(在任何特定时刻只能得分一个目标)

任何帮助的TIA

1 个答案:

答案 0 :(得分:0)

总会有东西,你可以添加到模型中,但我会做的第一件事是,每场比赛,拉出来在每分钟得分,并假设获胜的概率不依赖于当目标得分,但取决于现在的分数。

所以现在每场比赛你有90个数据点。

game1: 
    Minute:   0    10    20    30    40    50    60    70    80    90
    Score :[0 0] [0 0] [0 1] [0 1] [1 1] [1 1] [1 1] [2 1] [2 1] [3 1]

接下来我要做的是,对于每一分钟,为每个分数配置加上所有游戏的胜利,亏损和平局数。

因此该表中的每个条目都可能对应于以下内容:

@minute 27, for score {home:5, away:2} : {homeWins: 9, draws:1, homeLosses:0}

你可能想尝试使用得分差异而不是实际得分值。

无论哪种方式,一旦您以这种方式格式化数据,获得合理的解决方案很容易。

如果一个游戏上,它的minute 77,并且得分为{home:5, away:2},则(MLE)估计是%胜90,10%拉伸,0%失去(根据该示例表上面的条目。)

所以你已经看到它包含“laplacian smoothing”将如何帮助:为每个赢/输/抽奖计数器的最终值增加+1。这样,如果你从未在这种情况下看到过丢失,你就不会说它是不可能,不可能是一个非常强大的词(寻找betadrichlet发行版为了背景)。

这种方法的一个明显问题是,如果你在预测之前从未见过特定的分数组合(33%,33%,33%),这在某些情况下显然是错误的。

最简单的解决方法是强制执行一项规则,例如“领先6分至少与领先5分一样好”。这很难看,但这是一个开始。

为避免出现这种特殊情况逻辑,您可以尝试使用蒙特卡罗近似法对该方法求平均值。

这些方法中最简单的方法是:在我的所有数据中,我预计每个球队在每分钟比赛中有1到30的进球机会 - >从当前点模拟游戏10000次,计算赢/输/抽奖的次数,你就完成了。

如果太随机或处理器太强烈,请切换到Markov Chains。