معيار بيرس

في الإحصاءات القوية ، معيار بيرس هو قاعدة لإزالة القيم المتطرفة من مجموعات البيانات، والتي وضعها بنيامين بيرس .

تم استبعاد القيم المتطرفة وفقًا لمعيار بيرس

مشكلة القيم المتطرفة

في مجموعات البيانات التي تحتوي على قياسات عددية حقيقية، تُعتبر القيم الشاذة المشتبه بها هي القيم المقاسة التي تبدو خارج نطاق معظم قيم البيانات الأخرى. من شأن هذه القيم الشاذة أن تُغير بشكل كبير تقدير الموقع إذا ما استُخدم المتوسط ​​الحسابي كإحصائية موجزة للموقع. تكمن المشكلة في أن المتوسط ​​الحسابي شديد الحساسية لوجود أي قيم شاذة؛ وبلغة الإحصاء، فإن المتوسط ​​الحسابي ليس قويًا .

في حال وجود قيم متطرفة، أمام الإحصائي خياران. أولاً، يمكنه إزالة القيم المتطرفة المشتبه بها من مجموعة البيانات، ثم استخدام المتوسط ​​الحسابي لتقدير معلمة الموقع . ثانياً، يمكنه استخدام إحصائية قوية، مثل إحصائية الوسيط .

معيار بيرس هو إجراء إحصائي للتخلص من القيم المتطرفة.

استخدامات معيار بيرس

كتب عالم الإحصاء ومؤرخ الإحصاء ستيفن إم. ستيجلر ما يلي عن بنيامين بيرس : [ 1 ]

في عام 1852، نشر أول اختبار دلالة مصمم لإخبار الباحث ما إذا كان ينبغي رفض قيمة شاذة (بيرس 1852، 1878). وقد تميز هذا الاختبار، القائم على نوع من الحجج القائمة على نسبة الاحتمال ، بإثارته نقاشًا دوليًا حول جدوى مثل هذه الإجراءات ( أنسكومب ، 1960، رايدر، 1933، ستيجلر ، 1973أ).

يستند معيار بيرس إلى تحليل إحصائي للتوزيع الغاوسي . وعلى عكس بعض المعايير الأخرى لإزالة القيم الشاذة، يمكن تطبيق طريقة بيرس لتحديد قيمتين شاذتين أو أكثر.

"يقترح تحديد ذلك في سلسلة منم{\displaystyle m}تُحدد الملاحظات حد الخطأ، الذي يمكن بعده رفض جميع الملاحظات التي تنطوي على هذا القدر الكبير من الخطأ، شريطة أن يكون هناك عدد كافٍ منها.ن{\displaystyle n}مثل هذه الملاحظات. المبدأ الذي يُقترح على أساسه حل هذه المشكلة هو أنه ينبغي رفض الملاحظات المقترحة عندما يكون احتمال نظام الأخطاء الناتج عن الاحتفاظ بها أقل من احتمال نظام الأخطاء الناتج عن رفضها مضروبًا في احتمال إجراء هذا العدد من الملاحظات الشاذة، وليس أكثر. [ 2 ]

يقدم هوكينز [ 3 ] صيغة للمعيار.

تم استخدام معيار بيرس لعقود في هيئة المسح الساحلي للولايات المتحدة، [ 4 ] والتي أعيد تسميتها إلى هيئة المسح الساحلي والجيوديسي للولايات المتحدة في عام 1878:

"من عام 1852 إلى عام 1867 شغل منصب مدير تحديد خطوط الطول في هيئة المسح الساحلي الأمريكية، ومن عام 1867 إلى عام 1874 شغل منصب مشرف الهيئة. وخلال هذه السنوات، كان اختباره يُستخدم باستمرار من قبل جميع موظفي هذه المؤسسة الإحصائية الأكثر نشاطًا وميلًا للرياضيات في ذلك العصر." [ 1 ]

تمت مناقشة معيار بيرس في كتاب ويليام شوفينيه . [ 2 ]

التطبيقات

يُستخدم معيار بيرس في إزالة نقاط البيانات الضعيفة من أزواج الملاحظات لإجراء تحليل انحدار بين الملاحظتين (مثل الانحدار الخطي). لا يعتمد معيار بيرس على بيانات الملاحظة نفسها (بل على خصائصها فقط)، مما يجعله عملية قابلة للتكرار بدرجة عالية ويمكن حسابه بشكل مستقل عن العمليات الأخرى. هذه الميزة تجعل معيار بيرس مثاليًا لتحديد القيم الشاذة في تطبيقات الحاسوب، إذ يمكن كتابته كدالة استدعاء.

