Archive for August, 2015

TechGraphs News Roundup: 8/28/2015

The Roundup is a little late today, as I haven’t been able to pry myself away from this video for like four hours. Nevertheless, here are the stories from the sports-tech world that we found interesting this week.

We told you about the NFL’s deal with Twitter last week, but it appears as if it came at the expense of their Facebook partnership. Now we just have a different place to read stupid/misinformed/racist responses to highlight clips. Progress!

BuzzFeed (yes that BuzzFeed) has a pretty interesting look at the new RFID technology the NFL is implementing this year. is on sale! If you’ve been on the fence in the past, or were waiting for pennant races to heat up to see all the games, you can’t afford not to get it now.

Conversely, if you are a TuneIn subscriber, you can now get MLB audio through the web site or app for freesies.

Kotaku has a neat video giving an overview of what a League of Legends tournament is like in one of sports’ most famous venues.

And now, if you live in the UK, you can bet on eSports matches. What a time to be alive.

On a scarier note, it looks like some dummies were planning to shoot up a Pokemon tournament. If I knew more about Pokemon, I’d make a hip reference here. Alas…

ESPN College Sports Extra is a new channel launching just in time for football season. No Comcast support as of yet, but many other providers should carry it.

This sounds like a story that should be about some Texas school, but a high school football team in upstate New York is using drones to record their practices.

Meanwhile, Tennessee football players are turning to tech to track their sleep patterns.

That’s all for this week. Have a good weekend, and be excellent to each other.

How to Get the Most Out of “Format as a Table”

One of the Excel features that I feel too many people ignore is the “Format as a Table” tool. Let’s say we’ve got this data, 2014 team defense data from I’ve cleaned it up a little — gotten rid of the totals at the bottom and consolidated the headers into one row — but it should still be a fairly recognizable table.

File -> PFR2014.csv

The process of formatting data as a table is really stupidly simple. Click anywhere within the table’s data (so anywhere from A1 to Z33). Now choose “Format as a Table” from the Home tab:

A variety of designs will appear when you click the button. They all have the same functionality, and you can change the colors easily at any time, so just pick one.

A variety of designs will appear when you click the button. They all have the same functionality, and you can change the colors easily at any time, so just pick one.

I am going to select the third from the top red design because red is the greatest color. When I do pick that design, I get a popup and a blinking border around my data:

Excel, being full of magical and distressing insights, knows where my data begins and ends. So all I need to do is make sure the "My table has headers" button is checked (it is) and then press "OK."

Excel, being full of magical and distressing insights, knows where my data begins and ends. So all I need to do is make sure the “My table has headers” button is checked (it is) and then press “OK.”

Presto magnifico, I have a table!

“But Bradley, you had a table all along.”

Shut up, and yes, I did — but this one is better. Lemme show you why.

The first thing I like to do is enable “Wrap Text” on the header row (select the top row, then Home > Wrap Text). It allows me to see the whole table much better. (This is a simple operation, but if you’re confused, Professor Google should have a plethora of resources on the matter.)

The second thing I like to do is rename this table — especially if I’m going to do work with multiple tables. To rename the table, head to Formulas > Name Manager. The name manager popup window should have only one table in it — Table1. Double click that line, and a subsequent pop up will enable us to edit the name:

Let's rename this one "Defense."

Let’s rename this one “Defense.” If we ever want to rename the table, we can follow these same steps without any harm to formulas throughout the spreadsheet.

Once you choose a name, click OK then Close. Now when we select all the data in the table, it will highlight the name “Defense” in a names drop-down menu:

Conversely, when we select "Defense" from the names drop-down menu, Excel will highlight the table data.

Conversely, when we select “Defense” from the names drop-down menu, Excel will highlight the table data.

Of course, we can name a table without it being formatted through the “Format as Table” function. But what’s nice about the “Format” table is that if I add a row or a column, the named table “Defense” automatically expands. Let’s try this out.

Go to cell AA1 and type “Pass – Rush AVG” (we’re going to create a new column). Excel will automatically create and format a new column, like this:

The new column will automatically carry the formatting to the end of the table.

The new column will automatically carry the formatting to the end of the table.

Now, I’m going to type a new formula into it:

=[Passing NY/A]-[Rushing Y/A]

Whoa! That’s not a normal Excel formula! That’s right. It’s a table formula. Now that we have a named table, we can use the column names to complete formulas within (and without) the table. More on that in a second.

Depending on your settings, the formula may have automatically filled to the bottom of the spreadsheet. If it didn’t, just click on the autofill icon that appeared at the bottom left corner, and choose to allow the formula to overwrite the contents of the column:

No need to click and drag a formula to the end of a spreadsheet. This is particularly useful with lots of data.

No need to click and drag a formula to the end of a spreadsheet. This is particularly useful when you have many rows of data.

And hey, remember that strange formula we made a second ago? Let’s do something similar on a different tab. I’m going to add another sheet, Sheet2, and type into any cell:

=AVERAGE(Defense[Pass - Rush AVG])

That’s a basic =AVERAGE formula, but because of the named table “Defense” and the named column “Pass – Rush AVG,” I’m able to write the formula without using the mouse or worrying about cells moving or data changing. In fact, I can go back and change the name of that column to “Net Pass AVG” and guess what happens to my formula? It changes automatically to:

=AVERAGE(Defense[Net Pass AVG])

One of the biggest advantages to using named tables (and editing those table names) is that when formula get REALLY complicated, you can read something that’s close to English, not a collection of meaningless cell references (“Wait, was A1:D22 the running data? Or was that in F2:Y54?” as opposed to “Oh, I have Running[AVG] not Running[Data] selected. Oops!”).

Consider this formula from my Scoresheet dataset:

=IF(VLOOKUP(CONCATENATE([@firstName]," ",[@lastName]),FGDC,19,0)=0,"",VLOOKUP(CONCATENATE([@firstName]," ",[@lastName]),FGDC,19,0))

“FGDC” is data pulled from the FanGraphs Depth Charts leaderboard. I have that data on a separate tab. Here’s how the above formula would look without named sections:

=IF(VLOOKUP(CONCATENATE(Combined!G2:G1010," ",Combined!H2:H1010),'FG DC'!A2:X1141,19,0)=0,"",VLOOKUP(CONCATENATE(Combined!G2:G1010," ",Combined!H2:H1010),'FG DC'!A2:X1141,19,0))

Both formulas are unwieldy, but at least the first one is intrinsically sensible. I’m combining the column “firstName” with “lastName” and looking them up in table FGDC. If I don’t find them, then I want Excel to put nothing into the cell (i.e. print “”).

If you want to learn more about structured references, I recommend this rundown of the syntax and various uses of structured refs.

It’s also important to note a named table automatically adds filters and applies those filters even to new columns and rows.

Filters allow us to sort and sift through the data much more easily.

Filters allow us to sort and sift through the data much more easily.

Another small, but useful component of tables is that the jump shortcuts (e.g. CTRL+→) will jump to the end of the table, even if the row or column is empty. In other words, in the empty Sc% column, if we press CTRL+↓, the cursor will move to X33 instead of X1048576, which is where it would normally and uselessly end.

There’s a multitude of other little handy features when it comes to structured tables, like being able to neatly and easily select whole columns of data without also selecting the header and the empty cells beneath the data. But for now, I hope this is enough to get the Excel newbie started with exploring this surprisingly robust feature.

VR’s Sports Invasion is Coming: Part 2

This is Part 2 of Seth’s look into VR and sports. If you missed Part 1, you can read it here.

The Gear

Before we dive in too much further, let’s take a quick look at the different rigs in the VR marketplace .

  • Oculus Rift: Arriving 2016, Q1. The Rift plugs in to a computer’s DVI and USB ports. The latest version, the dev kit Crescent Bay, sells for $350. Oculus VR CEO Palmer Luckey estimates a $200-$400 cost. Microsoft and Oculus recently announced the Rift will ship with an Xbox One controller.
  • Samsung Gear VR: Already available, this is a device powered by the Oculus Rift dev kit and uses a Samsung Galaxy phone, either a Note 4 or a Galaxy S6. The mobile device slots in front of the lenses, into a Micro USB dock and uses Super AMOLED display as the screen. It sells for $199, and of course the phone is needed to view content, which can be found on Samsung’s Milk VR service.
  • Project Morpheus: Arriving 2016, Q2. The price is rumored to cost around $400-450, but his is only a rumor.
  • HTC Vive: Arriving 2015, Q4. The Vive plugs into PC and works with Steam’s library of games.
  • Carl Zeiss VR One: Already available and listed for $129, the Zeiss VR One accomodates the iPhone 6, Samsung Galaxy S4, S5, S6, Nexus 5 and LG-G3 smartphones. It also supports apps available from Google Play and the Apple Store.
  • Avegant Glyph: Arriving 2015, Q3. This rig is limited to 45 degrees field of view, but it also is said to reduce motion sickness and eye fatigue. It fits like headphones and the screen pulls down in front of your face. The cost is $499.
  • Google Cardboard: Our own Bradley Woodrum introduced you to this low-cost VR option back in December. Pop a smartphone into the cardboard container and bam, it’s VR time. As Wareable wrote, smartphones contain all the necessary gyroscopic sensors and positioning systems to accurately track head movements.


The most anticipated facet of VR in sports is how it will impact the way we view live sporting events. The NBA is an early adopter in VR broadcasts. The Association launched global marketing efforts years ago to establish new fanbases. While its efforts have succeeded, it’s left international fans, which can only watch games on television, hungry for an in-game experience. Fans in China and India will likely never go to a game. But what if they could in 2016? What if they could hear the squeaky sneakers, scan the jerseys hanging on the rafters and glance up at the scoreboard to see how many fouls Dwight Howard has? This is what the NBA wants to offer.

“When the day comes that 100 million or a billion people from mainland China can feel like they’re attending a Houston Rockets game courtside, that’s the dream. That’s the holy grail,” said Jeff Marsilio, the NBA’s associate vice president of global media distribution, in an interview with Fast Company. “That’s what we’re working toward.”

That work includes a partnership with Samsung’s Milk VR network. Marsilio hypothesized about the possibilities: offering perspectives from courtside during games, mid-court during team practices, in the locker room before a game, and maybe even sitting at the table with on-air commentators.

And while it may sound too good to be true initially, these are ideas that not only the NBA, but the NFL, MLB and NHL are all bouncing around.

In the conference room of an open-spaced, light-filled office in Laguna Beach, Calif., Brad Allen, executive chairman of NextVR, showed me the future. After popping his smartphone in to a Samsung Gear VR headset and helped strap it to my face, he rolled his company’s demo. I hovered above the ice during an Anaheim Ducks game at the Honda Center. I stood behind the pit crew of a Nascar event as they frantically worked to change tires and fuel up as fast as possible. When I turned around I saw the race’s leaderboard. With a 180 degree turn, I went from being on the track to a broadcast studio, and back. A goalie tracked down a ball right in front of me that went out of bounds as I looked up at him from the soccer pitch.

NextVR is a six-year-old company born to broadcast 3D television. Its founders worked with ESPN, TNT and in Hollywood. Co-founders DJ Roller shot the first live 3D sports broadcast at the 2007 NBA All-Star game and David Cole designed the first 3D HD video cameras, which were used in the blockbuster Avatar. They use Hollywood-level cameras that capture in 6K, are based on NextVR’s own compression technology, and can transmit in 4K — allowing live streaming VR on the internet. It all seems sort of Pied Piperish, sans Erlich Bachman’s bong.

