/cdn.vox-cdn.com/uploads/chorus_image/image/66122687/1198853968.jpg.0.jpg)
If you follow me on twitter, you might have seen me tease this new running win probability thing. I promised I would do more to explain what it is and how I created it, so here we go.
First: what it is. Let’s take the Crystal Palace vs Arsenal match as our example.
:no_upscale()/cdn.vox-cdn.com/uploads/chorus_asset/file/19608483/Crystal_Palace_vs_Arsenal_Win_Probability.jpg)
What we see here is the win, loss and draw probability per minute that the match was played.
The model takes the starting win, loss, and draw probability (this is from my own simulation model, but you could just as easily use the implied odds from betting lines or anything else that you would like), and then looks at the game state to calculate the odds for that moment in the match.
In general things are fairly stable for the opening 12 minutes, then Arsenal score and they get a big jump (scoring is good for chances to win! Someone should maybe have told Unai Emery this) in their win probability.
As time goes on, Arsenal’s win probability slightly increases (getting a second goal would have been huge, and that is something I think coaches underestimate and thus get too interested in protecting their lead vs trying to add on), while Crystal Palace’s WP declines (with the probability of a draw increasing).
The next big change is the equalizer by Crystal Palace at 54 minutes, which brings all of the win, loss, draw outcomes into about equal probability with about 40 minutes to play. Both teams chances of winning decline over the next 20 minutes, with a draw becoming ever more likely.
The next big change is the red card earned by Pierre-Emerick Aubameyang in the 67th minute. To estimate the value of a red card in goals, I went with the formula that was developed by Mark Taylor, which is:
Goal Expectancy during the Game = Initial Expectancy * (Proportion of game left)^0.85 with a value of 1.4 for the initial value of the red card.
At the moment the red card was given, there is about 28 minutes left in the match, which is 29.5% of the match remaining. If we plug these into the formula, we get:
1.4 (Red Card Value) * 0.295 (Proportion of game remaining)^0.85 = 0.5 goals
With this added to Crystal Palace’s goals, they see a big jump in their chances of winning, but it declined pretty quick the longer that they went without actually turning their man advantage into a true scoreline advantage.
One of the other cool things that comes out of this work is that you can put a value on how much goals actually mean for their teams. In this match Aubameyang’s goal added 25% to Arsenal’s chance of winning and added 0.67 expected points for Arsenal. Jordan Ayew’s goal added 23% to Crystal Palace’s chance of winning and was worth 0.86 expected points for them.
We can do something similar for the whole season:
Expected Points Added and Win Probability Added Top 50
Player | Expected Points Added | xPA Rank | Win Probability Added | WPA Rank |
---|---|---|---|---|
Player | Expected Points Added | xPA Rank | Win Probability Added | WPA Rank |
Pierre-Emerick Aubameyang | 12.0 | 1 | 4.1 | 1 |
Danny Ings | 11.3 | 2 | 3.6 | 2 |
Marcus Rashford | 8.7 | 3 | 3.3 | 4 |
Jamie Vardy | 8.1 | 4 | 2.9 | 6 |
Jordan Ayew | 8.0 | 5 | 3.3 | 3 |
Tammy Abraham | 7.7 | 6 | 3.1 | 5 |
Ra�l Jim�nez | 7.2 | 7 | 1.8 | 16 |
Sadio Man� | 7.1 | 8 | 2.8 | 7 |
Neal Maupay | 6.5 | 9 | 2.4 | 11 |
Harry Kane | 6.4 | 10 | 2.5 | 9 |
Richarlison | 6.3 | 11 | 2.5 | 10 |
Chris Wood | 6.2 | 12 | 2.0 | 13 |
Roberto Firmino | 6.0 | 13 | 2.7 | 8 |
Raheem Sterling | 5.6 | 14 | 2.4 | 12 |
Dominic Calvert-Lewin | 5.4 | 15 | 2.0 | 14 |
Sergio Ag�ero | 5.3 | 16 | 1.9 | 15 |
Dele Alli | 5.1 | 17 | 1.5 | 25 |
S�bastien Haller | 4.8 | 18 | 1.8 | 17 |
Teemu Pukki | 4.6 | 19 | 1.6 | 20 |
Mohamed Salah | 4.3 | 20 | 1.6 | 23 |
James Maddison | 4.2 | 21 | 1.7 | 18 |
Todd Cantwell | 4.2 | 22 | 1.6 | 24 |
Gabriel Jesus | 4.2 | 23 | 1.7 | 19 |
Lys Mousset | 3.9 | 24 | 1.2 | 35 |
Matt Doherty | 3.8 | 25 | 1.6 | 22 |
James Ward-Prowse | 3.8 | 26 | 1.5 | 26 |
Alexandre Lacazette | 3.8 | 27 | 0.9 | 55 |
Ashley Barnes | 3.8 | 28 | 1.4 | 29 |
Patrick van Aanholt | 3.7 | 29 | 1.5 | 27 |
Oliver McBurnie | 3.7 | 30 | 0.9 | 52 |
Wesley | 3.7 | 31 | 1.3 | 33 |
Riyad Mahrez | 3.7 | 32 | 1.4 | 28 |
Kelechi Iheanacho | 3.6 | 33 | 1.6 | 21 |
Anthony Martial | 3.3 | 34 | 1.2 | 34 |
Christian Pulisic | 3.2 | 35 | 1.3 | 31 |
Kevin De Bruyne | 3.2 | 36 | 1.3 | 32 |
Nicolas Pepe | 3.0 | 37 | 1.1 | 38 |
Son Heung-Min | 3.0 | 38 | 1.1 | 39 |
Wilfried Zaha | 3.0 | 39 | 0.7 | 68 |
James Milner | 2.9 | 40 | 1.4 | 30 |
Callum Wilson | 2.8 | 41 | 1.0 | 41 |
Jay Rodriguez | 2.8 | 42 | 1.2 | 36 |
Adama Traor� | 2.8 | 43 | 0.8 | 60 |
Adam Webster | 2.8 | 44 | 1.0 | 44 |
Youri Tielemans | 2.7 | 45 | 1.0 | 42 |
Lucas Moura | 2.7 | 46 | 1.0 | 47 |
Abdoulaye Doucour� | 2.6 | 47 | 1.0 | 46 |
Mason Mount | 2.6 | 48 | 1.0 | 49 |
Jonjo Shelvey | 2.5 | 49 | 0.5 | 85 |
Gerard Deulofeu | 2.5 | 50 | 0.8 | 58 |
How these are calculated and created:
I based the calculations on the last 4 years of Premier League match data, using the pre-match betting odds for the odds for each team.
I then ran logit regression models for each minute, using the outcome as what I was trying to predict with pre-match odds and the current game state as the predictive variables. I then smoothed the overall things using 5 minute increments.
The equation for calculating this is:
Win Probability= econstant + starting wp(x1) + game state (x2)/1+ econstant + starting wp(x1) + game state (x2)
For the different variables it is split between home and away values with the following for each minute:
Win Probability Values
Minute | Away Constant | Away Starting WP | Away Game State | Home Constant | Home Starting WP | Home Game State |
---|---|---|---|---|---|---|
Minute | Away Constant | Away Starting WP | Away Game State | Home Constant | Home Starting WP | Home Game State |
1 | -2.666 | 5.706 | -0.673 | -2.259 | 4.669 | 0.873 |
2 | -2.659 | 5.674 | -0.707 | -2.248 | 4.640 | 0.880 |
3 | -2.651 | 5.641 | -0.740 | -2.238 | 4.610 | 0.887 |
4 | -2.643 | 5.609 | -0.774 | -2.227 | 4.580 | 0.894 |
5 | -2.636 | 5.576 | -0.807 | -2.217 | 4.551 | 0.901 |
6 | -2.628 | 5.543 | -0.841 | -2.206 | 4.521 | 0.908 |
7 | -2.621 | 5.511 | -0.875 | -2.196 | 4.492 | 0.915 |
8 | -2.613 | 5.478 | -0.908 | -2.185 | 4.462 | 0.922 |
9 | -2.605 | 5.446 | -0.942 | -2.175 | 4.433 | 0.929 |
10 | -2.598 | 5.413 | -0.975 | -2.165 | 4.403 | 0.936 |
11 | -2.587 | 5.377 | -1.005 | -2.156 | 4.372 | 0.945 |
12 | -2.576 | 5.341 | -1.035 | -2.147 | 4.340 | 0.953 |
13 | -2.566 | 5.305 | -1.065 | -2.138 | 4.309 | 0.962 |
14 | -2.555 | 5.269 | -1.095 | -2.130 | 4.277 | 0.971 |
15 | -2.544 | 5.232 | -1.125 | -2.121 | 4.246 | 0.979 |
16 | -2.535 | 5.192 | -1.147 | -2.107 | 4.203 | 0.996 |
17 | -2.526 | 5.152 | -1.169 | -2.093 | 4.160 | 1.013 |
18 | -2.517 | 5.111 | -1.190 | -2.079 | 4.117 | 1.030 |
19 | -2.507 | 5.071 | -1.212 | -2.065 | 4.075 | 1.046 |
20 | -2.498 | 5.031 | -1.233 | -2.051 | 4.032 | 1.063 |
21 | -2.489 | 4.993 | -1.244 | -2.040 | 3.995 | 1.083 |
22 | -2.481 | 4.955 | -1.254 | -2.029 | 3.958 | 1.103 |
23 | -2.472 | 4.918 | -1.265 | -2.018 | 3.920 | 1.123 |
24 | -2.464 | 4.880 | -1.275 | -2.007 | 3.883 | 1.143 |
25 | -2.455 | 4.843 | -1.285 | -1.995 | 3.846 | 1.164 |
26 | -2.448 | 4.802 | -1.297 | -1.984 | 3.812 | 1.178 |
27 | -2.440 | 4.762 | -1.309 | -1.973 | 3.779 | 1.192 |
28 | -2.432 | 4.722 | -1.321 | -1.962 | 3.746 | 1.207 |
29 | -2.425 | 4.681 | -1.333 | -1.951 | 3.712 | 1.221 |
30 | -2.417 | 4.641 | -1.345 | -1.940 | 3.679 | 1.236 |
31 | -2.419 | 4.612 | -1.360 | -1.931 | 3.659 | 1.240 |
32 | -2.420 | 4.583 | -1.376 | -1.922 | 3.640 | 1.244 |
33 | -2.422 | 4.555 | -1.392 | -1.913 | 3.620 | 1.249 |
34 | -2.423 | 4.526 | -1.408 | -1.904 | 3.601 | 1.253 |
35 | -2.425 | 4.497 | -1.424 | -1.895 | 3.581 | 1.258 |
36 | -2.419 | 4.468 | -1.442 | -1.896 | 3.567 | 1.268 |
37 | -2.413 | 4.440 | -1.459 | -1.896 | 3.552 | 1.278 |
38 | -2.407 | 4.411 | -1.477 | -1.897 | 3.538 | 1.287 |
39 | -2.402 | 4.382 | -1.494 | -1.898 | 3.523 | 1.297 |
40 | -2.396 | 4.354 | -1.512 | -1.898 | 3.509 | 1.307 |
41 | -2.398 | 4.330 | -1.529 | -1.893 | 3.487 | 1.321 |
42 | -2.400 | 4.306 | -1.546 | -1.887 | 3.465 | 1.334 |
43 | -2.402 | 4.282 | -1.563 | -1.882 | 3.443 | 1.348 |
44 | -2.405 | 4.258 | -1.580 | -1.876 | 3.421 | 1.361 |
45 | -2.407 | 4.234 | -1.597 | -1.871 | 3.399 | 1.375 |
46 | -2.414 | 4.230 | -1.614 | -1.870 | 3.379 | 1.401 |
47 | -2.421 | 4.226 | -1.630 | -1.869 | 3.358 | 1.427 |
48 | -2.429 | 4.222 | -1.646 | -1.868 | 3.338 | 1.453 |
49 | -2.436 | 4.218 | -1.663 | -1.868 | 3.317 | 1.479 |
50 | -2.443 | 4.214 | -1.679 | -1.867 | 3.297 | 1.506 |
51 | -2.458 | 4.211 | -1.692 | -1.864 | 3.280 | 1.532 |
52 | -2.473 | 4.207 | -1.704 | -1.861 | 3.263 | 1.558 |
53 | -2.487 | 4.204 | -1.717 | -1.858 | 3.246 | 1.585 |
54 | -2.502 | 4.200 | -1.730 | -1.855 | 3.229 | 1.611 |
55 | -2.517 | 4.197 | -1.743 | -1.852 | 3.212 | 1.637 |
56 | -2.543 | 4.197 | -1.773 | -1.844 | 3.180 | 1.680 |
57 | -2.569 | 4.196 | -1.802 | -1.836 | 3.147 | 1.722 |
58 | -2.595 | 4.195 | -1.832 | -1.828 | 3.115 | 1.765 |
59 | -2.621 | 4.195 | -1.862 | -1.819 | 3.082 | 1.807 |
60 | -2.647 | 4.194 | -1.892 | -1.811 | 3.050 | 1.850 |
61 | -2.675 | 4.193 | -1.926 | -1.812 | 3.020 | 1.896 |
62 | -2.702 | 4.193 | -1.961 | -1.813 | 2.990 | 1.942 |
63 | -2.729 | 4.192 | -1.995 | -1.813 | 2.960 | 1.988 |
64 | -2.756 | 4.191 | -2.029 | -1.814 | 2.930 | 2.034 |
65 | -2.784 | 4.190 | -2.064 | -1.815 | 2.900 | 2.080 |
66 | -2.826 | 4.191 | -2.134 | -1.822 | 2.862 | 2.150 |
67 | -2.868 | 4.192 | -2.205 | -1.829 | 2.824 | 2.220 |
68 | -2.910 | 4.193 | -2.275 | -1.837 | 2.786 | 2.290 |
69 | -2.952 | 4.194 | -2.345 | -1.844 | 2.748 | 2.361 |
70 | -2.994 | 4.195 | -2.416 | -1.851 | 2.711 | 2.431 |
71 | -3.069 | 4.268 | -2.518 | -1.897 | 2.702 | 2.537 |
72 | -3.144 | 4.342 | -2.621 | -1.942 | 2.694 | 2.643 |
73 | -3.219 | 4.415 | -2.724 | -1.987 | 2.686 | 2.750 |
74 | -3.295 | 4.489 | -2.826 | -2.032 | 2.677 | 2.856 |
75 | -3.370 | 4.562 | -2.929 | -2.077 | 2.669 | 2.962 |
76 | -3.433 | 4.609 | -3.054 | -2.145 | 2.637 | 3.123 |
77 | -3.497 | 4.657 | -3.179 | -2.213 | 2.606 | 3.283 |
78 | -3.561 | 4.704 | -3.305 | -2.282 | 2.574 | 3.444 |
79 | -3.625 | 4.751 | -3.430 | -2.350 | 2.543 | 3.605 |
80 | -3.688 | 4.798 | -3.555 | -2.418 | 2.511 | 3.765 |
81 | -3.784 | 4.600 | -3.949 | -2.750 | 2.778 | 4.718 |
82 | -3.880 | 4.402 | -4.344 | -3.083 | 3.045 | 5.671 |
83 | -3.977 | 4.204 | -4.738 | -3.416 | 3.312 | 6.624 |
84 | -4.073 | 4.006 | -5.132 | -3.749 | 3.579 | 7.577 |
85 | -4.169 | 3.808 | -5.527 | -4.082 | 3.846 | 8.530 |
86 | -4.265 | 3.610 | -5.921 | -4.702 | 3.045 | 9.961 |
87 | -4.361 | 3.412 | -6.315 | -5.265 | 2.778 | 12.894 |
88 | -4.457 | 3.213 | -6.709 | -5.828 | 2.511 | 15.827 |
89 | -4.553 | 3.015 | -7.104 | -6.390 | 2.244 | 18.759 |
90 | -4.649 | 2.817 | -7.498 | -6.953 | 1.977 | 21.692 |
91 | -4.745 | 2.619 | -7.892 | -7.241 | 1.710 | 23.224 |
92 | -4.841 | 2.421 | -8.287 | -7.529 | 1.443 | 24.757 |
93 | -4.937 | 2.223 | -8.681 | -7.817 | 1.176 | 26.289 |
94 | -5.034 | 2.025 | -9.075 | -8.105 | 0.909 | 27.821 |
95 | -5.130 | 1.827 | -9.469 | -8.392 | 0.642 | 29.354 |
For goal difference in the game state, if the home team is winning the value is positive, and if the away team is winning the value is negative.