new TimeWindowGk([arg])

Example

// import modules
var qm = require('qminer');
var fs = qm.fs;
var analytics = qm.analytics;

// create the default object
var gk = new analytics.TimeWindowGk({
    window: 5,
    quantileEps: 0.001,
    countEps: 0.0005
});

// create the data used for calculating quantiles
var inputs = [10, 1, 2, 8, 9, 5, 6, 4, 7, 3];
var times = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// fit the model
for (var i = 0; i < inputs.length; i++) {
    gk.partialFit(times[i], inputs[i]);
}

// make the prediction for the 0.1 quantile
var prediction = gk.predict(0.1);
// save the model
gk.save(fs.openWrite('gk.bin')).close();
// open the gk model under a new variable
var gk2 = new analytics.TimeWindowGk(fs.openRead('gk.bin'));

Parameter

Name Type Optional Description

arg

(module:analytics~TimeWindowGkParam or module:fs.FIn)

Yes

Construction arguments. There are two ways of constructing:
1. Using the module:analytics~TimeWindowGkParam object,
2. using the file input stream module:fs.FIn.

Methods

static
partialFit(timestamp[, value]) → module:analytics.TimeWindowGk

Adds a new observation to the window. The window is updated with the provided timestamp, all records which fall outside the new window are forgotten.

Example

var qm = require('qminer');

var gk = new qm.analytics.TimeWindowGk({
    window: 1000*60*60*24*2    // window is 2 days
});
gk.partialFit(new Date('2017-06-06'), 1.0);
gk.partialFit(new Date('2017-06-07').getTime(), 1.0);
gk.partialFit(new Date('2017-06-08'));  // only move the time window, the first value is forgotten

Parameters

Name Type Optional Description

timestamp

(number or Date)

 

time of the observation

value

number

Yes

the observation

Returns

module:analytics.TimeWindowGk reference to self

static
save(fout) → module:fs.FOut

Saves the objects state into a binary file.

Example

var qm = require('qminer');
var fs = qm.fs;
var gk = new qm.analytics.TimeWindowGk({
    window: 100    // window is 2 days
});
gk.partialFit(0, 1.0);
gk.partialFit(1, 1.0);
gk.partialFit(2, 1.0);
gk.partialFit(3, 1.0);
gk.partialFit(4, 1.0);
// save the model
gk.save(fs.openWrite('gk.bin')).close();
// open the model under a new variable
var gk = new analytics.TimeWindowGk(fs.openRead('gk.bin'));

Parameter

Name Type Optional Description

fout

module:fs.FOut

 

the output stream

Returns

module:fs.FOut the output stream fout

getParams() → module:analytics~TimeWindowGkParam

Returns the models' parameters as a JavaScript object (JSON). These parameters are the same as are set through the constructor.

Returns

module:analytics~TimeWindowGkParam The construction parameters.

var qm = require('qminer'); var fs = qm.fs; var analytics = qm.analytics;

// create the default object var gk = new analytics.TimeWindowGk({ window: 5, quantileEps: 0.001, countEps: 0.0005 });

// create the data used for calculating quantiles var inputs = [10, 1, 2, 8, 9, 5, 6, 4, 7, 3]; var times = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// fit the model for (var i = 0; i < inputs.length; i++) { gk.partialFit(times[i], inputs[i]); } var params = gk.getParams();

console.log(params.window); console.log(params.quantileEps); console.log(params.countEps);

predict(p) → number

Given an input cumulative probability, returns a quantile associated with that probability (e.g. for input 0.5 it will return the median).

Example

var qm = require('qminer');

var gk = new qm.analytics.TimeWindowGk({
    window: 100    // window is 2 days
});
gk.partialFit(0, 1.0);
gk.partialFit(1, 1.0);
gk.partialFit(2, 1.0);
gk.partialFit(3, 1.0);
gk.partialFit(4, 1.0);

console.log(gk.predict(0.01));   // prints the first percentile
console.log(gk.predict(0.25));   // prints the first quartile
console.log(gk.predict(0.5));    // prints the median

Parameter

Name Type Optional Description

p

number

 

cumulative probability between 0 and 1 (both inclusive)

Returns

number quantile associated with p