In addition to its compression technology, what separates NextVR is its hardware. The cameras. Six RED Epic Dragon cameras operating form a rig to capture with each of three pairs of cameras capturing the stereoscopic image in front of them. The footage is combined with the NextVR software to produce a 360-degree composite video.


But the killer tech to live VR streaming is light field photography. Light field cameras capture information about the intensity of the light in a scene and the direction the light rays are traveling in space. NextVR announced its voyage into this awesomeness in March, which ideally, would allow the viewer to alter their point of view within the video, in any direction, with six degrees of freedom. It heightens the viewers sense of immersion. Want a better angle on a play happening on the other side from your current view point? You’ve got it. NextVR’s patented approach, which the company has researched and developed for three years, creates a 3D geometric model of the scene. No stitching of images needed, a rarity among VR content producers.

“Live transmission is really the killer app for virtual reality – enabling viewers to witness sporting events as they happen, live in VR and from locations beyond a front row seat ” said DJ Roller, co-founder of NextVR.


Experiencing VR for yourself is a must. While the cool factor is off the charts, what I experienced were just demos. The future Allen showed me – the future that filled me with more excitement than Charlie about to enter Willy Wonka’s factory – is about to become the present.

Allen painted a picture of being at a game. I get to choose my seat, whether it’s front row, behind home plate or behind an end zone. When I look behind me, I have access to my social media feeds. I can enter a team’s store and buy merchandise. My friends list shows me if my buddies are online, and if they’re watching the game. If there’s a few, we can create a luxury box and watch the game together. I can scroll through game stats, player stats and season stats. I really want to listen to Vin Scully call this game, so I include the broadcast overlay. In the bottom of the ninth with the Dodgers down a run and the bases loaded, I can turn off the broadcast and listen to, and become one of, the rabid fans.

It’s the ultimate second screen experience. You just don’t need the actual second screen.

Leagues are preparing how to implement VR into broadcasts, with the goal of enhancing fan engagement, Allen said. And he’d know. NextVR is working with leagues to develop best practices.

According to The Hollywood Reporter, NextVR has already tested its tech with the NBA, NHL and MLB. The company partnered with Fox Sports to deliver a live stream VR experience with multi-camera coverage of golf’s U.S. Open. Earlier in the year NextVR’s cameras grabbed footage in the pit of the Nascar Spring Cup Series in addition to actual racing, which Fox broadcasts. And as Road To VR reported in April, Fox boss Robert Murdoch reviewed NextVR’s content and apparently came away impressed, considering Fox’s progressive partnership with NextVR and testing of VR broadcasting abilities, like the U.S. Open.

“Our ongoing efforts with NextVR are exactly the kind of relationships we are exploring with our new Fox Lab platform,” John Entz, president of production at Fox Sports, in a statement. “Virtual reality is most certainly delivering a new level of excitement to next-generation production possibilities, and it will be great to gauge the reactions of the audiences who get to sample it at the U.S. Open.”

Peter Guber, Mandalay Entertainment CEO and co-owner of the Golden State Warriors and Los Angeles Dodgers, put a few million dollars worth of his chips in to the pot, and is betting on NextVR. A friend of Allen’s, Guber invested an undisclosed amount in to the company and will serve as chair on the advisory board.

“You don’t have a director telling you where to look,” he told “Individual capture devices can be put in separate places, and you can move from courtside to the owner’s suite, looking down.”

NextVR is building a platform through its portal and app to host a large amount of content, which would allow sports fans to view channels of live and on-demand programming. As noted following an interview with David Cramer, senior vice president of corporate strategy, their portal could also be linked to rightsholders’ own apps and websites.

“Some of the content could be accessible to all Fox viewers, or there could be a PPV or subscription model for premium content,” Cramer said. “Then there is also the opportunity for sponsorship or advertising and even e-commerce.”

Pricing would likely be pay-per-view or subscription based through the NextVR app.

Broadcast rights aside, there are other ways to watch live events in the VR realm. In February, for the first time in two decades, AltspaceVR CEO Eric Romo watched the Super Bowl from his Northern California home with his dad and brother, who live in Pennsylvania and New Jersey, respectively.

“I got to hear Dad yell throw the damn ball over and over again,” Romo said.

Romo’s AltspaceVR hosted a Super Bowl viewing party for users with an Oculus Rift dev kit and an internet connection. Romo used the game to test his hardware, and beta testers sat in a gigantic virtual theater with the game shown on to a giant screen from NBC’s web stream. The playback of the game was synced so everyone viewed the same thing at the exact same time. For those that think VR is an isolating experience, AltpspaceVR’s vision disproves that notion. The company, which has raised $15.7 million in seed money, including a backing from Google Ventures, is banking on the social side of the technology.

Courtesy of AltspaceVR

Courtesy of AltspaceVR

“You look around and you’re in a crowded room full of people,” Romo said. If done right, it really feels like it. You’re with real humans and you feel a real connection with those people.”

AltspaceVR continues to hone it’s platform. Its beta access is now open on a continuous basis. Romo said that audio balancing continues to be a challenge. He doesn’t want viewers to have to shout over the audio on the screen.

“There’s a lot to learn about how to make our product a good experience,” Romo said.

On October 25th AltspaceVR will host a viewing party for the Buffalo Bills vs Jacksonville Jaguars in London, as the NFL tests its streaming capabilities. Other focuses for the company include making work and adding international sports for its clamoring global community.

Mary Spio, president of Next Galaxy, which develops content solutions and VR tech, echoed Allen and Romo. The former deep space engineer said she’s talked to a lot of sports teams and they’re most excited about selling tickets globally. It’s an untapped revenue stream. And as Romo highlighted the sociability of sports, Spio noted that there’s a reason Facebook bought Oculus – they saw that it can be a social thing.

“Most people think of games (when it comes to VR), but sports will completely eclipse what’s being done in games in virtual reality,” Spio said.

Next Galaxy put together a nifty promotional video, which I’ll embed, as it illustrates the possibilities of viewing live sports in VR.


Last month the Dallas Cowboys signed a deal to have their quarterbacks use a VR headset for training purposes. Not only will it allow them to improve their decision making, but it allows back ups and injured players, who would not take physical snaps during practice, to speed up learning, all the while complying with strict guidelines prohibiting time with NFL coaches. Not only would the quarterbacks watch film. They’d be doing the drill tape.

StriVR Labs, the company working with the Cowboys, just kicked off its business venture in early January. But as Fox Sports thoroughly profiled earlier this year, it started much earlier. Derek Belch, a former Stanford kicker and special teams grad assistant for the 2014 squad and Jeremy Bailenson, communications professor and founding director of the university’s Virtual Human Interaction Lab, brainstormed how virtual reality could be applied in football, and ultimately, that became Belch’s thesis master’s thesis.

Belch turned Stanford’s practice field in to his personal lab in 2014, thanks to head football coach David Shaw. As Fox Sports reported:

Shaw, who knew Bailenson because the professor’s virtual reality lab was a stop on the tour his staff would show Stanford football recruits, agreed to set aside five minutes of practice each week on Monday nights. Offensive coordinator Mike Bloomgren would scout out eight to 10 blitzes the upcoming opponent favored and scheme up some answers that the Cardinal scout team players would carry out as Belch and his video crew filmed. By Wednesdays, when the quarterbacks came into the football office, the Cardinal’s plan of attack was already loaded into VR and there for them once they strapped on the headsets. But the transition was hardly seamless.

The experiments lasted until November before Belch and his team worked out the kinks. Cardinal quarterback Kevin Hogan played so well in a 31-10 upset of No. 8 UCLA (16-for-19 in pass attempts, with two incomplete passes a result of drops) on November 28 that Bloomgren raved about the results and Shaw mandated all of his quarterbacks work with the StriVR Labs’s trainer weekly. Stanford stomped Maryland 45-21 in its bowl game and Belch turned his thesis in to a company. And ex-NFL quarterback and former Stanford teammate of Belch’s, Trent Edwards, wanted in. After two minutes with the headset, Edwards said he wanted to work with Belch.

Along with the Cowboys, StriVR will work with the Minnesota Vikings, and San Francisco 49’ers. Besides Stanford, StriVR has partnered with Arkansas, Auburn, Clemson, Vanderbilt and Dartmouth. Three college teams decided to work with Belch on the spot. And he said that no one has said no yet.

“Andrew Luck will probably be very interested in this,” Belch told me in April. And he was right. Luck told he thinks VR will have a big impact on football training.

In a space crowded with start-up companies trying to make a buck, Belch emphasized that StriVR Labs’s edge is that it knows football culture. It speaks the language that coaches speak. And that puts coaches at ease.

StriVR is working with its clients to develop customized content for the training programs, which will include more positions than just QB. It also plans to quicken its turnaround time from filming plays to editing the VR content for use, to one day. While Belch wouldn’t divulge the cameras used to film footage, he did say they’re using the Oculus Rift headset.

Ultimately, this is how StriVR Labs can benefit its clients, Belch emphasized. They are very sensitive to keeping the process simple, and not to overwhelm the player. They don’t want to strap bells and whistles to a player.

“If it doesn’t seem like a seamless, transparent experience, that athlete isn’t going to be interested,” Belch said. “We need to keep up with the speed of the athlete.”

Eon Sports VR is the other major player in this space. Current clients include UCLA, Ole Miss, Syracuse and Kansas, and CEO Brendan Reilly told Fortune that he expects to sign two NFL teams before the start of the 2015 season.

Reilly’s goal is to reach the youth with his technology, which can accelerate a player’s knowledge and experience without baking in the August sun at practices, increase repetitions and reduce mental mistakes.

“The VR experience is the same for an NFL player or a 10-year-old kid in Kansas,” Reilly said to Fortune.

Increasing VR abilities will only limit the risk, and likely amount, of injuries in youth and high school sports.

Bailenson agrees with Reilly’s vision. He said VR as a training tool holds unique value in amateur sports as those athletes don’t have fancy workout centers or daily full-team practices. In VR, digital scenes can be replicated for little to no cost. From the top athlete on the planet to a sandlot quarterback.

“Everyone can have access to ‘high end’ virtual training for very little cost,” Bailenson said.

But the virtual training doesn’t stop on the gridiron. Earlier this year, Silver told The Stanford Daily that, in addition to benefiting marketing outreach, VR could help in the training room.

“Players always tell us how they get better by repeating certain situations,” Silver said. “This could be ideal [in helping them elevate their games].”

And baseball? Jesse Wolfersberger shared his vision recently at The Hardball Times:

Imagine this scenario. You are a major league player who will face a pitcher for the first time tomorrow. You head to the batting cage, the team’s VR assistant loads up the program, and you slide on the headset. From your perspective, you are now standing in the batter’s box, in the stadium full of fans, looking at tomorrow’s starting pitcher on the mound. He winds up and throws, and it looks exactly like it will during the game tomorrow. You can virtually face that pitcher dozens of times, seeing every pitch in his arsenal at the exact speed and break that he throws it. Could there be any better preparation other than actually facing the pitcher himself?

Stay tuned for Part 3, discussing branding and marketing, coming soon.

(Header image via Sergey Golyonkin)

Recent esports Tournaments Show Promising Attendance Numbers

