A Series of Random Events


This sounds like good advice but since it’s the dead of winter, we’ll have to generate the numbers ourselves. Thanks to R, this should be no problem. I’ll give each batter 2000 independent trials each season and a 50% chance of success in each trial. Then we’ll plot moving averages of the results and the stories will practically write themselves.

First, a function to compute moving averages

ma <- function(x,n=100){filter(x,rep(1/n,n), sides=2)}

Now, let’s simulate 9 seasons, and plot moving averages of the last 1000 trials:

for (i in 1:9) { 
   x <- rbinom(2000,1,.5) 
   m_avg <- ma(x,n=1000) 
   plot(m_avg, type="l", 
   main = paste("Season", i), 


In season 1, our hero started out fast but, pretty soon, pitchers made adjustments as they always do. Around trial 1300, however, our hero made the necessary counter-adjustments and his success rate climbed steadily for the remainder of the season.

Season 4 is a red flag. Don’t draft this player in your fantasy leagues. You could practically see his confidence waning as the season went on. Is his hip bothering him more than he lets on? Perhaps it’s time for a trade, as a change of scenery might do him some good.

Folks in the know will draft the player shown in Season 9. You can pretty much throw out the first two months of the season since he was obviously a completely different player by the summer months.

Now let’s try the same thing, another simulated 9 seasons, but with moving averages of 150 trials:


These players move between hot and cold more frequently than the players above. Player 2 is the kind of guy you need in your head-to-head leagues, making steady contributions week after week.

Rumors have it that the player in season 3 started enjoying the night life a bit too much in July but, after a closed door clubhouse meeting (credit shane), got things straightened out. If this doesn’t demonstrate the value of strong clubhouse leadership, I’m not sure what does.

For more insights and fantasy advice, follow me at @steamerpro.

Comments (11)

  1. Sean

    When converting projections into draft day rankings, do you have an opinion on sgp vs z-scores?

  2. J. Cross (Post author)

    SGP’s, I think. The only difference as I understand it is whether you have individual standard deviations or (effectively) team level standard deviations as the denominators and team level (SGP’s) should be what you really want.

    1. Adam

      Just stumbled across this site. Impressive work, wow. I’m pretty statistics savvy but am unfamiliar with SGP. Could you elaborate?

      I calculate my own “value scores” for players using my league settings and projected stats that others generate. I just use the mean and standard deviation of each stat for the top 120 or so players in the Yahoo rankings for calculating each players’ z-score. The average z-score across categories is a player’s “value score.”

      What does a “team-level” standard deviation look like in the case you’re describing?


      1. J. Cross (Post author)

        Thanks. Here’s a better explanation than I can give:


        He’s calculating the SGP denominator as the range of values across teams and dividing by the number of teams but I think those denominators should be roughly proportional to what you’d get if you took the standard deviation of team values. For instance, you could look at your league from last year and take the team HR totals and take the standard deviation of those totals and use that as your denominator for HRs.

        1. Adam

          Interesting. Thanks for the link. I play in a H2H league, so the SGP metric isn’t applicable. Seems like a good gauge for rotisserie, though. Good stuff.

          1. J. Cross (Post author)

            No problem. If it’s weekly head to head, in theory the denominator should be the standard deviation of weekly team totals.

  3. Drusilla

    You share interesting things here. I think that your blog can go viral easily, but you must give it initial boost and i
    know how to do it, just type in google for – wcnu traffic increase

  4. Justice

    Pfff… Je líjkt niet alleen op een echte pa.paazi.r. Je bént er eentje!Die zeggen ook altijd dat ze maar één foto nodig hebben en dan de celebs met rust zullen laten, om vervolgens doodleuk de volgende dag alweer in de bosjes te liggen! ;-)

  5. bildung kredit erfahrung

    Imposible, imposible que con esa narrativa encuentre uno escollos al leer. Felicidades. Eres un tío grande: a mí cuando la moto me da problemas de fiabilidad me entra tristeza y me siento muy solo…Tu voto: 0  0

  6. kredit beantragen online ich

    To ja poproszę zestaw numer trzy!Coś bezsensownego:Zdziwione kangurywypiły trochę lurypotem wzięły zakąskę:wegetariańską gąskęz tysiąca marchewek złożoną,oczywiście podchmieloną!Wnet kowboje zastrajkowaliI gęś kangurom zabraliBo nawet jak gęś składasię z marchwi, to nada(l)sobie gęga i żyjei ze strachu główkę kryje!na fristajlu pisałem, przed komputer, rok 2008!

  7. british car insurers

    That’s an ingenious way of thinking about it.


Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>