Statistics

Collection of statistical functions.

Methods

mean

mean(values: number[]) 

Calculates the average for given array of values.

Parameters

values number[]

The array of values on which the calculation is made.

Return type

number

Examples

// Calculates the mean for a number of given values:
Statistics.mean([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 7 (Calculates mean for values 1, 2, 3, 4, 5, 6, 7, 8, 9 and 25)

mode

mode(values: number[]) 

Calculates the most frequent occurring value(s) within a given array. Returns a single value. In the case of multiple modes, this will return the lowest value.

Parameters

values number[]

The array of values on which the mode is deducted.

Return type

number

Examples

// Calculates the mode for a number of given values:
Statistics.mode([1, 2, 3, 4, 4, 6, 7, 8, 9, 25]) // => 4
// Calculates the mode for a number of given values:
Statistics.mode([1, 2, 3, 4, 4, 6, 7, 7, 9, 25]) // => 4 (4 and 7 are the mode, but 4 is lowest value and is returned)

modes

modes(values: number[]) 

Calculates the most frequent occurring value(s) within a given array. Returns an array.

Parameters

values number[]

The array of values on which the mode is deducted.

Return type

number[]

Examples

// Calculates the mode for a number of given values:
Statistics.modes([1, 2, 3, 4, 4, 6, 7, 8, 9, 25]) // => [4]
// Calculates the mode for a number of given values:
Statistics.modes([1, 2, 3, 4, 4, 6, 7, 7, 9, 25]) // => [4, 7]

median

median(values: number[]) 

Returns the median, or the number in the middle of the given array.

Parameters

values number[]

The array of values on which the median is calculated.

Return type

number

Examples

// Calculates the median for a number of given values:
Statistics.median([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 5.5 (Calculates median for values 1, 2, 3, 4, 5, 6, 7, 8, 9 and 25)

slope

slope(knownYvalues: number[], knownXvalues?: number[]) 

Calculates the slope for a given number of points. If the x-values are omitted, the assumption is that all x-values have corresponding consecutive y-values [1 .. nr of x-values]. X-values may be numeric or of type Year ("YYYY") or YearMonth ("YYYY-MM").

Parameters

knownYvalues number[]

The array of values on which the calculation is made.

knownXvalues number[]

(optional) The x-values array. If omitted, the x-values are generated as 1,2,3...n for the number of y-values

Return type

number

Examples

// Calculates slope for a number of given points:
Statistics.slope([2,4,6,8,10]) // => 2 (Calculates slope for points 2, 4, 6, 8 and 10)
// Calculates slope for a number of given points and given x-values:
Statistics.slope([2,4,6,8,10], [1,3,5,7,9]) // => 1 (Calculates slope for points (1,2), (3,4), (5,6), (7,8) and (9,10))

intercept

intercept(knownYvalues: number[], knownXvalues?: number[]) 

Calculates the intercept (the value at the intersection of the y axis) of the linear regression line through a supplied set of x-values. If the x-values are omitted, the assumption is that all x-values have corresponding consecutive y-values [1 .. nr of x-values]. X-values may be numeric or of type Year ("YYYY") or YearMonth ("YYYY-MM")

Parameters

knownYvalues number[]

The array of values on which the calculation is made.

knownXvalues number[]

(optional) The x-values array. If omitted, the x-values are generated as 1,2,3...n for the number of y-values. X-values may be numeric or of type Year ("YYYY") or YearMonth ("YYYY - MM")

Return type

number

Examples

// Calculates intercept for a number of given points:
Statistics.intercept([2, 6, 8, 9, 10]) // => 1.3 (Calculates intercept for points 2, 6, 8, 9 and 10)
// Calculates intercept for a number of given points and given x-values:
ROUND(Statistics.intercept([6, 4, 8, 9, 12], [1, 3, 5, 7, 10]), 5) // => 3.72951 (Calculates intercept for points (1,2), (3,6), (5,8), (7,9) and (10,12))

rsq

rsq(knownYvalues: number[], knownXvalues?: number[]) 

Returns the square of the Pearson product moment correlation coefficient. If the x-values are omitted, the assumption is that all x-values have corresponding consecutive y-values [1 .. nr of x-values]. X-values may be numeric or of type Year ("YYYY") or YearMonth ("YYYY-MM")

Parameters

knownYvalues number[]

The array of values on which the calculation is made.

knownXvalues number[]

(optional) The x-values array. If omitted, the x-values are generated as 1,2,3...n for the number of y-values. X-values may be numeric or of type Year ("YYYY") or YearMonth ("YYYY - MM")

Return type

number

Examples

// Calculates rsq for a number of given points:
Statistics.rsq([2, 6, 8, 9, 10]) // => 0.9025 (Calculates rsq for points 2, 6, 8, 9 and 10)
// Calculates rsq for a number of given points and given x-values:
ROUND(Statistics.rsq([2, 6, 8, 9, 10], [1, 3, 5, 7, 10]), 5) // => 0.86117 (Calculates rsq for points (1,2), (3,6), (5,8), (7,9) and (10,10))

varP

varP(values: number[]) 

Calculates variance based on the entire population and assumes that its arguments are the entire population. If your data represents a sample of the population, then compute the variance by using VarS.

Parameters

values number[]

The array of values on which the calculation is made.

Return type

number

Examples

// Calculates the variance for a number of given points, based on the entire population:
Statistics.varP([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 42

varS

varS(values: number[]) 

Calculates variance based on a sample and assumes that its arguments are a sample of the population. If your data represents the entire population, then compute the variance by using VarP.

Parameters

values number[]

The array of values on which the calculation is made.

Return type

number

Examples

// Calculates the variance for a number of given points, based on a sample:
Statistics.varS([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 46.6667

stdDevP

stdDevP(values: number[]) 

Returns the standard deviation based on the entire population given as arguments.

Parameters

values number[]

The array of values on which the calculation is made.

Return type

number

Examples

// Calculates standard deviation for a number of given values (which is representing the entire population):
Statistics.stdDevP([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 6.480740698 (Calculates stdDevP for points 1, 2, 3, 4, 5, 6, 7, 8, 9 and 25)

stdDevS

stdDevS(values: number[]) 

Returns the standard deviation based on a sample list of values.

Parameters

values number[]

The array of values on which the calculation is made.

Return type

number

Examples

// Calculates standard deviation for a number of given values (which is representing a sample of the entire population):
Statistics.stdDevS([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 6.831300511 (Calculates stdDevS for points 1, 2, 3, 4, 5, 6, 7, 8, 9 and 25)

stdErrorP

stdErrorP(values: number[]) 

Returns the standard error based on the entire population given as arguments.

Parameters

values number[]

The array of values on which the calculation is made.

Return type

number

Examples

// Calculates the standard error for a number of given values (which is representing the entire population):
Statistics.stdErrorP([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 2.049390153 

stdErrorS

stdErrorS(values: number[]) 

Returns the standard error based on a sample list of values.

Parameters

values number[]

The array of values on which the calculation is made.

Return type

number

Examples

// Calculates standard error for a number of given values (which is representing a sample of the entire population):
Statistics.stdErrorS([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 2,27710017 

normalRandom

normalRandom(mean: number, stdDev: number) 

Returns a random number from a normal distribution.

Parameters

mean number

The mean or expectation of the distribution.

stdDev number

The standard deviation of the distribution.

Return type

number

Examples

// Calculates a random number from a normal distribution:
Statistics.normalRandom(0.5, 0.125) // => a random number between 0 and 1 

normalDistribution

normalDistribution(mean: number, stdDev: number, nrOfValues: number) 

Returns [nrOfValues] random numbers from a normal distribution.

Parameters

mean number

The mean or expectation of the distribution.

stdDev number

The standard deviation of the distribution.

nrOfValues number

The number of random numbers returned.

Return type

number[]

Examples

// Generates an array of random numbers from a normal distribution and then calculates the mean
Statistics.mean(Statistics.normalDistribution(0.5, 0.125, 1000000)) // => ~ 0.5 

gammaRandom

gammaRandom(alpha: number, beta: number) 

Returns a random number from a gamma distribution.

Parameters

alpha number

The shape of the distribution. Should be a positive number.

beta number

The rate of the distribution. Should be a positive integer value.

Return type

number

Examples

// Calculates a random number from a gamma distribution:
Statistics.gammaRandom(2, 2) 

gammaDistribution

gammaDistribution(alpha: number, beta: number, nrOfValues: number) 

Returns [nrOfValues] random numbers from a gamma distribution.

Parameters

alpha number

The shape of the distribution. Should be a positive number.

beta number

The rate of the distribution. Should be a positive integer value.

nrOfValues number

The number of random numbers returned.

Return type

number[]

Examples

// Generates an array of random numbers from a gamma distribution and then calculates the mean
Statistics.mean(Statistics.gammaDistribution(2, 4, 1000000)) // => ~ 0.5 

meanAbsDev

meanAbsDev(values: number[]) 

Returns the Mean Absolute Deviation.

Parameters

values number[]

The array of values on which the calculation is made.

Return type

number

Examples

// Calculates mean absolute deviation for a number of given values:
Statistics.meanAbsDev([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 4.2 

medianAbsDev

medianAbsDev(values: number[]) 

Returns the Median Absolute Deviation.

Parameters

values number[]

The array of values on which the calculation is made.

Return type

number

Examples

// Calculates median absolute deviation for a number of given values:
Statistics.medianAbsDev([1, 2, 3, 4, 5, 6, 7, 8, 9, 25]) // => 2.5 

findGaps

findGaps(values: T[]) 

Returns missing values in an array. Values could be of type number or YearMonth strings

Parameters

values T[]

The array of values in which we look for missing values.

Return type

T[]

Examples

// Find missing values in Integer array:
Statistics.findGaps([1, 2, 3, 6, 8]) // => [4, 5, 7] 
// Find missing values in YearMonth array:
Statistics.findGaps(["2019-01", "2019-03", "2019-05", "2019-07", "2019-09"]) // => ["2019-02", "2019-04", "2019-06", "2019-08"]

fillGaps

fillGaps(values: T[]) 

Adds the missing values to an array. Values could be of type number or YearMonth strings

Parameters

values T[]

The array of values in which we look for missing values.

Return type

T[]

Examples

// Add missing values to Integer array:
Statistics.fillGaps([1, 2, 3, 6, 8]) // => [1, 2, 3, 4, 5, 6, 7, 8] 
// Add missing values to YearMonth array:
Statistics.fillGaps(["2019-01", "2019-03", "2019-06"]) // => ["2019-01", "2019-02", "2019-03", "2019-04", "2019-05", "2019-06"]