PHP 클래스 MathPHP\Statistics\Average

파일 보기 프로젝트 열기: markrogoyski/math-php 1 사용 예제들

공개 메소드들

메소드 설명
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