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
، بينما يتم تحجيم المجموع بـ n
إذا كان corrected
هو false
مع n
هو عدد العناصر في itr
.
إذا كانت itr
عبارة عن AbstractArray
، يمكن تقديم dims
لحساب الانحراف المعياري عبر الأبعاد.
يمكن تقديم mean
محسوبة مسبقًا. عندما يتم تحديد dims
، يجب أن تكون mean
مصفوفة بنفس شكل mean(itr, dims=dims)
(تُسمح بأبعاد فردية إضافية في النهاية).
!!! ملاحظة إذا كانت المصفوفة تحتوي على قيم NaN
أو missing
، فإن النتيجة ستكون أيضًا NaN
أو missing
(missing
تأخذ الأولوية إذا كانت المصفوفة تحتوي على كلاهما). استخدم دالة skipmissing
لتجاهل الإدخالات المفقودة وحساب الانحراف المعياري للقيم غير المفقودة.
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
، بينما يتم تحجيم المجموع بـ n
إذا كان corrected
هو false
حيث أن n
هو عدد العناصر في itr
.
إذا كانت itr
عبارة عن AbstractArray
، يمكن توفير dims
لحساب الانحراف المعياري عبر الأبعاد. في هذه الحالة، يجب أن يكون mean
مصفوفة بنفس شكل mean(itr, dims=dims)
(تُسمح بأبعاد فردية إضافية في النهاية).
!!! ملاحظة إذا كانت المصفوفة تحتوي على قيم NaN
أو missing
، فإن النتيجة ستكون أيضًا NaN
أو missing
(missing
تأخذ الأولوية إذا كانت المصفوفة تحتوي على كلاهما). استخدم دالة skipmissing
لتجاهل الإدخالات المفقودة وحساب الانحراف المعياري للقيم غير المفقودة.
Statistics.var
— Functionvar(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
لتجاهل الإدخالات المفقودة وحساب التباين للقيم غير المفقودة.
Statistics.varm
— Functionvarm(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
لتجاهل الإدخالات المفقودة وحساب التباين للقيم غير المفقودة.
Statistics.cor
— Functioncor(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
— Functioncov(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!
— 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
لتجاهل الإدخالات المفقودة وحساب المتوسط للقيم غير المفقودة.
أمثلة
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
للمصفوفات الفارغة يتطلب على الأقل جوليا 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
(missing
لها الأسبقية إذا كانت itr
تحتوي على كلاهما). استخدم دالة skipmissing
لتجاهل الإدخالات المفقودة وحساب الوسيط للقيم غير المفقودة.
أمثلة
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]
هو الإحصاء من الرتبة j لـ v
، 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)
. وهذا يتوافق مع التعريف 7 لـ Hyndman و Fan (1996)، وهو نفس الافتراضي في 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
!!! ملاحظة يتم طرح ArgumentError
إذا كانت v
تحتوي على قيم NaN
أو missing
.
المراجع
- Hyndman, R.J و Fan, Y. (1996) "Sample Quantiles in Statistical Packages"، 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 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
عند احتمال محدد أو متجه أو مجموعة من الاحتمالات p
في الفترة [0,1]. تشير الوسيطة الرئيسية sorted
إلى ما إذا كان يمكن افتراض أن itr
مرتبة.
تعرف كميات العينة بواسطة Q(p) = (1-γ)*x[j] + γ*x[j+1]
، حيث x[j]
هو الإحصاء من الرتبة j من itr
، 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)
. وهذا يتوافق مع التعريف 7 من هايندمان وفان (1996)، وهو نفس الافتراضي في R وNumPy.
تشير الوسيطات الرئيسية alpha
و beta
إلى نفس المعلمات في هايندمان وفان، مما يسمح بحساب الكميات باستخدام أي من الطرق 4-9 المحددة في هذه الورقة:
- التعريف 4:
alpha=0
،beta=1
- التعريف 5:
alpha=0.5
،beta=0.5
(افتراضي MATLAB) - التعريف 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
لتجاهل الإدخالات المفقودة وحساب الكميات للقيم غير المفقودة.
المراجع
- هايندمان، R.J وفان، 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