Статистика
Модуль стандартной библиотеки 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) (допускаются дополнительные концевые одноэлементные измерения).
Если массив содержит 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 Array{Int64,2}:
1 2
3 4
julia> mean!([1., 1.], v)
2-element Array{Float64,1}:
1.5
3.5
julia> mean!([1. 1.], v)
1×2 Array{Float64,2}:
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 Array{Float64,2}:
1.3820881233139908
2.2285192400943226
исходный кодmean(A::AbstractArray; dims)
Вычислить среднее значение массива по заданным размерностям.
mean для пустых массивов требует как минимум Julia 1.1.
Примеры
julia> using Statistics
julia> A = [1 2; 3 4]
2×2 Array{Int64,2}:
1 2
3 4
julia> mean(A, dims=1)
1×2 Array{Float64,2}:
2.0 3.0
julia> mean(A, dims=2)
2×1 Array{Float64,2}:
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 Array{Float64,2}:
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 Array{Float64,1}:
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 Array{Int64,1}:
1
2
3
julia> y = zeros(3);
julia> quantile!(y, x, [0.1, 0.5, 0.9]) === y
true
julia> y
3-element Array{Float64,1}:
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 Array{Float64,1}:
2.0
10.0
18.000000000000004
julia> quantile(skipmissing([1, 10, missing]), 0.5)
5.5
исходный код
© 2009–2020 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.5.3/stdlib/Statistics/