Over the past weekend we saw two titans of esports, League of Legends and Counter-Strike: Global Offensive, hold major tournaments. On Sunday the European and North American League of Legends Championship Series summer finals concluded with the Counter-Logic Gaming team taking first place for North America, $50,000 in prize money, and a ticket directly into the 2015 World Championship, and Fnatic taking home the trophy for Europe. Fans of CS:GO were entertained from Thursday to Sunday with the ESL One: Cologne tournament, a tournament partially sponsored by CS:GO developer Valve, with $100,000 going to the winning team and $250,000 overall up for grabs. The weekend was filled with teams from all over the world aiming to take the top prize.

Both esports events captured a huge number of fans, and CS:GO set a sixth month high for view hours in a single day. Via Gamoloco, CS:GO averaged more than seven million hours per day across the for the four day event, peaking at 8.9 million view hours on Saturday. It should be noted the number of hours is likely skewed by users logging in with multiple CS:GO accounts in order to raise their chances to receive a free in-game item drop, so these numbers should be taken with a grain of salt. The infographic below displays the game itself rather than the specific ESL One Twitch channel, which is to say there were other streams being watched for CS:GO and League of Legends beyond just the official ESL One and LCS streams.


By specific channels with each game, Gamoloco rates ESL One compiling 24.4 million hours (with another one million hours on the official “B Stream”) compared to Riot Games, developer of LoL, totaling just over five million hours over the past week. These numbers represent the English speaking channels only, with the Russian channel covering ESL One accumulating nearly three million hours, plus Polish and German broadcasts for each game.

gamoloco2The crowds at both live venues were impressive as well, with the League of Legends NA Summer tournament filling up Madison Square Garden with a reported 11,000 fans. Europe was no slouch either as ESL looking as though the Lanxess Arena drew a fair crowd as the header image would indicate, along with a large crowd at the EU LCS at Stockholm’s Hovet Arena. While it’s hard to compare a single tournament to the long grind of a sports season, the NA Summer event pulled a crowd comparable to the NHL’s Florida Panthers and more than the MLS’ Chivas USA, though both the Panthers and Chiva rank last in attendance for their respective leagues.

These impressive numbers aren’t even counting Dota 2’s yearly tournament, The International that was held from July 27 to August 8 to decide the world’s champion where we saw the single largest prize pool for an esports tournament. With the growing prize pool, interest level and time commitments being dedicated to esports — not to mention push notifications the ESPN app and score tickers (cap tip to HeyCJay from Reddit) and streams on ESPN 3 — it may be time to pick your favorite esports organization just the same as a football or baseball team. 

(Header image via ESL Twitter)

TechGraphs News Roundup: 8/21/2015

My skin is finally starting to recover from the wicked sunburn I got at the PGA Championship last weekend, but my brain is still thinking about what’s going on in the sports-tech world. Here are some stories we here at TechGraphs found interesting this week.

It looks like in-market baseball streaming is coming. Well, sort of. As of now, it only applies to subscribers of Fox Sports regional sports networks. Basically, if you subscribe to Fox Sports [Something] via cable or satellite, you’ll be able to stream a baseball game on your phone if you aren’t near a TV. So, no, an subscription won’t save you from the grips of local blackouts. It is a step in the right direction, but we’re still a ways away from watching your local team on your At Bat app.

FiveThirtyEight did some really interesting work with Pitchf/x data looking at the accuracy of umpires’ balls and strikes calls over time.

Ned Yost won’t be able to look up Pitchf/x data on his Apple Watch, because he still isn’t allowed to have a smartphone in the dugout. But MLB says it’s OK if he wants to wear his expensive timepiece in the dugout.

FanDuel, a daily fantasy sports company, has purchased numberFire, a fantasy sports recommendation site. Mark my words, FanDuel and DraftKings will merge and buy Disney and Google some day.

Engadget has a story about a really cool project involving detecting head trauma in football using special polymers in the helmet. While a motionless player is never a good sign, many players could suffer possible brain damage without having as drastic outward symptoms. Learning the level of force applied to the head just by looking at the helmet could be huge.

World Rugby is also looking to better assess head injuries, as well as enhancing their official review system with a new partnership with Hawk-Eye.

According to the Telegraph, Rugby is also getting in on that sweet, sweet analytics game.

The role of 3D printing has boomed in the world of prosthetics lately, and now it’s helping youngsters throw out first pitches at baseball games. Pretty cool.

Do you want a shirt that tracks your vitals while you work out?! Do you want to pay $300 for it?! If so, then Ralph Lauren has your back, friend.

That’s all for this week. If you need me, I’ll be bathing in aloe. Have a good weekend. Be excellent to each other.


VR’s Sports Invasion is Coming: Part 1

Courtside of the NBA finals sits Phil from Cleveland, draped in a stained bath robe with more holes than Pebble Beach. Football practice for New York Jets quarterback Geno Smith, despite his broken face. A Cincinnati Reds fan dug in against Aroldis Chapman and his impending 102 mile-per-hour heater while wearing shorts, sandals and a faded Senor Frogs tank top from spring break ’98. A college recruiting trip inside the coach’s home, arena and practice facility of a top SEC football program – cheerleaders included. With virtual reality, each of these can be an actuality. Some are already possibilities. And others could happen before the next President is sworn in to office.

If there was one take away from the Consumer Electronics Show in January – other than the realization that the wearable market is almost as saturated as homemade craft shops on Etsy – it’s that virtual reality (VR) is coming. That winter in Game of Thrones is like a snowflake compared to the hyped fallout from the Las Vegas trade show. VR is coming hard, it’s coming fast and it will own our souls. That is, if the reality matches the hype.

Oculus, the most recognizable VR hardware, had a booth for the first time at CES. Articles, blogs and videos of the VR experiences flooded the Internet with tales of the unimaginable, the unfathomable and the just plain cool. Scott Stein of called VR the eye-catching showstopper and noted Oculus headsets everywhere. Last month the company announced that the Rift will ship to consumers in the first quarter of 2016. As it builds on the Crescent Bay prototype, which many raved about, and is backed by Facebook following the $2 billion acquisition last year, it will be the Rift pressured with bringing VR in to the homes of the masses.

Today, the post-CES buzz has muffled though the anticipation of consumer VR hasn’t ceased. Now, it’s just a matter of when, not if, early adopters will have consistent, quality content to utilize current and future VR rigs. Sports, along with entertainment and pornography, is a leader in technological innovation. Broadcast companies, video game creators, sports leagues and teams all have chips in the proverbial VR pot as they fight for fan engagement, sales and television ratings. While some are calculating their bets, others are all in.

TechGraphs takes a look at what is out, what is coming and potential challenges that face VR’s invasion of sports. Will it be another 3D television? Or will we all wonder how we lived without it in ten years?


While VR initially evokes an image of a video game experience for most, its origins are much different. In Pygmalion’s Spectacles, a science fiction short story published in 1935, author Stanley G. Weinbaum detailed a VR system that used goggles with holographic recording of fictional experiences that included smell and touch. In 1957, Morton Heilig, the “father of virtual reality,” invented the Sensorama, which received a patent in 1962. It used 3D motion picture with smell, stereo sound, seat vibrations and wind to create the VR experience. Heilig, a cinematographer, also created a 3D camera for the project. The evolution of the computer harvested an organic relationship between VR and gaming. A relationship that blossomed in to the gaming indstusry as the leader of VR implemenation. A relationship that, according to mobile internet/VR/games and digital client consultant Digi-Capital, could generate $30 billion by 2020.

Except when it comes to sports games.

In January, video game developer Ghost Machine launched the first VR sports game from Steam, the popular online game distributor. Motorsport Revolution is a physics-based PC racing game compatible with the Oculus Rift DK2 headset. The single-player racing game featured multiple 3D tracks tracks, including famed California Speedway, and an action feel filled with an aggressive AI and fantastic crash scenarios. VR Sports Challenge was announced at E3 to launch with the consumer version of the Oculus Rift. Think of it as a Wii Sports-type title. Google search virtual reality sports games and you’ll find little else.


Ghost Machine’s CEO Neal Nellans told me earlier this year that big video game developers will sit on the sidelines with a wait-and-see attitude. Today, it seems the big boys moved from the sidelines to the luxury box to munch on appetizers, sip aged scotch and watch a different game on a massive flat screen, all the while checking in on the VR game on the field below to see if it gets interesting.

Peter Moore, chief operating officer at Electronic Arts, told Gamespot that his company will jump in to the VR marketplace “if and when virtual reality becomes a ‘high-demand’ activity.” Moore wants the gear on the heads of consumers first.

Three months ago Owen Good highlighted challenges that face VR in sports games for Polygon. Ignore the writer’s argument that VR can’t give us the superhuman experience we want in games, and Good starts to make some sense.

What keeps sports out of the virtual reality conversation is the size – or lack thereof – of the market. There is no current sports simulation title available on Wii U. I realize people attribute that to some dark deal Electronic Arts demanded and Nintendo refused, but the fact remains there’s still no NBA 2K no WWE 2K — no Pro Evolution Soccer, for God’s sake — on Wii U either.

These are iterative titles with codebases literally stretching back to the Dreamcast days. If they can’t readily adapt that work to make the Wii U controller’s second screen necessary, or even meaningful, it is going to take an even greater overhaul — if not a complete work from scratch — to create virtual reality edition.

And that’s after all of the league licensing costs — which are a huge brake on innovation, — are figured into the discussion.

For Moore, he sees the hardware, rather than software, as an issue. A year ago Gamespot reported that Moore insinuated that the VR headset is dorky.

“It’s an incredibly immersive experience, but it’s you,” Moore said. “You’re inside this world and you’re oblivious and of course, you can’t see. You hope it doesn’t get what I’ll call the Segway effect: incredible technology that kinda looks dorky. Or the Google Glass effect, which is the dork factor that goes with that.”

But that’s not to say that there aren’t big boys moving forward. Last month, Gaming Respawn reported that Ubisoft, the publisher behind uber popular titles Just Dance, Assassin’s Creed and Rainbow Six, is working on multiple games to launch once Oculus and Playstation’s Project Morpheus reach consumers.

“We are working on the different brands we have to see how we can take advantage of those new possibilities,” CEO Yves Guillemot said during an earning’s call last month, “but making sure also we don’t suffer from what comes with it, which is the difficulty to play a long time with those games. We are very bullish about the potential. We think it is going to bring more players to the universe of video games, and we are going to come with our brands.

But again, where are the VR sports games?

Ryan Batcheller is a 3D environment artist for JumpStart, a game designer, and creator of Virtual Screams, which hosts virtual haunt experiences using the Oculus Rift and aims to develop the content to run on the Samsung Gear VR. I first heard about Oculus from Batcheller at a party for a friend two years ago. His stories seized my imagination, flipped it inside out and tied a cherry stem around it. I felt woozy with excitement. It was too good to be true, I thought, as the cost of this tech would be too much for mass distribution. Batcheller’s exposure to VR began when he played a How to Train Your Dragon demo developed by Dreamworks. He tested the Oculus at work and bought both developer kits. He sees different challenges facing developers of VR sports titles.

“Sports games using VR will require a lot of testing with how the game play would work,” Batcheller said. “With the Wii you had people acting out motions in their home and hitting people, knocking over things and hurting themselves. That was with them being able to see and just being absorbed in the game. With VR they can’t see their surroundings. So with sports games I think the real trick is going to be designing game play that is fun and safe for the user who is immersed in the experience.”

In addition to the Oculus Rift launch in early 2016, Sony’s Project Morpheus will be a key to mass VR introduction. The PlayStation product is expected to be available by June of next year. Morpheus simply plugs in to the PS4, which has sold 22.3 million units to date. The marketplace already exists. With a Full HD 1920 x 1080 and 5.7-inch display with 100-degree field of vision and a refresh rate claimed to be higher than the Oculus Rift and HTC Vive (120Hz compared to 60Hz and 90Hz, respectively), Morpheus will contend for the top VR headset.

