{"id":1198,"date":"2014-04-28T10:30:29","date_gmt":"2014-04-28T14:30:29","guid":{"rendered":"http:\/\/blog.rotovalue.com\/?p=1198"},"modified":"2014-04-28T10:30:29","modified_gmt":"2014-04-28T14:30:29","slug":"throwing-your-weight-around","status":"publish","type":"post","link":"https:\/\/blog.rotovalue.com\/index.php\/2014\/04\/28\/throwing-your-weight-around\/","title":{"rendered":"Throwing your Weight Around"},"content":{"rendered":"<p>Much of the point of RotoValue dollar values is that the parameters of your league are relevant to how you should value players. When you start 2 catchers per team, top catchers are worth more than if you start just 1.\u00a0Many players that have value in deeper leagues aren&#8217;t worth owning in shallower ones. My pricing model implicitly takes this into consideration.<br \/>\nBut the site can customize even more than that. For a long time, the site\u00a0has let RotoValue Analyst customers manually override the category weights, and also select extra categories to display for your league. Under the Settings menu, they&#8217;ll see a choice &#8220;RotoValue &amp; Display&#8221;:<br \/>\n<a href=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/DisplaySettings-1.png\"><img loading=\"lazy\" class=\"alignleft size-full wp-image-1199\" src=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/DisplaySettings-1.png\" alt=\"RotoValue Analyst customers can choose their own categories, and weights.\" width=\"928\" height=\"741\" srcset=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/DisplaySettings-1.png 928w, https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/DisplaySettings-1-300x240.png 300w, https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/DisplaySettings-1-768x613.png 768w\" sizes=\"(max-width: 928px) 100vw, 928px\" \/><\/a><br \/>\nSo if, for example, you&#8217;ve traded away all your closers, you could give the Saves category a weight of 0, and the RotoValue prices for your league would adjust to reflect the fact that you no longer care about a category. Similarly if you have a seemingly insurmountable lead in a category, you could give it 0 weight, or if a category is very close, you could give it double, or even triple weight. This page lets you set the weights for the categories in any RotoValue calculations, helping you find free agents (or evaluate trades) that are more relevant to your team&#8217;s situation. You get to manually set whatever weights you want, or, by clicking on the Reset button at the bottom of that page, remove all custom settings, and revert to using the scoring weights for your league in price calculations.<br \/>\nTo use the customized weights, though, you have to opt in, by going to the settings page and updating them. I&#8217;ve just added a checkbox at the top of the page, &#8220;Compute weights based on your team&#8217;s stats and standings?&#8221;. This can\u00a0automate the process of determining weights for you. If you select this option, the code will look at projected standings for your league, as well as the players in the active lineup on your team, and it will see how close you are to other owners in each category. The closer you are to passing or being passed by other owners, the more weight\u00a0I\u00a0will give a category. And if you save with this box checked, the algorithm runs very early each morning, after the previous day&#8217;s games, to recompute new weights based on updated standings data (and lineup changes).<br \/>\n<a href=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/AutoWeight-1.png\"><img loading=\"lazy\" class=\"alignleft size-full wp-image-1202\" src=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/AutoWeight-1.png\" alt=\"Highlight auto-computed weights\" width=\"925\" height=\"698\" srcset=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/AutoWeight-1.png 925w, https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/AutoWeight-1-300x226.png 300w, https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/AutoWeight-1-768x580.png 768w\" sizes=\"(max-width: 925px) 100vw, 925px\" \/><\/a>In this case my team <a href=\"http:\/\/www.rotovalue.com\/cgi-bin\/Standings?year=2014&amp;league=3&amp;projected=1\">projects<\/a> near the bottom in Stolen Bases, and, more importantly, far from most other teams, so the algorithm gives that category the least weight, but WHIP projects to be the closest category, so it gives the most weight there. These different weights will affect RotoValue price calculations, guiding me towards players who are more likely to help my team, not only in general, but in the particular context of my league and opponents. The weights are scaled relative to the original league&#8217;s weight, so SB is given only 62% of its normal weight, while WHIP is given 134% of its weight. If your league weights certain categories differently for scoring purposes, then these calculations take that into account.<br \/>\nThese auto-generated weights will tune RotoValue price calculations not only to the specifics of your league&#8217;s scoring and roster sizes, but also to the particular situation of your team and its current active roster relative to others. This information can help you make better decisions about pickups, trades, or even whom to put in your active lineup, and help you win your league.<br \/>\nRead on\u00a0to see the how much difference this can have, and also details of the algorithm&#8217;s implementation.<!--more--><br \/>\nSo do these adjustments really make a difference in valuing players? Let&#8217;s compare two screenshots from the league I&#8217;ve shown above using the customized weights shown above. First, the regular prices for this league (categories and roster sizes are visible <a href=\"http:\/\/www.rotovalue.com\/cgi-bin\/Rules?year=2014&amp;league=3\">here<\/a>):<br \/>\n<a href=\"http:\/\/www.rotovalue.com\/cgi-bin\/Search?league=3&amp;year=2014&amp;date=20140428&amp;per_page=20&amp;position=C,1B,2B,3B,SS,LF,RF,CF,OF,DH&amp;sort=RotoValue&amp;source=2014&amp;pro_team=Any&amp;context_tag=AB&amp;context_min=0&amp;start:startsource_range=20140322&amp;end:startsource_range=20140928&amp;start:endsource_range=20140322&amp;end:endsource_range=20140928&amp;old_source=2014&amp;startsource_range=2014-03-22&amp;endsource_range=2014-04-27&amp;skip=0\"><img loading=\"lazy\" class=\"alignleft wp-image-1207 size-full\" src=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/RegularWeight-1.png\" alt=\"RegularWeight\" width=\"766\" height=\"734\" srcset=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/RegularWeight-1.png 766w, https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/RegularWeight-1-300x287.png 300w\" sizes=\"(max-width: 766px) 100vw, 766px\" \/><\/a><br \/>\n&nbsp;<br \/>\nThis league has a $30 salary cap, so $4 represents more than 13% of a team&#8217;s total budget (comparable to about $35 in a $260 salary cap league). <a href=\"http:\/\/www.rotovalue.com\/cgi-bin\/PlayerDetail?player=5147&amp;league=3&amp;year=2014\">Charlie Blackmon<\/a>\u00a0at $4.81 has been the most valuable batter, ahead of <a href=\"http:\/\/www.rotovalue.com\/cgi-bin\/PlayerDetail?player=3959&amp;league=3&amp;year=2014\">Adrian Gonzalez<\/a>\u00a0and <a href=\"http:\/\/www.rotovalue.com\/cgi-bin\/PlayerDetail?player=4949&amp;league=3&amp;year=2014\">Giancarlo Stanton<\/a>, with <a href=\"http:\/\/www.rotovalue.com\/cgi-bin\/PlayerDetail?player=3709&amp;league=3&amp;year=2014\">Justin Upton<\/a>\u00a0a little further back. <a href=\"http:\/\/www.rotovalue.com\/cgi-bin\/PlayerDetail?player=4670&amp;league=3&amp;year=2014\">Dee Gordon<\/a>\u00a0at $3.70\u00a0is the best middle infielder.<br \/>\nNow contrast that list with one using the custom weights:<br \/>\n<a href=\"http:\/\/www.rotovalue.com\/cgi-bin\/Search?league=3&amp;year=2014&amp;date=20140428&amp;per_page=20&amp;position=C,1B,2B,3B,SS,LF,RF,CF,OF,DH&amp;sort=RotoValue&amp;source=2014&amp;pro_team=Any&amp;context_tag=AB&amp;context_min=0&amp;start:startsource_range=20140322&amp;end:startsource_range=20140928&amp;start:endsource_range=20140322&amp;end:endsource_range=20140928&amp;old_source=2014&amp;startsource_range=2014-03-22&amp;endsource_range=2014-04-27&amp;skip=0\"><img loading=\"lazy\" class=\"alignleft size-full wp-image-1208\" src=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/CustomWeight-1.png\" alt=\"CustomWeight\" width=\"859\" height=\"734\" srcset=\"https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/CustomWeight-1.png 859w, https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/CustomWeight-1-300x256.png 300w, https:\/\/blog.rotovalue.com\/wp-content\/uploads\/2014\/04\/CustomWeight-1-768x656.png 768w\" sizes=\"(max-width: 859px) 100vw, 859px\" \/><\/a><br \/>\nHere we see that with the much lower weighting for SB, Blackmon drops into a tie with Gonzalez, losing $0.40 of value (about $3.50 with a $260 cap). Gonzalez drops a bit too (while HR gain a bit, RBI, and Average get a little less weight), but not nearly as much.<br \/>\nDee Gordon, who leads the NL in steals as I write this, falls much more, dropping nearly $1 of RotoValue (about $8 with a $260 cap). If you decided to give up on SB altogether, given it\u00a00 weight, Gordon and Blackmon&#8217;s values would drop much further. Customized category weights can help you find better value for your team&#8217;s particular circumstances.<br \/>\nHow do I compute\u00a0these\u00a0weights? I start of by computing projected standings for your league, a combination of the actual stats your team has put up so far and projected numbers for the rest of the season, based on your current lineup. This lets me see what league totals might be like at the end of the year.<br \/>\nWhat I want to do is figure out how likely you are to gain (or lose) points in a category given the projected standings, and add these estimates up by category. Those should be my raw weights.<br \/>\nI look at your active players, and compute a sample <a href=\"http:\/\/en.wikipedia.org\/wiki\/Standard_deviation\">standard deviation<\/a> in each category for your team&#8217;s players. I do this to capture how much variability your team&#8217;s numbers have. If you&#8217;ve traded away most players who steal, then your standard deviation for steals will be smaller than for other fantasy teams. For percentage categories, I&#8217;m taking the standard deviation of a delta &#8211; i.e. what would the league&#8217;s aggregate statistic be if I added a given player&#8217;s raw totals to that. This is how I adjust for playing time: a .300 batting average in 500 AB is worth more to a fantasy team than a .310 average in 200 AB.<br \/>\nOnce I have a standard deviation for your team in each category, I compute an absolute value <a href=\"http:\/\/en.wikipedia.org\/wiki\/Standard_score\">z-score<\/a> for the difference between your team and every other team in the league in that category. If you&#8217;re projected to tie someone exactly, your z- score is 0 relative to that team, and it rises the further apart your projections are. The higher the standard deviation you have for the category, the lower the z-score is for a given difference between you and another team. Being 10 apart in RBIs may result in a lower zscore than being 2 apart in saves, because RBIs are usually more variable. This is especially likely if you&#8217;ve traded away all your closers, and none of your pitchers project to get any more saves.<br \/>\nWhat I want, though, is not the z-score itself, but the chance that you&#8217;ll pass a another team. For that, I use (1 &#8211; CDF(z-score)), where CDF is the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Cumulative_distribution_function\">cumulative normal distribution function<\/a>. If you&#8217;re projected to tie exactly, your z-score is 0, so the CDF returns 0.5, and 1 &#8211; 0.5 is 0.5: I&#8217;m saying it&#8217;s a coin flip whether you&#8217;ll finish ahead of the other team or not. The larger the z-score, the closer to 1 the CDF value is, that is the less likely it is that your standings will change relative to that team in the category. Since I&#8217;m adding up 1 &#8211; CDF, the further ahead or behind someone else you are in a category, the less weight I give it, as that raw weight for the team approaches 0. In the extreme case of trading away all players who steal (or get saves, or HR), I also wind up adding 0, because the standard deviation for your team approaches 0, which makes the z-score very high even if you&#8217;re quite close in standings to other teams.<br \/>\nAt this stage I could stop with these raw weights: the RotoValue computation only cares about category weights relative to each other, not their absolute values. But since I&#8217;m showing these weights on the RotoValue &amp; Display settings page, I want them scaled in a meaningful way. So I first adjust the raw weights for each category so their totals add up to the number of categories. Finally, I multiply by the actual league&#8217;s weight for the category: usually this is just 1, but some leagues may count a category more (or less) than others, and so we need to reflect that.<br \/>\nSo those are the details. I&#8217;m trying to project how likely you are to pass (or be passed by) other owners in a given category, and use that as a weight. And because this algorithm runs each morning for owners who enable it, it automatically adjusts for changes in your standings and lineup.<br \/>\nYou can still choose to set your own weights manually, or to revert to the league weights by clicking reset. But when you&#8217;re looking at how a pickup or trade might affect your team, having prices customized to your team&#8217;s particular situation is another advantage.<br \/>\nThe customized weighting is available to RotoValue Analyst customers. You can buy RotoValue Analyst at the <a href=\"https:\/\/www.rotovalue.com\/cgi-bin\/Store\">RotoValue Store<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Much of the point of RotoValue dollar values is that the parameters of your league are relevant to how you should value players. When you start 2 catchers per team, top catchers are worth more than if you start just 1.\u00a0Many players that have value in deeper leagues aren&#8217;t worth owning in shallower ones. My&hellip; <a class=\"more-link\" href=\"https:\/\/blog.rotovalue.com\/index.php\/2014\/04\/28\/throwing-your-weight-around\/\">Continue reading <span class=\"screen-reader-text\">Throwing your Weight Around<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5,13],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/posts\/1198"}],"collection":[{"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/comments?post=1198"}],"version-history":[{"count":0,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/posts\/1198\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/media?parent=1198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/categories?post=1198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/tags?post=1198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}