PHP Класс MathPHP\Statistics\Average

Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
agm ( number $x, number $y ) : float Convenience method for arithmeticGeometricMean
arithmeticGeometricMean ( number $x, number $y ) : float Arithmetic-Geometric mean
contraharmonicMean ( array $numbers ) : number Contraharmonic mean A function complementary to the harmonic mean.
cubicMean ( array $numbers ) : number Cubic mean https://en.wikipedia.org/wiki/Cubic_mean _________ 1 n x cubic = ³/ - ∑ xᵢ³ √ n ⁱ⁼¹
cumulativeMovingAverage ( array $numbers ) : array Cumulative moving average (CMA)
describe ( array $numbers ) : array Get a report of all the averages over a list of numbers Includes mean, median mode, geometric mean, harmonic mean, quardratic mean
exponentialMovingAverage ( array $numbers, integer $n ) : array Exponential moving average (EMA)
generalizedMean ( array $numbers, number $p ) : number Generalized mean (power mean, Hölder mean) https://en.wikipedia.org/wiki/Generalized_mean
geometricMean ( array $numbers ) : number Geometric mean A type of mean which indicates the central tendency or typical value of a set of numbers by using the product of their values (as opposed to the arithmetic mean which uses their sum).
harmonicMean ( array $numbers ) : number Harmonic mean (subcontrary mean) The harmonic mean can be expressed as the reciprocal of the arithmetic mean of the reciprocals.
heronianMean ( number $A, number $B ) : number Heronian mean https://en.wikipedia.org/wiki/Heronian_mean __ H = ⅓(A + √AB + B)
identricMean ( number $x, number $y ) : number Identric mean https://en.wikipedia.org/wiki/Identric_mean ____ 1 / xˣ I(x,y) = - ˣ⁻ʸ/ -- ℯ √ yʸ
interquartileMean ( array $numbers ) : number Interquartile mean (IQM) A measure of central tendency based on the truncated mean of the interquartile range.
iqm ( array $numbers ) : number IQM (Interquartile mean) Convenience function for interquartileMean
kthSmallest ( array $numbers, integer $k ) : number Return the kth smallest value in an array Uses a linear-time algorithm: O(n) time in worst case.
lehmerMean ( array $numbers, number $p ) : number Lehmer mean https://en.wikipedia.org/wiki/Lehmer_mean
logarithmicMean ( number $x, number $y ) : number Logarithmic mean A function of two non-negative numbers which is equal to their difference divided by the logarithm of their quotient.
mean ( array $numbers ) : number Calculate the mean average of a list of numbers
median ( array $numbers ) : number Calculate the median average of a list of numbers
mode ( array $numbers ) : array Calculate the mode average of a list of numbers If multiple modes (bimodal, trimodal, etc.), all modes will be returned.
powerMean ( array $numbers, number $p ) : number Power mean (generalized mean) Convenience method for generalizedMean
quadraticMean ( array $numbers ) : number Quadradic mean (root mean square) Convenience function for rootMeanSquare
rootMeanSquare ( array $numbers ) : number Root mean square (quadratic mean) The square root of the arithmetic mean of the squares of a set of numbers.
simpleMovingAverage ( array $numbers, integer $n ) : array Simple n-point moving average SMA The unweighted mean of the previous n data.
trimean ( array $numbers ) : number Trimean (TM, or Tukey's trimean) A measure of a probability distribution's location defined as a weighted average of the distribution's median and its two quartiles.
truncatedMean ( array $numbers, integer $trim_percent ) : number Truncated mean (trimmed mean) The mean after discarding given parts of a probability distribution or sample at the high and low end, and typically discarding an equal amount of both.
weightedMovingAverage ( array $numbers, integer $n, array $weights ) : array Weighted n-point moving average (WMA)

Приватные методы

Метод Описание
splitAtValue ( array $numbers, integer $value ) : array Given an array and a value, separate the array into two groups, those values which are greater than the value, and those that are less than the value. Also, tell how many times the value appears in the array.

Описание методов

agm() публичный статический Метод

Convenience method for arithmeticGeometricMean
public static agm ( number $x, number $y ) : float
$x number
$y number
Результат float

arithmeticGeometricMean() публичный статический Метод

First, compute the arithmetic and geometric means of x and y, calling them a₁ and g₁ respectively. Then, use iteration, with a₁ taking the place of x and g₁ taking the place of y. Both a and g will converge to the same mean. https://en.wikipedia.org/wiki/Arithmetic%E2%80%93geometric_mean x and y ≥ 0 If x or y = 0, then agm = 0 If x or y < 0, then NaN
public static arithmeticGeometricMean ( number $x, number $y ) : float
$x number
$y number
Результат float

contraharmonicMean() публичный статический Метод

A special case of the Lehmer mean, L₂(x), where p = 2. https://en.wikipedia.org/wiki/Contraharmonic_mean
public static contraharmonicMean ( array $numbers ) : number
$numbers array
Результат number

cubicMean() публичный статический Метод

Cubic mean https://en.wikipedia.org/wiki/Cubic_mean _________ 1 n x cubic = ³/ - ∑ xᵢ³ √ n ⁱ⁼¹
public static cubicMean ( array $numbers ) : number
$numbers array
Результат number

cumulativeMovingAverage() публичный статический Метод

Base case for initial average: x₀ CMA₀ = -- 1 Standard case: xᵢ + (i * CMAᵢ₋₁) CMAᵢ = ----------------- i + 1
public static cumulativeMovingAverage ( array $numbers ) : array
$numbers array
Результат array of cumulative averages

describe() публичный статический Метод

Get a report of all the averages over a list of numbers Includes mean, median mode, geometric mean, harmonic mean, quardratic mean
public static describe ( array $numbers ) : array
$numbers array
Результат array [ mean, median, mode, geometric_mean, harmonic_mean, contraharmonic_mean, quadratic_mean, trimean, iqm, cubic_mean ]

exponentialMovingAverage() публичный статический Метод

The start of the EPA is seeded with the first data point. Then each day after that: EMAtoday = α⋅xtoday + (1-α)EMAyesterday where α: coefficient that represents the degree of weighting decrease, a constant smoothing factor between 0 and 1.
public static exponentialMovingAverage ( array $numbers, integer $n ) : array
$numbers array
$n integer Length of the EPA
Результат array of exponential moving averages

generalizedMean() публичный статический Метод

1 n \ 1/p Mp(x) = | - ∑ xᵢᵖ| \ n ⁱ⁼¹ / Special cases: M-∞(x) is min(x) M₋₁(x) is the harmonic mean M₀(x) is the geometric mean M₁(x) is the arithmetic mean M₂(x) is the quadratic mean M₃(x) is the cubic mean M∞(x) is max(X)
public static generalizedMean ( array $numbers, number $p ) : number
$numbers array
$p number
Результат number

geometricMean() публичный статический Метод

https://en.wikipedia.org/wiki/Geometric_mean __________ Geometric mean = ⁿ√a₀a₁a₂ ⋯
public static geometricMean ( array $numbers ) : number
$numbers array
Результат number

harmonicMean() публичный статический Метод

Appropriate for situations when the average of rates is desired. https://en.wikipedia.org/wiki/Harmonic_mean
public static harmonicMean ( array $numbers ) : number
$numbers array
Результат number

heronianMean() публичный статический Метод

Heronian mean https://en.wikipedia.org/wiki/Heronian_mean __ H = ⅓(A + √AB + B)
public static heronianMean ( number $A, number $B ) : number
$A number
$B number
Результат number

identricMean() публичный статический Метод

Identric mean https://en.wikipedia.org/wiki/Identric_mean ____ 1 / xˣ I(x,y) = - ˣ⁻ʸ/ -- ℯ √ yʸ
public static identricMean ( number $x, number $y ) : number
$x number
$y number
Результат number

interquartileMean() публичный статический Метод

Only the data in the second and third quartiles is used (as in the interquartile range), and the lowest 25% and the highest 25% of the scores are discarded. https://en.wikipedia.org/wiki/Interquartile_mean
public static interquartileMean ( array $numbers ) : number
$numbers array
Результат number

iqm() публичный статический Метод

IQM (Interquartile mean) Convenience function for interquartileMean
public static iqm ( array $numbers ) : number
$numbers array
Результат number

kthSmallest() публичный статический Метод

if $a = [1,2,3,4,6,7] kthSmallest($a, 4) = 6 Algorithm: 1) If n is small, just sort and return 2) Otherwise, group into 5-element subsets and mind the median 3) Find the median of the medians 4) Find L and U sets - L is numbers lower than the median of medians - U is numbers higher than the median of medians 5) Recursive step - if k is the median of medians, return that - Otherwise, recusively search in smaller group.
public static kthSmallest ( array $numbers, integer $k ) : number
$numbers array
$k integer zero indexed
Результат number