One rumor prices the Morpheus at $450, which will certainly hinder early adoption, even if it does include a full kit. Among the 21 announced titles, however, only one fits the sports genre. Project CARS, a motorsports game already available for the next gen consoles, is the lone sports title.

And what about Xbox? According to TechRadar, Microsoft’s VR headset development kits are in the hands of some game developers. But this was before the June 11 revelation that Microsoft has partnered with Oculus. Via Windows 10, Xbox One games will stream to the Rift headset as part of the virtual cinema Oculus has created.

The gear is coming.

“The new Oculus is completely mind-blowing, but while I’m bullish on the potential of VR to transform multiple industries, not least entertainment, it won’t be until 2016 that it truly starts becoming a viable consumer success,” said Mind Candy’s creative director Michael Action Smith to Vice.

Consumers just need the content when it comes to sports gaming in VR.

Part Two will discuss the upcoming gear, and how they can infiltrate the broadcast and athletic training spaces.

(Header image via Sergey Golyonkin)

MLB Fan Lawsuit Seeks Technological Remedy

Last month, Oakland A’s fan Gail Payne filed a class-action lawsuit against Major League Baseball in an effort to compel the league to provide more protective netting at all ballparks, including minor-league parks:

The Plaintiff and the Class are entitled to injunctive relief requiring Defendants, among other things, to adopt corrective measures regarding the implementation of: (1) a rule requiring all existing major league and minor league indoor and outdoor ballparks to be retrofitted to extend protective netting from foul pole to foul pole by the beginning of the 2016-2017 MLB season; (2) a rule requiring any newly constructed ballpark intended to house major or minor league baseball games, to include at a minimum this amount of netting; and (3) a program to study injuries and the rates of injuries amongst spectators, including the type and manner of injury and at what locations in ballparks they occur, in an effort to continually reevaluate whether additional measures should be taken, so that precautionary measures can continue to evolve as the sport continues to evolve.

As Nathaniel Grow wrote for FanGraphs, Payne’s lawsuit has a relatively low likelihood for success, due to the “several strong legal defenses” available to MLB and the possible applicability of “the so-called ‘Baseball Rule,’ a doctrine historically shielding MLB teams from legal liability for injuries incurred by fans from foul balls or broken bats.” (Payne attached to her complaint a “sample list of injuries suffered to spectators located in the unprotected areas along first and third base between the foul poles, during official play” that identifies about eighty-five such injuries since the early 1900s.)

If the case does go forward, though, it could present a few interesting questions. One is whether the U.S. District Court for the Northern District of California, where Payne’s case is pending, will apply the Baseball Rule. Last summer, the Georgia Court of Appeals refused to do so, affirming a trial judge’s rejection of a request by the Atlanta Braves (joined by the office of then-MLB Commissioner Bud Selig) to apply the rule and dismiss a lawsuit brought on behalf of a child whose skull was shattered by a foul ball at a Braves game.

A second question arises out of the procedural nature of Payne’s complaint, which seeks class-action treatment, and involves the means available to dissenters in the proposed class for challenging Payne’s position. Unlike the more popularly familiar “opt-out” class-action lawsuits, for which you may have received a coupon because you purchased overpriced energy drinks or music CDs, Payne’s proposed class action will proceed, if at all, under a different rule as a “mandatory” class action. Practically, this means that, if the court certifies Payne’s case as a class action, the final result of the case will bind every member of the class, which Payne broadly defines as all MLB season-ticket holders with seats “in any unnetted/uncovered area between home plate and the foul plates [sic] located at the end of the right and left field lines . . . .” As Grow suggested in his FanGraphs post, if the court grants her request for class certification, Payne could find herself with some unhappy fellow class members, as it seems likely that many MLB season-ticket holders with seats in what Payne’s complaint dubs “the Danger Zone” prefer their completely unobstructed views of the action and do not agree with Payne that the league should extend netting all the way to each foul pole. Because the proposed class is of the mandatory variety, though, dissenting class members could not simply opt out and control their own legal destinies. While yet another rule may allow those season-ticket holders who don’t want additional netting requested to intervene in the case and make their objections known, they must take affirmative steps to do so, and they must act in a timely fashion. A possible alternative, which Grow mentioned, is that MLB itself may point to this probable intra-class division in the course of its anticipated argument that the court should not allow the class action to proceed, thus relieving the dissenting class members from the need to do so. (On this point note that, on Monday, MLB filed a routine Disclosure of Interested Entities, which listed only the league’s thirty teams and their owners as among those entities having “a financial interest in the subject matter in controversy [or] having a non-financial interest in that subject matter . . . that could be substantially affected by the outcome of this proceeding.”) MLB’s answer to Payne’s complaint is due on October 2, 2015.

Third, and the reason for taking a look at this case over here at TechGraphs, Payne’s complaint raises a question of practical technology: How can we keep baseball fans safe while affording them the best available opportunity to enjoy baseball games? While the response from Payne’s legal and ideological opponents is that the fans themselves (and alone) bear the burden of ensuring their safety, an increase in fan-protection measures of some sort seems likely. MLB teams, including the aforementioned Braves, already employ extended netting during pregame activities, and further severe fan injuries could mobilize popular sentiment and personal injury lawyers to target MLB’s pockets, rather than merely its conscience.

To some, the pushback against increased safety netting should sound as a cry for technological innovation. As attitudes about netting change, a manufacturer who could produce stadium nets with reduced visual obtrusiveness seemingly would find himself or herself well-positioned to enter the market. (I contacted representatives for multiple MLB teams and netting manufacturers in connection with this story. None offered substantive comment, although one, Tex-Net, Inc. owner John Scarperia, indicated that he thought that the nets in use today already were as unobtrusive as possible while still providing the requisite degree of protection.)

And attitudes are likely to change. In 2002, thirteen-year-old Brittanie Cecil died as a result of injuries sustained when a deflected hockey puck struck her in the head during the course of an NHL game between the Calgary Flames and Columbus Blue Jackets. Three months later, the league, having completed a study of the issue, decided to significantly expand fan safety measures in its arenas by installing large safety nets at each end of the ice.

Image via Wikipedia

Image via Wikipedia

As Yahoo! hockey blogger Greg Wyshynski recalled in a post marking the tenth anniversary of Cecil’s death, negative fan reaction to the netting in 2002 was substantial and precisely in line with the remarks from 2015’s opponents to increased baseball netting. From the article announcing the new nets: “Some Blackhawks season ticket-holders said during the season that they would oppose having netting installed because it would interfere with their view of the game.” From a (oddly illuminated) contemporary editorial:

If spectators paid attention to the game, safety wouldn’t be a concern.

At the MCI Center in Washington, D.C., 122 fans were injured in 127 games, most of them weren’t serious, according to a report by two emergency room doctors. Meaning spectators were trying to be heroes by catching the puck and cutting their hand or something minor.

Don’t try to be heroes when the puck is traveling at 100 miles per hour; just duck.

The nets are good news to some people, such as the architects that build new arenas and stadiums. Now, with the nets, spectators will be able to see ice rinks where there are only 15-20 rows of seats behind the end zones and the rest near center ice. Taller and wider stadiums will be built as soon as the word gets out that no one can see through the nets.

Even Doug MacLean, then the general manager for– of all teams, the Blue Jackets– received angry mail: “It was shocking to me. When we put the nets up in Columbus [where Cecil was killed], I had some unbelievably nasty letters from season ticket-holders asking me how I could do that to their sight-lines.”

Wyshynski, who admitted he too was an early opponent of the netting, revisited the story ten years later not so much to chide or mock those early opponents but to observe just how much of an afterthought the netting had become since the initial outcry over its installation: “The purists bristled at the end of a tradition. Debates raged … and then a decade later, yesterday’s hot-button debate is today’s societal norm.” Should MLB ultimately follow the NHL in mandating new safety netting, it isn’t too difficult to imagine that, ten years down the road, your favorite baseball writer on whatever future version of TechGraphs exists at that time will have something similar to note.

(Header image via Rob Bixby)

YouTube’s Live-Streaming Potential for Sports is Growing

After representing Middle Earth in the Lord of the Rings films, New Zealand is once again the epicenter for fantasy and hopes sprung to life. Yesterday, YouTube secured broadcasting rights to the Bundesliga and will begin showing its soccer matches on Friday in real time from Germany. Time zone differences will be awfully tough on the Kiwis as a 2:30 Friday afternoon game goes live at 12:30 am in New Zealand. Ruined sleep patterns aside, merely seeing Google take live streaming so seriously could open up a new competition for sports broadcasting rights.

The Latest_Bundesliga Twitter account was among the first to break the cord cutter friendly news:

Sports Business Daily (subscription required) noted YouTube — and by extension Google — is also allowed to show additional games and highlights from the league, but as replays and not live.

YouTube previously streamed the opening match of Bundesliga season here in the United States, a matchup between three-time reigning champ Bayern Munich and Hamburg last Friday. With Fox Soccer owning the broadcast rights here, the game was streamed via their soccer page.

It’s hard to imagine YouTube not being interesting in the broadcast world, as they’ve been in the live streaming business for some time now, really kicking things off with their stream of the 2012 London Olympics. With events ranging from traditional sports to extreme and esports, as well as general content creators also getting in on the live broadcast game, YouTube already has a massive user base, huge infrastructure behind it, as well as name recognition and familiarity.

Further emphasis has been placed on YT’s trend of embracing esports as they streamed Dota 2’s largest yearly tournament, The International 5. At TI5, 16 qualified teams from around the world competed for a prize pool of over $18.4 million, with more than $6.6 million going to the winning team. Factor in the soon to be released YouTube Gaming platform, an aptly named area specifically for the broadcast of esports, speed runs, Let’s plays and more, clearly Google has taken a keen interest in bringing live content to people. Google securing the rights in New Zealand with their ~5 million residents could be a guinea pig or stepping stone of sorts for bigger things on the horizon here in the US. According to their second quarter 2015 report, Google increased revenue to $17.7 billion and revenue growth of 11 percent year-over-year. Ruth Porat, Google CFO commented on the revenue, specifically noting YouTube, said:

Our strong Q2 results reflect continued growth across the breadth of our products, most notably core search, where mobile stood out, as well as YouTube and programmatic advertising. We are focused every day on developing big new opportunities across a wide range of businesses. We will do so with great care regarding resource allocation.

Unfortunately it’s impossible to distinctly separate YouTube’s revenue stream from Google’s numerous other ventures, however it isn’t hard to imagine YouTube comparing similarly to traditional networks. Given that other broadcasting network reports don’t separate their revenue streams channel by channel, these numbers for sports networks should be taken with a grain of salt. CBS’s Q2 2015 report disclosed a $3.2 billion, increasing 1 percent compared to last year. Disney, owners of sports giants ESPN and ABC amongst other channels, reported Q2 earnings at $2.1 billion this season. Time Warner, controllers of TNT, and TBS et al. posted $7.3 billion, up 8 percent compared to 2014.

With plenty of money, a desired market for more streamed sports and clear goals moving towards streaming live broadcasts, Google and YouTube could once again transform the way the every person consumes their favorite sports, news and other media.

How To Use R For Sports Stats, Part 3: Projections

