A couple days back I posted my idea for measuring body density and estimating body fat. Dad, who has a set of skinfold calipers gave it a try and gave me comparative results, and asked the question on everbody's mind: just how accurate is it, especially with that pretty blatant guess at residual lung volume?

So I took some time to learn how to account for uncertainty and take a stab at pinning a confidence interval on the technique. First of all, I didn't realize how complicated uncertainty propogation is. Partial derivatives, squares and square roots, etc. Luckily, I came across some lecture or presentation notes detailing a sequential perturbation method (instead of an analytical method). I could have talked Jacob into walking me through the partial derivatives, but this method is easy to code and a find in and of itself. Read about it in this PDF.

I coded up the formula and ran some test data through it. Here's the equation again for review: ρ = m / ((m + mc)/ρw - (va + vc + vr)) Here's the values and uncertainty I attribute to each variable:

  • m = 121.29 ±0.02 kg
  • ρw = 0.997 ±0.001 kg/l
  • va = 1.13 ±ٍ0.01 l
  • vr = 1.87 ±0.5 l
  • mc = 0 ±0.02 kg
  • vc = 0 ±0.01 l

I didn't actually use a counterbalance, but I included the uncertainty in measuring its mass and volume as if I had, just for completeness. As suspected, vr has the largest uncertainty. I calculated the uncertainty if vr were magically accurate, and found that the uncertainty was 0.0014 kg/l. This translates to about 0.65% body fat with Siri's equation (ignoring the uncertainty inherent in that equation, which is a constant bias accross measurements for one person on any given day).

Note that I give ρw this time, instead of whisking it away with a magical 1 kg/l. I picked an average value between 72°F and 84°F (most pools are in this range), with an uncertainty (due to water temperature) of about 0.001 kg/l. If you use 1 kg/l instead you are introducing a bias of about 0.9% body fat. So I was wrong about that being insignificant.

Now, I found a better estimate (why better? because it seems to come from a more reputable source than Wikipedia) for residual lung volume: vr = RV = 0.24 VC. So I may have overestimated my RV last time by ½ liter. (Update: I think that must be a typo on that page, they probably mean 24% or 28% of total capacity instead. This fits in much better with the rest of the literature that I have found, e.g. Quanjer and Paoletti.) That seems like a generous uncertainty measure for RV, too. With that uncertainty factored in, we get an uncertainty of about 2.1% body fat, or about 5% is you are on the slight side of average (the less you weigh, the more difference that 1/2 liter makes).

So, Dad, let's bump your score up by about 1% for the density of water and then tack an uncertainty of 2% onto it, you have a body fat of 26.3% ±2%. I'm no expert on using calipers, but one paper's abstract indicates that the skinfold method uncertainty is about 3%. I've seen 10% tossed around casually too, but have no reliable source to back that up. That puts the two methods within the appropriate reach of eachother, which is heartening. It's interesting to note that BMI is overestimating Dad's fat, because he's more lean than the average couch potato. Imagine the difference if the subject were someone completely nuts, like a young triathlete, who has body fat of about 15%. Even better, if you are such a nut you could do the experiment and post your results (and BMI) here as a comment for us to see.