علوم وفضاء

histogram: هل مساحة 1 تعني شمول البيانات كلها؟

أربع قيم داخلة وقيمتان خارج المدى.
المساحة 1 لا تسجل القيم المستبعدة.

في histogram تُهمل القيم خارج range؛ density=True تطبّع التكامل داخل المدى إلى 1، وFalse تعيد أعداد الفئات. [1]

التطبيع له مقام محدد

في histogram تُهمل القيم خارج range؛ density=True تطبّع التكامل داخل المدى إلى 1، وFalse تعيد أعداد الفئات. [1]

عند bins عددًا صحيحًا، تصف الوثائق فئات متساوية العرض داخل المدى المعطى. [1]

سنثبت فئتين والمدى من 0 إلى 4؛ عرض كل فئة 2. جميع قيمنا داخل الفئة أو خارج المدى بوضوح، وليست على الأطراف. لذلك لا نختبر هنا الاستثناء الخاص بالطرف الأخير أو خلافًا في عد قيمة مشتركة بين فئتين.

نعني بالمساحة في هذا المقال مجموع ارتفاع كل فئة مضروبًا في عرضها. أما نسبة الدخول فهي عدد القيم التي احتسبت مقسومًا على عدد المدخلات الأصلي. هذان حسابان مختلفان سنحتفظ بهما بجانب نتيجة الدالة.

ست قيم لا تعني ست قيم داخلة

نختار [0.5,1.5,2.5,3.5,-2,6] مع bins=2 وrange=(0,4). أعاد العد [2,2]؛ الداخل 4 والخارج 2 من أصل 6.

الكثافتان المسجلتان 1/4 و1/4، وعرض كل فئة 2؛ المساحتان 1/2 و1/2 ومجموعهما 1. نسبة الداخل 4/6=2/3، ومجموع الارتفاعين 1/2.

import numpy as np a=np.array([0.5,1.5,2.5,3.5,-2,6],dtype=np.float64) counts,edges=np.histogram(a,bins=2,range=(0,4),density=False) h,de=np.histogram(a,bins=2,range=(0,4),density=True) areas=h*np.diff(de) coverage=counts.sum()/a.size

على NumPy 2.3.5 و CPython 3.12.14، كانت edges و de=[0,2,4] بالشكل (3,). كان counts بالشكل (2,) ومن int64، و h=[0.25,0.25] بالشكل (2,) ومن float64. سجل مجموع areas القيمة 1، دون تغيير a.

في مرجعنا الصحيح، 0.5 و1.5 تقعان في الفئة الأولى، و2.5 و3.5 في الثانية. -2 أقل من المدى، و6 أكبر منه. نجمع عددي الفئتين لنحصل على 4؛ وإضافة الخارجتين تعيد العدد الأصلي 6.

لحساب الكثافة المرجعية، نأخذ عدد الفئة 2 ونقسمه على الداخل 4 ثم على العرض 2: الناتج 2/(4×2)=1/4. ضربه في العرض يعيد 1/2. كررنا ذلك للفئة الثانية، فبلغ مجموع المساحتين 1.

لو سألنا عن نصيب الفئة من القائمة الأصلية، فالمقام 6: لكل فئة 2/6=1/3، ومجموعهما 2/3. لا نستبدل هذه الحصتين بنصفين ثم نزعم أن القيم الست كلها دخلت العد. المساحة المطبّعة وصفت التقسيم بين القيم الأربع المحتسبة.

وجمع الارتفاعين 0.25+0.25 يعطي 0.5، لا المساحة. لم يفشل التطبيع في التشغيل؛ العرض 2 هو العامل الذي يدخل كل مساحة. يبقى السؤال عن القيم خارج المدى مستقلًا عن جمع الارتفاعات أو المساحات.

المخرج نفسه مع أعداد أصلية مختلفة

حذف القيمتين الخارجيتين يعطي أربعة مدخلات، وإضافة -4 يعطي سبعة. يبقى العد والكثافة والمساحة كما هي، بينما نسب الداخل 1 و2/3 و4/7.

في التحكم الأول نمرر [0.5,1.5,2.5,3.5] فقط، مع الإعدادين نفسيهما. بقي counts=[2,2] و h=[0.25,0.25] والمساحة 1؛ الآن الداخل 4 من أصل 4، ونسبته 1. هذا المخرج يطابق مخرج القائمة ذات الست قيم.

في التحكم الثاني نضيف -4 إلى القائمة ذات الست قيم. صار الأصل 7، والخارج 3، بينما الداخل ما زال 4. سجّل التشغيل العد والكثافتين نفسيهما، لكن نسبة الداخل 4/7. لم نغيّر قيمة داخلة أو عرض فئة أثناء المقارنة.

هذه القوائم الثلاث تعطي المثال الحاسم: لا نستطيع استرجاع العدد الأصلي من هذين الارتفاعين والمساحة وحدهما. قد تكون التغطية كاملة أو أقل من ذلك، مع المخرج المطبّع نفسه. نحتاج العدد الأصلي أو سجل الخارج لتمييز الحالات.

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

إسقاط البيانات المستبعدة وتحكم طويل.
العدد الأصلي يحتاج سجلًا مستقلًا.

ما الذي راجعه الفحص؟

مرت 504 مقارنة على 72 حالة float64 بمرجع عضوية وكسور مستقل، وتسامح مطلق 1e-14؛ لا يشمل الفحص أوزانًا أو مدى بلا مشاهدات داخلة أو احتمالات مجتمع.

اخترنا عرضًا w من 1 أو 2 لفئتين متساويتين، وعددًا في كل فئة من 1 أو 2 أو 3، وعددًا خارجيًا من 0 أو 1 أو 2 أو 3. هذه 2×3×3×4=72 حالة. وضعنا الداخل عند مواضع ربع وثلاثة أرباع عرض الفئة، والخارج أبعد من طرفَي المدى؛ يمكن تكرار قيمة مع بقاء كل ظهور مشاهدة في قائمتنا.

عد المرجع العضوية بمقارنات كسور دقيقة، ثم حسب لكل فئة c/(m×w)، حيث c عددها وm مجموع الداخل. وحسب مساحتها c/m، ونسبة التغطية m/n، حيث n طول القائمة الأصلي. لا يستدعي المرجع histogram ليقرر الأعداد أو المقامات.

لكل حالة سبع مقارنات: الأعداد الخام؛ الحواف؛ الكثافات؛ المساحات ومجموعها؛ التغطية منفصلة عن المساحة؛ كثافة القائمة الداخلة وحدها؛ والشكل والنوع وثبات المدخل. الإجمالي 72×7=504. التسامح مطلق 1e-14 مع rtol=0، والأعداد الخام قورنت مباشرة.

كان الداخل موجبًا في كل حالة؛ لم نفحص ما يحدث إذا خرجت القيم كلها. لم نستخدم أوزانًا أو NaN أو قيمًا غير منتهية أو عروضًا مختلفة أو اختيارًا آليًا للفئات أو بيانات متعددة الأبعاد. نجاح الحالات لا يعطي ضمان دقة عام أو احتمالات لحالات جديدة.

النتيجة العملية من مثالنا: مساحة الكثافة 1 تراجع التطبيع على ما دخل المدى؛ لمعرفة هل شملت القائمة كلها، راجع العدد الداخل مع العدد الأصلي. لا تدع المخرج المطبّع يحل محل هذا السجل.

عدد المدخلاتنسبة الداخلمساحة الكثافة
411
62/31
74/71

للتوسع: أنواع الرسم البياني.

المراجع

  1. NumPy histogram

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