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

std

Стандартное отклонение.

Библиотека

EngeeDSP

Синтаксис

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

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

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

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

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

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

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

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

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

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

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

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

Аргументы

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

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

Details

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

Типы данных

Float32, Float64, DateTime

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

Да

# 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:

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

    std 1

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

    std 2

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

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

Details

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

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

std 3 ru

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

Details

Условие отсутствия значения, заданное как одно из значений в этой таблице.

Значение Тип входных данных Описание

"includemissing"

Все поддерживаемые типы данных

При вычислении стандартного отклонения учитываются пропущенные значения в A и w. Если какой-либо элемент в рабочем измерении отсутствует, то соответствующий элемент в S отсутствует.

"includenan"

Float64, Float32

"includenat"

DateTime

"omitmissing"

Все поддерживаемые типы данных

Пропущенные значения в A и w игнорируются и вычисляется стандартное отклонение по меньшему числу точек. Если все элементы в рабочем измерении отсутствуют, то соответствующий элемент в S отсутствует.

"omitnan"

Float64, Float32

"omitnat"

DateTime

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

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

Details

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

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

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

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

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

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

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

Details

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

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

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

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

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

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

Если S — взвешенное стандартное отклонение, то M — среднее взвешенное.

Примеры

Стандартное отклонение столбцов матрицы

Details

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

import EngeeDSP.Functions: std

A = [4 -5 1; 2 3 5; -9 1 7]
S = std(A).S
1×3 Matrix{Float64}:
 7.0  4.16333  3.05505

Стандартное отклонение трехмерного массива

Details

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

import EngeeDSP.Functions: std

A = cat([2 4; -2 1], [9 13; -5 7], [4 4; 8 -3]; dims=3)
S = std(A).S
1×2×3 Array{Float64, 3}:
[:, :, 1] =
 2.82843  2.12132

[:, :, 2] =
 9.89949  4.24264

[:, :, 3] =
 2.82843  4.94975

Указание весовых коэффициентов стандартного отклонения

Details

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

import EngeeDSP.Functions: std

A = [1 5; 3 7; -9 2]
w = [1 1 0.5]
S = std(A, w).S
1×2 Matrix{Float64}:
 4.48999  1.83303

Стандартное отклонение по строкам матрицы

Details

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

import EngeeDSP.Functions: std

A = [6 4 23 -3; 9 -10 4 11; 2 8 -5 1]
S = std(A, 0, 2).S
3×1 Matrix{Float64}:
 11.030261405182864
  9.46924847422786
  5.32290647422377

Стандартное отклонение слоя массива

Details

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

import EngeeDSP.Functions: std

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

[:, :, 2] =
 7.745966692414834

[:, :, 3] =
 4.573474244670748

Стандартное отклонение без учета пропущенных значений

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, функция std вычисляется с использованием всех элементов, кроме NaN.

import EngeeDSP.Functions: std

S = std(A, "omitmissing").S
1×3 Matrix{Float64}:
 0.0  0.0  2.22032

Стандартное отклонение и математическое ожидание

Details

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

import EngeeDSP.Functions: std

A = [4 -5 1; 2 3 5; -9 1 7]
S, M = std(A)
(S = [7.0 4.163331998932266 3.055050463303893], M = [-1.0 -0.3333333333333333 4.333333333333333])

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

A = [1 5; 3 7; -9 2]
w = [1 1 0.5]
S, M = std(A, w)
(S = [4.48998886412873 1.8330302779823362], M = [-0.2 5.2])

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

Стандартное отклонение

Details

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

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

Стандартное отклонение — это квадратный корень дисперсии.

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

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

Взвешенное стандартное отклонение

Details

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

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

Details

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