Statistics

Модуль стандартной библиотеки Statistics содержит базовую функциональность для статистики.

Statistics.stdFunction
std(itr; corrected::Bool=true, mean=nothing[, dims])

Вычисляет выборочное стандартное отклонение коллекции itr.

Алгоритм возвращает оценку стандартного отклонения генеративного распределения при условии, что каждый элемент itr является выборкой, взятой из одного и того же неизвестного распределения, при этом выборки некоррелированы. Для массивов это вычисление эквивалентно вычислению sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1)). Если corrected равно true, то сумма масштабируется на n-1, в то время как сумма масштабируется на n, если corrected равно false, где n — это количество элементов в itr.

Если itr является AbstractArray, можно указать dims для вычисления стандартного отклонения по измерениям.

Можно предоставить заранее вычисленное значение mean. Когда указаны dims, mean должен быть массивом с такой же формой, как mean(itr, dims=dims) (дополнительные завершающие единичные размеры допускаются).

Note

Если массив содержит значения NaN или missing, результат также будет NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing, чтобы пропустить записи missing и вычислить стандартное отклонение ненулевых значений.

source
Statistics.stdmFunction
stdm(itr, mean; corrected::Bool=true[, dims])

Вычисляет выборочное стандартное отклонение коллекции itr с известным средним значением(ями) mean.

Алгоритм возвращает оценку стандартного отклонения генеративного распределения при условии, что каждый элемент itr является выборкой, взятой из одного и того же неизвестного распределения, при этом выборки некоррелированы. Для массивов это вычисление эквивалентно вычислению sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1)). Если corrected равно true, то сумма масштабируется на n-1, в то время как сумма масштабируется на n, если corrected равно false, где n — это количество элементов в itr.

Если itr является AbstractArray, можно указать dims для вычисления стандартного отклонения по измерениям. В этом случае mean должен быть массивом с такой же формой, как mean(itr, dims=dims) (допускаются дополнительные завершающие единичные размеры).

Note

Если массив содержит значения NaN или missing, результат также будет NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing, чтобы пропустить записи missing и вычислить стандартное отклонение ненулевых значений.

source
Statistics.varFunction
var(itr; corrected::Bool=true, mean=nothing[, dims])

Вычисляет выборочную дисперсию коллекции itr.

Алгоритм возвращает оценку дисперсии генеративного распределения при условии, что каждый элемент itr является выборкой, взятой из одного и того же неизвестного распределения, при этом выборки некоррелированы. Для массивов это вычисление эквивалентно вычислению sum((itr .- mean(itr)).^2) / (length(itr) - 1). Если corrected равно true, то сумма масштабируется на n-1, в то время как сумма масштабируется на n, если corrected равно false, где n — это количество элементов в itr.

Если itr является AbstractArray, можно указать dims для вычисления дисперсии по измерениям.

Можно предоставить заранее вычисленное значение mean. Когда указаны dims, mean должен быть массивом с такой же формой, как mean(itr, dims=dims) (дополнительные завершающие единичные размеры допускаются).

Note

Если массив содержит значения NaN или missing, результат также будет NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing, чтобы пропустить записи missing и вычислить дисперсию ненулевых значений.

source
Statistics.varmFunction
varm(itr, mean; dims, corrected::Bool=true)

Вычисляет выборочную дисперсию коллекции itr с известным средним значением(ями) mean.

Алгоритм возвращает оценку дисперсии генеративного распределения при условии, что каждый элемент itr является выборкой, взятой из одного и того же неизвестного распределения, при этом выборки некоррелированы. Для массивов это вычисление эквивалентно вычислению sum((itr .- mean(itr)).^2) / (length(itr) - 1). Если corrected равно true, то сумма масштабируется на n-1, в то время как сумма масштабируется на n, если corrected равно false, где n — это количество элементов в itr.

Если itr является AbstractArray, можно указать dims для вычисления дисперсии по измерениям. В этом случае mean должен быть массивом с такой же формой, как mean(itr, dims=dims) (дополнительные завершающие единичные размеры допускаются).

Note

Если массив содержит значения NaN или missing, результат также будет NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing, чтобы пропустить записи missing и вычислить дисперсию ненулевых значений.

source
Statistics.corFunction
cor(x::AbstractVector)

Верните число один.

source
cor(X::AbstractMatrix; dims::Int=1)

Вычисляет матрицу корреляции Пирсона матрицы X вдоль измерения dims.

source
cor(x::AbstractVector, y::AbstractVector)

Вычисляет коэффициент корреляции Пирсона между векторами x и y.

source
cor(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims=1)

Вычисляет коэффициент корреляции Пирсона между векторами или матрицами X и Y вдоль размерности dims.

source
Statistics.covFunction
cov(x::AbstractVector; corrected::Bool=true)

Вычисляет дисперсию вектора x. Если corrected равно true (по умолчанию), то сумма масштабируется на n-1, в то время как сумма масштабируется на n, если corrected равно false, где n = length(x).

source
cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true)

Вычисляет матрицу ковариации матрицы X вдоль размерности dims. Если corrected равно true (по умолчанию), то сумма масштабируется на n-1, в то время как сумма масштабируется на n, если corrected равно false, где n = size(X, dims).

source
cov(x::AbstractVector, y::AbstractVector; corrected::Bool=true)

Вычисляет ковариацию между векторами x и y. Если corrected равно true (по умолчанию), вычисляет $\frac{1}{n-1}\sum_{i=1}^n (x_i-\bar x) (y_i-\bar y)^*$, где $*$ обозначает комплексное сопряжение, а n = length(x) = length(y). Если corrected равно false, вычисляет $\frac{1}{n}\sum_{i=1}^n (x_i-\bar x) (y_i-\bar y)^*$.

source
cov(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims::Int=1, corrected::Bool=true)

Вычисляет ковариацию между векторами или матрицами X и Y вдоль размерности dims. Если corrected равно true (по умолчанию), то сумма масштабируется на n-1, в то время как сумма масштабируется на n, если corrected равно false, где n = size(X, dims) = size(Y, dims).

source
Statistics.mean!Function
mean!(r, v)

Вычисляет среднее значение v по одиночным измерениям r и записывает результаты в r.

Примеры

julia> using Statistics

julia> v = [1 2; 3 4]
2×2 Matrix{Int64}:
 1  2
 3  4

julia> mean!([1., 1.], v)
2-element Vector{Float64}:
 1.5
 3.5

julia> mean!([1. 1.], v)
1×2 Matrix{Float64}:
 2.0  3.0
source
Statistics.meanFunction
mean(itr)

Вычисляет среднее значение всех элементов в коллекции.

Note

Если itr содержит значения NaN или missing, результат также будет NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing, чтобы пропустить записи missing и вычислить среднее значение ненулевых значений.

Примеры

julia> using Statistics

julia> mean(1:20)
10.5

julia> mean([1, missing, 3])
missing

julia> mean(skipmissing([1, missing, 3]))
2.0
source
mean(f, itr)

Примените функцию f к каждому элементу коллекции itr и найдите среднее значение.

julia> using Statistics

julia> mean(√, [1, 2, 3])
1.3820881233139908

julia> mean([√1, √2, √3])
1.3820881233139908
source
mean(f, A::AbstractArray; dims)

Примените функцию f к каждому элементу массива A и найдите среднее значение по измерениям dims.

Julia 1.3

Этот метод требует как минимум Julia 1.3.

julia> using Statistics

julia> mean(√, [1, 2, 3])
1.3820881233139908

julia> mean([√1, √2, √3])
1.3820881233139908

julia> mean(√, [1 2 3; 4 5 6], dims=2)
2×1 Matrix{Float64}:
 1.3820881233139908
 2.2285192400943226
source
mean(A::AbstractArray; dims)

Вычисляет среднее значение массива по заданным измерениям.

Julia 1.1

mean для пустых массивов требует как минимум Julia 1.1.

Примеры

julia> using Statistics

julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
 1  2
 3  4

julia> mean(A, dims=1)
1×2 Matrix{Float64}:
 2.0  3.0

julia> mean(A, dims=2)
2×1 Matrix{Float64}:
 1.5
 3.5
source
Statistics.medianFunction
median(itr)

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

Note

Если itr содержит значения NaN или missing, результат также будет NaN или missing (missing имеет приоритет, если itr содержит оба). Используйте функцию skipmissing, чтобы пропустить записи missing и вычислить медиану ненулевых значений.

Примеры

julia> using Statistics

julia> median([1, 2, 3])
2.0

julia> median([1, 2, 3, 4])
2.5

julia> median([1, 2, missing, 4])
missing

julia> median(skipmissing([1, 2, missing, 4]))
2.0
source
median(A::AbstractArray; dims)

Вычисляет медиану массива вдоль заданных измерений.

Примеры

julia> using Statistics

julia> median([1 2; 3 4], dims=1)
1×2 Matrix{Float64}:
 2.0  3.0
source
Statistics.middleFunction
middle(x)

Вычисляет середину скалярного значения, что эквивалентно x самому, но с типом middle(x, x) для согласованности.

source
middle(x, y)

Вычисляет среднее двух чисел x и y, что эквивалентно как по значению, так и по типу вычислению их среднего арифметического ((x + y) / 2).

source
middle(a::AbstractArray)

Вычисляет середину массива a, что состоит в нахождении его экстремумов и затем вычислении их среднего значения.

julia> using Statistics

julia> middle(1:10)
5.5

julia> a = [1,2,3.6,10.9]
4-element Vector{Float64}:
  1.0
  2.0
  3.6
 10.9

julia> middle(a)
5.95
source
Statistics.quantile!Function
quantile!([q::AbstractArray, ] v::AbstractVector, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)

Вычисляет квантиль(и) вектора v при заданной вероятности или векторе или кортеже вероятностей p на интервале [0,1]. Если p является вектором, также может быть указан необязательный выходной массив q. (Если не предоставлен, создается новый выходной массив.) Аргумент ключевого слова sorted указывает, можно ли считать, что v отсортирован; если false (по умолчанию), то элементы v будут частично отсортированы на месте.

Образцы квантилей определяются как Q(p) = (1-γ)*x[j] + γ*x[j+1], где x[j] является j-ой порядковой статистикой v, j = floor(n*p + m), m = alpha + p*(1 - alpha - beta) и γ = n*p + m - j.

По умолчанию (alpha = beta = 1), квантиль вычисляется с помощью линейной интерполяции между точками ((k-1)/(n-1), x[k]), для k = 1:n, где n = length(v). Это соответствует Определению 7 Хиндмана и Фана (1996) и является тем же, что и по умолчанию в R и NumPy.

Аргументы ключевых слов alpha и beta соответствуют тем же параметрам в Хиндмане и Фане, установка их на разные значения позволяет вычислять квантиль с любым из методов 4-9, определенных в этой статье:

  • Определение 4: alpha=0, beta=1
  • Определение 5: alpha=0.5, beta=0.5 (по умолчанию MATLAB)
  • Определение 6: alpha=0, beta=0 (Excel PERCENTILE.EXC, по умолчанию Python, Stata altdef)
  • Определение 7: alpha=1, beta=1 (по умолчанию Julia, R и NumPy, Excel PERCENTILE и PERCENTILE.INC, Python 'inclusive')
  • Определение 8: alpha=1/3, beta=1/3
  • Определение 9: alpha=3/8, beta=3/8
Note

Выдается ArgumentError, если v содержит значения NaN или missing.

Ссылки

  • Хиндман, Р. Дж. и Фан, Й. (1996) "Выборочные квантиль в статистических пакетах", Американский статистик, Т. 50, № 4, стр. 361-365
  • Квантиль на Википедии описывает различные определения квантилей

Примеры

julia> using Statistics

julia> x = [3, 2, 1];

julia> quantile!(x, 0.5)
2.0

julia> x
3-element Vector{Int64}:
 1
 2
 3

julia> y = zeros(3);

julia> quantile!(y, x, [0.1, 0.5, 0.9]) === y
true

julia> y
3-element Vector{Float64}:
 1.2000000000000002
 2.0
 2.8000000000000003
source
Statistics.quantileFunction
quantile(itr, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)

Вычисляет квантиль(и) коллекции itr при заданной вероятности или векторе или корте вероятностей p на интервале [0,1]. Ключевой аргумент sorted указывает, можно ли считать, что itr отсортирован.

Квантиль определяется как Q(p) = (1-γ)*x[j] + γ*x[j+1], где x[j] — это j-й порядковый статистик itr, j = floor(n*p + m), m = alpha + p*(1 - alpha - beta) и γ = n*p + m - j.

По умолчанию (alpha = beta = 1), квантиль вычисляется с помощью линейной интерполяции между точками ((k-1)/(n-1), x[k]), для k = 1:n, где n = length(itr). Это соответствует Определению 7 Хиндмана и Фана (1996) и является тем же, что и по умолчанию в R и NumPy.

Ключевые аргументы alpha и beta соответствуют тем же параметрам в Хиндмане и Фане, установка их на разные значения позволяет вычислять квантиль с любым из методов 4-9, определенных в этой статье:

  • Определение 4: alpha=0, beta=1
  • Определение 5: alpha=0.5, beta=0.5 (по умолчанию MATLAB)
  • Определение 6: alpha=0, beta=0 (Excel PERCENTILE.EXC, по умолчанию Python, Stata altdef)
  • Определение 7: alpha=1, beta=1 (по умолчанию Julia, R и NumPy, Excel PERCENTILE и PERCENTILE.INC, Python 'inclusive')
  • Определение 8: alpha=1/3, beta=1/3
  • Определение 9: alpha=3/8, beta=3/8
Note

Исключение ArgumentError выбрасывается, если v содержит значения NaN или missing. Используйте функцию skipmissing, чтобы пропустить записи missing и вычислить квантиль для ненулевых значений.

Ссылки

  • Хиндман, Р. Дж. и Фан, Й. (1996) "Квантиль выборки в статистических пакетах", Американский статистик, Т. 50, № 4, стр. 361-365
  • Квантиль на Википедии описывает различные определения квантилей

Примеры

julia> using Statistics

julia> quantile(0:20, 0.5)
10.0

julia> quantile(0:20, [0.1, 0.5, 0.9])
3-element Vector{Float64}:
  2.0
 10.0
 18.000000000000004

julia> quantile(skipmissing([1, 10, missing]), 0.5)
5.5
source