Рассчитать линию тренда и предсказать будущие результаты

Я пишу некоторые модули аналитики для сайта, над которым я работаю, и мне нужно оценить общее количество просмотров после текущего часа. У меня есть данные за каждую минуту до текущей минуты, поэтому, если время 12 :28, у меня будет массив, который выглядит примерно так:

0: "21410"
1: "21886"
2: "21837"
3: "21895"
4: "21564"
5: "21714"
6: "21571"
7: "21324"
8: "21310"
9: "21390"
10: "21764"
11: "21598"
12: "21493"
13: "21352"
14: "21478"
15: "21058"
16: "20942"
17: "20825"
18: "21321"
19: "20950"
20: "21039"
21: "21117"
22: "20733"
23: "20773"
24: "20929"
25: "20900"
26: "20687"
27: "20999"

В настоящее время я проецирую значение часа следующим образом:

(60/minsSoFar)*totalSoFar

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

Используя метод, который я сейчас использую, я фактически предполагаю, что тренд представляет собой прямую линию. Как мне рассчитать формулу полиномиального или степенного тренда?

Я пишу это на NodeJS, поэтому JavaScript был бы идеальным, но я также возьму псевдокод!

Вот массив в более простом формате, если вам это нужно:

[21410, 21886, 21837, 21895, 21564, 21714, 21571, 21324, 21310, 21390, 21764, 21598, 21493, 21352, 21478, 21058, 20942, 20825, 21321, 20950, 21039, 21117, 20733, 20773, 20929, 20900, 20687, 20999]

Спасибо за любую помощь!

6
задан Nick Brunt 3 August 2012 в 13:39
поделиться