2012-07-01 2 views
2

У меня есть данные в электронной таблице Excel, которая представляет собой кучу дат-времени, когда образцы были взяты. Даты растут линейно, но есть некоторые периодические промежутки (приводящие к разрыву в данных даты).Прогноз линии тренда периодического временного ряда

См. Прикрепленное изображение, так как это показывает периодический характер данных. Обратите внимание, что скорость изменения показывает явные всплески, когда происходят разрывы.

enter image description here

Данные один столбец в таблицу Excel из DateTimes. Я хотел бы предсказать эту повторяющуюся серию в будущее, чтобы оценить будущие разрывы.

В конечном итоге я хочу закодировать это на C#, но если у кого-то есть идея алгоритма, который может выполнить такой прогноз, либо в Excel, либо в C#/C, было бы здорово!

Я думал об автокорреляции, но не могу понять, как это сделать в Excel, чтобы проверить его.

+0

а) вам нужно вычислить скорость изменения для независимой переменной, то есть время, не измеряемое значения [даже если они расположены на оси х, это все еще зависимая переменная, т. е. f (x)] + b) всегда есть 3 уровня скорости изменения (например, каждый день увеличивается на 0, каждую неделю увеличивается на 0,7 , каждый месяц увеличивается на 2,7) или **, что является самым обобщаемым шаблоном ** здесь? – Aprillion

+0

График изменения графика - это разница времени от одного образца к другому. Наиболее обобщаемый шаблон выглядит следующим образом. Данные - это временные отметки от фьючерсных цен. Временные штампы имеют небольшой разрыв на ночь (4 ночи в неделю) по мере закрытия рынка. Временные штампы имеют большую разницу в выходные или праздничные дни.Для некоторых приборов временные метки проходят через регулярные промежутки времени, однако для других они более нерегулярны, что создает проблему. Ваши мысли приветствуются :) –

+0

, если данные являются точно линейными в течение каждого календарного дня, тогда диаграмма не является справедливым представлением данных - почему вы используете ее ??? – Aprillion

ответ

3

объяснить свои комментарии по поводу правильного представления данных: enter image description here

если данные могут быть представлены в виде линейной функции, а именно:

f(date) = start_value + daily_increase * (date - fist_date) 

, то вы можете сделать простую линейную регрессию - в моем первенствуйте пример использования этого LINEST function (вводится в 2-х клеток, в то же время, как формула массива с помощью Ctrl + Shift + Enter):

=LINEST(C2:C31;A2:A31) 

результатов (6, -220436) являются линейными и постоянными коэффициентами линейной регрессии формулы:
=>f(date) = 6 * date - 220436

+0

Ок - я вижу, что вы означает представление данных. Вопрос должен быть более ясным. Значения X, Y в представленном графике X - номер выборки (линейно возрастающий) и Y = DateTime. То, что я пытаюсь оценить, - это DateTime для образца номера в будущем. Например. У меня есть образцы 1-120 в моих тестовых данных. Какова предполагаемая дата для неизвестного образца 140? –

+0

Редактировать: Nevermind, я получил его - спасибо за ввод, особенно в функции Excel Linest и как его использовать :) –

+0

просто для того, чтобы быть предельно ясным относительно моего выбора значений X и Y - время не вернется, если цены начинают падать – Aprillion

1

в случае, если кто-то нуждается циклический генератор данных, использовать этот алгоритм (формулу Excel):

=baseline_value 
+ INT([@Step]/repeat_c1) * increase_c1 
+ INT([@Step]/repeat_c2) * increase_c2 
+ INT([@Step]/repeat_c3) * increase_c3 
... 

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

  1. каждый шаг, увеличить предыдущее значение на 2 часа
  2. для каждого второго шага, увеличьте предыдущее значение на 22 часа вместо 2 (т. дополнительными 20)
  3. для каждого 8-го шага, увеличение на 70 часов (дополнительный 48)

test of cyclic data generator