Tinkering with Marcel (Pt. 1)

Singletons Going Steady
2 min readFeb 10, 2015

Part One: Reconstructing a Skeleton

I’ve long — probably too long — been fascinated by Tom Tango’s Marcel projection system. It’s so simple: three years of data regressed toward the mean, weighting recent performance more heavily than past, and a simple aging curve. Marcel is not persuaded by player comparison, makes no guesses at the effects of injuries, and does not know that the minor leagues exist. It was meant not to be the best, but to serve as a baseline. And yet it performs fairly well. There’s something beautiful about that.

I’d like to see if there’s any value in tweaking Marcel’s recipe. Would Marcel be noticeably better with small improvements, like introducing park factors? Would adapting the aging curve to recent research make for a better estimate? Possibly. Maybe it won’t matter. But that’s what I’d like to find.

To start, I’ve sketched out the Marcel workflow using Lahman’s Baseball Database, which I’ve imported into PostgreSQL [1]. This code is a literal adaptation of Tango’s example work-through of Carlos Beltran’s 2004 home run projections.

While this SQL script is likely not immediately useful unless you too have Lahman’s DB set up in PostgreSQL, it should still illustrate the steps required to build Marcel. Right now, the script is hardcoded to batters in 2001–3, and only projects PA and HR. You can think of it as a quick and dirty implementation, and a working one at that.

UPDATE: The code below now implements the aging curve.

I’ll share output as I tinker with Marcel, as well as updated SQL. If you have anything you’d like to see, please get in touch.

Special thanks to the Exploring Baseball Data with R blog, whose Marcel-as-linear algebra example was very helpful.

  1. Conversion was done with pgloader, which necessitated renaming columns named “2B” and “3B” to “_2B” and “_3B”, respectively. I’m fine with this, as I’ve never cared for column names starting with a number.

--

--

Singletons Going Steady

Hi, I’m Matt. I make Wiggle Hunt and help with Pitching Plus. I’m also VPE at Muck Rack. Ex Pitchfork, Condé Nast.