In this series, we’ve walked through how exactly you can use R for statistical analysis, from the absolute basics of R coding (in part 1) to visualizing data and correlation tests (in part 2).

Since you’re reading this on TechGraphs, though, you might be interested in statistical projections, so that’s how we’ll wrap this up. If you’re just joining us, feel free to follow along, though looking through parts 1 and 2 first might help everything make more sense.

In this post, we’ll use R to create and test a few different projection systems, focusing on a bare-bones Marcel and a multiple linear regression model for predicting home runs. I’ve said a couple times before that we’re just scratching the surface of what you can do — but this is especially true in this case, since people write graduate theses on the sort of stuff we’re exploring here. At the end, though, I’ll point you to some places where you can learn more about both baseball projections and R programming.


Let’s get everything set up. We’ll have to start by abandoning –well, modifying– that test data set that served us so well in Parts 1/2; we’ll add another two years of data (2011-14), trim out some unnecessary stats, and add a few which might prove useful later on. It’s probably easiest just to download this file.

Then we’ll load it:

fouryr = read.csv("FG1114.csv")

convert some of the percentage stats to decimal numbers:

fouryr$FB. = as.numeric(sub("%","",fouryr$FB.))/100
fouryr$K. = as.numeric(sub("%","",fouryr$K.))/100
fouryr$Hard. = as.numeric(sub("%","",fouryr$Hard.))/100
fouryr$Pull. = as.numeric(sub("%","",fouryr$Pull.))/100
fouryr$Cent. = as.numeric(sub("%","",fouryr$Cent.))/100
fouryr$Oppo. = as.numeric(sub("%","",fouryr$Oppo.))/100

and create subsets for each individual year.

yr11 = subset(fouryr, Season == "2011")
colnames(yr11) = c("2011", "Name", "Team11", "G11", "PA11", "HR11", "R11", "RBI11", "SB11", "BB11", "K11", "ISO11", "BABIP11", "AVG11", "OBP11", "SLG11", "WAR11", "FB11", "Hard11", "Pull11", "Cent11", "Oppo11", "playerid11")
yr12 = subset(fouryr, Season == "2012")
colnames(yr12) = c("2012", "Name", "Team12", "G12", "PA12", "HR12", "R12", "RBI12", "SB12", "BB12", "K12", "ISO12", "BABIP12", "AVG12", "OBP12", "SLG12", "WAR12", "FB12", "Hard12", "Pull12", "Cent12", "Oppo12", "playerid12")
yr13 = subset(fouryr, Season == "2013")
colnames(yr13) = c("2013", "Name", "Team13", "G13", "PA13", "HR13", "R13", "RBI13", "SB13", "BB13", "K13", "ISO13", "BABIP13", "AVG13", "OBP13", "SLG13", "WAR13", "FB13", "Hard13", "Pull13", "Cent13", "Oppo13", "playerid13")
yr14 = subset(fouryr, Season == "2014")
colnames(yr14) = c("2014", "Name", "Team14", "G14", "PA14", "HR14", "R14", "RBI14", "SB14", "BB14", "K14", "ISO14", "BABIP14", "AVG14", "OBP14", "SLG14", "WAR14", "FB14", "Hard14", "Pull14", "Cent14", "Oppo14", "playerid14")

(We’re renaming the columns for each subset because the merge() function has some problems if you try to merge too many sets with the same names. If you want to explore the less hacked-together way of reassembling data frames in R, take a look at the dplyr package.)

Anyway, we’ll merge these all back into one set:

set = merge(yr11, yr12, by = "Name")
set = merge(set, yr13, by = "Name")
set = merge(set, yr14, by = "Name")

Still with me? Good. Thanks for your patience. Let’s start testing projections.

Specifically, we’re going to see how well we can use the 2011-2013 data to predict the 2014 data. For simplicity’s sake, we’ll focus mostly on a single stat: the home run. It’s nice to test with–it’s a 5×5 stat, it has a decent amount of variation, it gives us experience with testing counting stats while being more player-controlled than R/RBI… and, come on, we all dig the long ball.

Now when you’re testing your model, it’s nice to have a baseline–a sense of the absolute worst that a reasonable model could do. For our baseline, we’ll use previous-year stats: we’ll project that a player’s 2013 HR count will be exactly what they hit in 2014.

To test how well this works, we’ll follow this THT post and use the mean absolute error–the average number of HRs that the model is off by per player. So if a system projects two players to each hit 10 homers, but one hits zero and the other hits 20, the MAE would be 10.

(If you end up doing more projection work yourself, you may want to try a more fine-tuned metric like r² or RMSE, but I like MAE for a basic overview because the value is directly measurable to the stat you’re examining.)

To find the mean absolute error, take the absolute value of the difference between the projected and actual stats, sum it up for every player, then divide by the number of players you’re projecting:

sum(abs(set$HR13 - set$HR14))/length(set$HR14)
> [1] 6.423729

So the worst projection system possible should be able to beat an average error of about six and a half homers per player.

Marcel, Marcel

Now let’s try a slightly-less-than-absolute-worst model.

Marcel is the gold standard of bare-bones baseball projections. At its core, Marcel predicts a player’s stats using the last 3 years of MLB data. The previous year (Year X) gets a weight of 5, the year before (X-1) gets a weight of 4, and X-2 gets a weight of 3. As originally created, Marcel also includes an adjustment for regression to the mean and an age factor, but we’ll set aside such fancies for this demonstration.

To find Marcel’s prediction, we’ll create a new column in our dataset weighing the last 3 years of HRs. Since our weights are 5 + 4 + 3 = 12, we’ll take 5/12 from the 2013 data, 4/12 from the 2012 data, and 3/12 from the 2011 data. Then we’ll round it to the nearest integer.

set$marHR = (set$HR13 * 5/12) + (set$HR12 * 4/12) + (set$HR11 * 3/12)
set$marHR = round(set$marHR,0)

Voila! Your first (real) projections. How do they perform?

sum(abs(set$marHR - set$HR14))/length(set$HR14)
> [1] 5.995763

Better by nearly half a home run. Not bad for two minutes’ work. 6 HR per player still seems like a lot, though, so let’s take a closer look at the discrepancies. We’ll create another column with the (absolute) difference between each player’s projected 2014 HRs and actual 2014 HRs, then plot a histogram displaying these differences.

set$mardiff = abs(set$marHR-set$HR14)
hist(set$mardiff, breaks=30, col="red")

Histogram of Marcel HR errors

Not as bad as you might have thought. Many players are only off by a few home runs, some off by 10+, and a few fun outliers hanging out at 20+. Who might those be?

set = set[order(-set$mardiff),]
head(set[c(1,72,90,91)], n=10)

(In that last line, we’re calling specific column names so we don’t have to search through 100 columns for the data we want when we display this. You can find the appropriate numbers using colnames(set).)

List of players with largest Marcel HR errors

A list headlined by a season-ending injury and two players released by their teams in July; fairly tough to predict in advance, IMO.

While we’re here, let’s go ahead and create Marcel projections for the other 5×5 batting stats:

set$marAVG = (set$AVG13 * 5/12) + (set$AVG12 * 4/12) + (set$AVG11 * 3/12)
set$marAVG = round(set$marAVG,3)
set$marR = (set$R13 * 5/12) + (set$R12 * 4/12) + (set$R11 * 3/12)
set$marR = round(set$marR,0)
set$marRBI = (set$RBI13 * 5/12) + (set$RBI12 * 4/12) + (set$RBI11 * 3/12)
set$marRBI = round(set$marRBI,0)
set$marSB = (set$SB13 * 5/12) + (set$SB12 * 4/12) + (set$SB11 * 3/12)
set$marSB = round(set$marSB,0)

And, for good measure, save it all in an external file. We’ll create a new data frame from the data we just created, rename the columns to look nicer, and write the file itself.

marcel = data.frame(set$Name, set$marHR, set$marR, set$marRBI, set$marSB, set$marAVG)
colnames(marcel) = c("Name", "HR", "R", "RBI", "SB", "AVG")
write.csv(marcel, "marcel.csv")

Before we move on, I want to quickly cover one more R skill: creating your own functions. We’re going to be using that absolute mean error command a couple more times, so let’s create a function to make writing it a bit easier.

modtest = function(stat){
 ame = sum(abs(stat - set$HR14))/length(set$HR14)

The ‘stat’ inside function(stat) is the argument you’ll be including in the function (here, the column of projected data we’re testing); the ‘stat’ shows up inside the bracketed text where your projected data did when we originally used this command. The return() is what your function outputs to you. Let’s make sure it works by double-checking our Marcel HR projection:

> [1] 5.995763

Now we can just use modtest() to find the absolute mean error. Functions can be as long or as short as you’d like, and are incredibly helpful if you’re using a certain set of commands repeatedly or doing any sort of advanced programming.

Hold The Line

With Marcel, we used three factors–HR counts from 2013, 2012, and 2011–with simple weights of 5, 4, and 3. For our last projection model, let’s take this same idea, but fine-tune the weights and look at some other stats which might help us project home runs. This, basically, is multiple linear regression. I’m going to handwave over a lot of the theory behind regressions, but Bradley’s how-to from last week does a fantastic job of going through the details.

Remember back in part 2, when we were looking at correlation tests in r² and we mentioned how we were basically modeling a y = mx + b equation? That’s basically what we did with Marcel just now, where ‘y’ was our projected HR count and we had three different mx values, one each for the 2013, 2012 and 2011 HR counts. (In this example, ‘b’, the intercept, is 0.)

So we can then use the same lm() function we did last time to model the different factors that can predict home run counts. We’ll give R the data and the factors we want it to use, and it’ll tell us how to best combine them to most accurately model the data. We can’t model the 2014 data directly in this example–since we’re testing our model against it, it’d be cheating to use it ‘in advance’–but we can model the 2013 HR data, then use that model to predict 2014 HR counts.

This is where things start to get more subjective, but let’s start by creating a model using the last two years (2013/2012) of HR data, plus the last year (2012) of ISO, Hard%, and Pull%. In the lm() function, the data we’re attempting to model will be on the left, separated by a ‘~’; the factors we’re including will be on the right, separated by plus signs.

hrmodel = lm(set$HR13 ~ set$HR12 + set$HR11 + set$Hard12 + set$Pull12 + set$ISO12)

Screenshot of initial linear model

There’s a lot of stuff to unpack here, but the first things to check out are those “Pr(>|t|)” values in the right corner. Very simply, a p-value less than .05 there means that that factor is significantly improving your model. (The r² for this model, btw, is .4611, so this is accounting for roughly 46% of the 2013 HR variance.) So basically, ISO and Pull% don’t seem to add much value to this model, but Hard% does.

It’s generally a good practice to remove any factors that don’t have a significant effect and re-run your model, so let’s do that:

hrmodel = lm(set$HR13 ~ set$HR12 + set$HR11 + set$Hard12)

Screenshot of R model with significant factors

And there’s your multiple linear regression model. The format for the actual projection formula is basically the same as what we did for Marcel, except your weights will take the coefficient estimates and you’ll include the intercept listed above them. Remember that “HR12”, “HR11”, etc., are standing in for “last year’s HR total”, “the year before that’s HR total”, etc., so make sure to increment the stats by a year to project for 2014.

set$betHR = (-5.3 + (set$HR13 * .32) + (set$HR12 * .13) + (set$Hard13 * 40))
set$betHR = round(set$betHR,0)

Survey says…?

> [1] 5.95339

…oh. Yay. So that’s an improvement of, uh…

modtest(set$marHR) - modtest(set$betHR)
> [1] 0.04237288

1/20th of a home run per player. Isn’t this fun? Some reasons why we might not have seen the improvement we expected:

  • We probably overfit the data. Since we ran the model on 2013 data, it probably did really well on 2013 data, but not as great on 2014. If we check the model on the 2013 data:
set$fakeHR = (-5.3 + (set$HR12 * .33) + (set$HR11 * .13) + (set$Hard12 * 40))
set$fakeHR = round(set$fakeHR,0)
sum(abs(set$fakeHR - set$HR13))/length(set$HR13)
> [1] 4.877119

It runs pretty well.

  • We didn’t include useful factors we could have. We just tested a few obvious ones; maybe looking at Cent% or Oppo% would be more helpful than Pull%? (They aren’t, just so you know.) More abstract factors like age, ballpark, etc., would obviously help–but including these would also require a stronger model.
  • Finally, projections are hard. Even if you have an incredibly customized set of projections, you’re going to miss some stuff. Take a system like Steamer, one of the most accurate freely-available projection tools around. How did their 2014 preseason projections stack up?
steamer = read.csv("steamer.csv")
steamcomp = merge(yr14, steamer, by = "playerid14")
steamcomp$HR = as.numeric(paste(steamcomp$HR))
steamcomp$HR = round(steamcomp$HR, 0)
steamcomp$HR[$HR)] = 0
sum(abs(steamcomp$HR - steamcomp$HR14))/length(steamcomp$HR14)
> [1] 4.892157

