Статистические данные
Модуль стандартной библиотеки Statistics содержит базовые функции для работы со статистикой.
Statistics.stdФункция
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 может быть предоставлено для вычисления стандартного отклонения по измерениям, и means может содержать средние значения для каждого измерения itr.
Может быть предоставлено предварительно вычисленное значение mean . Когда dims указано, mean должен быть массивом с такой же формой, как и mean(itr, dims=dims) (допускаются дополнительные trailing singleton измерения).
Если массив содержит NaN или missing значения, результат также NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing для пропуска missing элементов и вычисления стандартного отклонения для не пропущенных значений.
Statistics.stdmФункция
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) (допускаются дополнительные trailing singleton измерения).
Если массив содержит NaN или missing значения, результат также NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing для пропуска missing элементов и вычисления стандартного отклонения для не пропущенных значений.
Statistics.varФункция
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) (допускаются дополнительные trailing singleton измерения).
Если массив содержит NaN или missing значения, результат также NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing для пропуска missing элементов и вычисления дисперсии для не пропущенных значений.
Statistics.varmФункция
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) (допускаются дополнительные trailing singleton измерения).
Если массив содержит NaN или missing значения, результат также NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing для пропуска missing элементов и вычисления дисперсии для не пропущенных значений.
Statistics.corФункция
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Функция
cov(x::AbstractVector; corrected::Bool=true)
Вычислить дисперсию вектора x. Если corrected равно true (по умолчанию), то сумма масштабируется с помощью n-1, в то время как сумма масштабируется с помощью n, если corrected равно false, где 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 (по умолчанию), вычисляет $\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)^*$.
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).
Statistics.mean!Функция
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Функция
mean(itr)
Вычислить среднее значение всех элементов в коллекции.
Если 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
mean(f::Function, itr)
Применить функцию f к каждому элементу коллекции itr и вычислить среднее.
julia> using Statistics julia> mean(√, [1, 2, 3]) 1.3820881233139908 julia> mean([√1, √2, √3]) 1.3820881233139908
mean(f::Function, A::AbstractArray; dims)
Применить функцию f к каждому элементу массива A и вычислить среднее по измерениям dims.
Этот метод требует как минимум 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.2285192400943226mean(A::AbstractArray; dims)
Вычислить среднее значение массива по заданным измерениям.
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
Statistics.median!Функция
median!(v)
Подобно median, но может перезаписать входной вектор.
Statistics.medianФункция
median(itr)
Вычислить медиану всех элементов в коллекции. Для чётного числа элементов точной медианного элемента не существует, поэтому результат эквивалентен вычислению среднего двух медианных элементов.
Если 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
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Функция
middle(x)
Вычислить середину скалярного значения, что эквивалентно x самому, но с типом middle(x, x) для согласованности.
middle(x, y)
Вычислить середину двух чисел x и y, что эквивалентно как по значению, так и по типу вычислению их среднего ((x + y) / 2).
middle(range)
Вычислить середину диапазона, что заключается в вычислении среднего его экстремумов. Поскольку диапазон упорядочен, среднее вычисляется для первого и последнего элемента.
julia> using Statistics julia> middle(1:10) 5.5
middle(a)
Вычислить середину массива a, что состоит в поиске его экстремумов и последующем вычислении их среднего.
julia> using Statistics
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!Функция
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(ExcelPERCENTILE.EXC, Python по умолчанию, Stataaltdef) - Опр. 7:
alpha=1,beta=1(Julia, R и NumPy по умолчанию, ExcelPERCENTILEиPERCENTILE.INC, Python'inclusive') - Опр. 8:
alpha=1/3,beta=1/3 - Опр. 9:
alpha=3/8,beta=3/8
Возникает ArgumentError, если v содержит NaN или missing значения.
Ссылки
Гиндман, Р.Дж. и Фан, Й. (1996) "Выборочные квантили в статистических пакетах", The American Statistician, т. 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
Statistics.quantileФункция
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-й порядковый статистический показатель, а γ - функция от 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(ExcelPERCENTILE.EXC, Python по умолчанию, Stataaltdef) - Опр. 7:
alpha=1,beta=1(Julia, R и NumPy по умолчанию, ExcelPERCENTILEиPERCENTILE.INC, Python'inclusive') - Опр. 8:
alpha=1/3,beta=1/3 - Опр. 9:
alpha=3/8,beta=3/8
Возникает ArgumentError, если v содержит NaN или missing значения. Используйте функцию skipmissing для пропуска missing записей и вычисления квантилей для значений, не являющихся пропущенными.
Ссылки
Гиндман, Р.Дж. и Фан, Й. (1996) "Выборочные квантили в статистических пакетах", The American Statistician, т. 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
© 2009–2022 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.8/stdlib/Statistics/