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.