Статистика
Модуль стандартной библиотеки 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 является массивом, то 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 является массивом, то 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 является массивом, то 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 является массивом, то 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 из Hyndman и Fan (1996), и совпадает с предустановками R и NumPy.
Параметры alpha и beta соответствуют тем же параметрам в работе Hyndman и Fan, изменяя их, можно вычислить квантили по любому из методов 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.
Ссылки
Hyndman, R.J и 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Функция
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.7.0/stdlib/Statistics/