{"id":98,"date":"2015-07-06T10:53:31","date_gmt":"2015-07-06T16:53:31","guid":{"rendered":"http:\/\/67.227.157.91\/~kenpom\/wp_blog\/offense-vs-defense-free-throw-percentage\/"},"modified":"2016-05-07T22:45:00","modified_gmt":"2016-05-08T04:45:00","slug":"offense-vs-defense-free-throw-percentage","status":"publish","type":"post","link":"https:\/\/kenpom.com\/blog\/offense-vs-defense-free-throw-percentage\/","title":{"rendered":"Offense vs. Defense: free throw percentage"},"content":{"rendered":"<p><em>This is the second of a series of posts examining whether offense or defense has more control of various aspects of a typical college basketball game. The introduction is <a href=\"http:\/\/kenpom.com\/blog\/offense-vs.-defense-the-eternal-struggle\">here<\/a>.<\/em> <\/p>\n<p>What predicts a basketball statistic the best: offensive data or defensive data? If we wanted to predict a team\u2019s free throw percentage in the next game, we could use some combination of that team\u2019s season-long free throw percentage and the opponent\u2019s free throw percentage allowed. <\/p>\n<p>You could use other things, too, of course. Adjusting the inputs for the quality of competition would figure to improve the prediction. For free throw percentage that doesn\u2019t make any sense, but it might be useful for other statistics where there is true interaction between the offense and defense. However, in this work I am only using the raw season-long stats for the statistic in question.<\/p>\n<p>What follows is an explanation of methodology that I used to determine which unit has more control over the rate of various basketball statistics. This can be rather tedious, so if you prefer, skip ahead a few paragraphs. Or do what I often do and read this piece in reverse-paragraph order until you lose interest.<\/p>\n<p>I created a very simple model to predict any statistic in a game. The general form of the model is this:<\/p>\n<p>value = &alpha;(offense) + &beta;(defense) + &gamma;(site) + &epsilon;<\/p>\n<p>This equation is applied to a game, where &#8220;value&#8221; is the stat being predicted (in this case, a team\u2019s free throw percentage), and the predictors are the season-long offensive and defensive values of the stat for the participating teams along with a home-court advantage component.<\/p>\n<p>For free throw percentage, the data for a few games looks like this. <\/p>\n<pre>                  ************ G A M E ************   ******* S E A S O N *******                           \nGm  Team1  Team2  FTM1 FTA1 FTPct1 FTM2 FTA2 FTPct2   FT%_O1 FT%_D1 FT%_O2 FT%_D2\n1   UMBC   Akron   14   28   50.0   12   21   57.1     65.2   70.3   66.3   68.6   \n2   USC    Akron   14   22   63.6   10   13   76.9     63.4   70.7   65.8   68.0   \n3   Towson Alabama 11   15   73.3   17   19   89.5     66.2   70.0   71.4   71.3\n   \n<\/pre>\n<p>I\u2019m trying to predict a team\u2019s game free throw percentage (FTPct1) from its season-long percentage (FT%_O1) and the opponents\u2019 season-long defensive percentage (FT%_D2). Data from the game in question is removed when determining the season-long percentages.<\/p>\n<p>There are two samples for each game since we can try to predict FTPct2 from FT%_O2 and FT%_D1 as well. that gives us roughly 11,000 samples per season. I am actually doing this on a shot level, so there end up being about 220,000 samples since that\u2019s how many free throws were attempted last season. But if you do it on a game-level, you get similar results. <\/p>\n<p>Using the observed data, one gets the coefficients for the model that minimizes the error of the predictions. For free-throw percentage the results look like this, where the weights for offense, defense, and site are denoted by off, def, and site, respectively:<\/p>\n<pre>Call:\nlm(formula = makes ~ off + def + site)\n\nResiduals:\n    Min      1Q  Median      3Q     Max \n-0.7722 -0.6675  0.2913  0.3148  0.4091 \n\nCoefficients:\n             Estimate Std. Error t value Pr(>|t|)    \n(Intercept) 0.1301928  0.0336423   3.870 0.000109 ***\noff         0.0068040  0.0002778  24.492  &lt; 2e-16 ***\ndef         0.0013127  0.0004240   3.096 0.001963 ** \nsite        0.0052330  0.0010422   5.021 5.15e-07 ***\n---\nSignif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1\n\nResidual standard error: 0.4607 on 220194 degrees of freedom\nMultiple R-squared:  0.002964,\tAdjusted R-squared:  0.00295 \nF-statistic: 218.2 on 3 and 220194 DF,  p-value: &lt; 2.2e-16\n\n<\/pre>\n<p>The above is the output from a linear model. I ended up using a logit model for percentage stats which is less straightforward to interpret, but you\u2019ll get similar results with either approach. <\/p>\n<p>Not surprisingly, the coefficient for offensive free throw percentage is larger than the coefficient for defensive free throw percentage. If you want to predict a team\u2019s free throw percentage in a game, it\u2019s more important to know their season-long track-record than the opponent\u2019s defensive track-record. In other words, good free throw shooting offense beats good free throw shooting defense. <\/p>\n<p>The coefficients tell most of the story but not all of it. There is more variance in season-long offensive free throw percentage than defensive free throw percentage. Apply the coefficients to the season-long values and you\u2019ll see that the offensive term, &alpha;(offense), supplies much more variance to the predicted value than the defensive term, &beta;(defense), does. For the 2014-15 season, 98.5% of the variance in a team\u2019s predicted free throw percentage was due to the variance in the offensive term, with 1.5% provided by the defense. The defensive term is nearly inconsequential when making predictions.<\/p>\n<p>In truth, you can get a feel for which side controls a stat by avoiding model-building and simply comparing the variance between the offensive and defensive season-long stats for all 351 teams. The side with more variance is the one that normally has more influence over the stat. But while there\u2019s more variation in offensive free throw shooting, there\u2019s still some on the defensive side. The range in the 10th to 90th percentile teams in offensive free throw shooting is 64.7-73.9% and defensively it\u2019s 66.2-72.2%. <\/p>\n<p>In a just world, where the defense presumably has no control over its opponents\u2019 ability to make free throws and there is no random variance, every team\u2019s defensive free throw percentage would be it\u2019s opponents\u2018 season-long free throw percentage. But we know it is not a just world, because if it was, the <a href=\"http:\/\/tromsostorm.no\/arctic-girls\/\">Arctic Girls<\/a> dance team of the Norwegian Basketball League\u2019s Troms&oslash; Storm would be international sensations. Alas. <\/p>\n<p>The reality is that random variation is a real thing that plagues our nation by clouding statistical analysis. (There is also some variation in \u201cfree throw schedule strength\u201d across Division-I which increases team-to-team variance.) When one sees UCF leading the country in opponents\u2019 FT shooting at 61.5 percent, even the most tone-deaf analyst understands the Golden Knights didn\u2019t have much control over that figure. The regression approach used here helps see through the random variance and gets us closer to the true answer of which side influences a particular stat. And since this method can be applied to all statistics, we can use it to determine in a relative sense which things are most controlled by the offense. <\/p>\n<p>News flash: Nothing is more controlled by the offense than free throw percentage. <\/p>\n<p>I ran the regression on each of the past ten seasons and the results are provided below. I\u2019ll do this for each stat I analyze going forward, and I\u2019ll also provide the value for home-court advantage. For free throw percentage a team can expect a 0.5% improvement between playing at home or on a neutral court. So yes, there is <a href=\"http:\/\/blog.philbirnbaum.com\/2011\/02\/why-is-there-no-home-court-advantage-in.html\">a difference between home and road free throw shooting<\/a>, although I suppose whether it\u2019s solely due to the comforts of being at home can be debated.<\/p>\n<pre>\n<u>Year %Offense  HCA<\/u>\n2015    99%    0.5%\n2014    97     0.4\n2013   100     0.6\n2012    98     0.5\n2011    99     0.4\n2010    97     0.3\n2009   100     0.6\n2008    98     0.4\n2007    99     0.5\n2006    97     0.5\n AVG    98%    0.5%\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>This is the second of a series of posts examining whether offense or defense has more control of various aspects of a typical college basketball game. The introduction is here. What predicts a basketball statistic the best: offensive data or defensive data? If we wanted to predict a team\u2019s free throw percentage in the next [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[35],"tags":[],"_links":{"self":[{"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/posts\/98"}],"collection":[{"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":1,"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/posts\/98\/revisions"}],"predecessor-version":[{"id":1058,"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/posts\/98\/revisions\/1058"}],"wp:attachment":[{"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/media?parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/categories?post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kenpom.com\/blog\/wp-json\/wp\/v2\/tags?post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}