Statistics
통계 표준 라이브러리 모듈은 기본 통계 기능을 포함합니다.
Statistics.std
— Functionstd(itr; corrected::Bool=true, mean=nothing[, dims])
컬렉션 itr
의 샘플 표준 편차를 계산합니다.
이 알고리즘은 itr
의 각 항목이 동일한 알려지지 않은 분포에서 추출된 샘플이라는 가정 하에 생성 분포의 표준 편차 추정치를 반환하며, 샘플은 상관관계가 없습니다. 배열의 경우, 이 계산은 sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1))
를 계산하는 것과 동일합니다. corrected
가 true
이면 합계는 n-1
로 조정되며, corrected
가 false
이면 합계는 n
으로 조정되며, 여기서 n
은 itr
의 요소 수입니다.
itr
이 AbstractArray
인 경우, 차원에 대해 표준 편차를 계산하기 위해 dims
를 제공할 수 있습니다.
미리 계산된 mean
을 제공할 수 있습니다. dims
가 지정되면, mean
은 mean(itr, dims=dims)
와 동일한 형태의 배열이어야 합니다(추가적인 후행 단일 차원은 허용됩니다).
배열에 NaN
또는 missing
값이 포함된 경우, 결과도 NaN
또는 missing
이 됩니다(missing
이 두 가지 모두 포함된 경우 우선합니다). skipmissing
함수를 사용하여 missing
항목을 생략하고 비어 있지 않은 값의 표준 편차를 계산하십시오.
Statistics.stdm
— Functionstdm(itr, mean; corrected::Bool=true[, dims])
컬렉션 itr
의 샘플 표준 편차를 알려진 평균 mean
으로 계산합니다.
이 알고리즘은 itr
의 각 항목이 동일한 알려지지 않은 분포에서 추출된 샘플이라고 가정할 때 생성 분포의 표준 편차 추정치를 반환합니다. 샘플은 서로 상관이 없다고 가정합니다. 배열의 경우, 이 계산은 sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1))
를 계산하는 것과 동일합니다. corrected
가 true
이면 합계는 n-1
로 조정되며, corrected
가 false
이면 합계는 n
으로 조정됩니다. 여기서 n
은 itr
의 요소 수입니다.
itr
이 AbstractArray
인 경우, 차원에 대해 표준 편차를 계산하기 위해 dims
를 제공할 수 있습니다. 이 경우 mean
은 mean(itr, dims=dims)
와 동일한 형태의 배열이어야 합니다(추가적인 후행 단일 차원은 허용됩니다).
배열에 NaN
또는 missing
값이 포함된 경우 결과도 NaN
또는 missing
이 됩니다(missing
이 두 가지가 모두 포함된 경우 우선합니다). skipmissing
함수를 사용하여 missing
항목을 생략하고 비어 있지 않은 값의 표준 편차를 계산하십시오.
Statistics.var
— Functionvar(itr; corrected::Bool=true, mean=nothing[, dims])
컬렉션 itr
의 샘플 분산을 계산합니다.
이 알고리즘은 itr
의 각 항목이 동일한 알려지지 않은 분포에서 추출된 샘플이라는 가정 하에 생성 분포의 분산 추정치를 반환하며, 샘플은 서로 독립적입니다. 배열의 경우, 이 계산은 sum((itr .- mean(itr)).^2) / (length(itr) - 1)
을 계산하는 것과 동일합니다. corrected
가 true
이면 합계는 n-1
로 조정되며, corrected
가 false
이면 합계는 n
으로 조정됩니다. 여기서 n
은 itr
의 요소 수입니다.
itr
이 AbstractArray
인 경우, 차원에 대해 분산을 계산하기 위해 dims
를 제공할 수 있습니다.
미리 계산된 mean
을 제공할 수 있습니다. dims
가 지정되면, mean
은 mean(itr, dims=dims)
와 동일한 형태의 배열이어야 합니다(추가적인 후행 단일 차원은 허용됩니다).
배열에 NaN
또는 missing
값이 포함된 경우, 결과도 NaN
또는 missing
이 됩니다(missing
이 두 가지가 모두 포함된 경우 우선합니다). skipmissing
함수를 사용하여 missing
항목을 생략하고 비어 있지 않은 값의 분산을 계산하십시오.
Statistics.varm
— Functionvarm(itr, mean; dims, corrected::Bool=true)
컬렉션 itr
의 샘플 분산을 알려진 평균 mean
으로 계산합니다.
이 알고리즘은 itr
의 각 항목이 동일한 알려지지 않은 분포에서 추출된 샘플이라는 가정 하에 생성 분포의 분산 추정치를 반환하며, 샘플은 서로 독립적입니다. 배열의 경우, 이 계산은 sum((itr .- mean(itr)).^2) / (length(itr) - 1)
을 계산하는 것과 동일합니다. corrected
가 true
이면 합계는 n-1
로 조정되며, corrected
가 false
이면 합계는 n
으로 조정되며, 여기서 n
은 itr
의 요소 수입니다.
itr
이 AbstractArray
인 경우, 차원에 대해 분산을 계산하기 위해 dims
를 제공할 수 있습니다. 이 경우, mean
은 mean(itr, dims=dims)
와 동일한 형태의 배열이어야 합니다(추가적인 후행 단일 차원은 허용됩니다).
배열에 NaN
또는 missing
값이 포함된 경우, 결과도 NaN
또는 missing
이 됩니다(missing
이 두 가지가 모두 포함된 경우 우선합니다). skipmissing
함수를 사용하여 missing
항목을 생략하고 비어 있지 않은 값의 분산을 계산하십시오.
Statistics.cor
— Functioncor(x::AbstractVector)
Return the number one.
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
— Functioncov(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
로 조정되며, corrected
가 false
인 경우 합계는 n
으로 조정됩니다. 여기서 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
로 조정되며, corrected
가 false
인 경우 합계는 n
으로 조정됩니다. 여기서 n = size(X, dims) = size(Y, dims)
입니다.
Statistics.mean!
— Functionmean!(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
— Functionmean(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, 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> 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!
— Functionmedian!(v)
median
와 유사하지만, 입력 벡터를 덮어쓸 수 있습니다.
Statistics.median
— Functionmedian(itr)
모든 요소의 중앙값을 계산합니다. 요소의 수가 짝수인 경우 정확한 중앙값 요소가 존재하지 않으므로 결과는 두 중앙값 요소의 평균을 계산하는 것과 같습니다.
itr
에 NaN
또는 missing
값이 포함된 경우 결과도 NaN
또는 missing
입니다(itr
에 둘 다 포함된 경우 missing
이 우선합니다). 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
— Functionmiddle(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!
— Functionquantile!([q::AbstractArray, ] v::AbstractVector, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)
벡터 v
의 분위수를 지정된 확률 또는 확률의 벡터 또는 튜플 p
에 대해 [0,1] 구간에서 계산합니다. p
가 벡터인 경우, 선택적으로 출력 배열 q
를 지정할 수 있습니다. (제공되지 않으면 새 출력 배열이 생성됩니다.) 키워드 인수 sorted
는 v
가 정렬되어 있다고 가정할 수 있는지를 나타냅니다. false
(기본값)인 경우, v
의 요소는 제자리에서 부분적으로 정렬됩니다.
샘플 분위수는 Q(p) = (1-γ)*x[j] + γ*x[j+1]
로 정의되며, 여기서 x[j]
는 v
의 j번째 순서 통계량이고, j = floor(n*p + m)
, m = alpha + p*(1 - alpha - beta)
및 γ = n*p + m - j
입니다.
기본적으로(alpha = beta = 1
), 분위수는 점 ((k-1)/(n-1), x[k])
사이의 선형 보간을 통해 계산됩니다. 여기서 k = 1:n
이고 n = length(v)
입니다. 이는 Hyndman과 Fan(1996)의 정의 7에 해당하며, R 및 NumPy의 기본값과 동일합니다.
키워드 인수 alpha
와 beta
는 Hyndman과 Fan의 동일한 매개변수에 해당하며, 이를 서로 다른 값으로 설정하면 이 논문에서 정의된 방법 4-9로 분위수를 계산할 수 있습니다:
- Def. 4:
alpha=0
,beta=1
- Def. 5:
alpha=0.5
,beta=0.5
(MATLAB 기본값) - Def. 6:
alpha=0
,beta=0
(ExcelPERCENTILE.EXC
, Python 기본값, Stataaltdef
) - Def. 7:
alpha=1
,beta=1
(Julia, R 및 NumPy 기본값, ExcelPERCENTILE
및PERCENTILE.INC
, Python'inclusive'
) - Def. 8:
alpha=1/3
,beta=1/3
- Def. 9:
alpha=3/8
,beta=3/8
v
에 NaN
또는 missing
값이 포함된 경우 ArgumentError
가 발생합니다.
References
- Hyndman, R.J and Fan, Y. (1996) "Sample Quantiles in Statistical Packages", The American Statistician, Vol. 50, No. 4, pp. 361-365
- Quantile on Wikipedia는 다양한 분위수 정의에 대한 세부 정보를 제공합니다.
Examples
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
— Functionquantile(itr, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)
컬렉션 itr
의 분위수(quantile)를 지정된 확률 또는 확률의 벡터 또는 튜플 p
에 대해 [0,1] 구간에서 계산합니다. 키워드 인수 sorted
는 itr
이 정렬되어 있다고 가정할 수 있는지를 나타냅니다.
샘플 분위수는 Q(p) = (1-γ)*x[j] + γ*x[j+1]
로 정의되며, 여기서 x[j]
는 itr
의 j번째 순서 통계량이고, j = floor(n*p + m)
, m = alpha + p*(1 - alpha - beta)
, γ = n*p + m - j
입니다.
기본적으로(alpha = beta = 1
), 분위수는 ((k-1)/(n-1), x[k])
사이의 선형 보간을 통해 계산됩니다. 여기서 k = 1:n
이고 n = length(itr)
입니다. 이는 Hyndman과 Fan(1996)의 정의 7에 해당하며, R 및 NumPy의 기본값과 동일합니다.
키워드 인수 alpha
와 beta
는 Hyndman과 Fan의 동일한 매개변수에 해당하며, 이를 서로 다른 값으로 설정하면 이 논문에서 정의된 방법 4-9로 분위수를 계산할 수 있습니다:
- Def. 4:
alpha=0
,beta=1
- Def. 5:
alpha=0.5
,beta=0.5
(MATLAB 기본값) - Def. 6:
alpha=0
,beta=0
(ExcelPERCENTILE.EXC
, Python 기본값, Stataaltdef
) - Def. 7:
alpha=1
,beta=1
(Julia, R 및 NumPy 기본값, ExcelPERCENTILE
및PERCENTILE.INC
, Python'inclusive'
) - Def. 8:
alpha=1/3
,beta=1/3
- Def. 9:
alpha=3/8
,beta=3/8
v
에 NaN
또는 missing
값이 포함되어 있으면 ArgumentError
가 발생합니다. skipmissing
함수를 사용하여 missing
항목을 생략하고 비어 있지 않은 값의 분위수를 계산하십시오.
References
- Hyndman, R.J and Fan, Y. (1996) "Sample Quantiles in Statistical Packages", The American Statistician, Vol. 50, No. 4, pp. 361-365
- Quantile on Wikipedia는 다양한 분위수 정의에 대한 세부 정보를 제공합니다.
Examples
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