Thursday, January 30, 2014

envelope fits of modified Veloclinic model using nonlinear least squares with iterative weighting

I've described everything needed to implement the fitting algorithm to the Veloclinic model. All that remained was to tune the parameters.

I started with a CP-model fit, yielding parameters CP and AWC. I used these to generate initial guesses for the VC model parameters. P2 = CP, then I set τ2 = 24000 seconds (an arbitrary value), then P1 = 1-second power - CP, then τ1 = AWC / P1. It's important with nonlinear fits to have a good initial guess, and this seems to get close enough for the algorithm to find its way.

Then there's the question of the damping factor and the weighting factor. A damping factor of 0.5 works fairly well, but I relaxed it to 0.25, which results in slow convergence but helped in one difficult case. Then there's the weighting factor. 10 thousand yields a nice envelope fit, but I relaxed it to 1000 because this also helped the fit converge.

Here's results generated from 28 datasets I had laying around. In one dataset the algorithm failed to converge. I can improve things by tuning the fitting further, for example applying adaptive or nonlinear damping. But this gives a good idea for how well it works:

animation

One thing which is clear is the model almost universally overpredicts sprint power. I'm not going to try to explain why that is, but simply to observe the two-component form of the model is very simplistic.

Veloclinic continues to work on his modeling, for example as described here.

No comments: