Creating power/schedule adjusted rankings
Creating power/schedule adjusted rankings
so I've looked through the posts worth reading, and haven't found anything on how to deal with adjusting stats based on strength of competition. Any advice or places to read for this would be awesome. Thanks
Re: Creating power/schedule adjusted rankings
Are you looking to adjust team stats or player stats?
If you believe the only team stat that matters is the final margin, then you add SOS to MOV, and you have SRS (a la Basketball-Reference.com).
I don't know about individual player stats that make adjustments based on opponents. For example, if your rebounds are down in a playoff series -- but your opponent happens to be a great rebounding team -- then you might fairly get an adjustment, estimating what your rebounds would be vs an average team. But I don't know any system that does that, per se.
Overall player contributions, aka adjusted plus-minus, are by definition taking into account one's opponents (and teammates). Regarding the above example, you can even find how your team's rebounding (+/-) changed while you were in the game. There's probably some quantification you could investigate there.
If you believe the only team stat that matters is the final margin, then you add SOS to MOV, and you have SRS (a la Basketball-Reference.com).
I don't know about individual player stats that make adjustments based on opponents. For example, if your rebounds are down in a playoff series -- but your opponent happens to be a great rebounding team -- then you might fairly get an adjustment, estimating what your rebounds would be vs an average team. But I don't know any system that does that, per se.
Overall player contributions, aka adjusted plus-minus, are by definition taking into account one's opponents (and teammates). Regarding the above example, you can even find how your team's rebounding (+/-) changed while you were in the game. There's probably some quantification you could investigate there.
Re: Creating power/schedule adjusted rankings
Instead of using iteration, you may just utilize the "magic" of matrix algebra here. Take a look at this: http://thetarzan.wordpress.com/2011/06/ ... ebra-in-r/
The design matrix X would have 1 for the home team, -1 for the away team, while everyone else would be zero. The response vector Y would contain the point differential (or even better, the Net Rating, per 100 poss difference for the game, you can calculate those by using bbr's gamelogs for individual teams, for example and then use the formula for poss they have listed under glossary). In that way you get coefficients for each team, which are both, adjusted for homecourt advantage (the intercept would be the HCA) as well as opponents strength. You may include weights based on team possession of the game or minutes played (as in team overall minutes devided by 5).
That can be improved by taking differences in rest into account and adapting the respective response vector beforehand. Also, you could calculate adjusted ORtg as well as DRtg by adapting the design matrix and the response vector accordingly. For a smaller sample using something like ridge regression gives you a better predictive power. Towards the end of the season, the OLS and the ridge version shouldn't be much different anymore. Though, you can use the coefficients calculated by OLS to create a SOS by subtracting either MOV or the Net-Rating (ORtg-DRtg) from it. Such excercise would be pretty much useless for results based on ridge regression given the bias included in such a regression.
Btw: bbr has a pretty good version online available (for 2015): http://www.basketball-reference.com/lea ... tings.html
The design matrix X would have 1 for the home team, -1 for the away team, while everyone else would be zero. The response vector Y would contain the point differential (or even better, the Net Rating, per 100 poss difference for the game, you can calculate those by using bbr's gamelogs for individual teams, for example and then use the formula for poss they have listed under glossary). In that way you get coefficients for each team, which are both, adjusted for homecourt advantage (the intercept would be the HCA) as well as opponents strength. You may include weights based on team possession of the game or minutes played (as in team overall minutes devided by 5).
That can be improved by taking differences in rest into account and adapting the respective response vector beforehand. Also, you could calculate adjusted ORtg as well as DRtg by adapting the design matrix and the response vector accordingly. For a smaller sample using something like ridge regression gives you a better predictive power. Towards the end of the season, the OLS and the ridge version shouldn't be much different anymore. Though, you can use the coefficients calculated by OLS to create a SOS by subtracting either MOV or the Net-Rating (ORtg-DRtg) from it. Such excercise would be pretty much useless for results based on ridge regression given the bias included in such a regression.
Btw: bbr has a pretty good version online available (for 2015): http://www.basketball-reference.com/lea ... tings.html
Re: Creating power/schedule adjusted rankings
awesome thank you guys very much, going to do a little research today and then get to implementing.
Re: Creating power/schedule adjusted rankings
I do this for my college ratings, not for NBA (since I post historical results & playoffs - would be WAY too much work). Since there isn't a massive disparity between schedules in the NBA (unlike college), I don't think it would change player results more than just a smallish amount (maybe drop East guys a spot or two as west guys move up a spot or two).DataDude wrote:so I've looked through the posts worth reading, and haven't found anything on how to deal with adjusting stats based on strength of competition. Any advice or places to read for this would be awesome. Thanks
Now, college, MASSIVE disparity in talent & SoS team to team - team ratings incorporating SoS is the very starting point. I use Sagarin team ratings, and have correlated those results from the last 18 seasons to a general 100 average D1 overall team rating (good/great teams are in the 130s & up - bad teams below or well below 80). Then I start with the player ratings from the team level.
Now, I am merely talking player ratings & rankings. If you aren't referring to that, ignore what I wrote & look at the other more apropos responses.
Re: Creating power/schedule adjusted rankings
I keep seeing HCA mentioned in many of these, and yet can't find a single place mentioning how it is being calculated. Is HCA different than simply MOV while at home? or maybe like HCA = (AvgMOV-Home - AvgMOV-Away) / Games Played?
Re: Creating power/schedule adjusted rankings
The second one, and typically averaged over the whole league. There are a few sites that seem to have greater HCA, but the advantage isn't too great. See viewtopic.php?f=2&t=8488 for more HCA ratings.DataDude wrote:I keep seeing HCA mentioned in many of these, and yet can't find a single place mentioning how it is being calculated. Is HCA different than simply MOV while at home? or maybe like HCA = (AvgMOV-Home - AvgMOV-Away) / Games Played?
Re: Creating power/schedule adjusted rankings
Slight adjustment to what DSMok1 has said...DataDude wrote:I keep seeing HCA mentioned in many of these, and yet can't find a single place mentioning how it is being calculated. Is HCA different than simply MOV while at home? or maybe like HCA = (AvgMOV-Home - AvgMOV-Away) / Games Played?
If using a league average HCA then it's almost the second one, but that will actually give you a value which is double. Margin of victory at home will be TeamRating + HCA - OppositionRating, whereas margin of victory away will be Teamrating - HCA - OppositionRating, so we get HCA = 0.5*(HomeMOV-AwayMOV)...
-
- Posts: 194
- Joined: Tue Oct 30, 2012 6:58 pm
- Location: The Alpha Quadrant
- Contact:
Re: Creating power/schedule adjusted rankings
this isn't true in the current NBA, particularly this early in the season.Statman wrote:Since there isn't a massive disparity between schedules in the NBA (unlike college), I don't think it would change player results more than just a smallish amount (maybe drop East guys a spot or two as west guys move up a spot or two).
Re: Creating power/schedule adjusted rankings
I would have thought so as well, but there's already about a .97 R^2 between B-Ref's adjusted and unadjusted efficiency ratings for instance.talkingpractice wrote:this isn't true in the current NBA, particularly this early in the season.
Re: Creating power/schedule adjusted rankings
Exactly, even in a year that should have the biggest disparity, a SoS adjustment wouldn't change the player ratings all that much. West coast players are already getting the boost from their teams just being better in a general point differential sense, the extra boost w/ SoS would be minimal in comparison.kmedved wrote:I would have thought so as well, but there's already about a .97 R^2 between B-Ref's adjusted and unadjusted efficiency ratings for instance.talkingpractice wrote:this isn't true in the current NBA, particularly this early in the season.
The trickiest thing with then NBA when attempting to incorporate SoS in player ratings is playoff ratings. How do you effectively work in SoS in the playoffs? Is it even worth the time? To me, the answer was no.
If I were gambling, I could easily incorporate SoS as a final small adjustment to any player who may be sitting out - affecting that team's rating for the coming game. I'm not gambling, so I don't worry about it.
-
- Posts: 194
- Joined: Tue Oct 30, 2012 6:58 pm
- Location: The Alpha Quadrant
- Contact:
Re: Creating power/schedule adjusted rankings
@kmedvedStatman wrote:Exactly, even in a year that should have the biggest disparity, a SoS adjustment wouldn't change the player ratings all that much.kmedved wrote:I would have thought so as well, but there's already about a .97 R^2 between B-Ref's adjusted and unadjusted efficiency ratings for instance.talkingpractice wrote:this isn't true in the current NBA, particularly this early in the season.
welcome to APBR, kostya! i see where youre coming from, but im not sure that correlation stat is the right way of thinking about this?
@statman
dan, in your boxscore model (with no rapm component), on a day like today in which kobe has played against teams that are on average +2.6 whereas klay has played against teams that are on average -1.6... you dont adjust their relative values/ratings/etc based on that difference in competition that theyve played against?
do you do a fit to team level PD like dsmok1 does with BPM? if yes, have you ever considered fitting to team SRS rather than team PD, for use early in the season (when the differences in SOS are much larger)?