Friday, December 5, 2014

New Powermeter survey


The survey is closed per 16-12-2014. Data preparation started. Results will follow.

If you like you can participate in my new powermeter survey. Click on this link:

https://nl.surveymonkey.com/s/97LXJXY

It's about powermeter brands. You can participate if you have a powermeter, but also if you don't have a powermeter. If you don't have a powermeter not all questions will aplly to you as you can see in the last responsecode in question 1.
By the way I am not selling powermeters. I am just interested in how they (brands) are perceived and in that sense I have no commercial intention for my questionnaire. I also cannot see any respondent information so I cannot contact respondents!
I will publish the results again on this blog (like last year in which I also published the results). Last year however the questionnaire was only open for Dutch speaking people.
Wrt the country of residence question. I selected those countries which have highest visitnumbers on this blog. So I hope you don't feel offended if you do not see your country in the list.
The questionnaire was made on surveymonkey (the non-paid version) so I was limited in the amount of questions, the type of questions and the amount of response I can generate at max (100).

Hope you will participate and encourage others to participate as well!

Monday, October 6, 2014

Lost without your powermeter

Not everyone has a powermeter on all their bikes. During winter time you probably ride a bike which is less expensive than your race bike or you do some cyclo-X training without a powermeter. However, since we all love to fill our PMC (Performance Manager Chart) to track our training load we need TSS* (A.Coggan) for our rides. But because we don’t have a powermeter on all our bikes we must have an alternative to derive our TSS.

There are some measures available in terms of training strain like TRIMPS (Bannister, 1974) or RPE (Rate of Perceived Exertion)  (Borg 1970,1998). However these measures do not relate to TSS (and no wonder because TSS is based on power). There is also a table from triathlete guru trainer Joe Friel (see Table below) in which he converts from RPE/HRs to TSS. You can also use your own experience if you do the same rides under same conditions which you registered before.