المحاولات السابقة

في عام 1855، حاول بي. إيه. غولد تبسيط تطبيق معيار بيرس من خلال إنشاء جداول قيم تمثل القيم المستخرجة من معادلات بيرس. [ 5 ] ولا يزال هناك تباين بين خوارزمية غولد والتطبيق العملي لمعيار بيرس.

في عام ٢٠٠٣، أعاد إس إم روس (جامعة نيو هيفن) تقديم خوارزمية غولد (التي تُعرف الآن باسم "طريقة بيرس") مع مجموعة بيانات جديدة وشرح تفصيلي للخوارزمية. لا تزال هذه المنهجية تعتمد على استخدام جداول البحث، والتي تم تحديثها في هذا العمل (جدول معايير بيرس). [ ٦ ]

في عام 2008، قام الجيولوجي الدنماركي ك. تومسن بمحاولة كتابة رمز زائف. [ 7 ] على الرغم من أن هذا الرمز وفر إطارًا لخوارزمية غولد، إلا أن المستخدمين لم ينجحوا في حساب القيم التي أبلغ عنها كل من بيرس وغولد.

في عام ٢٠١٢، أصدر سي. دارديس حزمة R البرمجية "Peirce" التي تتضمن منهجيات متنوعة (معيار بيرس وطريقة شوفينيه) مع مقارنات لإزالة القيم الشاذة. وقد نجح دارديس وزميله سيمون مولر في تطبيق الشفرة الزائفة لثومسن في دالة تُسمى "findx". يُعرض الكود في قسم تطبيق R أدناه. تتوفر مراجع حزمة R البرمجية على الإنترنت [ ٨ ] ، بالإضافة إلى مراجعة غير منشورة لنتائج حزمة R البرمجية [ ٩ ] .

في عام 2013، أتاحت إعادة فحص خوارزمية غولد واستخدام وحدات برمجة بايثون المتقدمة (أي numpy و scipy) إمكانية حساب قيم عتبة الخطأ التربيعي لتحديد القيم الشاذة.

تطبيق بايثون

لاستخدام معيار بيرس، يجب أولاً فهم قيم المدخلات والمخرجات. ينتج عن تحليل الانحدار (أو مطابقة المنحنيات مع البيانات) أخطاء متبقية (أو الفرق بين المنحنى المطابق ونقاط الملاحظة). لذلك، ترتبط كل نقطة ملاحظة بخطأ متبقي مرتبط بمنحنى مطابق. بأخذ مربع الخطأ المتبقي (أي رفعه إلى القوة 2)، تُعبّر الأخطاء المتبقية عن قيم موجبة. إذا كان مربع الخطأ كبيرًا جدًا (أي بسبب ضعف الملاحظة)، فقد يُسبب مشاكل في معلمات الانحدار (مثل الميل ونقطة التقاطع لمنحنى خطي) المستخرجة من مطابقة المنحنى .

كانت فكرة بيرس هي تحديد الخطأ إحصائيًا باعتباره "كبيرًا جدًا"، وبالتالي يُصنف كقيمة شاذة يمكن استبعادها من البيانات لتحسين مطابقة البيانات مع المنحنى. وقد حدد ك. تومسن ثلاثة معايير لإجراء الحساب: عدد أزواج البيانات (N)، وعدد القيم الشاذة المراد استبعادها (n)، وعدد معاملات الانحدار (مثل المعاملات) المستخدمة في مطابقة المنحنى للحصول على البواقي (m). وتتمثل النتيجة النهائية لهذه العملية في حساب قيمة عتبة (للخطأ التربيعي) حيث تُحتفظ بالبيانات التي يقل خطأها التربيعي عن هذه العتبة، وتُستبعد البيانات التي يزيد خطأها التربيعي عن هذه القيمة (أي تُعتبر قيمة شاذة).

لأن معيار بيرس لا يأخذ المشاهدات أو معلمات المطابقة أو الأخطاء المتبقية كمدخلات، يجب إعادة ربط المخرجات بالبيانات. يؤدي حساب متوسط ​​جميع مربعات الأخطاء (أي متوسط ​​مربع الخطأ) وضربه في مربع الخطأ المحدد (أي مخرجات هذه الدالة) إلى الحصول على قيمة العتبة الخاصة بالبيانات المستخدمة لتحديد القيم الشاذة.

