Statistics

統計標準ライブラリモジュールには基本的な統計機能が含まれています。

Statistics.stdFunction
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 が指定されている場合、meanmean(itr, dims=dims) と同じ形状の配列でなければなりません(追加のトレーリングシングルトン次元は許可されます)。

Note

配列に NaN または missing 値が含まれている場合、結果も NaN または missing になります(配列に両方が含まれている場合は missing が優先されます)。skipmissing 関数を使用して missing エントリを省略し、非欠損値の標準偏差を計算してください。

source
Statistics.stdmFunction
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 を指定できます。その場合、meanmean(itr, dims=dims) と同じ形状の配列でなければなりません(追加の末尾の単一次元は許可されます)。

Note

配列に NaN または missing 値が含まれている場合、結果も NaN または missing になります(配列に両方が含まれている場合は missing が優先されます)。skipmissing 関数を使用して missing エントリを省略し、非欠損値の標準偏差を計算してください。

source
Statistics.varFunction
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 が指定されている場合、meanmean(itr, dims=dims) と同じ形状の配列でなければなりません(追加の末尾の単一次元は許可されます)。

Note

配列に NaN または missing 値が含まれている場合、結果も NaN または missing になります(配列に両方が含まれている場合は missing が優先されます)。skipmissing 関数を使用して missing エントリを省略し、非欠損値の分散を計算します。

source
Statistics.varmFunction
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 を指定できます。その場合、meanmean(itr, dims=dims) と同じ形状の配列でなければなりません(追加のトレーリングシングルトン次元は許可されます)。

Note

配列に NaN または missing 値が含まれている場合、結果も NaN または missing になります(配列に両方が含まれている場合は missing が優先されます)。skipmissing 関数を使用して missing エントリを省略し、非欠損値の分散を計算してください。

source
Statistics.corFunction
cor(x::AbstractVector)

1

source
cor(X::AbstractMatrix; dims::Int=1)

行列 X の次元 dims に沿ったピアソン相関行列を計算します。

source
cor(x::AbstractVector, y::AbstractVector)

ベクトル xy の間のピアソン相関を計算します。

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

ベクトルまたは行列 XY の間のピアソン相関を次元 dims に沿って計算します。

source
Statistics.covFunction
cov(x::AbstractVector; corrected::Bool=true)

ベクトル x の分散を計算します。correctedtrue(デフォルト)であれば、合計は n-1 でスケーリングされますが、correctedfalse の場合は合計は n でスケーリングされます。ここで、n = length(x) です。

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

行列 X の次元 dims に沿った共分散行列を計算します。correctedtrue(デフォルト)であれば、合計は n-1 でスケーリングされますが、correctedfalse の場合は合計は n でスケーリングされます。ここで、n = size(X, dims) です。

source
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)^*$ を計算します。

source
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) です。

source
Statistics.mean!Function
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
source
Statistics.meanFunction
mean(itr)

コレクション内のすべての要素の平均を計算します。

Note

itrNaN または missing 値が含まれている場合、結果も NaN または missing になります(配列に両方が含まれている場合は 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
source
mean(f, itr)

コレクション itr の各要素に関数 f を適用し、平均を取ります。

julia> using Statistics

julia> mean(√, [1, 2, 3])
1.3820881233139908

julia> mean([√1, √2, √3])
1.3820881233139908
source
mean(f, A::AbstractArray; dims)

配列 A の各要素に関数 f を適用し、次元 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
source
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
source
Statistics.medianFunction
median(itr)

コレクション内のすべての要素の中央値を計算します。要素数が偶数の場合、正確な中央値の要素は存在しないため、結果は2つの中央値の要素の平均を計算することと同等です。

Note

itrNaN または 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
source
median(A::AbstractArray; dims)

与えられた次元に沿った配列の中央値を計算します。

julia> using Statistics

julia> median([1 2; 3 4], dims=1)
1×2 Matrix{Float64}:
 2.0  3.0
source
Statistics.middleFunction
middle(x)

スカラー値の中央を計算します。これは x 自身と同等ですが、一貫性のために middle(x, x) の型になります。

source
middle(x, y)

二つの数 xy の中間を計算します。これは、値と型の両方において、平均((x + y) / 2)を計算することと同等です。

source
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
source
Statistics.quantile!Function
quantile!([q::AbstractArray, ] v::AbstractVector, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)

ベクトル v の指定された確率または確率のベクトルまたはタプル p における分位数を計算します。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=0, beta=1
  • 定義5: alpha=0.5, beta=0.5(MATLABデフォルト)
  • 定義6: alpha=0, beta=0(Excel PERCENTILE.EXC、Pythonデフォルト、Stata altdef
  • 定義7: alpha=1, beta=1(Julia、RおよびNumPyデフォルト、Excel PERCENTILEおよびPERCENTILE.INC、Python 'inclusive'
  • 定義8: alpha=1/3, beta=1/3
  • 定義9: alpha=3/8, beta=3/8
Note

vNaN または missing 値が含まれている場合、ArgumentError がスローされます。

参考文献

  • Hyndman, R.J と Fan, Y. (1996) "Sample Quantiles in Statistical Packages", The American Statistician, Vol. 50, No. 4, pp. 361-365
  • Quantile on Wikipedia では異なる分位数の定義について詳しく説明しています

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
source
Statistics.quantileFunction
quantile(itr, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)

コレクション itr の指定された確率または確率のベクトルまたはタプル p における分位数を計算します。キーワード引数 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=0, beta=1
  • 定義 5: alpha=0.5, beta=0.5(MATLAB デフォルト)
  • 定義 6: alpha=0, beta=0(Excel PERCENTILE.EXC、Python デフォルト、Stata altdef
  • 定義 7: alpha=1, beta=1(Julia、R および NumPy デフォルト、Excel PERCENTILE および PERCENTILE.INC、Python 'inclusive'
  • 定義 8: alpha=1/3, beta=1/3
  • 定義 9: alpha=3/8, beta=3/8
Note

vNaN または missing 値が含まれている場合、ArgumentError がスローされます。skipmissing 関数を使用して missing エントリを省略し、非欠損値の分位数を計算してください。

参考文献

  • Hyndman, R.J と Fan, Y. (1996) "Sample Quantiles in Statistical Packages", The American Statistician, Vol. 50, No. 4, pp. 361-365
  • Quantile on Wikipedia では異なる分位数の定義について詳しく説明しています

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
source