Документация Engee

var

Дисперсия.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • V,M = var(A) — возвращает дисперсию V элементов массива A по первому измерению, размер которого не равен 1. По умолчанию дисперсия нормализуется по отношению к числу N-1, где N — количество величин. Также возвращает математическое ожидание M элементов A, используемых для вычисления дисперсии. Если Vвзвешенная дисперсия, то Mсреднее взвешенное.

    • Если A — вектор величин, то V — скаляр.

    • Если A — матрица, столбцы которой являются случайными величинами, а строки — скалярными величинами, то V — вектор-строка, содержащий дисперсию, соответствующую каждому столбцу.

    • Если A — многомерный массив, то var(A) действует по первому измерению массива, размер которого не равен 1, рассматривая элементы как векторы. Размер V по этому измерению становится равным 1, в то время как размеры всех остальных измерений остаются такими же, как в A.

    • Если A — скаляр, то V равна 0.

    • Если A — пустой массив размером 0 на 0, то значение V равно NaN.

  • V,M = var(A,w) — определяет весовую схему. При w = 0 (по умолчанию) дисперсия имеет нормировочный коэффициент N-1, где N — число величин. При w = 1 дисперсия имеет нормировочный коэффициент, равный числу величин. Аргумент w также может быть весовым вектором, содержащим неотрицательные элементы. В этом случае длина w должна быть равна длине измерения, по которому работает var.

  • V,M = var(A,w,"all") — возвращает дисперсию по всем элементам A, когда w равно 0 или 1.

  • V,M = var(A,w,dim) — возвращает дисперсию по измерению dim. Чтобы сохранить нормализацию по умолчанию при указании измерения операции, установите w = 0 во втором аргументе.

  • V,M = var(A,w,vecdim) — возвращает дисперсию по измерениям, указанным в векторе vecdim, когда w равно 0 или 1. Например, если A — матрица, то var(A,0,[1 2]) возвращает дисперсию по всем элементам в A, поскольку каждый элемент матрицы содержится в срезе массива, определенном измерениями 1 и 2.

  • V,M = var(___,nanflag) — определяет, следует ли включать или исключать значения NaN в A для любого из предыдущих вариантов синтаксиса. Например, var(A,"omitnan") игнорирует значения NaN при вычислении дисперсии. По умолчанию var включает значения NaN.

Аргументы

Входные аргументы

# A — входной массив
вектор | матрица | многомерный массив

Details

Входной массив, заданный как вектор, матрица или многомерный массив,. Если A — скаляр, то var(A) возвращает 0. Если A — пустой массив размером 0 на 0, то var(A) возвращает NaN.

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

# w — вес
0 (по умолчанию) | 1 | вектор

Details

Вес, заданный одним из следующих значений:

  • 0 — нормализовать по N-1, где N — количество величин. Если величина только одна, вес равен 1.

  • 1 — нормализовать по N.

  • Вектор, состоящий из неотрицательных скалярных весов, соответствующих размерности A, по которой вычисляется дисперсия.

Типы данных

Float32, Float64

# dim — измерение, по которому выполняется операция
положительный целочисленный скаляр

Details

Измерение, по которому выполняется операция, задается как положительный целочисленный скаляр. Если измерение не указано, по умолчанию используется первое измерение массива, размер которого не равен 1.

Аргумент dim указывает измерение, длина которого уменьшается до 1. size(S,dim) равно 1, в то время как размеры всех остальных измерений остаются прежними.

Рассмотрим входную матрицу A размером m на n:

  • var(A,0,1) вычисляет дисперсию элементов в каждом столбце матрицы A и возвращает вектор-строку размером 1 на n.

    var 1

  • var(A,0,2) вычисляет дисперсию элементов в каждой строке матрицы A и возвращает вектор-столбец размером m на 1.

    var 2

Если dim больше ndims(A), то var(A) возвращает массив нулей того же размера, что и A.

# vecdim — вектор измерений
вектор положительных целых чисел

Details

Вектор измерений, заданный как вектор положительных целых чисел. Каждый элемент представляет измерение входного массива. Длина выходных данных в указанных рабочих измерениях равна 1, в то время как остальные измерения остаются неизменными.

Рассмотрим входной массив A размером 2×3×3. Тогда var(A,0,[1 2]) возвращает массив размером 1×1×3, элементы которого представляют собой дисперсии, вычисленные для каждого слоя A.

std 3 ru

# nanflag — условие отсутствия значения
"includemissing" (по умолчанию) | "includenan" | "omitmissing" | "omitnan"

Details

Условие отсутствия значения, заданное одним из следующих значений:

  • "includemissing" или "includenan" — включить значения NaN в A при вычислении дисперсии. Если какой-либо элемент в рабочем измерении равен NaN, то соответствующий элемент в V также равен NaN. "includemissing" и "includenan" ведут себя одинаково.

  • "omitmissing" или "omitnan" — игнорировать значения NaN в A и w и вычислять дисперсию по меньшему количеству точек. Если все элементы в рабочем измерении равны NaN, то соответствующий элемент в V также равен NaN. "omitmissing" и "omitnan" ведут себя одинаково.

Выходные аргументы

# V — дисперсия
скаляр | вектор | матрица | многомерный массив

Details

