import statistics statistics.variance(data, xbar=None)
data
- данные, последовательность или итерация,xbar=None
- среднее значение данных data
.data
.Функция variance()
модуля statistics
возвращает выборочную дисперсию данных data
, которые представляют готовую выборку элементов из всей числовой последовательности.
data
может быть последовательностью или итерацией и должна иметь по крайней мере два действительных числа..data
пусты, то возникает ошибка StatisticsError
.Дисперсия является мерой изменчивости (разброса) элементов числовой последовательности. Большая дисперсия указывает на то, что данные распределены относительно среднего значения. Небольшая дисперсия указывает на то, что они тесно сгруппированы вокруг среднего значения числовой последовательности.
Если указан необязательный второй аргумент xbar
, то это должно быть среднее значение данных data
. Если аргумент xbar
отсутствует или None (по умолчанию), то среднее арифметическое значение рассчитывается автоматически.
Используйте функцию statistics.variance()
, когда данные являются выборкой из элементов числовой последовательности. Смотрите функцию statistics.pvariance()
, чтобы вычислить дисперсию всей совокупности числовой последовательности.
statistics.variance()
:>>> import statistics >>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5] >>> statistics.variance(data) # 1.3720238095238095 # дисперсию всей числовой последовательности >>> statistics.pvariance(data) # 0.9739583333333334
Если есть рассчитанное среднее значение данных, то можно передать его как необязательный второй аргумент xbar
, чтобы избежать пересчета:
>>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5] >>> m = statistics.mean(data) >>> statistics.variance(data, m) # 1.3720238095238095
Функция statistics.variance()
не проверяет переданное значение аргумента xbar
на фактическое среднее значение числовой последовательности. Использование произвольных значений для xbar
может привести к недействительным или невозможным результатам.
Функция statistics.variance()
поддерживает десятичные и дробные значения:
>>> from decimal import Decimal as D >>> statistics.variance([D("27.5"), D("30.25"), D("30.25"), D("34.5"), D("41.75")]) # Decimal('31.01875') >>> from fractions import Fraction as F >>> statistics.variance([F(1, 6), F(1, 2), F(5, 3)]) # Fraction(67, 108)
Примечание. Значение этой функции представляет собой выборочную дисперсию s²
из элементов числовой последовательности с поправкой Бесселя, также известную как дисперсия с N-1 степенями свободы. При условии, что элементы данных репрезентативны (например, независимы и одинаково распределены), то результатом должна быть объективная оценка истинной дисперсии всей числовой последовательности.
Если каким-то образом известно фактическое среднее значение всей числовой последовательности μ
, то это значение необходимо передать функции statistics.pvariance()
в качестве параметра mu
, чтобы получить дисперсию выборки из числовой последовательности.