LINUX.ORG.RU

Сообщения wv5pg

 

Проверить подходит ли значение диапазону нормальных значений

Добрый вечер.

Понимаю, что вопрос глупый и, возможно, я плохо гуглил, но решение нужно как можно быстрей, рассчитываю на понимание и помощь.

Есть список - последовательность значений. Скажем, изменение некого показателя за последний год. Нормальное значение для показателя до 30 (условно), но в некоторые дни года из-за некой аномалии значение могло неожиданно скакнуть до 5000, например, и выше. При том, что на следующий день значение снова нормальное. Таких проблемных дней в году могло быть штук 50.

Задача: на входе скормить список значений за год, т.е. [значение_день1, значение_день2, ..., значение_день365], а на выходе получить список ненормальных значений. Т.е. те значения, которые сильно отличаются от большинства.

Самое тупое, что пришло в голову, посчитать среднее арифметическое, например, на python

sum(values_list) / float(len(values_list))
и с этим уже сравнивать каждое значение из списка. Ну это неэффективно и глупо, тем более, что может же быть другой случай, когда все большие числа, а аномальные - низкие и т.д.

Можно проверить на нормальность распределения список (afaik, scipy в python это умеет, R тоже умеет, так что можно и rpy2 задействовать, т.к. мне было желательно из python всё делать), но как понять, если распределение ненормальное, из-за какого значения проблема?

Может есть какой-то более-менее простой универсальный (если бы аномалия и список были одни, я бы писать не стал, у меня же их сотни и случаи отличаются) способ в Python или в R получить список анормальных значений для списка значений?

Надеюсь более-менее понятно объяснил задачу.

Сильно не пинайте, если совсем глупость спросил :)

 , ,

wv5pg
()

RSS подписка на новые темы