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

Variance   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 1
dl 0
loc 16
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A population() 0 4 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