Tracking progress is a powerful mechanism for improvement, as we found out with our weight loss attempts the year before we started running. Using the power of feedback (I am a control man after all), I was able to reduce my weight and keep it off. My daily weight measurements are a part of my routine and I just love analysing the stats.
This graph shows my weight since I’ve started weighing myself at the end of November 2008. I estimate that I weighed above 100 kg when we started with the weight loss, but the first measurements are around 95 kg. This means I lost between 20% and 25% . Most of that loss was linear, around 1 kg/week as predicted by a 4600 KJ/day dietary energy deficit. As a rule of thumb, fat has about 32MJ/kg stored energy, so to lose a kg of fat you need to have that much energy deficit. These figures are approximately converted from the Hackers diet, which is a really nice reference for weight loss.
We have nice scale that also measures body fat via an impedance measurement. I don’t trust the fat percentage much as an absolute thing, as it is highly correlated to the measured weight, as shown here:
However, it does seem to track my more subjective gauge of flabbiness, and as any control person will tell you, measurements that get the direction right are already helpful, even if they aren’t accurate in an absolute sense. This is especially true here, as the target for body fat is just as low as possible (since it is highly unlikely that I will be able to get it down to anything approaching unhealthy levels).
Many people advocate exercise for weight loss. When you consider the kind of energy deficits you need to really lose weight, my personal take is that it’s easier to eat less than to work out more. In fact, when you’re losing, your energy levels go down so you’re even less likely to work out. What worked for me was to lose most of my weight and start exercising when I was lighter.
Based on the success of tracking my weight, when I started running, I initiated the activity by buying a Garmin ForeRunner 305 so that I could track my progress. It turns out that the Mac software stores all the data in a sqlite database, so I whipped up some some python code that pulls the stuff out of there and analyses it. It’s hosted on Github. A lot of the time spent writing the code was put into writing a routine that removes all the duplicate entries from the database. I’ve tried getting Garmin to do something about it by posting a request on their forums, to no avail.
After cleaning up the database, the scripts take each run and approximates the speed from the displacement data. Everything is resampled to one second intervals to make data processing easier. I started out plotting everything with gnuplot – at some point I suppose I should make the move to matplotlib for all the plotting, but separating the plotting process is a bit easier with gnuplot and a Makefile.
The results: Here’s a speed histogram, showing the distribution of speed for each run. This is handy to see if for instance training for higher speeds is working.
This shows the pareto frontier of my running performance over speed and distance. On the top right the world records are shown, and I also plot a percentage of the world record speed as a target. That percentage is at the moment calculated from a 20 minute 5 km target.
If people had told me how much data could be extracted from running, I may have started a lot sooner. Life is a great data source




Leave a Reply