2013-12-24 1 views
1

Я пытаюсь найти онлайн-алгоритм для экспоненциальной скользящей средней с учетом времени, отбираемый в разное время. Под «знанием времени» я имею в виду что-то вроде «придания большему весу данных, отобранных в аналогичное время суток», но (а) я дам более точное определение и (б) это только пример чего-то более общего, который интересует меня."Time Aware" Экспоненциальная скользящая средняя

Начну с определения «времени осознания», давая точный пример, предполагающий, что данные отбираются постоянными интервалами в течение дня; скажем, каждые 1 час. В этом случае я сохраняю 24 разных EMA, и всякий раз, когда данные отбираются, я помещаю его в соответствующую EMA, беря его результат и помещая его в общую EMA результатов. Итак, в 12:00, вторник, я получаю результат EMA результатов EMA для 12:00, 11:00, 10:00 и т. Д., Где результат EMA для 12:00 - это EMA некоторого типичного периода х дней данных, отобранных в 12:00 и т. д.

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


Более общий случай можно описать так: в данный момент у меня есть набор образцов, каждый кортеж (х, у), где х некоторый образец инвариант (можно рассматривать как выборка «местоположение») и v - это «значение» выборки, и я хотел бы узнать (взвешенное) среднее значение в некотором «местоположении» y, где веса имеют отрицательную корреляцию с расстояниями y от x. Это обобщает предыдущую задачу, позволяя х быть пара (т, д), где т время отбора проб и д это время-день (час, в нашем случае), а также путем определения некоторой метрикой на множестве всех таких кортежей, которые хорошо описывают наши потребности. Разумным требованием было бы решить, что если d является постоянным, весовая функция на расстояниях будет аналогична функции экспоненциально скользящей средней (возможно, ее непрерывной версии).

Основная проблема - найти эффективный онлайн-алгоритм, который выполняет работу в общем случае, или определить конкретную метрику, которая позволяет такой эффективный онлайн-алгоритм, или показать, что практически в любом интересном случае это невозможно.

+0

См. Http://www.eckner.com/papers/unevenly_spaced_time_series_analysis.pdf Раздел 8.2 и более релевантные ссылки в ответах на вопрос, который я обозначил как возможный дубликат. –

+0

Возможный дубликат [Экспоненциальное скользящее среднее, отснятое в переменные времена] (http: // stackoverflow.com/questions/1023860/exponential-moving-average-sampled-at-changeing-times) –

+0

@LiorKogan: Я прочитал этот вопрос, из coruse. Он имеет сходство, но это, безусловно, не дубликат. – Bach

ответ

1

EMA по существу средневзвешенная. Когда вы комбинируете несколько взвешенных средних значений с некоторыми весами, вы получаете новый средневзвешенный вес, равный продуктам. Это именно то, что вы получили с EMA с учетом времени.

Конечно, вы можете обобщить его широко, назначив (почти произвольный) вес как функцию «t».

Что касается онлайн-алгоритма, вы, по-видимому, хотите добавить новые точки с минимальными усилиями. EMA прекрасно работает в этом отношении, потому что EMA (x_1, ..., x_n + 1) = a * EMA (x_1, ..., x_n) + (1-a) * x_n. Вы можете найти множество аналогичных формул для случаев, когда веса имеют некоторые симметрии или рекурсии (ака «свойство группы»). Скорее всего, ваша рекурсивная формула будет иметь больше слагаемых в этом случае.

+0

Спасибо за ваш ответ. Есть еще небольшая разница между комбинацией взвешенных средних и моей проблемой; в моей проблеме вес образцов варьируется в зависимости от того, где вы проверяете; то есть в 12:00 весовые коэффициенты с 12:00 будут выше, чем у 13:00, но через час это будет наоборот. – Bach

+0

Ну, я забираю его обратно. Широкое обобщение, которое вы предложили, также улавливает. Поэтому остается только выяснить, могу ли я найти что-то, что улавливает суть моей проблемы, но имеет некоторые симметрии, которые позволят эффективный онлайн-алгоритм. – Bach