Solved – What are some common measures of variation in an interval

distributionssignal processingtime series

Context: I'm working on an app that "listens" to breathing/snoring and "diagnoses" apnea by taking note of pauses between breaths. For the most part this works well, but it's (rather amazingly) difficult, in the app, to distinguish snoring/breathing from talking/music (as with a TV playing in the room). I've pretty well exhausted signal processing techniques to distinguish this, so I'm trying some basic statistical measures.

I find that simply taking the normalized standard deviation of the breath/snore interval is fairly effective (values below roughly 0.35 are "good"), but I'm wondering if there might be another measure of variation, other than standard deviation, that would produce better results (a crisper dividing line). Basically, I want to distinguish "snore, snore, snore, pause, snore" from a random string of intervals with the same mean (such as you would get with voice), keeping in mind that snoring/breathing is not exactly clockwork regular.

So what other (reasonably simple) measures of variation in a train of numbers are there?

Update: It occurs to me that a measure of skewness might be useful here. Music/voice would presumably tend to have less skew than breathing/snoring. How does one measure skewness (particularly with some sort of moving average)?

Update 2: I've placed some sample interval lists out in Dropbox:

Best Answer

Try spectral entropy; the paper by Vierto-Oja et al ("Description of the Entropy(tm) algorithm as applied in the Datex-Ohmeda S/5(tm) Entropy Module", H. Viertio-Oja, et al, Acta Anaesthesiol Scandinavica, 2004, 48:154-161.) gives a good definition. Basically, a more rhythmic signal will display lower spectral entropy: a pure sine wave will have 0 entropy while white noise has a value of 1. Snoring should be more rhythmic than speech and this variable may discriminate.