| 1 |
efrain |
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 |
}
|