Properties

new Gk([arg])

Example

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

// create the Gk object
var gk = new quants.Gk({
    eps: 0.001,
    autoCompress: true
});

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

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

// make the estimation for the 0.1 quantile
var quant = gk.quantile(0.1);
// save the model
gk.save(fs.openWrite('gk.bin')).close();
// open the gk model under a new variable
var gk2 = new quants.Gk(fs.openRead('gk.bin'));

Parameter

Name Type Optional Description

arg

(module:analytics.quantiles~GkParam or module:fs.FIn)

Yes

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

Properties

static

init

Returns the current size of the algorithms summary in number of tuples.

static

memory

Returns the models current memory consumption.

static

samples

Returns the number of samples seen by the model.

static

size

Returns the current size of the algorithms summary in number of tuples.

Methods

static

compress(val) → module:analytics.quantiles.Gk

Adds a new value to the summary.

Example

var qm = require('qminer');

var gk = new qm.analytics.quantiles.Gk();
gk.insert(1.0);
gk.insert(2.0);

Parameter

Name Type Optional Description

val

number

 

the value

Returns

module:analytics.quantiles.GkB reference to self

static

compress()

Manually runs the compression procedure.

Returns

reference to self

static

kolmogorovStat(distribution) → number

Compares this distribution to dist and returns the Kolmogorov-Smirnov statistic:

D_n,m = sup_x|f1(x) - f2(x)|

where f1 and f2 are cumulative distribution function of this distribution and dist respectively.

Parameter

Name Type Optional Description

distribution

module:analytics.quantiles.quantiles.Gk

 

the distribution to compare against

Returns

numberB - the K-S statistic

static

kolmogorovTest(distribution, alpha) → boolean

Compares this distribution to dist using the Kolmogorov-Smirnov test with significance alpha.

Parameters

Name Type Optional Description

distribution

module:analytics.quantiles.quantiles.Gk

 

the distribution to compare against

alpha

number

 

the statistical significance

Returns

booleanB - true if the distributions differ

static

save(fout) → module:fs.FOut

Saves the objects state into the output stream.

Parameter

Name Type Optional Description

fout

module:fs.FOut

 

the output stream

Returns

module:fs.FOutB - the output stream

cdf(vals) → (number or Array)

Provided a given value or array of values it returns the corresponding values of the cumulative distribution function.

Example

var qm = require('qminer');

var gk = new qm.analytics.quantiles.Gk({
    eps: 0.1
});
gk.insert(1.0);
gk.insert(2.0);
gk.insert(1.0);
gk.insert(3.0);
gk.insert(2.0);

console.log(gk.cdf(0));   // prints the CDF for x = 0
console.log(gk.cdf(2));   // prints the CDF for x = 2
console.log(gk.cdf(4));    // prints the CDF for x = 4

Parameter

Name Type Optional Description

vals

(number or Array)

 

the values which we a querying (quantiles)

Returns

(number or Array)B pVals - depending whether the input was a single value or array the method returns a probability or array of probabilities

getParams() → module:analytics.quantiles~GkParam

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

Returns

module:analytics.quantiles~GkParamB The construction parameters.

var analytics = qm.analytics; var gk = new analytics.quantiles.Gk(); var params = gk.getParams();

console.log(params.eps); console.log(params.autoCompress);

quantile(pVals) → (number or Array)

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.quantiles.Gk({
    eps: 0.1
});
gk.insert(1.0);
gk.insert(2.0);
gk.insert(1.0);
gk.insert(3.0);
gk.insert(2.0);

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

Parameter

Name Type Optional Description

pVals

(number or Array)

 

the p-values which we a querying

Returns

(number or Array)B quantiles - depending whether the input was a single value or array the method returns a quantile or array of quantiles