I recently received an awesome gift: a running watch that can measure speed and heart rate (CW Kalenji 500 SD PC, in Europe you can find it at Decathlon). Since the data can be recorded and then transferred to a normal pc, I would like analyze them to see if there is a simple but clear quantitative signature of improved performances in speed, heart rate or a certain combination of the two (of course, assuming I go on running regularly). In other words, my question is simply: am I improving running?
With the Geonaute software it is possible to save the recorded data as .fitlog files and then open them with whatever spreadsheet-type of program. Finally, normal .txt files can be saved with incremental time, space and the values of the heart rate.
All the analysis can then be done in Matlab.
In the following analysis, I grouped together runs in different locations, different times and without controlling for the altitude (no gps in the device I use). While all these variables obviously play a role, I simply want to see if there is some metrics solid enough to quantify the performances. Right now I have only 17 runs for about 120 km total. I will constantly update the graphs on this page.
The sampling rate of the watch is 0.2 Hz (one sample every 5 seconds). Speed can be determined immediately by considering the space intervals and then dividing it by time (the canonical definition of speed). Since I often run on the street, I have sometimes to almost stop (for example for the traffic lights). To remove these “artifacts” I simply consider all the data points where the speed is within 2 standard deviations.
The following plot represents speed (blue) and heart rate (red) in a representative run (about 9 km total). In this specific case I ran 3 laps around the St Nick park.
The three bumps represent a pretty steep uphill (3 laps as i mentioned). Clearly the speed decreases and the heart rate increases.
Averaging across all the runs, I get this plot:
where the average speed is in blue and the average heart rate in red (n = 17). Shading indicates the standard deviation for each point.
The first thing I noticed is an increase in both speed and heart rate with time (note that the heart rate jumps immediately when the run starts). The change can be estimated by fitting speed and heart rate over time for all the runs (a robust fit). The following plot represents the estimated slope of the linear fits:
Even if there are two outliers where the slopes are negative (for one the slope is not significant, while for the other the p-value is way higher than in all the other cases), the slopes are significantly positive (p < 10-4), showing that both speed and heart rate increase during the run. Interestingly, the slopes for speed and heart rate do not significantly correlate (p > 0.25).
I then examined how speed and heart rate ratio changes in different runs. The following plot reports all the ratios. The magenta line connect all the average values, while the green one connects the medians. The plot was created by using the wonderful function notBoxPlot by Rob Campbell (way better than Matlab boxplot).
I was expected to see a decrease in this ratio, considering that I was imagining that with more training, the same speed can be achieved by keeping a lower heart rate, but that is not the case, at least with the current data set. More data are clearly necessary before making any claim about this point.
I then focused on the relationship between speed and heart rate in a 2d representation. The plot shows the average speed and heart rate for the different runs (error bars indicate standard deviation).
The clear two clusters are easily explainable. I ran with someone else. It is interesting to note that while this effect was not visible in the average values (previous figure), it is very evident with this representation. This suggests that speed and heart rate probably correlates (so for different speeds, heart rate keeps in track the change).
To check for that, I grouped together all the points from all the runs in a heart-rate/speed diagram (~9000 data points).
As you can see, there is a strong significant linear relationship between heart rate and speed. Something I find extremely interesting is that the intercept of the fit, ~65 beats/min well represents my heart rate when I simply sit on chair (so at speed = 0 km/h, 58-70 beats/min but I have to measure it more systematically).
The following plot shows the density of points in the heart rate/speed space.
Plotting the density of points, it is possible to still see clearly the linear trend and, at the same time, the two clusters corresponding to running alone or running with someone else.
I then tried to look at the normalized cross-correlation with a sliding temporal window between speed and heart rate. The following plot has been generate using this function by Tim Streeter and it is relative to all the runs. I did not label the axis to do not reduce the space for the plot itself. The time lag (min) is on the y-axis, while time (min) on the x-axis. The color goes from 0.5 to 1 (normalized cross-correlation). The time window is 5 minutes.
While the single plots are clearly noisy, it looks like in many of the runs, there is an increase in the cross-correlation between speed and heart rate. Averaging all the runs I get this plot (where the time variable has been cut to the shortest run).
The average, restricted to all the runs longer than 30 minutes (n = 14), clearly shows that trend. The cross-correlation between heart rate and speed increases with time, with time delays within minutes. Note again, that the cross-correlation is normalized, so higher values do not simply reflect the increase in speed or heart rate during the run (shown in the first figures).
So, for now, I do not have any way yet to see if I am running better or not but I am having fun 😀