tag:blogger.com,1999:blog-2868194292414002063.comments2023-05-12T02:33:08.536-07:003-D BaseballKincaidhttp://www.blogger.com/profile/07348661324396474896noreply@blogger.comBlogger129125tag:blogger.com,1999:blog-2868194292414002063.post-46815250335514840152017-02-14T02:17:08.251-07:002017-02-14T02:17:08.251-07:00Lovely postLovely postPeter Floydhttps://www.blogger.com/profile/14532264814565369687noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-2871504723737634022016-08-10T06:07:45.864-07:002016-08-10T06:07:45.864-07:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-36828845031929476182016-04-28T04:39:15.213-07:002016-04-28T04:39:15.213-07:00nice blognice blogPeter Floydhttps://www.blogger.com/profile/14532264814565369687noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-48062013489569773752016-04-22T02:48:16.932-07:002016-04-22T02:48:16.932-07:00niceniceAnonymoushttps://www.blogger.com/profile/07277651074945649911noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-54231599929562666192016-04-13T09:23:00.254-07:002016-04-13T09:23:00.254-07:00ZCSZCSAnonymoushttps://www.blogger.com/profile/07277651074945649911noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-16030076409631716522016-02-01T13:08:35.790-07:002016-02-01T13:08:35.790-07:00This comment has been removed by a blog administrator.jadehttps://www.blogger.com/profile/13835847777966515522noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-63471329848840011162015-02-07T21:03:55.632-07:002015-02-07T21:03:55.632-07:00Sorry I didn't see this earlier. I am not sur...Sorry I didn't see this earlier. I am not sure how helpful these explanations will be, but hopefully they will at least start to make sense if you get a chance to play around with the functions and look at their outputs.<br /><br />create.run.dist():<br /><br />run.dist.simulation is a table of the probabilities of scoring a given number of runs in an inning from each base-out state. This table gives probabilities for scoring anywhere from 0-16 runs (there is nothing in the simulation limiting it to that range, I just cut it off at 16 runs to reduce the number of calculations needed). This distribution of run scoring only applies to runs scored through the end of the inning, though. To calculate win probabilities, we need the probability of scoring a given number of runs through the end of the game.<br /><br />What create.run.dist() does is takes the distribution of run scoring through the end of the inning, and it adds another inning on top of that. So instead of giving the probabilities for scoring anywhere from 0-16 by the end of this inning, it takes those probabilities and turns them into the probabilities of scoring anywhere from 0-32 runs by the end of the next inning (although it looks like I also limited this to 0-30 runs in the win probability calculations to further reduce calculation time). And then you can take the run distribution for the next two innings, and feed that back into the function to add another inning, and it gives you the run distribution over the next three innings, etc.<br /><br />create.run.dist() only creates run distributions from the start of an inning through the end of the game.<br /><br />create.run.dist.2() does the same thing, but it calculates the run distribution from any base-out state through the end of the game rather than just from the start of the inning through the end of the game. The extra parameter "h" is a number from 1:24 that identifies the base-out state. (The reason create.run.dist() also exists is that the distributions from the start of an inning through the end of the game are used to feed into create.run.dist.2() later on.)<br /><br /><br />diag.sum():<br /><br />diag.sum() is a helper function that is used in conjunction with the two create.run.dist() functions. create.run.dist() and create.run.dist() don't actually return a single row of probabilities for scoring each number of runs. Rather, they return a table of data, with different rows giving probabilities for different combinations that lead to a given number of runs.<br /><br />For example, say we want to know the probability of scoring exactly 1 run through the end of the end of the game. Because of how create.run.dist() works, it will give us a table where one row gives us the probability of scoring 1 run in this inning and 0 runs for the rest of this game. And then another row will give us the probability of scoring 0 runs this inning and then 1 run for the rest of the game. To get the total probability of scoring 1 run through the end of the game, we have to add those two probabilities together. <br /><br />Fortunately, the different iterations that lead to the same number of runs end up on the same diagonal in the table returned by create.run.dist(). This means to get the total probabilities, we just have to sum up the diagonals of that table. Which is what this function does, hence the name "diag.sum()".Kincaidhttps://www.blogger.com/profile/07348661324396474896noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-53149876732795425392015-01-21T13:36:18.015-07:002015-01-21T13:36:18.015-07:00Thanks this is great. Could you tell me what the f...Thanks this is great. Could you tell me what the functions create.run.dist, create.run.dist.2, diag.sum are doing exactly? There isn't much commenting so I am a little confused.Anonymoushttps://www.blogger.com/profile/18225012525613318422noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-2360357923007624102014-09-20T16:38:21.672-07:002014-09-20T16:38:21.672-07:00You may not instantly fully grasp the actual innov...You may not instantly fully grasp the actual innovative behavioral instinct in which gave delivery for the notion. Although you might be stunned with just how clever the <a href="http://mordo-crosswords-solution.blogspot.com/2014/09/all-time-strikeout-king.html" rel="nofollow">crossword clue</a> actual depths of the mind brain is usually. Which apparently with their unusual believed may possibly demonstrate some sort of heart stroke of guru.Anonymoushttps://www.blogger.com/profile/08109867068757402125noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-52221514224150359692013-10-11T11:33:59.691-07:002013-10-11T11:33:59.691-07:00Outstanding article. I plan to use many of these i...Outstanding article. I plan to use many of these ideas in a football article, and would love to give you as much credit as possible. Is there a good e-mail I could reach you at?Unknownhttps://www.blogger.com/profile/07201942648963998864noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-23208810301662470072013-01-21T10:53:57.010-07:002013-01-21T10:53:57.010-07:00I did not get the code exactly yet does this mean ...I did not get the code exactly yet does this mean that we can use this in our <a href="https://www.rogersbreakawaybase.com/rogers-bases" rel="nofollow">baseball field equipment</a> too? Like a code organizer to file things properly. Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-65548072503715181422012-12-16T17:04:43.542-07:002012-12-16T17:04:43.542-07:00{clap clap clap}{clap clap clap}Tangotigerhttps://www.blogger.com/profile/11864323151591103655noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-80835748204964213012012-06-21T08:18:13.147-07:002012-06-21T08:18:13.147-07:00You're welcome and thanks for the link to my b...You're welcome and thanks for the link to my blogCyril Moronghttps://www.blogger.com/profile/07148864847009186694noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-51032654972810882092012-06-21T07:23:22.005-07:002012-06-21T07:23:22.005-07:00Thanks for the additional research, Cyril. Here i...Thanks for the additional research, Cyril. Here is the blog post for anyone who is interested: <br /><br />http://cybermetric.blogspot.com/2012/06/do-power-hitters-choke-in-clutch.htmlKincaidhttps://www.blogger.com/profile/07348661324396474896noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-45665880846710880012012-06-20T09:28:32.935-07:002012-06-20T09:28:32.935-07:00Very interesting. Thanks for mentioning my researc...Very interesting. Thanks for mentioning my research. What I posted at tango's blog I went into more detail on mine. See<br /><br />http://cybermetric.blogspot.com/2010/07/dont-let-your-little-leaguers-grow-up.html<br /><br />I also did something several years ago called "Do Power Hitters Choke in the Clutch?" it is at<br /><br />http://cyrilmorong.com/Choke.htm<br /><br />A study called “Clutch Hitting: Fact or Fiction?” By Andrew Dolphin suggests that they might. It is at<br /><br />http://www.dolphinsim.com/ratings/notes/clutch.html<br /><br />I also did something similar to what you did here by just comparing WPA to linear weights in my presentation on clutch in 2002 at the Boston SABR convention. I had Bonds doing better in the clutch than his linear weights stats would predict. Maybe I will post this at my blogCyril Moronghttps://www.blogger.com/profile/07148864847009186694noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-33918571773776705872012-06-09T09:57:16.789-07:002012-06-09T09:57:16.789-07:00This is...this is spectacular.This is...this is spectacular.Benny Berrafatohttps://www.blogger.com/profile/05126055931234528962noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-36733115008963226692012-03-17T12:28:45.450-07:002012-03-17T12:28:45.450-07:00Thanks for the code! When I was reading the articl...Thanks for the code! When I was reading the article, one thing that came to mind would be to use neither LI or boLI for your hypothetical situation where the closer doesn't need to be saved for tomorrow. Instead, you could simulate a bunch of games and see how likely it would be that there would be a better situation for the closer to come in. <br /><br />I using your code as a starting point, I wrote a function to simulate a game at any starting point you want. Then kept track of how many times the starting point had the highest LI for that team. <br /><br />I ran the function 10000 times for the example in the article, and that point was the highest LI for the game in 49.96% of the games. The highest LI in the game was less than 2 in 83.61% of the games.<br /><br />This seems to indicate that you should use your closer in this situation, but I am not sure. Maybe a way to make this more thorough would be to calculate how much putting in the closer improves the probability of winning in this situation versus in the other potentially important situations (weighted by the probability of reaching those situations).Andrew Landgrafhttps://www.blogger.com/profile/16603453765851716066noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-9520368711412814892011-09-29T23:18:55.293-07:002011-09-29T23:18:55.293-07:00This comment has been removed by a blog administrator.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-90000701897955567272011-07-10T18:06:03.013-07:002011-07-10T18:06:03.013-07:00Hi, I came across your site and wasn’t able to get...Hi, I came across your site and wasn’t able to get an email address to contact you about some broken links on your site. Please email me back and I would be happy to point them out to you. <br /><br />Thanks!<br /><br />Frank<br />frank641w@gmail.comsports fanhttps://www.blogger.com/profile/00939547967741968103noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-19882452405497406292011-05-20T13:14:28.926-07:002011-05-20T13:14:28.926-07:00I made an Excel macro to make calculating Bayesian...I made an Excel macro to make calculating Bayesian W% estimates for a group of teams easier. You'll need an Excel spreadsheet with each team's W and L totals, and then paste the linked code into Excel's VBA environment. Read the comments embedded in the code to see what values you might have to alter.<br /><br />https://docs.google.com/document/d/1xdtx4H_upEzAqkspRwWJl_OAmuqIq9to7sgpHn0Uld0/edit?hl=en_USKincaidhttps://www.blogger.com/profile/07348661324396474896noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-62213377075379021862011-04-22T16:02:53.066-07:002011-04-22T16:02:53.066-07:00Indeed, excellent work!
I believe the general for...Indeed, excellent work!<br /><br />I believe the general form for calculating the posterior distribution from 2 standard distributions (when we're not necessarily using a binomial distribution for the variance) is:<br /><br />Posterior = (A/stdevA^2 + B/stdevB^2)/(1/stdevA^2 + 1/stdevB^2)<br /><br />Where A is the mean if distribution A and B is the mean of distribution B.<br /><br />And the posterior standard deviation is then<br /><br />PostStdev = 1/sqrt(1/stdevA^2 + 1/stdevB^2)<br /><br />I derived all of this from the calculus when I was working up my various Bayesian NBA rating systems.DSMok1https://www.blogger.com/profile/12928990981785290798noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-84832271951404250112011-04-22T14:47:03.777-07:002011-04-22T14:47:03.777-07:00Nicely done!Nicely done!Willy Huhttps://www.blogger.com/profile/14061717163501552213noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-44962320378640514752011-02-13T10:26:20.893-07:002011-02-13T10:26:20.893-07:00Thanks for doing analysis on our projections (Roto...Thanks for doing analysis on our projections (RotoChamp). We didn't provide FanGraphs with IBB or wOBA data, so the wOBA projections on their site might not be accurate. I'm not sure how they are calculating wOBA for us.<br /><br />I would throw out any comparison for guys like Dan Johnson who have low reliability scores in Marcel.<br /><br />This is our first year doing projections and we may or may not be regressing for age enough.<br /><br />Magglio is an interesting case. His xBA (by our calcs) was .335 last year versus a .303 actual BA. Since we ignore BA in our projections and use xBA, we will be more optimistic for him than other systems.<br /><br />I haven't looked at everybody, but I know Bautista and Dan Johnson have both been 'unlucky', and that is why they will be seen more optimistically in RotoChamp than other systems.<br /><br />Marcel will probably beat our system if you look at cumulative stats over the entire pool, but our system should be stronger in providing relative value for fantasy purposes. This is because our projections are optimistic across the board in terms of projected ABs and IPs.<br /><br />Thanks,<br />Mike - RotoChampUnknownhttps://www.blogger.com/profile/00340811090992128666noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-53495157663102712382010-11-22T22:51:35.912-07:002010-11-22T22:51:35.912-07:00Bo Hart is an interesting case, so I've used y...Bo Hart is an interesting case, so I've used your blog post as a jumping off point for one of my own.<br />http://bayesball.blogspot.com/2010/11/bo-knows-probability.htmlMartin Monkmanhttps://www.blogger.com/profile/05582544453619381290noreply@blogger.comtag:blogger.com,1999:blog-2868194292414002063.post-66282532893953362872010-11-18T21:09:42.892-07:002010-11-18T21:09:42.892-07:00For what it's worth, rWAR has Longoria as #1 i...For what it's worth, rWAR has Longoria as #1 in the AL.RFKhttps://www.blogger.com/profile/09194783054567255332noreply@blogger.com