Yes, with my wired PT I would get spurious spikes.
With my Quarq (and other people with srm) It seems to be related to cadence errors tied to starting with hard accelerations froma stand still. i.e. large torque values coupled with an artificially high cadence.
Ideally we'd be able to handle both types of spikes in the data.
Jamie
OT, but I've noticed this as well, i.e., the Quarq seems prone to
artifact when you re-start pedaling after a pause.
Down-sampling of the ANT+ data stream to 1 s recording might explain
seemingly "spontaneous" spikes, but these consistently occur when
cadence is very low, i.e., where even 1 s sampling exceeds the Nyquist
frequency.
Another reason to question the raw data is that even the *recorded*
samples are physically impossible for me to generate. IOW, I'm not
just comparing each spike to what came immediately before and after
it.
All, I did a little digging through my data. For my quarq paired to a garmin 500 I'm generally seeing spikes in power corresponding to spikes in cadence (makes some sense as power is proportional to cadence).
While I had though that most of these were generated when starting from a standstill when trackstanding I actually found quite a few spikes in the middle of the two crits i did this past weekend. I've attached a text file with the data fields and some surrounding points in GC format.
Also of note is that there are some samples that have floating point representation of cadence and HR which are normally integers. Not sure what is going on there, but might be worth looking at.
the general trend is that there is a fairly large jump in cadence say from 90-150 RPM when the spikes occur. they are certainly during hard accelerations, and might possibly be tied to shifting when sprinting out of a corner (have the GPS data so I can probably check). Regardless of the cause We now have a little bit of an idea of what the spikes look like (at least for my data), how to determine what values are reasonable data as opposed to false spikes" is a bit of a mystery to me.
Thanks,
Jamie
On May 25, 11:40 am, Fredrik Lingvall <f...@ifi.uio.no> wrote:
> What one can do is to detect the outliers (which is not trivial here I
> think)
Hmmm. It may not be *that* difficult. Jamie's data appear to include
altitude. The VE profile should show a big discontinuity at the power
spike(s).
I think the next step is to work out multivariate algorithms to confirm
that a point IS an outlier. This might be by comparing other data-series
like cadence or VE but also we might want to think about setting some
absolutes related to how variant data can be i.e. when we say power data
is stochastic -- exactly how stochastic is it? I mean, if you look at
30s windows of data it isn't THAT variant.
Anyway, by way of an example, I have added this rather noddy outlier
algorithm to the LTM chart to highlight rides that (for the metric in
question) are outliers when compared to the rest of the rides for the
period selected. Attached is a plot of my average power last season with
the top 25 outliers highlighted with a big circle.
This made my jaw drop -- I knew I got lazy last year and was impacted by
work commitments in the later half of the season, but this chart really
brings it home!!!!
I've coded up a univariate Outlier algorithm that compares a point value to a moving average and provides a ranked list of outlier points. I think its good for identifying 'candidate' time-series anomalies but not good for saying with any certainty that the candidate IS an outlier.
I think the next step is to work out multivariate algorithms to confirm that a point IS an outlier. This might be by comparing other data-series like cadence or VE but also we might want to think about setting some absolutes related to how variant data can be i.e. when we say power data is stochastic -- exactly how stochastic is it? I mean, if you look at 30s windows of data it isn't THAT variant.
On Fri, May 28, 2010 at 1:19 PM, Mark Liversedge <liver...@gmail.com> wrote:
I've coded up a univariate Outlier algorithm that compares a point value to a moving average and provides a ranked list of outlier points. I think its good for identifying 'candidate' time-series anomalies but not good for saying with any certainty that the candidate IS an outlier.
I don't think a moving average tells you much about a sample being an outlier or not. For example, it takes less than a second to stop pedaling, that is, the samples just before that stop will give you no hint (no information) that you were about to stop pedaling. The same goes for a sudden increase in power (up to a certain level). Of course, if the sample is above your max-power then you now it's an outlier but intermidiate power spikes are tricky to detect.
I had to set smoothing to 1s to show on the plot (which needed a change
to the allplot code).
Which begs the question -- why is the smoothing lower limit 2s and not
1s??? I think now we have the stacked view we should let the user see
the data without smoothing?
Cheers,
Mark
Any thoughts on useful editor functions?
It would be cool if the dialog was like the split-ride one. You
select menu Ride->Remove power spikes, or something like that, and up
pops a dialog with all the points during the ride that seem to be
bogus, maybe including the two or three points before or after each
one to make it clear that they are outliers. Then you select the
checkboxes next to the points you want to remove, and click the
"Remove checked outliers" button.
Did that make sense?
Sean
> --
> _______________________________________________
> Golden-Cheetah-Users mailing list
> golden-che...@googlegroups.com
> http://groups.google.com/group/golden-cheetah-users?hl=en
--
"I refuse to accept the idea that the ‘isness’ of man’s present nature
makes him morally incapable of reaching up for the eternal ‘oughtness’
that forever confronts him." --MLK
I have coded it up slightly differently. There are three parts to the
solution:
1. A new metric that highlights how many spikes/drops there are, so you
can glance at the metrics plot to see if you have any problematic ride
files.
2. A post-processor that can be run automatically or manually to just
fix the problem (with user configurable options like variance thresholds).
3. A ride editor that highlights anomalies - you can work through them
all, fixing as you go.
I really will sort a patch out, but I'm ironing out bugs.
I'd like to get #2 to work in co-operation with #3 but can't quite
decide the best way (technically)...
Cheers,
Mark