lehmerMean() публичный статический Метод

∑xᵢᵖ Lp(x) = ------ ∑xᵢᵖ⁻¹ Special cases: L-∞(x) is the min(x) L₀(x) is the harmonic mean L½(x₀, x₁) is the geometric mean if computed against two numbers L₁(x) is the arithmetic mean L₂(x) is the contraharmonic mean L∞(x) is the max(x)
public static lehmerMean ( array $numbers, number $p ) : number
$numbers array
$p number
Результат number

logarithmicMean() публичный статический Метод

https://en.wikipedia.org/wiki/Logarithmic_mean Mlm(x, y) = 0 if x = 0 or y = 0 x if x = y otherwise: y - x ----------- ln y - ln x
public static logarithmicMean ( number $x, number $y ) : number
$x number
$y number
Результат number

mean() публичный статический Метод

∑⟮xᵢ⟯ x̄ = ----- n
public static mean ( array $numbers ) : number
$numbers array
Результат number

median() публичный статический Метод

Calculate the median average of a list of numbers
public static median ( array $numbers ) : number
$numbers array
Результат number

mode() публичный статический Метод

Always returns an array, even if only one mode.
public static mode ( array $numbers ) : array
$numbers array
Результат array of mode(s)

powerMean() публичный статический Метод

Power mean (generalized mean) Convenience method for generalizedMean
public static powerMean ( array $numbers, number $p ) : number
$numbers array
$p number
Результат number