يقوم كود بايثون التالي بإرجاع قيم x-squared لقيمة N (العمود الأول) و n (الصف العلوي) المعطاة في الجدول 1 (m = 1) والجدول 2 (m = 2) من كتاب غولد 1855. [ 5 ] نظرًا لطريقة نيوتن للتكرار، لم تعد جداول البحث، مثل N مقابل log Q (الجدول الثالث في غولد، 1855) و x مقابل log R (الجدول الثالث في بيرس، 1852 والجدول الرابع في غولد، 1855) ضرورية.

كود بايثون

#!/usr/bin/env python3 import numpy import scipy.specialدالة peirce_dev ( N : int , n : int , m : int ) -> float : """معيار بيرس:  تُرجع هذه الدالة انحراف خطأ العتبة التربيعي لتحديد القيم الشاذة  باستخدام معيار بيرس بناءً على منهجية غولد.  الوسائط:  - int، العدد الإجمالي للملاحظات (N)  - int، عدد القيم الشاذة المراد إزالتها (n)  - int، عدد المتغيرات المجهولة في النموذج (m)  القيمة المُعادة:  float، انحراف خطأ العتبة التربيعي (x2)  """ # تعيين قيم float لمتغيرات الإدخال: N = float ( N ) n = float ( n ) m = float ( m )# التحقق من عدد المشاهدات: إذا كان N > 1 : # حساب Q (الجذر النوني لمعادلة غولد B): Q = ( n ** ( n / N ) * ( N - n ) ** (( N - n ) / N )) / N # # تهيئة قيم R (كأعداد عشرية) r_new = 1.0 r_old = 0.0 # <- ضروري لتفعيل حلقة while # # بدء التكرار للتقارب على R: while abs ( r_new - r_old ) > ( N * 2.0e-16 ): # حساب لامدا # (1/(Nn) الجذر النوني لمعادلة غولد A'): ​​ldiv = r_new ** n إذا كان ldiv == 0 : ldiv = 1.0e-6 لامدا = (( Q ** N ) / ( ldiv )) ** ( 1.0 / ( N - n )) # حساب مربع x (معادلة غولد C): x2 = 1.0 + ( N - m - n ) / n * ( 1.0 - Lamda ** 2.0 ) # إذا أصبحت x2 سالبة، فأرجع 0: إذا كانت x2 < 0 : x2 = 0.0 r_old = r_new وإلا : # استخدم مربع x لتحديث R ( معادلة غولد D ) : r_old = r_new r_new = numpy.exp ( ( x2 - 1 ) / 2.0 ) * scipy.special.erfc ( numpy.sqrt ( x2 ) / numpy.sqrt ( 2.0 ) ) وإلا : x2 = 0.0 أرجع x2

كود جافا

