Introducing interactive data at ASA
/By Matthias Kullowatz (@mattyanselmo)
You know how you go to some sports websites and you can sort and filter their data, and there are lots of options and it looks cool and stuff? Well starting today, we’re rolling out interactive versions of our stats that also look cool. You can find the link up at the top under "xG Interactive Tables." This first iteration focuses on shot stats and expected goals, and it gives you guys more ways to filter and explore the data. New features include:
· Filter by date range
· Filter players by minimum number of shots
· Filter out penalties and/or free kicks for players
· Separate player stats by teams he’s played on
· Download the summarized data to csv
We’ve also made improvements to the xGoal models about which you might care. First of all, we refit the models to data from 2011 through today, like right now. Also, we’re now modeling shot placement details about penalty kicks separately from “live action” shots for the keeper model. Down the middle on a shot in live action is very different than down the middle on a PK, and now we’ve calibrated such differences to better capture shot stopping metrics. This effectively gives us three logistic generalized linear models, and they are shown below.
Team/shooter model
Estimate | Std. Error | Z-value | P-Value | |
---|---|---|---|---|
(Intercept) | 3.526 | 0.141 | 25.051 | 0.000 |
Log-distance | -2.384 | 0.039 | -61.486 | 0.000 |
Pattern: Fastbreak | 1.344 | 0.097 | 13.865 | 0.000 |
Pattern: Free kick | 1.238 | 0.107 | 11.540 | 0.000 |
Pattern: Penalty | 3.297 | 0.117 | 28.196 | 0.000 |
Pattern: Regular | 0.631 | 0.053 | 11.815 | 0.000 |
Pattern: Set piece | 0.445 | 0.076 | 5.829 | 0.000 |
Available | 0.085 | 0.015 | 5.633 | 0.000 |
Available (quadratic, centered) | -0.025 | 0.006 | -4.417 | 0.000 |
Headed | -0.699 | 0.055 | -12.749 | 0.000 |
Through ball | 0.900 | 0.064 | 14.008 | 0.000 |
Off cross | -0.351 | 0.050 | -6.978 | 0.000 |
Non-PK Model
Estimate | Std. Error | Z-Value | P-Value | |
---|---|---|---|---|
(Intercept) | 4.868 | 0.160 | 30.465 | 0.000 |
Log-distance | -2.960 | 0.059 | -50.012 | 0.000 |
Headed | -1.029 | 0.077 | -13.417 | 0.000 |
cross | -0.148 | 0.070 | -2.117 | 0.034 |
Through ball | 0.580 | 0.079 | 7.379 | 0.000 |
Pattern: Fastbreak | 0.715 | 0.125 | 5.729 | 0.000 |
Pattern: Free kick | 0.517 | 0.134 | 3.852 | 0.000 |
Pattern: Regular | 0.097 | 0.073 | 1.330 | 0.183 |
Pattern: Set piece | 0.112 | 0.104 | 1.082 | 0.279 |
Lateral dist. to shot | 1.177 | 0.026 | 45.181 | 0.000 |
Height (feet) | 0.112 | 0.011 | 10.588 | 0.000 |
Height (quadratic, centered) | 0.067 | 0.005 | 12.538 | 0.000 |
Penalty model
Estimate | Std. Error | Z-value | P-Value | |
---|---|---|---|---|
(Intercept) | 4.868 | 0.160 | 30.465 | 0.000 |
Pattern: Penalty | 1.734 | 0.803 | 2.160 | 0.031 |
Lateral dist. to shot | -0.127 | 0.077 | -1.641 | 0.101 |
Height (feet) | 0.783 | 0.242 | 3.235 | 0.001 |
Height (quadratic, centered) | 0.336 | 0.080 | 4.220 | 0.000 |
You'll note that there is a "Penalty" indicator in the penalty only model. This is because I fit this as a single model with penalty interactions, and then separated it out for your viewing pleasure. Just think of it like two intercepts. Also, notice the weak coefficient for lateral distance in the penalty only model, especially relative to the corresponding coefficient in the non-PK model. That makes intuitive sense because on penalties it's more about fooling the keeper than beating the keeper wide. I might even take that variable out of the model completely. But don't worry, I'll let you know first.
We plan to post these in the "xGoals Explanation" section of the website in the future.