Статистики
Модуль стандартной библиотеки Статистики содержит базовые статистические функции.
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) (допускаются дополнительные конечные одинарные измерения).
Если массив содержит NaN или missing значения, результат также NaN или missing (missing имеет приоритет, если массив содержит оба). Используйте функцию skipmissing для пропуска missing записей и вычисления стандартного отклонения для непустых значений.
Statistics.stdmФункция
stdm(itr, mean; corrected::Bool=true)
Вычислить выборочное стандартное отклонение коллекции 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) (допускаются дополнительные конечные одинарные измерения).
Если массив содержит 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) (допускаются дополнительные конечные одинарные измерения).
Если массив содержит 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) (допускаются дополнительные конечные одинарные измерения).
Если массив содержит 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.2285192400943226
исходный кодmean(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–2021 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.6.0/stdlib/Statistics/