1<?php
2
3declare(strict_types=1);
4
5namespace 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 */
12final 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