< Back to IRCAM Forum

Outlier removal?

Hi,

Are there ((CPU) efficient/fast) methods or procedures that can be used to remove single outliers based on mubu.track column data? I am curious how others tackle the issue.

I guess using getmean and getstddev to then discard track entries with values more than for example 2 sigma out could be an option, but I am curious whether you developed other methods in practice or whether I have missed a method that directly deals with this.

On that same note I miss methods like getGreaterThan or getSmallerThan, but that may be moot.

Thanks in advance.

Best, Hans.

Hi Hans, great question, as always! This is also relevant for catart/skatart, where often one outlying point squashes the useful area of the corpus. Here we can deal with it manually by deleting it, but I guess you’re after an automatic method?

  • your manual filter approach could be done with pipo.js, which is now allowed to produce no output for a frame, like so:
    mubu.process pipo-js-help audio js @js.expr "Math.abs(a[0]) < p[0] ? a[0] : null" @js.p 0.2
    
  • mubu.knn could help, setting the target to the mean, and radius (it is in sigma units), but it only gives you the indices of the inliers… (you’d have to do a set difference with all indices)
  • mimo.order for use with mubu.model can give you the minimum and maximum n elements, which is sometimes used for outlier removal (e.g. remove the 5% extreme values)

Thanks for the quick response. I’ll try them.

And a quick heads up. When ctrl clicking mubu.model it points to the mubu.process helpfile

Best, Hans.