I decided to look at some of my own data to see whether I could come to a reasonable estimate. I do not register RPE (something I will start doing for next season) so I used some other data for some small analyses to derive a TSS. I used TRIMPS, TRIMP zonal score and average HR which are calculated per ride in Golden Cheetah (GC). I used average HR just as a possible extra (explanatory) variable. I did not change the weights in the zones in GC to calculate the TRIMP zonal score. The idea behind this zonal score is that when you get into higher heart rate zones there is a higher weight applied in the TRIMPS formula.
My objective was to see whether I could use the above metrics (and which was best) to relate to actual TSS. I was also interested to see how Joe Friels table matched with actual TSS. In this way I could determine which metric (method) better related to TSS. This last exercise turned out to be some more difficult than I expected. You can easily export your aggregate ride metrics data from GC, but to calculate the estimated ‘Joe Friels’ TSS (from now TSS_Friel). I had to export all my raw data files and append them. I used a macro for this task which I found on the internet (http://sites.madrocketscientist.com/jerrybeaucaires-excelassistant/merge-functions/csvs-to-sheets), because the problem is not appending (you could use a DOS statement for that), but to include a ride name to be able to aggregate the data per ride after derivering the TSS_Friel for each record.

I exported my metrics data (TRIMPS, etc.) and uploaded it to SAS. I cleaned the data w.r.tt files in which my HR monitor was off, rides with no powerdata (so no TSS to estimate), etc. I also had a few rides with TSS above 300. Since I do not do rides in winter times with TSS above 300 I excluded those data, because if I don’t do those rides it’s no use of trying to predict them. The calculated TSS_Friel were later merged to the GC aggregate file. Below some statistics w.r.t the rides.

 
Basically on average I do quite some rides of around 1.5 hours. My average HR is around 145 (OBLA HR is around 155) and most of the time HR is between 138-150 (89%-97% of OBLA HR).  In terms of TSS on average 111. Mind these are just averages and as such does not say that much of how TSS is generated.
Below the Pearson correlations (all significant p<0.01) between the metrics with TSS:
 
Average HR is least correlated with TSS (as expected of course). TRIMPS and the TSS_Friel derived metric are most correlated with TSS. In itself a correlation does not say much, only that there seems to be a relation between the two. To get a better visual sight on the relation of the metrics with TSS I ran some scatterplots depicted in the figure below  (I also included a regression spline for visual sake). I have looked at all the measures, but only two the two best related TRIMPS and TSS_Friel.
 
 
You see that the relation between TRIMPS / TSS_Friel is not linear with the actual TSS score so a linear equation is not a good idea. The R2 of TRIMPS and TSS_Friel under the above models are 0.8 and 0.83. You also see some outlier points going towards the top right corner. In the figure below you see the scatterplots of the error terms.  
 
The spread of the error terms seems a little larger for the TRIMPS model than for the TSS_Friel model, but both models show heteroskedasticity. Again the Friel model just a tiny better. In terms of total model error the judgement is 335 vs 376 in favor of TSS_Friel.
I also ran a model with the TRIMPS and average HR: R2 goes to 0.84 and error to 305. Statisticians would say “be parsimonious in parameters’’, because now we have 3 + 3 + 1 intercept in the model. Since I also want to keep it simple for myself I will agree on that one. In the figure below you see both model plotted in terms of model predicted TSS and actual TSS. The left one is the TSS_Friel and the right one TRIMPS.
On the whole the TSS_Friel table seems a good alternative way to estimate my TSS when not riding on your ‘powermeterbike’. In all fairness TRIMPS is not really (practically) that much worse. For my rides (so for my ‘domain’’) I however will choose to use the TRIMPS. The reason is a practical one. Because for the TSS_Friel I have to first export my ride and convert on a record level with the Friel table. This is a bit too much work and so if I impute the TRIMPS (which is automatically calculated in GC) in the equation (which I put in Excel) I immediately have my  estimatedTSS.
Of course TSS and TRIMPS won’t align and that’s not strange because they are two different things. As you get in better form your HR for producing the same wattage will go down (and vice versa for less form). Since TRIMPS is based upon heart rate is it also more variable due to extraneous influences like temperature, stress, etc. It will also give you less "credit" for supramaximal efforts (there is a ceiling effect due to maximal HR). This last remark, however can be counteracted by placing more weighting on the zonal scores (which I let on default in GC). TSS is based on power and as such more responsive.
Hopefully it gives some inspiration for your own data and this kind of estimate is good enough for you too. If you do not use have HR data (anymore) try to use RPE scores and multiply those scores by the time of your ride and see what the relation is with TSS. Maybe try some other data transformations to tweak the relation with TSS. If you are a Strava Premium Member try to use the Sufferscore to model. Maybe that gives an acceptable result too.
*TSS is a registered trademark from Trainingpeaks

Sunday, September 21, 2014

End of season

Yesterday I had a last race. It turned out to be a race of 54km 1.15h. The course was too easy; a lap of around 3 km and only 3 corners. No wind. So basically it is very hard to get away and with these kind of conditions you know it will end up in a sprint. Why? Because there are too many guys who can bridge a gap when conditions are OK. It's not a 'survival' kind of race so the sprinters will be there in the end. And so it was. Ended up 12th. Let's forget it quickly.


Race 1: 1.12h, VI 1.05, NP 297, AP 283, IF 0.928, AR 22%, Anaerobic 11%, Neuro 9%
Race 2: 1.03h, VI 1.12, NP 273, AP 243, IF 0.854, AR 51%, Anaerobic 7%,   Neuro 19%
Race 3: 1.27h, VI 1.14, NP 292, AP 255, IF 0.911, AR 44%, Anaerobic 10%, Neuro 17%
Race 4: 1.28h, VI 1.13, NP 296, AP 262, IF 0.926, AR 37%, Anaerobic 11%, Neuro 14%
Race 5: 1.17h, VI 1.13, NP 290, AP 256, IF 0.983, AR 46%, Anaerobic 8%,   Neuro 24%
Race 6: 1.11h, VI 1.12, NP 296, AP 266, IF 1.004, AR 31%, Anaerobic 14%, Neuro 18%
Race 7: 1.09h, VI 1.12, NP 296, AP 263, IF 0.97   ,AR 32%, Anaerobic 12%, Neuro 15%

Race 8: 1.22h, VI 1.23, NP 308, AP 249, IF 0.984 ,AR 46%, Anaerobic 8%, Neuro 20%
Race 9: 2.45h, VI 1.18, NP 259, AP 219, IF 0.826 ,AR 46%, Anaerobic 9%, Neuro 10%
Race 10: 1.15h, VI 1.15,NP 285, AP247, IF 0.912, AR 42%, Anaerobic 10%, Neuro 15%
 
Time for some reflection now. An overview and analysis of the season. Some things that went good, some things that went wrong with the goals I defined (and refined) beginning of this season. But first time for some fun rides. Next post will be on W'.
 

Sunday, September 14, 2014

Classic time

After 18 years or so I did a classic race again yesterday. It's called the Zeeland Classic and it's a race of 114km with 2 laps of 45km and 3 local laps of 8km. To be honest I did not train many 'base' kms / endurance kms lately so I was kind of affraid how my body would hold it after 1.5 hours (my training rides and crit times). The indicator at the moment wasn't too bad as I did a nice ride of 2 hours last Wednesday at 4.5w/kg. FTP is in the 310-320 range. Anaerobic power is at season's best. 
 
 
When you've ever done a classic race you know that it is quite a nerve wrecking thing. Everyone wants to be in the front and everyone wants to be in the right group (i.e. out of the wind). There was a fair amount of wind and of course everyone wanted to be in the front.....There were 147 participants and some are good at steering and some of them are not. My first objective of the race was not to hit the pavement and finish.
 
As soon as the neutral car (after 2 km) drove off it's quite hectic and you really have to just rely on people in front of you not to do any stupid things. Because if they do, before you notice, you're on the pavement. I must say I am quite good at peeping through every whole in the group and going around people without too much effort. Mind the 'too much effort'. I was really keen on not to move the legs when I didn't have to which resulted in 45% active recovery for the whole 114km.
 
There was quite some wind and there were several attempts for breakaways. But the thing is that there are a lot of guys who can race hard and can close gaps so basically every attempt was doomed to fail.
 
I was quite continuously riding at the first 20-30 rides which was good. The first lap went quite fast. 42.9 km/h with 239 AP and 278 NP. In that first round I also tried once in a group to ride off, but we were captured again just before the first time we crossed the finish line. The result of that was however that quite some people got dropped because of everyone riding after one another and that's not nice when you're riding in the wind.
 
The second round I tried again but again with no result. I didn't throw in a lot, because I already felt that it was going to be very hard to get away if you wouldn't get an initial 10-20 seconds. So after that effort I tucked myseld back in the group. The second round was done at 41.6 km/h, 204 AP and 237 NP.
 
Then the 3 local laps began and besides people who got dropped (and people who did hit the pavement or had flat tires) the group was still together. First lap was done at 40.6 km/h and 199 AP and 224 NP.
 
You could sense it became more nervous and to be honest at that moment I just wasn't alert. The whole race I had been riding among the first 20-30, but in that second round I let it go just a bit to let's say around position 40. A huge mistake, because 11 riders rode off just like that. My legs were still very good, but at the time I got in the front again they already had 20 seconds or so. I was riding by myself after a short attack and very quickly realised I was certainly not going to make it alone to that group nor any backup from the back showed up. Second lap went at 41.7 km/h and 218 AP, 257 NP.
 
By that time the only thing I focused on was staying in the front and to be as alert as possible. That is not trying to do too much work, but still try to rely on a good sprint since I did feel I still had a good one in my legs. Anyway, to keep it short I did do a good sprint - 4th of the peloton- and ended up 18th. Mixed emotions about it, but eventually I was OK with it.
 
So after 18 years, 18th place.

Next week one more race to go; season ends. Hopefully I get more time again to write some more on this blog, because lately I was simply too busy.
 

Race 1: 1.12h, VI 1.05, NP 297, AP 283, IF 0.928, AR 22%, Anaerobic 11%, Neuro 9%
Race 2: 1.03h, VI 1.12, NP 273, AP 243, IF 0.854, AR 51%, Anaerobic 7%,   Neuro 19%
Race 3: 1.27h, VI 1.14, NP 292, AP 255, IF 0.911, AR 44%, Anaerobic 10%, Neuro 17%
Race 4: 1.28h, VI 1.13, NP 296, AP 262, IF 0.926, AR 37%, Anaerobic 11%, Neuro 14%
Race 5: 1.17h, VI 1.13, NP 290, AP 256, IF 0.983, AR 46%, Anaerobic 8%,   Neuro 24%
Race 6: 1.11h, VI 1.12, NP 296, AP 266, IF 1.004, AR 31%, Anaerobic 14%, Neuro 18%
Race 7: 1.09h, VI 1.12, NP 296, AP 263, IF 0.97   ,AR 32%, Anaerobic 12%, Neuro 15%
Race 8: 1.22h, VI 1.23, NP 308, AP 249, IF 0.984 ,AR 46%, Anaerobic 8%, Neuro 20%
Race 9: 2.45h, VI 1.18, NP 259, AP 219, IF 0.826 ,AR 46%, Anaerobic 9%, Neuro 10%

Saturday, September 6, 2014

Frustrating

Race 8 was on the program. A race which I have also done a year ago to try again how it feels to race. I then ended up third. Total race time back then was 58 minutes., AP 247 and NP307. Now I raced a category higher, but last weeks I saw some nice improvements on the anaerobic side, because I did lack some of that for the crits.
 
It was a race with 3 corners and it was hilly. One side up, other side down. This for 40 laps which equalled 51km. Basically there was only one place to make a move: uphill. And so it went.
 
 
To keep it short. When the favourites went for it I was there. Was in a couple of breaks with them but everytime we were caught back, because we were not working together properly.
 
And again. Yes. When they went again (very hard) on the hill side I was just 6 meters behind them. The rest of the bunch was way behind. 6 meters became 7, 7 became 8. I knew that I wouldn't punch it out now they would be gone (3 of them). Damn, didn't make it; I broke. So frustrating!!! It happened after 43 minutes of racing when I was just recovering from previous efforts. W'Bal was trending up again and my HR was also going down. See below the picture. It happened at the arrow.....
 
 
It is frustrating, because I was so close, but for some reason still so far. I have the power to ride with them, but at the same time I was not capable of suffering through 6 more meters - I could almost touch them. Bit of the story for some of my rides this year, so close, but yet too far. Next season I will do more races and this is just not going to happen that often anymore like this year. Sorry, my frustration......W'bal (or FRC) will be a very clear focuspoint for next year. My FTP in a range between 310-320 is OK for crits at amateur level.
 
Below you see some race stats again compared to the other races I did. Very polarized as you can see, but this is quite logical regarding uphill, downhill: quite high VI (highest of all races). In terms of power it is also quite similar to a year ago. If I select the first hour of this race I get AP 254 and NP 303.
 
Race 1: 1.12h, VI 1.05, NP 297, AP 283, IF 0.928, AR 22%, Anaerobic 11%, Neuro 9%
Race 2: 1.03h, VI 1.12, NP 273, AP 243, IF 0.854, AR 51%, Anaerobic 7%,   Neuro 19%
Race 3: 1.27h, VI 1.14, NP 292, AP 255, IF 0.911, AR 44%, Anaerobic 10%, Neuro 17%
Race 4: 1.28h, VI 1.13, NP 296, AP 262, IF 0.926, AR 37%, Anaerobic 11%, Neuro 14%
Race 5: 1.17h, VI 1.13, NP 290, AP 256, IF 0.983, AR 46%, Anaerobic 8%,   Neuro 24%
Race 6: 1.11h, VI 1.12, NP 296, AP 266, IF 1.004, AR 31%, Anaerobic 14%, Neuro 18%
Race 7: 1.09h, VI 1.12, NP 296, AP 263, IF 0.97   ,AR 32%, Anaerobic 12%, Neuro 15%
Race 8: 1.22h, VI 1.23, NP 308, AP 249, IF 0.984 ,AR 46%, Anaerobic 8%, Neuro 20%
 
By the way. One of my next post will be on some W'bal reflections; about the concept and my findings from some training and race files. And how I want to use it for training purposes. I think that in previous posts I wrote somethings about it being negative sometimes.....as someone with the initials RC would say: hmmmm