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.
Т.е. простым взвешенным средним арифметическим не обойтись, насколько я понимаю. Либо считать в два прохода, потом вычислять девиацию для каждой точки и искать выколотые. Потом применять фильтрацию и после этого считать взвешенное арифметическое.
Какие еще существуют решения подобных задач?
  • Вопрос задан
  • 3298 просмотров
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега MySQL
Считать медиану или другой перцентиль. Вот пример реализации на mysql на stackoverflow.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы