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:
- Voice: http://dl.dropbox.com/u/72976325/intervalData_holm.csv
- Music: http://dl.dropbox.com/u/72976325/intervalData_epica.csv
- Snoring sample #1: http://dl.dropbox.com/u/72976325/intervalData_P1005.csv
- Snoring sample #2: http://dl.dropbox.com/u/72976325/intervalData_P1009.csv