zoonman
@zoonman
⋆⋆⋆⋆⋆

Как рассчитать среднее значение с учетом взвешивающего коэффициента в MySQL?

Есть параметр, который может флуктуировать в течение времени, но имеет некоторый тренд на различном отрезке времени. Например температура. Измерения происходят нерегулярно, т.е. где-то может быть два измерения в сутки, где-то ежеминутно.
Получается примерно такая таблица
hall 08:30  +10.1
hall 08:35  +10.0
room 09:15  +11.1
hall 09:55  +11.3
hall 09:45  +11.0
hall 10:00  +13.0
hall 10:01  +11.5
hall 10:03  +11.2
room 12:02  +12.5

Температура измеряется в нескольких помещениях и очень важно показывать (предсказывать) температуру. То, что мне пришло в голову, это применение некоторого взвешивающего коэффициента, распеределенного на определенную глубину актуальности временного отрезка.
Например, изменение температуры может быть актуально в течение часа. Например, если мы начнем измерять температуру в 10:05, то можем получить достаточно адекватное значение температуры, т.к. датчик имеет погрешность и выдает слегка отличающиеся результаты. Просто усреднив значения мы не получим правильную картину.
Опять же, нельзя просто взять 5 последних значений, пример с комнатой показывает это.
Нужно выбирать значения, добавлять к каждому вес и делать вычисления. Плюс нужно как-то учесть выбросы вроде температуры в 10:00.
Т.е. простым взвешенным средним арифметическим не обойтись, насколько я понимаю. Либо считать в два прохода, потом вычислять девиацию для каждой точки и искать выколотые. Потом применять фильтрацию и после этого считать взвешенное арифметическое.
Какие еще существуют решения подобных задач?
  • Вопрос задан
  • 3325 просмотров
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега MySQL
Считать медиану или другой перцентиль. Вот пример реализации на mysql на stackoverflow.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы