Statistics
Модуль стандартной библиотеки Statistics содержит основные статистические функции.
#
Statistics.std — Function
std(itr; corrected::Bool=true, mean=nothing[, dims])
Вычисляет выборочное среднеквадратичное отклонение для коллекции itr.
Алгоритм возвращает статистическую оценку среднеквадратичного отклонения генеративного распределения с тем предположением, что каждый элемент itr — это значение, выбранное из одного и того же неизвестного распределения, причем эти значения некоррелированные. Для массивов расчет эквивалентен sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1)). Сумма масштабируется на n-1, если corrected имеет значение true, или на n, если corrected имеет значение false, где n — количество элементов в itr.
Если itr — это AbstractArray, можно предоставить dims для вычисления среднеквадратичного отклонения по измерениям.
Можно указать предварительно вычисленное значение mean. Если указан аргумент dims, mean должен быть массивом той же формы, что и mean(itr, dims=dims) (допускаются дополнительные конечные одинарные измерения).
|
Если массив содержит значения |
#
Statistics.stdm — Function
stdm(itr, mean; corrected::Bool=true[, dims])
Вычисляет выборочное среднеквадратичное отклонение для коллекции itr с известными средними значениями mean.
Алгоритм возвращает статистическую оценку среднеквадратичного отклонения генеративного распределения с тем предположением, что каждый элемент itr — это значение, выбранное из одного и того же неизвестного распределения, причем эти значения некоррелированные. Для массивов расчет эквивалентен sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1)). Сумма масштабируется на n-1, если corrected имеет значение true, или на n, если corrected имеет значение false, где n — количество элементов в itr.
Если itr — это AbstractArray, можно предоставить dims для вычисления среднеквадратичного отклонения по измерениям. В этом случае mean должен быть массивом той же формы, что и mean(itr, dims=dims) (допускаются дополнительные конечные одинарные измерения).
|
Если массив содержит значения |
#
Statistics.var — Function
var(itr; corrected::Bool=true, mean=nothing[, dims])
Вычисляет выборочную дисперсию для коллекции itr.
Алгоритм возвращает статистическую оценку дисперсии генеративного распределения с тем предположением, что каждый элемент itr — это значение, выбранное из одного и того же неизвестного распределения, причем эти значения некоррелированные. Для массивов расчет эквивалентен sum((itr .- mean(itr)).^2) / (length(itr) - 1). Сумма масштабируется на n-1, если corrected имеет значение true, или на n, если corrected имеет значение false, где n — количество элементов в itr.
Если itr — это AbstractArray, можно предоставить dims для вычисления дисперсии по измерениям.
Можно указать предварительно вычисленное значение mean. Если указан аргумент dims, mean должен быть массивом той же формы, что и mean(itr, dims=dims) (допускаются дополнительные конечные одинарные измерения).
|
Если массив содержит значения |
#
Statistics.varm — Function
varm(itr, mean; dims, corrected::Bool=true)
Вычисляет выборочную дисперсию для коллекции itr с известными средними значениями mean.
Алгоритм возвращает статистическую оценку дисперсии генеративного распределения с тем предположением, что каждый элемент itr — это значение, выбранное из одного и того же неизвестного распределения, причем эти значения некоррелированные. Для массивов расчет эквивалентен sum((itr .- mean(itr)).^2) / (length(itr) - 1). Сумма масштабируется на n-1, если corrected имеет значение true, или на n, если corrected имеет значение false, где n — количество элементов в itr.
Если itr — это AbstractArray, можно предоставить dims для вычисления дисперсии по измерениям. В этом случае mean должен быть массивом той же формы, что и mean(itr, dims=dims) (допускаются дополнительные конечные одинарные измерения).
|
Если массив содержит значения |
#
Statistics.cor — Function
cor(x::AbstractVector)
Возвращает число один.
cor(X::AbstractMatrix; dims::Int=1)
Вычисляет матрицу корреляции Пирсона для матрицы X по измерению dims.
cor(x::AbstractVector, y::AbstractVector)
Вычисляет корреляцию Пирсона между векторами x и y.
cor(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims=1)
Вычисляет корреляцию Пирсона между векторами или матрицами X и Y по измерению dims.
#
Statistics.cov — Function
cov(x::AbstractVector; corrected::Bool=true)
Вычисляет дисперсию для вектора x. Сумма масштабируется на n-1, если corrected имеет значение true (по умолчанию), или на n, если corrected имеет значение false, где n = length(x).
cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true)
Вычисляет ковариационную матрицу для матрицы X по измерению dims. Сумма масштабируется на n-1, если corrected имеет значение true (по умолчанию), или на n, если corrected имеет значение false, где n = size(X, dims).
cov(x::AbstractVector, y::AbstractVector; corrected::Bool=true)
Вычисляет ковариацию между векторами x и y. Если corrected имеет значение true (по умолчанию), вычисляет , где означает комплексно сопряженное значение, а n = length(x) = length(y). Если corrected имеет значение false, вычисляет .
cov(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims::Int=1, corrected::Bool=true)
Вычисляет ковариацию между векторами или матрицами X и Y по измерению dims. Сумма масштабируется на n-1, если corrected имеет значение true (по умолчанию), или на n, если corrected имеет значение false, где n = size(X, dims) = size(Y, dims).
#
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
#
Statistics.mean — Function
mean(itr)
Вычисляет среднее значение всех элементов в коллекции.
|
Если |
Примеры
julia> using Statistics
julia> mean(1:20)
10.5
julia> mean([1, missing, 3])
missing
julia> mean(skipmissing([1, missing, 3]))
2.0
mean(f, itr)
Применяет функцию f к каждому элементу коллекции itr и берет среднее значение.
julia> using Statistics
julia> mean(√, [1, 2, 3])
1.3820881233139908
julia> mean([√1, √2, √3])
1.3820881233139908
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
mean(A::AbstractArray; dims)
Вычисляет среднее значение массива по заданным измерениям.
|
Совместимость: 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
#
Statistics.median — Function
median(itr)
Вычисляет медиану всех элементов в коллекции. Для четного количества элементов точного медианного элемента не существует, поэтому результат рассчитывается как среднее двух медианных элементов.
|
Если |
Примеры
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
median(A::AbstractArray; dims)
Вычисляет медиану массива по заданным измерениям.
Примеры
julia> using Statistics
julia> median([1 2; 3 4], dims=1)
1×2 Matrix{Float64}:
2.0 3.0
#
Statistics.middle — Function
middle(x)
Вычисляет среднюю величину скалярного значения, что эквивалентно самому значению x, но для согласованности имеет тип middle(x, x).
middle(x, y)
Вычисляет среднюю величину для двух чисел x и y, что эквивалентно по значению и типу вычислению их среднего значения ((x + y) / 2).
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
#
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(PERCENTILE.EXCв Excel, по умолчанию в Python,altdefв Stata) -
Определение 7:
alpha=1,beta=1(по умолчанию в Julia, R и NumPy,PERCENTILEиPERCENTILE.INCв Excel, в Python) -
Определение 8:
alpha=1/3,beta=1/3 -
Определение 9:
alpha=3/8,beta=3/8
|
Если |
Справочные материалы
-
Hyndman, R.J and Fan, Y. (1996) Sample Quantiles in Statistical Packages, The American Statistician, Vol. 50, No. 4, pp. 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
#
Statistics.quantile — Function
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(PERCENTILE.EXCв Excel, по умолчанию в Python,altdefв Stata) -
Определение 7:
alpha=1,beta=1(по умолчанию в Julia, R и NumPy,PERCENTILEиPERCENTILE.INCв Excel, в Python) -
Определение 8:
alpha=1/3,beta=1/3 -
Определение 9:
alpha=3/8,beta=3/8
|
Если |
Справочные материалы
-
Hyndman, R.J and Fan, Y. (1996) Sample Quantiles in Statistical Packages, The American Statistician, Vol. 50, No. 4, pp. 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