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.0Statistics.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.0mean(f, itr)قم بتطبيق الدالة f على كل عنصر من عناصر المجموعة itr واحسب المتوسط.
julia> using Statistics
julia> mean(√, [1, 2, 3])
1.3820881233139908
julia> mean([√1, √2, √3])
1.3820881233139908mean(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.2285192400943226mean(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.5Statistics.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.0median(A::AbstractArray; dims)احسب الوسيط لمصفوفة على طول الأبعاد المعطاة.
أمثلة
julia> using Statistics
julia> median([1 2; 3 4], dims=1)
1×2 Matrix{Float64}:
2.0 3.0Statistics.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.95Statistics.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.8000000000000003Statistics.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