That said, the lesson you should not take away from this is “oh, our homemade model is only 1 HR/player worse than Steamer!” Our data set is looking at players for whom we have several seasons’ worth of data —   the easiest players to project. If we had to create a full-blown projection system including players recovering from injury, rookies, etc., we’d look even worse.

If anything, this hopefully shows how much work the Silvers, Szymborskis, and Crosses of the world have put in to making projections better for us all. Here’s the script with everything we covered.

This Is Where I Leave You

Well, that about wraps it up. There’s plenty, plenty more to learn, of course, but at this point you’ll do well to just experiment a little, do some Googling, and see where you want to go from here.

If you want to learn more about R coding, say, or predictive modeling, I’d definitely recommend picking up a book or trying an online class through somewhere like MIT OpenCourseWare or Coursera. (By the end of which, most likely, you’ll be way beyond anything I could teach you.) If there’s anything particular about R you’d still like to see covered, though, let me know and I’ll see if I can do a writeup in the future.

Thanks to everyone who’s joined us for this series — the kudos I’ve read here and elsewhere have been overwhelming — and thanks again to Jim Hohmann for being my perpetual beta tester/guinea pig. Have fun!

TechGraphs News Roundup: 8/14/2015

And heat and humidity wave has swept the American Middle West this week, and my primary laptop is not particularly happy about it. Nevertheless, let’s beat the heat by catching up on some of the sports-tech stories we here at TechGraphs found interesting this week.

I talked about MLB Advanced Media’s plans after their deal with the NHL, and it appears as if the other shoe has dropped as MLBAM has officially been spun off as its own entity — BAM Tech.

Colt’s quarterback Andrew Luck integrated (auto-play warning) virtual reality into his offseason training. It seems as if Stanford ties can help in all sorts of ways.

Speaking of nerdiness and football, the Denver Broncos are bringing their head of analytics up in the coach’s booth this year, where he will help the staff with on-the-fly analysis. If it brings down the amount of punting in the NFL, I’m all for it.

And when a team decides to go for it, there’s a good chance you’ll hear about it on Twitter this season. The NFL has teamed up with the social media giant to bring more news and highlights into people’s Twitter feeds. Yay?

I’ll be attending the final round of the PGA Championship on Sunday, but don’t expect me to post any pictures of it. I mean, I probably wouldn’t anyway, but it appears as if the PGA is cracking down on un-credentialed photogs at their tournaments.

In esports news, the League of Legends Championship Tournament is featuring a woman for the first time. The worlds of sports and technology haven’t always been the most diverse, so it’s nice to see some, albeit gradual, change.

While we’re talking about gaming tournaments, it sounds like Blizzard might be making a push into that world.

That’s all for this week. Have a good weekend. Be excellent to each other.

How to Follow the PGA Championship Online This Week

Golf’s final men’s major championship of the year kicks off today in my home state of Wisconsin at Whistling Straits Golf Course. The main headline revolves around two young starts, Rory McIlroy and Jordan Speith, and their reluctant rivalry coming in to the tail end of the PGA season. Whether you are a fan of those two, other competitors in the field, or just like to follow along with the event, you have multiple options for staying in the know during the tournament.


If you plan on being a couch potato all weekend, then a mixture of the TNT network and CBS will have you covered. You can check the tournament’s main page for broadcasting schedules. If you have a cool boss or a strategically-placed cubicle, you can also use to stream video on Friday. You will be able to watch the traditional broadcast (when available), or follow a featured group around the course.

The PGA is also offering dedicated apps for both Android and iOS. The apps will allow you watch much of the same offerings as the web site, though it does appear that the app will make you register with an email address. At the time of this writing, I couldn’t find out if cable/satellite credentials are necessary once CBS takes over coverage for the weekend.

The PGA Championship app for iOS.

The PGA Championship app for iOS.

Other Ways to Follow Along

If you’ll be out and about and unable to glue yourself to a screen, you will have other options. The aforementioned apps also have leaderboard functionality baked in, and also allow you to select favorite players to follow. You can set up alerts for these players, or for tournament news in general. A helpful buzz might be more convenient than having to pull out your phone every five minutes. The app also cultivates tweets for you, if you wish, so you can see what journalists and other big names in golf are saying about the course and players’ performances.

If you don’t feel like adding yet another app to your growing stable, any sports news app that you currently have should suffice in keeping you up to date. I am a big fan of the CBS Sports app in general, and as that network is covering the tournament, you can bet they’ll be on the ball with updates. The CBS app also provides cultivated tweets from people of import in golf.

The PGA section of the CBS Sports app on Android.

The PGA section of the CBS Sports app on Android.

A difficult course coupled with some challenging weather should make for some interesting golf. Whether one of the household names or a more unknown pro makes a run at the Wanamaker Trophy remains to be seen, but armed with the proper tech, you should have no problem following along.

How To Run Sports Data Regressions in Microsoft Excel

The shorthand description of a regression: It’s the best possible trend line between a scatter of dots. Like this:

The orange line (and the connected equation) represent the most basic idea of a regression.

The orange line (and the connected equation) represent the most basic idea of a regression.

One of the fun things about regressions is that they give us formulas — line equations, specifically. So if we have a quarterback with a 100 QB rating, we can plug his 100 into our formula (y = 0.097 * 100 – 2.495) and get a reasonable estimation of what his Adjusted Net Yards per Pass Attempt (ANY/A) would be (about 7.2). The R2 tells us essentially how reliable the regression is — or, more specifically, how much of the variation in QB Rating is explained by ANY/A.

Of course, the problem with the data here (which I just kind of threw together as an example) is that QBR and ANY/A use almost the same inputs and attempt to do the same thing. It’s nice to see they have about 91% overlap (it basically says they’re just about interchangeable), but no one is going to use QB rating to derive or forecast a ANY/A.

Regressions are more useful when we start with something small and reliable, then move our way to more all-encompassing but volatile stats. This is like how we use contact or plate discipline data (small and reliable) to expand into an xBABIP calculator (big and more meaningful).

There are two ways to run some regressions in Excel:

  1. Use the scatterplot tool (as above) and create a simple, two-variable regression.
  2. Use the Data Analysis ToolPack to run a more complete and useful regression.

The first method is the easiest, but it doesn’t output the peripheral data that is essential to fully understanding a regression’s findings.

The Scatterplot Regression

For the first method, just select two columns of data and make a scatterplot (Insert > Scatter). That will give you something like this:

Here's a scatterplot of the 2015 Durham Bulls' strikeout and home run totals.

Here’s a scatterplot of the 2015 Durham Bulls’ strikeout and home run totals, min. 50 PA.

With the chart selected, choose to add a linear trendline (Layout > Trendline > Linear Trendline):

Adding a linear trendline will create a basic linear regression.

Adding a linear trendline will create a basic linear regression.

Now double-click the trendline to produce the “Format Trendline” window. In that menu, check the boxes for “Display Equation on chart” and “Display R-squared on chart”:

These two boxes give you the bare minimum of data necessary to interpret a regression.

These two boxes give you the bare minimum of data necessary to interpret a regression.

So now we have a regression! The formula (HR = 3.5367 * SO + 29.166) tell us there is a positive connection between home run totals and strikeout totals. And the R2 tells us the relationship between HR and SO explains 48% of the variation between the two of them.

What this regression doesn’t tell us:

  • What direction, if any, is the causality? Are homers causing players to strikeout? Or do more strikeouts make more homers?
  • Are their peculiarities in the residuals? This article does a great job of teaching how to interpret residuals plots.
  • Does the regression fit the data? And ANOVA analysis can be useful in augmenting what the R2 tells us.

The first issue is a matter of deeper research. A regression won’t tell us direction of causality. But we can still answer those other two questions — as well as add more variables — using Excel data Analysis ToolPack. The first thing we’ll need to do is enable that ToolPack.

In the File > Options > Add-Ins section, you’ll notice a “Go…” button at the bottom of the window.

This button opens a dialogue that allows us to turn on the data Analysis ToolPack. Why is this not enabled by default? Who knows? Maybe Bill Gates.

This button opens a dialogue that allows us to turn on the data Analysis ToolPack. Why is this not enabled by default? Who knows? Maybe Bill Gates.

Select the top option in the available Add-Ins (“Analysis ToolPack”) and then click “OK.”

You can also add in these other ones if you're feeling frisky. I rarely use them, though.

You can also add in these other ones if you’re feeling frisky. I rarely use them, though.

Now, after this first step, you should have a new option in your Data tab. Let’s explore that. Go to Data > Data Analysis. That will open a simple dialogue with a list of various operations. Choose “Regression” and click “OK”.

You should then get this screen:

The Y Range will be what you are regression against, so to speak.

The Y Range will be what you are regression against, so to speak.

In the Y Range text box, you will want to add only a single column of data. I prefer to include the column headings so that the output screen will be more easily understood. In this instance, I’m choosing a big column of completions percentage data from (from this data: NFL QB seasons since 1969 with min. 10 TD). I’m regression this Cmp% data against the quarterbacks sack total and yards per attempt (Y/A) total.

In short, I’m asking: Can Y/A and sack totals predict a QB’s accuracy?

So in the X Range, I’m going to select the Q and R columns (titles and all). The output is something like this:

Here are the big three components of a regression.

Here are the big three components of a regression.

So this is kinda what it will look like after a regression. Let’s break down the three big areas one at a time, in the typical order I look at them:

  1. Residual Plots: These look good! You want a shotgun blast looks. If you start to see anything other than a circle, in any of your residual plots, then you’ll need to rework your regression. (See that above article for more details.)
  2. R2 Results: What is a good R2? Well, higher is always (well, usually) better, but there’s no clear perfect R2. Truth is, we have to be as intellectually honest as possible and determine how much explanation is the right amount of explanation. With multiple variables, it’s important to look at Adjusted R2 because it helps combat the unintentional increase in R2 caused by just adding more data. In this case, though, R2 and Adjusted R2 are about the same, so whutevz.
  3. Coefficients: The coefficients tell us both the formula of the regression (Cmp% = 36 + 0.02 * Sacks + 3.03 * Y/A) but also the strength of the variables involved. And it doesn’t take much work realized which variable is more important. Even a QB who has been sacked will only see his Cmp% moved by 1.5%. What’s more: It increases 1.5%. That’s a red flag right there for a bad variable. Maybe Sack% would be a more useful tool because the sack totals are merely telling us he played more (and QBs who played more probably had better performances because otherwise they would have been benched).