quadraticMean() публичный статический Метод

Quadradic mean (root mean square) Convenience function for rootMeanSquare
public static quadraticMean ( array $numbers ) : number
$numbers array
Результат number

rootMeanSquare() публичный статический Метод

https://en.wikipedia.org/wiki/Root_mean_square ___________ x₁+²x₂²+ ⋯ x rms = / ----------- √ n
public static rootMeanSquare ( array $numbers ) : number
$numbers array
Результат number

simpleMovingAverage() публичный статический Метод

First calculate initial average: ⁿ⁻¹ ∑ xᵢ ᵢ₌₀ To calculating successive values, a new value comes into the sum and an old value drops out: SMAtoday = SMAyesterday + NewNumber/N - DropNumber/N
public static simpleMovingAverage ( array $numbers, integer $n ) : array
$numbers array
$n integer n-point moving average
Результат array of averages for each n-point time period

trimean() публичный статический Метод

https://en.wikipedia.org/wiki/Trimean Q₁ + 2Q₂ + Q₃ TM = ------------- 4
public static trimean ( array $numbers ) : number
$numbers array
Результат number

truncatedMean() публичный статический Метод

This number of points to be discarded is given as a percentage of the total number of points. https://en.wikipedia.org/wiki/Truncated_mean Trim count = floor( (trim percent / 100) * sample size ) For example: [8, 3, 7, 1, 3, 9] with a trim of 20% First sort the list: [1, 3, 3, 7, 8, 9] Sample size = 6 Then determine trim count: floot(20/100 * 6 ) = 1 Trim the list by removing 1 from each end: [3, 3, 7, 8] Finally, find the mean: 5.2
public static truncatedMean ( array $numbers, integer $trim_percent ) : number
$numbers array
$trim_percent integer Percent between 0-99
Результат number

weightedMovingAverage() публичный статический Метод

Similar to simple n-point moving average, however, each n-point has a weight associated with it, and instead of dividing by n, we divide by the sum of the weights. Each weighted average = ∑(weighted values) / ∑(weights)
public static weightedMovingAverage ( array $numbers, integer $n, array $weights ) : array
$numbers array
$n integer n-point moving average
$weights array Weights for each n points
Результат array of averages