Статистика
Модуль стандартной библиотеки 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
для вычисления среднеквадратичного отклонения по измерениям, а means
может содержать средние значения для каждого измерения itr
.
Можно указать предварительно вычисленное значение 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
. Если corrected
имеет значение true
(по умолчанию), сумма масштабируется на n-1
, а если corrected
имеет значение false
, сумма масштабируется на n
, где n = length(x)
.
cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true)
Вычисляет ковариационную матрицу для матрицы X
по измерению dims
. Если corrected
имеет значение true
, сумма масштабируется на n-1
, либо же сумма масштабируется на 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
будут частично отсортированы на месте.
По умолчанию (alpha = beta = 1
) квантили вычисляются посредством линейной интерполяции между точками ((k-1)/(n-1), v[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
-
Определение 6:
alpha=0
,beta=0
(PERCENTILE.EXC
в Excel, по умолчанию в Python,altdef
в Stata) -
Определение 7:
alpha=1
,beta=1
(по умолчанию в Julia, R и NumPy,PERCENTILE
иPERCENTILE.INC
в Excel,'inclusive'
в 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]
, где γ
— это функция от j = floor(n*p + m)
, m = alpha + p*(1 - alpha - beta)
и g = n*p + m - j
.
По умолчанию (alpha = beta = 1
) квантили вычисляются посредством линейной интерполяции между точками ((k-1)/(n-1), v[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
-
Определение 6:
alpha=0
,beta=0
(PERCENTILE.EXC
в Excel, по умолчанию в Python,altdef
в Stata) -
Определение 7:
alpha=1
,beta=1
(по умолчанию в Julia, R и NumPy,PERCENTILE
иPERCENTILE.INC
в Excel,'inclusive'
в 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