Anyway, I hope this has been helpful. I encourage readers to learn more about regression before attempting any, as they are a complicated and tricky tool and can lead a researcher astray quickly if used incorrectly.

NOTE: For those wondering why I haven’t gone into detail about significance testing for P-values, it’s because I believe that field of statistical study is generally arbitrary and altogether intellectually bankrupt. But there are dozens of great tutorials out there on the subject. I just can’t in good ethical faith write one.

GameOn Releases Sports Social Networking App

In a continued effort to personalize and curate the world of sports to each person’s preference, the GameOn app — developed by GameOn Technologies — recently secured funding for additional expansion across the iOS and Android platforms. Among the backers who helped raise 1.5 million dollars was Hall of Fame quarterback Joe Montana as well as West Indian cricket player Dwayne Bravo. In addition to Montana and Brave a number of other athletes have signed on to give exclusive content — ranging from USWNT striker Sydney Leroux, former USMNT midfielder Cobi Jones and current Denver Broncos safety T.J. Ward.

The app itself ties news feeds from other sources in one convenient place called The Five. Think of The Five like an aggregator or RSS for all sports.


From browsing GameOn — drawing articles and tweets ESPN, Grantland, SB Nation, BBC, CBS Sports and others, — there is plenty of reading material for the major sports teams. Unfortunately there is not a way to customize what appears on The Five, it seems to pick whichever articles or tweets are currently getting the most attention. The good news is just about anything else can be tweaked to show which teams you’d like to follow.

It’s a personal preference, but when opening a story from The Five, it does not give the option to open in Chrome — I don’t have an iOS device to see if Safari was an option — as tapping a link simply opens up the story within GameOn. It isn’t a hindrance or particularly inconvenient, I just like opening links in new tabs and windows. Call it a hangover effect from years of opening links in Chrome with my Mouse3 button.

In addition to specific teams and featured articles, there are individual “Featured Public Huddles” where fans can join and debate with each other, related links are posted, and a host of emoji-like stickers can be used.

For an example of a what can only be assumed to be a clearly unbiased opinion, user Cristiano The Beaut (presumably named for Real Madrid star Cristiano Ronaldo) calls Lionel Messi a “dirty and overrated player.” I’d recommend a spoon to take all those grains of salt with that opinion.


Huddles is just the name GameOn gives team or game threads, and in addition to the public “Featured” ones, any user can create private Huddles as well.

As I find myself more and more interested in following the German soccer league, the Bundesliga, I decided to create a pair of Huddles for their upcoming fixtures against Hoffenheim and Hannover. From my phonebook or friends within the GameOn app, I can invite people to join in the Huddle.


The stickers — there are hundreds if not thousands of them — are a unique feature and I really like the multi-site integration and aggregate feed. But really, the stickers are awesome.


Even with the fun and smack-talk-integration the stickers offer, GameOn really doesn’t differentiate itself from other sports apps, specifically Fancred. Additionally, Twitter’s influence on the sports social network scene, despite not being marketed as a sports-centric app, looks as strong as ever given numbers from their second quarter of this year. According to the financial report, Twitter increased their average active monthly user base from 308 million in Q2 2014 to 316 million Q2 2015. GameOn has a solid beginning, however with a modest 50,000 or so downloads in its first year of Beta testing, it has a long way to go to reach the top of the sports social network world.

TechGraphs News Roundup: 8/7/2015

It’s a busy time for sports these days. The baseball pennant chase is heating up, NFL training camps are starting, the EPL is about to start another season, and the final PGA major of the season begins in just a few days. We can understand if you missed news, so here are all the sports-tech stories we found interesting this week.

Daily fantasy sites are making money hand over fist, but not everything is sunshine and rainbows for them. DraftKings is facing some class-action lawsuits, and the Boston Globe has some details.

SAP teamed up with women’s professional tennis a while back to provide in-game stats and insight to coaches and players. It seem that, now, coaches will be able to use these numbers — via an iPad — on the court.

Our very own (and very brave) Bradley Woodrum experimented with the meal replacement program from Soylent to mixed reviews. Well, Soylent is back with a new formula and a new ready-to-drink delivery method.

Microsoft partnered up with the NFL last year to provide Surface Pro 2 tablets to teams to use on the sidelines. It went … not as well as expected. But, the Surfaces are back for another NFL season, this time in their fancy Pro 3 form.

While on the topic of Microsoft, they also debuted a fancy new app for both Windows 10 and the Xbox One. At the heart of the new tech is something called Next Gen Stats, a hyper-granular replay system utilizing RFID chips embedded within players’ shoulder pads.

EPL teams are getting their own emoji on Twitter this season. So … that’s a thing.

Finally, Disney’s Bob Iger had an interview with the Wall Street Journal in which he opined that ESPN will be a direct-to-customer product at some point down the road. We, of course, have figured this for some time, but it’s nice to hear that from a muckety-muck. No news on when that will happen yet, of course.

That’s all for this week. Have a great weekend, and be excellent to each other.

Heart Rate Sensor Assists U.S. Women’s National Team

The United States women’s national team won their third World Cup title this summer in Canada. That same Women’s World Cup, along with this summer’s Under 20 World Cup in New Zealand, marked the first time FIFA allowed players to wear tracking devices during game action. The success of the devices during these events led FIFA to greenlight the use of wearables in future competitions, subject to the approval of individual leagues.

Part of the team’s success was the players’ dedication to the training plans developed by strength and fitness coach Dawn Scott.

“I think it’s a testament to the players that they trusted us and stuck to the program, and did what they needed to even when they had their commitments with their [club] teams,” Scott said in a previous interview.

An earlier Wired article discussed the USWNT’s relationship with Polar Global devices. When reached for comment, Polar Global’s Josh Simonsen confirmed that the players were wearing the H7 heart rate monitor on the pitch, and using M400 GPS watches in training sessions. Simonsen, the company’s national training resource specialist for the U.S., said the Finnish company had worked with Scott and the USWNT since 2010.

“What that gave Dawn was the ability to track speed, distance, and activity of the athlete while they’re away,” Simonsen said. “And they were able to send it her in a much easier environment than the previous models.”

The H7, the heart rate monitor worn during the games, consists of a strap worn across the chest and a small transmitter a few inches wide. The strap contains an electrode that collects the ECG signal from the athlete; after some basic processing, the transmitter then sends out a Bluetooth signal. The system reports heart rate on a per-second basis, using only basic peak-to-peak measurements, which are less susceptible to the kind of movement artifacts you would expect with an athlete wearing the device during competitions.

Polar’s top-of-the-line system, the Team Pro, also includes a GPS and IMU sensor. Switching to Bluetooth Smart also allows the transmitters to communicate directly with a tablet. But Simonsen said the USWNT was still using the older Team2 solution this summer.

“They didn’t want to transition prior to the World Cup,” he said.

The company has a long history with heart rate sensors, having built the first monitor for an athlete in 1977. But it was not until the early 2000s that Polar began developing systems for whole teams, rather than for individuals.

“Essentially the coach would log into the software and each player would have their own page, but they really weren’t able to compare the team as a whole,” Simonsen said. “We couldn’t look at the big picture.”

This functionality would not become available until Polar’s Team2 system was introduced in 2009. Unlike their previous offerings, Team2 allowed coaches to collect and analyze data in much less time. The addition of Bluetooth transmitters also allowed coaches to monitor their players in real time.

“[Team2] was like a 50 percent cut in time that it took to do everything,” Simonsen said. “Everything was exponentially faster.”

The Team2 system is currently used by “about 450 teams” in the U.S., and Simonsen said new coaches are typically surprised by the feedback provided by the data.

“A lot of the time they’re just blown away at how long things were or how hard things truly are,” he said. “Or that their easy day really wasn’t that easy, or that their hard day was a lot harder than they really thought it was.”

Simonsen argues that this experience in the field is what separates Polar Global from the plethora of other companies offering heart rate monitors.

“We created heart rate,” Simonsen said. “And with us using HR from the beginning, accuracy is always our number one thing.”

Could MLBAM Be Making a Push to Become the Next Sling TV?

By now, you may have heard that the NHL has partnered up with MLB Advanced Media (MLBAM) in a new distribution deal. It’s a bold move for both leagues, and one that shows that the NHL is serious about increasing their online presence and offerings. But hidden in the details are even bigger revelations about the future of MLBAM. From the CBS article:

NHL COO John Collins would not confirm these figures, but word is the league valued the deal at $200 million per year.

The annual breakdown: a $100M rights fee to the NHL, $20M in savings from the league not having to invest in the capital resources/expertise it would take to go on its own, and $80M in equity in MLBAM’s technology business.

The equity portion may not figure in revenue calculations for the purposes of the salary cap. “We were told to expect $120M per year in added revenue… $4M per team,” one governor said.

This new deal is indicative of a fairly serious pivot. MLBAM made a name for itself as a content partner — a company that provided the infrastructure for those who wished to offer online content streaming. The massive system that they built to host their service was essentially leased out to the likes of ESPN, HBO, and WWE.

But with the NHL deal, MLBAM is no longer serving as the back end. They aren’t the ones being paid for hosting, they are paying for distribution rights. And they are buying everything lock, stock, and barrel. Besides being in charge of streaming NHL Center Ice, MLBAM is taking over NHL Network,, and individual team web sites. Basically, if you want to view NHL content online, you have to go through MLBAM.

And there’s more. According to Forbes:

Along with the deal, the NHL would have equity in what is now called BAM Tech, a wholly new digital company that will be spun-off of MLB Advanced Media.

There’s the other shoe. What once started as a distribution channel for baseball games has become a lucrative technology business.

But I doubt this is the end for BAM Tech. They could certainly take their subscription fees from baseball and hockey fans along with their licensing fees from HBO and be content being a very profitable company for some time. But if that was the plan, they would have just taken the NHL’s money for distribution rather than paying them for the rights. Sure, they’ll make money from Center Ice and the NHL Network, but it could be indicative of a bigger move.

The “problem” with MLBAM’s business model is that it’s easily repeatable. Any company with enough capital and infrastructure can get in on the action. What MLBAM has that others don’t is partnerships. Right now, it works with two major sports leagues, *edit: I originally neglected to mention that MLBPA also hosts streaming for the PGA*, the biggest name in professional wrestling, the largest sports media company in the world, and the most popular premium cable channel. If one were inclined to, say, start their own over-the-top online TV provider, this would be a pretty good start.

It’s speculation at this point, but it wouldn’t be surprising to see a BAM app available on smartphones and set-top boxes in the near future. While they’d be competing against the likes of Sling TV and PlayStation Vue, the already-formed partnerships along with their world-class technology platform would certainly make them a formidable opponent. And don’t forget that HBO owns Cinemax and is a subsidiary of Time Warner (which just merged with Charter)*, while ESPN happens to be owned by Disney. There are a lot of fingers in a lot of pies here.

* – a studious commenter pointed out my mistake here.

Say you want to pay $120 for What if BAM Tech could offer that plus HBO, NHL games, the Disney channel, and ESPN offerings for an extra $40 a month? Would the availability of live sports be enough to convince you to cut the cord?

