При анализе данных о потреблении и потреблении энергии у меня возникают проблемы с повторной выборкой и интерполяцией трендовых данных временных рядов.
Пример набора данных:
timestamp value kWh
------------------ ---------
12/19/2011 5:43:21 PM 79178
12/19/2011 5:58:21 PM 79179.88
12/19/2011 6:13:21 PM 79182.13
12/19/2011 6:28:21 PM 79183.88
12/19/2011 6:43:21 PM 79185.63
На основании этих наблюденийЯ хотел бы, чтобы некоторая агрегация сворачивала значения, основанные на периоде времени, с этой частотой, установленной в единицу времени.
Как в случае интервалов в часе, заполняющих любые пробелы в пропущенных данных
timestamp value (approx)
------------------ ---------
12/19/2011 5:00:00 PM 79173
12/19/2011 6:00:00 PM 79179
12/19/2011 7:00:00 PM 79186
Для линейного алгоритма кажется, что я бы взял разницу во времени и умножил бы значение на этот фактор.
TimeSpan ts = current - previous;
Double factor = ts.TotalMinutes / period;
Значение и временную метку можно рассчитать на основе фактора.
С таким количеством доступной информации я не уверен, почему трудно найти самый элегантный подход к этому.
Возможно, во-первых, существуют ли библиотеки анализа с открытым исходным кодом, которые можно было бы рекомендовать?
Какие-нибудь рекомендации для программного подхода?В идеале C # или, возможно, с SQL?
Или, на любые подобные вопросы (с ответами), на которые я мог бы указать?