Passed
Pull Request — master (#228)
by Arkadiusz
02:39
created

Variance::population()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Phpml\Math\Statistic;
6
7
/**
8
 * In probability theory and statistics, variance is the expectation of the squared deviation of a random variable from its mean.
9
 * Informally, it measures how far a set of (random) numbers are spread out from their average value
10
 * https://en.wikipedia.org/wiki/Variance
11
 */
12
final class Variance
13
{
14
    /**
15
     * Population variance
16
     * Use when all possible observations of the system are present.
17
     * If used with a subset of data (sample variance), it will be a biased variance.
18
     *
19
     *      ∑⟮xᵢ - μ⟯²
20
     * σ² = ----------
21
     *          N
22
     */
23
    public static function population(array $population): float
24
    {
25
        return StandardDeviation::sumOfSquares($population) / count($population);
26
    }
27
}
28