MLBAM already built the gun, and now they’re starting to buy the bullets. There isn’t much stopping the once-quaint sports video service from becoming one of the biggest players in TV.

Bundesliga Gaining Traction in Attendance and Streaming Services

Things are on the rise in the top German soccer league, the Bundesliga. Not just the level of play, but the depth of teams as well as popularity have been trending upwards for several years now. The Union of European Football Association (UEFA) noticed the league’s rising talent as well, increasing their bids to the UEFA Champions League — the highest level of international club play in Europe — to three automatic slots plus one playoff bid.

With local fans already showing up to more Bundesliga games in person more than any other sport save for the NFL in the world, it’s hard to understate the league’s current impact and potential growth. Via Statista, the graph below displays the 2013-14 average game attendance for the 11 top ranking leagues.


Not even the English Premier League juggernauts of Manchester United, Arsenal Man City or Liverpool nor Spanish La Liga one-two punch of Barcelona and Real Madrid could draw more fans than the Bundesliga’s top draw in the 2013-14 season. Somewhat surprising, Borussia (there is a typo in the table below) leads all soccer clubs in Europe for attendance.


Beyond local fans and UEFA, Fox Soccer has also taken note of the German league. The broadcasting network already streamed some Bundesliga fixtures on the Fox Soccer 2Go platform, but never all 306 matches. In addition to streaming every single league match, Fox has doubled down on the league by adding televised games as well. A total of 58 matches will be shown on TV on the Fox Sports 1, 60 on Fox Sports 2 and the final 188 games being shown on Fox Sports Plus.

The United States Men’s National Team (USMNT) has also seen an increased presence in Germany as six active members are currently on Bundesliga squads, with three more US players currently on clubs rating in Germany’s second tier. The German league is has the most US players in foreign leagues, barely edging out the Championship, England’s second tier, and trailing only Mexico’s Liga MX that boasts seven US capped players.

According to the Fox Soccer schedule, the opening match will be three time reigning champion Bayern Munich against the near-relegated Hamburg side. The match is set to be broadcasted on Fox Sports 2 at 2:30 pm eastern on Friday, August 14. While up-and-coming 20-year-old USMNT member Julian Green is under contract with Bayern until 2017, it’s possible, albeit unlikely, he could make an appearances and further boost the Bundesliga’s profile in the United States. If you happen to be busy on that Friday, tune in the next day as Werder Bremen just signed USMNT striker Aron Johannssen. Werder is set to kick off at 9:30 eastern on Saturday the 15th. While causation does not determine correlation, the United States has seen the the profile of the national men’s team rise in recent years, possibly due to Tim Howard, Clint Dempsey and Landon Donovan all crossing the ocean to play in the Premier League. Hopefully a similar level of fan interest will happen with the Bundesliga.

(Header image via Wikipedia)

How To Use R For Sports Stats, Part 2: Visualization and Analysis

Welcome back! In Part 1 of this series, we went over the bare bones of using R–loading data, pulling out different subsets, and doing basic statistical tests. This is all cool enough, but if you’re going to take the time to learn R, you’re probably looking for something… more out of your investment.

One of R’s greatest strengths as a programming language is how it’s both powerful and easy-to-use when it comes to data visualization and statistical analysis. Fortunately, both of these are things we’re fairly interested in. In this post, we’ll work through some of the basic ways of visualizing and analyzing data in R–and point you towards where you can learn more.

(Before we start, one commenter reminded me that it can be very helpful to use an IDE when coding. Integrated development environments, like RStudio, work similarly to the basic R console, but provide helpful features like code autocompletion, better-integrated documentation, etc. I’ll keep taking screenshots in the R console for consistency, but feel free to try out an IDE and see if it works for you.)

Look At That Data

We’ll be using the same set of 2013-14 batter data that we did last time, so download that (if you haven’t already) and load it back up in R:

fgdata = read.csv("FGdat.csv")

Possibly my favorite thing about R is how, often, all it takes is a very short function to create something pretty cool. Let’s say you want to make a histogram–a chart that plots the frequency counts of a given variable. You might think you have to run a bunch of different commands to name the type of chart, load your data into the chart, plot all the points, and so on? Nope:


Basic R histogramThis Instant Histogram(™) displays how many players have a wRC+ in the range a given bar takes up in the x-axis. This histogram looks like a pretty normal, bell-curveish distribution, with an average a bit over 100–which makes sense, since the players with a below-average wRC+ won’t get enough playing time to qualify for our data set.

(You can confirm this quantitatively by using a function like summary(fgdata$wRC).)

The hist() function, right out of the box, displays the data and does it quickly–but it doesn’t look that great. You can spend endless amounts of time customizing charts in R, but let’s add a few parameters to make this look nicer.

hist(fgdata$wRC, breaks=25, main="Distribution of wRC+, 2013 - 2014", xlab="wRC+", ylab= NULL, col="darkorange2")

In this command, ‘breaks’ is the number of bars in the chart, ‘main’ is the chart title, ‘xlab’ and ‘ylab’ are the axis titles, and ‘col’ is the color. R recognizes a pretty wide range of colors, though you can use RGB, hex, etc. if you’re more familiar with them.

Anyway, here’s the result:

Visually appealing R histogramA bit better, right? The distribution doesn’t look quite as normal now, but it’s still pretty close–we can actually add a bell curve to eyeball far off it is.

hist(fgdata$wRC, breaks=25, freq = FALSE, main="Distribution of wRC+, 2013 - 2014", xlab="wRC+", ylab= NULL, col="darkorange2")
curve(dnorm(x, mean=mean(fgdata$wRC), sd=sd(fgdata$wRC)), add=TRUE, col="darkblue", lwd=2)

Visually appealing R histogram with curve

(In the first line above, “freq = FALSE” indicates that the y-axis will be a probability density rather than a frequency count; the second line creates a normal curve with the same mean and standard deviation as your data set. Also, it’s blue.)

You can also plot multiple charts at the same time–use the par(mfrow) function with the preferred number of rows and columns:

hist(fgdata$wOBA, breaks=25) 
hist(fgdata$wRC, breaks=25) 
hist(fgdata$Off, breaks=25) 
hist(fgdata$BABIP, breaks=25)

2x2 grid of R histogramsWhen you want to save your plots, you can copy them to your clipboard–or create and save an image file directly from R:

hist(fgdata$WAR, breaks=25)

(It’ll show up in the same directory you’re loading your data set from.)

So that covers histograms. You can create bar charts, pie charts, and all of that, but you’re probably more interested in everyone’s favorite, the scatterplot.

At its most basic, the plot function is literally plot() with the two variables you want to compare:

plot(fgdata$SLG, fgdata$ISO)
Basic R scatterplot
Unsurprisingly, slugging percentage and ISO are fairly well-correlated. Results-wise, we’re starting to push against the limits of our data set–too many of these stats are directly connected to find anything interesting.

So let’s take a different tack and look at year-over-year trends. There are several ways you could do this in R, but we’ll use a fairly straightforward one. Subset your data into 2013 and 2014 sets,

fg13 = subset(fgdata, Season == "2013")
fg14 = subset(fgdata, Season == "2014")

then merge() the two by name. This will create one large dataset with two sets of columns: one with a player’s 2013 stats and one with their 2014 stats. (Players who only appeared in one season will be omitted automatically.)

yby= merge(fg13, fg14, by=("Name"))

Year-by-year dataAs you can see, 2013 stats have an .x after them and 2014 stats have a .y. So instead of comparing ISO to SLG, let’s see how ISO holds up year-to-year:

plot(yby$ISO.x, yby$ISO.y, pch=20, col="red", main="ISO year-over-year trends", xlab="ISO 2013", ylab="ISO 2014")

Visually appealing R scatterplot(The ‘pch’ argument sets the shape of the data points; ‘xlim’ and ‘ylim’ set the extremes of each axis.)

Again, a decent correlation–but just *how* decent? Let’s turn to the numbers.

Relations and Correlations

If you’re a frequent FanGraphs reader, you’re probably familiar with at least one statistical metric: r², the square of the correlation coefficient. An r² near 1 indicates that two variables are highly-correlated; an r² near 0 indicates they aren’t.

As a refresher without getting too deep into the stats: when you’re ‘finding the r²’ of a plot like the one above, what you’re usually doing is saying there’s a linear relationship between the two variables, that could be described in a y = mx + b equation with an intercept and slope; the r² is then basically measuring how accurately the data fits that equation.

So to find the r² that we all know and love, you want R to create a linear model between the two variables you’re interested in. You can access this by getting a summary of the lm() function:

summary(lm(yby$ISO.x ~ yby$ISO.y))

R linear model summaryThe coefficients, p-values, etc., are interesting and would be worth examining in a more theory-focused post, but you’re looking for the “Multiple R-squared” value near the bottom–turns out to be .4715 here, which is fairly good if not incredible. How does this compare to other stats?

summary(lm(yby$BsR.x ~ yby$BsR.y))
> Multiple R-squared:  0.4306
summary(lm(yby$WAR.x ~ yby$WAR.y))
> Multiple R-squared:  0.1568
summary(lm(yby$BABIP.x ~ yby$BABIP.y))
> Multiple R-squared:  0.2302

BsR is about as consistent as ISO, but WAR has a smaller year-to-year correlation than you might expect. BABIP, less surprisingly, is even less correlated.

Let’s do one more basic statistical test: the t-test, which is often used to see if two sets of numeric data are significantly different from one another. This isn’t as commonly seen in sports analysis (because it doesn’t often tell us much for the data we most often work with), but just to run through how it works in R, let’s compare the ISO of low-K versus high-K hitters. First, we need to convert the percentages in the K% column to actual numbers:

fgdata$K. = as.numeric(sub("%","",fgdata$K.))/100

then subset out the low-K% and high-K% hitters:

lowk = subset(fgdata, K. < .15)
highk = subset(fgdata, K. > .2)

Then, finally, run the t-test:

t.test(lowk$ISO, highk$ISO)

R T-test resultsThe “p-value” here is about 4.5 x 10^-11 (or 0.000000000045); a p-value less than .05 is generally considered significant, so we can consider this evidence that the ISO of high-K% hitters is significantly different than that of low-K% hitters. We can check this out visually with a boxplot–and you thought we were done with visualization, didn’t you?

boxplot(lowk$ISO, highk$ISO, names=c("K% < 15%","K% > 20%"), ylab="ISO", main="Comparing ISO of low-K% vs. high-K% batters", col="goldenrod1")

Visually appealing R boxplotSo now you can do some standard statistical tests in R–but be careful. It’s incredibly tempting to just start testing every variable you can get your hands on, but doing so makes it much more likely that you’ll run into a false positive or a random correlation. So if you’re testing something, try to have a good reason for it.

…And Beyond

We’ve covered a fair amount, but again, this only begins to cover the potential R provides for visual and statistical analysis. For one example of what’s possible in both these areas, check out this analysis of an online trivia league that was done entirely within R.

If you want to replicate his findings, though (which you can, since he’s posted the code and data online!), you’ll need to install packages, extensions for R that give you even more functionality. The ggplot2 package, for example, is incredibly popular for people who want to create especially cool-looking charts. You can install it with the command


and visit to learn more. If R doesn’t do something you want it to out of the box, odds are there’s a package out there that will help you.

That’s probably enough for this week; here’s the script with all of this week’s code. In our next (last?) part of this series, we’ll look at taking one more step: using R to create (very) basic projections.