Skip to content
Joey Sham edited this page Aug 5, 2017 · 22 revisions

How To Use the Site

This documentation is to describe how to use NNNBA website. If you want to understand how the model works in details, please see the NNNBA repo.

There are 2 main views: Players and Models. Players describe player and their stats, while Models describe each player's calculated value based on the models, along with the details of what each model values.

Players

Main Page

The main page displays all NBA players from last year, with how much they got paid (PAID ▴) and how much they'll get paid in the 2017-18 season (PROJECTED SALARIES ▴). A player with $0 Projected Salaries means that they are currently not contracted with a specific team, thus has no salary in the books for the 2017-18 season. Both columns can be sorted. There's a search bar which allows you to search for specific players, as can be seen from the image below.

Search for a player

Each player's name is clickable, which leads to details about that player.

Player View

Seth Curry

This page shows the player's relevant stats from 2016-17 season, from basic stats like no. of games won, no. of rebs, to more advanced stats like TS%, PIE, etc. Salary from 2016-17 season and future 2017-18 salary is also shown.

There's a dropdown menu that allows you to select a specific model.

Player View: Model Selected

Seth Curry

By selecting a specific model, an additional field of WORTH is shown. This field is the calculated value, based on the selected model. For example, from the image above, the model Bayes Ridge has calculated, based solely on Seth Curry's stats last year, that he is actually worth $7,929,546.49 instead of the $3,028,410.00 that he is getting paid. To see details the model details, click on View Model Details

Models

Model

Each model takes in the stats (same ones that are displayed in the Player View ), and computes to find the player's value. Each model is sorted by calculated WORTH.

There are 9 models available:

A player's WORTH is calculated based on their stats from the previous season, and VALUE DIFFERENCE is the WORTH - PROJECTED SALARIES, where Projected Salaries is the 2017-18 salary. A positive Value Difference means the player is underpaid, and a negative Value Difference means the player is overpaid.

Search for a player

It is still possible to search for a specific players to view their calculated worth and value difference. It is also possible to click on each player's name, which will take you back to the Player View page.

Undervalued Players

Since each model can calculate how much a player is worth, then it is possible to see who is undervalued/overvalued.

Undervalued Players

Using Bayesian Ridge Regression model, calculation shows that Isaiah Thomas is actually the most undervalued player. KAT is the second most undervalued player, who is still on his rookie contract, which explains the vast difference in value and projected salary. Hilariously, the most overpaid player is Chandler Parsons, who will be getting paid $23,112,004.00 and only put up 6.2 PTS 2.5 REB 1.6 AST last season. Based on those stats, he should only be getting paid $3,064,453.95.

Coefficients

Some of the models surfaces the coefficients. The higher a coefficient is, the more it correlates to a higher salary. Different models has different coefficients calculated, and it is actually quite interesting to see the differences.

Example Usage

Coefficient

For example, the image above shows that Bayesian Ridge has calculated that higher MIN/G and PTS/G is highly correlated with the value of a player, based on last year's stats. This makes sense, as expensive superstars have a tendency to play more minutes. The next most important stat is REB, which is found to be a lot more important to AST. This is probably due to the smaller pool of big men in the league, and we are at the golden age of point guards. It is also (in my opinion) easier for an average player to get an assist than a rebound, as getting consistently high rebounds usually require height and/or athleticism. Wins are obviously weighted positively. An interesting stat is the importance of FTM and FGM, which propels players like DeRozan (7.4 FTM, 9.7 FGM) and Isaiah Thomas (7.8 FTM, 9.0 FGM) to be deemed very valuable. This doesn't necessarily mean that FTM and FGM are objectively important. It just means that the league has a tendency to pay players who have higher FTM and FGM. Not shown in the image, but will show up on the site, is that Net Rating actually has the lowest coefficient. While Net Rating may be considered good to compare players sometimes, it is not actually useful to rank players. For example, while Patrick Patterson is a serviceable role player, he is far from the best in the league. However, he ranks 10th in Net Rating last year. Thus, Net Rating by itself actually is not a good metric to rank NBA players.

Which Model Should I Pick?

Honestly, whatever you think fits your view point. Because there are so many variables, there are different ways to combine each player's stats to project salary. Personally, I created AVG as it averages the 3 models that I think are the most accurate: Bayesian Ridge Regression, Lasso, and ElasticNet.

Shortcomings/Future Work

It is important to note that this only analyzes stats based on past year performance, which is very isolated. It doesn't take into account team strength (though many models take wins into account). For example, Curry and Durant would have better stats on separate teams, and although their stats are still very impressive, the models don't take into account their stats are lowered than what it could've been. Therefore, their salary value is lowered. The models also don't take into account potential. For example, KAT put up amazing stats, and he is only 21. Giannis Antetokounmpo is only 22, and sky is the limit. However, their young age and potential for growth should make them be worth more, but the model does not take that into account.

Contribution

If you want to contribute to the site, please see CONTRIBUTING guidelines. If you want to contribute to the NNNBA model, please see the NNNBA repo.