Похоже, вы хотите отбросить данные, которые выходят за пределы указанного вами диапазона параметров.Вы можете сделать это, вычисляя медиану / режим и игнорируя значения вне этого диапазона при вычислении среднего значения.Разумеется, вам придется соответствующим образом настроить делитель, чтобы учесть количество отброшенных значений.Какой должен быть этот «допустимый» диапазон, в конечном итоге решать вам, и, вероятно, будет зависеть от ваших конкретных потребностей приложения.
В качестве альтернативы, вы можете попробовать что-то вроде удаления элементов r% из диапазона вашего среднего значения,Как то так (в javascript):
function RangedAverage(arr, r)
{
x = Average(arr);
//now eliminate items r% out of range
for(var i=0; i<arr.length; i++)
if(arr[i] < (x/r) || arr[i]>(x*(1+r)))
arr.splice(i,1);
x = Average(arr); //compute new average
return x;
}