統計

Statistics 標準函式庫模組包含基本統計功能。

Statistics.std函式
std(itr; corrected::Bool=true, mean=nothing[, dims])

計算集合 itr 的樣本標準差。

此演算法會回傳生成分佈標準差的估計值,假設 itr 的每個項目都是從同一個未知分佈抽取的樣本,且這些樣本互不相關。對於陣列,此計算等於計算 sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1))。如果 correctedtrue,則會將總和縮放為 n-1,而如果 correctedfalse,則會將總和縮放為 n,其中 nitr 中的元素數量。

如果 itrAbstractArray,則可以提供 dims 來計算維度上的標準差。

可以提供預先計算的 mean。當指定 dims 時,mean 必須是與 mean(itr, dims=dims) 形狀相同的陣列(允許額外的尾隨單一維度)。

注意

如果陣列包含 NaNmissing 值,結果也會是 NaNmissing(如果陣列同時包含兩者,則優先顯示 missing)。使用 skipmissing 函數來略過 missing 項目並計算非 missing 值的標準差。

來源
Statistics.stdm函數
stdm(itr, mean; corrected::Bool=true[, dims])

計算集合 itr 的樣本標準差,已知平均值 (們) mean

此演算法會回傳生成分佈標準差的估計值,假設 itr 的每個項目都是從同一個未知分佈抽取的樣本,且這些樣本互不相關。對於陣列,此計算等於計算 sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1))。如果 correctedtrue,則會將總和縮放為 n-1,而如果 correctedfalse,則會將總和縮放為 n,其中 nitr 中的元素數量。

如果 itrAbstractArray,則可以提供 dims 來計算維度上的標準差。在這種情況下,mean 必須是與 mean(itr, dims=dims) 形狀相同的陣列(允許額外的尾隨單一維度)。

注意

如果陣列包含 NaNmissing 值,結果也會是 NaNmissing(如果陣列同時包含兩者,則優先顯示 missing)。使用 skipmissing 函數來略過 missing 項目並計算非 missing 值的標準差。

來源
Statistics.var函數
var(itr; corrected::Bool=true, mean=nothing[, dims])

計算集合 itr 的樣本變異數。

此演算法會回傳生成分佈變異數的估計值,假設 itr 的每個輸入都是從同一個未知分佈中抽取的樣本,且這些樣本互不相關。對於陣列,此運算等於計算 sum((itr .- mean(itr)).^2) / (length(itr) - 1)。如果 correctedtrue,則總和會以 n-1 縮放,而如果 correctedfalse,則總和會以 n 縮放,其中 nitr 中元素的數量。

如果 itrAbstractArray,則可以提供 dims 來計算維度上的變異數。

可以提供預先計算的 mean。當指定 dims 時,mean 必須是與 mean(itr, dims=dims) 形狀相同的陣列(允許額外的尾隨單一維度)。

注意

如果陣列包含 NaNmissing 值,結果也會是 NaNmissing(如果陣列同時包含兩者,則 missing 優先)。使用 skipmissing 函式可以省略 missing 輸入,並計算非 missing 值的變異數。

來源
Statistics.varm函式
varm(itr, mean; dims, corrected::Bool=true)

計算集合 itr 的樣本變異數,已知平均數為 mean

此演算法會回傳生成分佈變異數的估計值,假設 itr 的每個輸入都是從同一個未知分佈中抽取的樣本,且這些樣本互不相關。對於陣列,此運算等於計算 sum((itr .- mean(itr)).^2) / (length(itr) - 1)。如果 correctedtrue,則總和會以 n-1 縮放,而如果 correctedfalse,則總和會以 n 縮放,其中 nitr 中元素的數量。

如果 itrAbstractArray,則可以提供 dims 來計算維度上的變異數。在這種情況下,mean 必須是與 mean(itr, dims=dims) 形狀相同的陣列(允許額外的尾隨單例維度)。

注意

如果陣列包含 NaNmissing 值,結果也會是 NaNmissing(如果陣列同時包含兩者,則 missing 優先)。使用 skipmissing 函式可以省略 missing 輸入,並計算非 missing 值的變異數。

來源
Statistics.cor函式
cor(x::AbstractVector)

回傳數字一。

來源
cor(X::AbstractMatrix; dims::Int=1)

計算矩陣 X 沿著維度 dims 的 Pearson 相關矩陣。

來源
cor(x::AbstractVector, y::AbstractVector)