Дисперсия, возвращаемая в виде скаляра, вектора, матрицы или многомерного массива.

  • Если A — вектор величин, то V — скаляр.

  • Если A — матрица, столбцы которой являются случайными величинами, а строки — скалярными величинами, то V — вектор-строка, содержащий дисперсию, соответствующую каждому столбцу.

  • Если A — многомерный массив, то var(A) действует по первому измерению массива, размер которого не равен 1, рассматривая элементы как векторы. Размер V по этому измерению становится равным 1, в то время как размеры всех остальных измерений остаются такими же, как в A.

  • Если A — скаляр, то V равна 0.

  • Если A — пустой массив размером 0 на 0, то V равна NaN.

# M — математическое ожидание
скаляр | вектор | матрица | многомерный массив

Details

Математическое ожидание, возвращаемое в виде скаляра, вектора, матрицы или многомерного массива.

  • Если A — вектор величин, то M — скаляр.

  • Если A — матрица, столбцы которой являются случайными величинами, а строки — скалярными величинами, то M — вектор-строка, содержащая математическое ожидание для каждого столбца.

  • Если A — многомерный массив, то var(A) действует по первому измерению массива, размер которого не равен 1, рассматривая элементы как векторы. Размер M в этом измерении становится равным 1, в то время как размеры всех остальных измерений остаются такими же, как в A.

  • Если A — скаляр, то M равно A.

  • Если A — пустой массив размером 0 на 0, то M равно NaN.

Если V — взвешенная дисперсия, то M — среднее взвешенное.

Примеры

Дисперсия матрицы

Details

Создадим матрицу и вычислим ее дисперсию.

import EngeeDSP.Functions: var

A = [4 -7 3; 1 4 -2; 10 7 9]
var(A).V
1×3 Matrix{Float64}:
 21.0  54.3333  30.3333

Дисперсия массива

Details

Создадим трехмерный массив и вычислим его дисперсию.

import EngeeDSP.Functions: var

A = cat([1 3; 8 4], [3 -4; 1 2], dims=3)
var(A).V
1×2×2 Array{Float64, 3}:
[:, :, 1] =
 24.5  0.5

[:, :, 2] =
 2.0  18.0

Указание весового вектора дисперсии

Details

Создадим матрицу и вычислим ее дисперсию в соответствии с весовым вектором w.

import EngeeDSP.Functions: var

A = [5 -4 6; 2 3 9; -1 1 2]
w = [0.5 0.25 0.25]
var(A, w).V
1×3 Matrix{Float64}:
 6.1875  9.5  6.1875

Указание размерности дисперсии

Details

Создадим матрицу и вычислим ее дисперсию по первому измерению.

import EngeeDSP.Functions: var

A = [4 -2 1; 9 5 7]
var(A, 0, 1).V
1×3 Matrix{Float64}:
 12.5  24.5  18.0

Вычислим дисперсию А по второму измерению.

var(A, 0, 2).V
2×1 Matrix{Float64}:
 9.0
 4.0

Дисперсия слоя массива

Details

Создадим трехмерный массив и вычислим дисперсию для каждого слоя данных (строк и столбцов).

import EngeeDSP.Functions: var

A = cat([2 4; -2 1], [9 13; -5 7], [4 4; 8 -3], dims=3)
V = var(A, 0, [1 2]).V
1×1×3 Array{Float64, 3}:
[:, :, 1] =
 6.25

[:, :, 2] =
 60.0

[:, :, 3] =
 20.916666666666664

Дисперсия без учета пропущенных значений

Details

Создадим матрицу, содержащую значения NaN.

A = [1.77 NaN -2.95; NaN 0.34 0.19]
2×3 Matrix{Float64}:
   1.77  NaN     -2.95
 NaN       0.34   0.19

Вычислим дисперсию матрицы, исключая значения NaN. Для столбцов матрицы, содержащих любое значение NaN, функция var вычисляет значения, отличные от NaN.

import EngeeDSP.Functions: var

V = var(A, "omitnan").V
1×3 Matrix{Float64}:
 0.0  0.0  4.9298

Дисперсия и математическое ожидание

Details

Создадим матрицу и вычислим дисперсию и математическое ожидание для каждого столбца.

import EngeeDSP.Functions: var

A = [4 -7 3; 1 4 -2; 10 7 9]
V, M = var(A)
(V = [21.0 54.33333333333334 30.333333333333336], M = [5.0 1.3333333333333333 3.3333333333333335])

Создадим матрицу и вычислим взвешенную дисперсию и среднее взвешенное каждого столбца в соответствии с весовым вектором w.

A = [5 -4 6; 2 3 9; -1 1 2]
w = [0.5 0.25 0.25]
V, M = var(A, w)
(V = [6.1875 9.5 6.1875], M = [2.75 -1.0 5.75])

Дополнительно

Дисперсия

Details

Для вектора случайной величины , состоящего из скалярных величин, дисперсия определяется как

где — математическое ожидание :

В некоторых определениях дисперсии используется нормировочный коэффициент вместо . Можно использовать нормировочный коэффициент , указав вес 1, что дает второй момент выборки относительно ее математического ожидания.

Независимо от нормировочного коэффициента дисперсии, предполагается, что математическое ожидание имеет нормировочный коэффициент .

Взвешенная дисперсия

Details

Для вектора конечной длины, состоящего из скалярных величин, и весовой схемы , взвешенная дисперсия определяется как

Среднее взвешенное

Details

Для вектора конечной длины, состоящего из скалярных величин, и весовой схемы , среднее взвешенное определяется как