djsauble / date-prediction

Predict future values from historical data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Given an array of timeseries data ordered from oldest to newest, predict when a future value is likely to be hit.

The series is expected to be an array of objects of the following format:

{
  timestamp: Date,
  value: Number
}

The algorithm will try to fit the series with a second-degree polynomial and a linear regression. The quickest one wins.

This method works best when the future value is larger than any of the items in the series. Don't try to match a value in the past.

The output is a Date, or undefined if no prediction can be made.

Usage

Predict a future value of a non-linear trend (second-degree polynomial):

var predict = require('date-prediction');
predict(10, [
  {
    timestamp: new Date("June 1, 2016 GMT-0000"),
    value: 1
  },
  {
    timestamp: new Date("June 2, 2016 GMT-0000"),
    value: 1.1
  },
  {
    timestamp: new Date("June 3, 2016 GMT-0000"),
    value: 1.21
  }
]);

Predict a future value of a linear trend (y = mx + c)

var predict = require('date-prediction');
predict(10, [
  {
    timestamp: new Date("June 1, 2016 GMT-0000"),
    value: 1
  },
  {
    timestamp: new Date("June 2, 2016 GMT-0000"),
    value: 2
  },
  {
    timestamp: new Date("June 3, 2016 GMT-0000"),
    value: 3
  }
]);

About

Predict future values from historical data


Languages

Language:JavaScript 97.8%Language:HTML 2.2%