計算向量 xy 之間的 Pearson 相關。

來源
cor(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims=1)

計算向量或矩陣 XY 沿著維度 dims 之間的 Pearson 相關。

來源
Statistics.cov函數
cov(x::AbstractVector; corrected::Bool=true)

計算向量 x 的變異數。如果 correctedtrue(預設值),則總和會縮放為 n-1,而如果 correctedfalse,則總和會縮放為 n,其中 n = length(x)

來源
cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true)

計算矩陣 X 沿著維度 dims 的共變異數矩陣。如果 correctedtrue(預設值),則總和會縮放為 n-1,而如果 correctedfalse,則總和會縮放為 n,其中 n = size(X, dims)

來源
cov(x::AbstractVector, y::AbstractVector; corrected::Bool=true)

計算向量 xy 之間的共變異數。如果 correctedtrue(預設值),則計算 $\frac{1}{n-1}\sum_{i=1}^n (x_i-\bar x) (y_i-\bar y)^*$,其中 $*$ 表示複數共軛,且 n = length(x) = length(y)。如果 correctedfalse,則計算 $\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)

計算向量或矩陣 XY 沿著維度 dims 之間的共變異數。如果 correctedtrue(預設值),則總和會縮放為 n-1,而如果 correctedfalse,則總和會縮放為 n,其中 n = size(X, dims) = size(Y, dims)

來源
Statistics.mean!函數
mean!(r, v)

計算 r 單一維度的 v 的平均值,並將結果寫入 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 包含 NaNmissing 值,結果也會是 NaNmissing(如果陣列同時包含兩者,則優先使用 missing)。使用 skipmissing 函數來略過 missing 項目,並計算非 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 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)

在指定的維度上計算陣列的平均值。

Julia 1.1

空陣列的 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(itr)

計算集合中所有元素的中位數。對於偶數個元素,不存在確切的中位數元素,因此結果等於計算兩個中位數元素的平均值。

注意

如果 itr 包含 NaNmissing 值,結果也會是 NaNmissing(如果 itr 同時包含兩者,則優先使用 missing)。使用 skipmissing 函數來略過 missing 項目,並計算非 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)

計算兩個數字 xy 的中心,其值和類型都等於計算其平均值 ((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!函數
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 的元素將在原地部分排序。

樣本百分位數定義為 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 預設值相同。

關鍵字參數 alphabeta 對應於 Hyndman 和 Fan 中的相同參數,將它們設定為不同的值允許使用本文中定義的 4-9 方法中的任何一種方法來計算百分位數

  • 定義 4:alpha=0beta=1
  • 定義 5:alpha=0.5beta=0.5
  • 定義 6:alpha=0beta=0 (Excel PERCENTILE.EXC、Python 預設值、Stata altdef)
  • 定義 7:alpha=1beta=1 (Julia、R 和 NumPy 預設值、Excel PERCENTILEPERCENTILE.INC、Python 'inclusive')
  • 定義 8:alpha=1/3beta=1/3
  • 定義 9:alpha=3/8beta=3/8
注意

如果 v 包含 NaNmissing 值,則會擲回 ArgumentError

參考資料

  • Hyndman, R.J 和 Fan, Y. (1996)「統計套件中的樣本分位數」,美國統計學家,第 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)

在指定機率或機率向量或元組 p 上,計算集合 itr 的分位數,區間為 [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 預設值相同。

關鍵字參數 alphabeta 對應於 Hyndman 和 Fan 中的相同參數,將它們設定為不同的值允許使用本文中定義的 4-9 方法中的任何一種方法來計算百分位數

  • 定義 4:alpha=0beta=1
  • 定義 5:alpha=0.5beta=0.5
  • 定義 6:alpha=0beta=0 (Excel PERCENTILE.EXC、Python 預設值、Stata altdef)
  • 定義 7:alpha=1beta=1 (Julia、R 和 NumPy 預設值、Excel PERCENTILEPERCENTILE.INC、Python 'inclusive')
  • 定義 8:alpha=1/3beta=1/3
  • 定義 9:alpha=3/8beta=3/8
注意

如果 v 包含 NaNmissing 值,則會擲回 ArgumentError。使用 skipmissing 函數來省略 missing 輸入,並計算非遺失值的百分位數。

參考資料

  • Hyndman, R.J 和 Fan, Y. (1996)「統計套件中的樣本分位數」,美國統計學家,第 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
來源