استيراد org.apache.commons.math3.special.Erf ;public class PierceCriterion {/**  * معيار بيرس  * <p>  * يُعيد انحراف خطأ العتبة التربيعي لتحديد القيم الشاذة  * باستخدام معيار بيرس بناءً على منهجية غولد.  * <p>  * الوسائط:  * - عدد صحيح، إجمالي عدد المشاهدات (N)  * - عدد صحيح، عدد القيم الشاذة المراد إزالتها (n)  * - عدد صحيح، عدد متغيرات النموذج المجهولة (m)  * القيمة المرجعة:  * عدد عشري، عتبة الخطأ التربيعي (x2)  **/ public static final double peirce_dev ( double N , double n , double m ) { // التحقق من عدد المشاهدات: double x2 = 0.0 ; if ( N > 1 ) { // حساب Q (الجذر النوني لمعادلة غولد B): double Q = ( Math . pow ( n , ( n / N )) * Math . pow (( N - n ), (( N - n ) / N ))) / N ;// تهيئة قيم R (كأعداد عشرية) double r_new = 1.0 ; double r_old = 0.0 ; // <- ضروري لعرض حلقة while// بدء التكرار للتقارب على R: while ( Math.abs ( r_new - r_old ) > ( N * 2.0e - 16 )) { // حساب لامدا // (1 / (N - n ) الجذر النوني لمعادلة غولد A'): ​​double ldiv = Math.pow ( r_new , n ) ; if ( ldiv == 0 ) { ldiv = 1.0e-6 ; } double Lamda = Math.pow ( ( Math.pow ( Q , N ) / ( ldiv )), ( 1.0 / ( N - n ) )); // حساب مربع x (معادلة غولد C): = 1.0 + ( N - m - n ) / n * ( 1.0 - Math.pow ( Lamda , 2.0 ) ); // إذا أصبحت قيمة x2 سالبة، فأرجع 0: إذا ( x2 < 0 ) { x2 = 0.0 ; r_old = r_new ; } else { // استخدم مربع x لتحديث R (معادلة غولد D): r_old = r_new ; r_new = Math.exp ( ( x2 - 1 ) / 2.0 ) * Erf.erfc ( Math.sqrt ( x2 ) / Math.sqrt ( 2.0 ) ) ; } } } else { x2 = 0.0 ; } return x2 ; } }

تطبيق R

تمت كتابة كود تومسن بنجاح في استدعاء الدالة التالية، "findx"، بواسطة سي. دارديس وإس. مولر في عام 2012، والتي تُرجع أقصى انحراف للخطأ.x{\displaystyle x}استكمالاً لكود بايثون المعروض في القسم السابق، يتم هنا أيضًا عرض المكافئ R لـ "peirce_dev" الذي يُرجع مربع أقصى انحراف للخطأ.x2{\displaystyle x^{2}}تُعيد هاتان الدالتان قيمًا متكافئة إما بتربيع القيمة المُعادة من دالة "findx" أو بأخذ الجذر التربيعي للقيمة المُعادة من دالة "peirce_dev". تكمن الاختلافات في معالجة الأخطاء. على سبيل المثال، تُعيد دالة "findx" قيمة NaN للبيانات غير الصالحة، بينما تُعيد دالة "peirce_dev" القيمة 0 (مما يسمح باستمرار العمليات الحسابية دون الحاجة إلى معالجة إضافية لقيم NaN). كذلك، لا تدعم دالة "findx" أي معالجة للأخطاء عندما يزداد عدد القيم الشاذة المحتملة ليقترب من عدد المشاهدات (تُصدر خطأ القيمة المفقودة وتحذير NaN).

كما هو الحال مع إصدار بايثون، فإن الخطأ التربيعي (أي،x2{\displaystyle x^{2}}يجب ضرب القيمة المُعادة من دالة "peirce_dev" في متوسط ​​مربع الخطأ لنموذج المطابقة للحصول على قيمة دلتا التربيعية (Δ2). استخدم Δ2 لمقارنة قيم مربع الخطأ لنموذج المطابقة. تُعتبر أي أزواج من المشاهدات ذات مربع خطأ أكبر من Δ2 قيمًا شاذة، ويمكن إزالتها من النموذج. يجب كتابة مُكرِّر لاختبار قيم n المتزايدة حتى يصبح عدد القيم الشاذة المُحدَّدة (بمقارنة Δ2 بمربعات أخطاء نموذج المطابقة) أقل من القيم المفترضة (أي n لبيرس).

كود R

findx <- function ( N , k , m ) { # طريقة من K. Thomsen (2008) # كتبها C. Dardis و S. Muller (2012) # متاحة عبر الإنترنت: https://r-forge.r-project.org/R/?group_id=1473 # # تعريفات المتغيرات: # N :: عدد المشاهدات # k :: عدد القيم الشاذة المحتملة المراد إزالتها # m :: عدد الكميات المجهولة # # تتطلب دالة الخطأ التكميلية، erfc: erfc <- function ( x ) 2 * pnorm ( x * sqrt ( 2 ), lower.tail = FALSE ) # x <- 1 if (( N - m - k ) <= 0 ) { return ( NaN ) print ( NaN ) } else { x <- min ( x , sqrt (( N - m ) / k ) - 1e-10 ) # # لوغاريتم معادلة غولد B: LnQN <- k * log ( k ) + ( N - k ) * log ( N - k ) - N * log ( N ) # # معادلة غولد D: R1 <- exp (( x ^ 2 - 1 ) / 2 ) * erfc ( x / sqrt ( 2 )) # # معادلة غولد A' محلولة لـ R باستخدام استبدال لامدا: R2 <- exp ( ( LnQN - 0.5 * ( N - k ) * log (( N - m - k * x ^ 2 ) / ( N - m - k) ) / k ) # # مساواة معادلتي R: R1d <- x * R1 - sqrt ( 2 / pi / exp ( 1 )) R2d <- x * ( N - k ) / ( N - m - k * x ^ 2 ) * R2 # # تحديث x: oldx <- x x <- oldx - ( R1 - R2 ) / ( R1d - R2d ) # # التكرار حتى التقارب: while ( abs ( x - oldx ) >= N * 2e-16 ) { R1 <- exp (( x ^ 2 - 1 ) / 2 ) * erfc ( x / sqrt ( 2 )) R2 <- exp ( ( LnQN - 0.5 * ( N - k ) * log (( N - m - k * x ^ 2 ) / ( N - m - k )) ) / k ) R1d <- x * R1 - sqrt ( 2 / pi / exp ( 1 )) R2d <- x * ( N - k ) / ( N - m - k * x ^ 2 ) * R2 oldx <- x x <- oldx - ( R1 - R2 ) / ( R1d - R2d ) } }return ( x ) }
peirce_dev <- function ( N , n , m ) { # N :: العدد الإجمالي للمشاهدات # n :: عدد القيم الشاذة المراد إزالتها # m :: عدد متغيرات النموذج المجهولة (مثل معاملات الانحدار) # # التحقق من عدد المشاهدات: إذا كان ( N > 1 ) { # حساب Q (الجذر النوني لمعادلة غولد B): Q = ( n ^ ( n / N ) * ( N - n ) ^ (( N - n ) / N )) / N # # تهيئة قيم R: Rnew = 1.0 Rold = 0.0 # <- ضروري لتفعيل حلقة while # بينما ( abs ( Rnew - Rold ) > ( N * 2.0e-16 )) { # حساب Lamda (1/(Nn)الجذر النوني لمعادلة غولد A'): ​​ldiv = Rnew ^ n إذا كان ( ldiv == 0 ) { ldiv = 1.0e-6 } Lamda = (( Q ^ N ) / ( ldiv) )) ^ ( 1.0 / ( N - n )) # # حساب مربع x (معادلة غولد C): x2 = 1.0 + ( N - m - n ) / n * ( 1.0 - Lamda ^ 2.0 ) # # إذا أصبحت x2 سالبة، اجعلها تساوي صفرًا: if ( x2 < 0 ) { x2 = 0 Rold = Rnew } else { # # استخدام مربع x لتحديث R (معادلة غولد D): # ملاحظة: تم استبدال دالة الخطأ (erfc) بدالة pnorm (Rbasic): # المصدر: # http://stat.ethz.ch/R-manual/R-patched/library/stats/html/Normal.html Rold = Rnew Rnew =exp (( x2 - 1 ) / 2.0 ) * ( 2 * pnorm ( sqrt ( x2 ) / sqrt ( 2 ) * sqrt ( 2 ), lower = FALSE )) } } } else { x2 = 0 } x2 }

ملحوظات

  1. 1 2 إس. إم. ستيجلر، "الإحصاء الرياضي في المراحل المبكرة"، حوليات الإحصاء، المجلد 6، العدد 2، ص 246، 1978. متاح على الإنترنت: https://www.jstor.org/stable/2958876
  2. ١ ٢ وردت هذه المقولة في الملاحظة التحريرية في الصفحة ٥١٦ من كتاب " مجموعة كتابات بيرس" (طبعة ١٩٨٢). وتشير المقولة إلى كتاب "دليل علم الفلك" (٢: ٥٥٨) لشوفينيه.
  3. دي إم هوكينز (1980). "نبذة تاريخية مبكرة عن رفض القيم المتطرفة"، تحديد القيم المتطرفة (دراسات في الاحتمالات التطبيقية والإحصاء). تشابمان وهول، صفحة 10.
  4. بيرس (1878)
  5. 1 2 غولد، بكالوريوس الآداب، "حول معيار بيرس لرفض الملاحظات المشكوك فيها، مع جداول لتسهيل تطبيقه"، المجلة الفلكية ، العدد 83، المجلد 4، العدد 11، الصفحات 81-87، 1855. DOI: 10.1086/100480.
  6. روس، إس إم، "معيار بيرس لإزالة البيانات التجريبية المشكوك فيها"، مجلة تكنولوجيا الهندسة ، المجلد 2، العدد 2، الصفحات 1-12، 2003.
  7. تومسن، ك.، "الموضوع: حساب الجداول لاستخدامها مع معيار بيرس - في عامي 1855 و2008"، منتدى الرياضيات في دريكسل، نُشر في 5 أكتوبر 2008. تم الوصول إليه في 15 يوليو 2013.
  8. سي. دارديس، "حزمة: بيرس"، آر-فورج، تم الاطلاع عليه عبر الإنترنت: https://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/Peirce/Peirce-manual.pdf?root=peirce
  9. سي. دارديس، "معيار بيرس لرفض القيم الشاذة غير الطبيعية؛ تحديد نطاق التطبيق"، مجلة البرمجيات الإحصائية (غير منشور). متاح على الإنترنت: https://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/Peirce/PeirceSub.pdf?root=peirce

مراجع