الإحصاء والبياناتالبحث العلمي والقياس النفسيبرمجة بايثون

كيفية إيجاد القيمة الحرجة Z في بايثون

دليل أكاديمي شامل يوضح كيفية حساب القيمة الحرجة Z في بايثون باستخدام مكتبة SciPy لمختلف أنواع اختبارات الفروض الإحصائية وفترات الثقة.

تاريخ النشر

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

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

يهدف هذا الدليل الشامل والمفصل إلى تزويد الباحثين والمحللين بفهم نظري وتطبيقي عميق لكيفية إيجاد القيمة الحرجة Z برمجياً باستخدام لغة بايثون. سنتناول بالتفصيل المفاهيم الرياضية الحاكمة لاختبارات الفرضيات، وخصائص التوزيع الطبيعي المعياري، وآلية عمل دالة نقطة النسبة المئوية (Percent Point Function – PPF)، مروراً بالحالات التطبيقية المختلفة للاختبارات الأحادية والثنائية الطرف، وبناء الدوال المخصصة، وتمثيل مناطق الرفض بيانياً، مع تقديم مقارنة منهجية رصينة بين اختباري Z و T لضمان الممارسة الإحصائية السليمة في الأبحاث العلمية والتطبيقية.

1. مقدمة إلى القيمة الحرجة Z ودورها في اختبار الفرضيات الإحصائية

1.1 تعريف القيمة الحرجة Z إحصائياً

تُعرّف القيمة الحرجة Z (Z Critical Value) في الإحصاء الاستدلالي بأنها النقطة الحدية أو الإحداثي الرقمي على المحور الأفقي لمنحنى التوزيع الطبيعي المعياري، والتي تقسم المساحة الكلية الواقعة تحت المنحنى إلى منطقتين متمايزتين رياضياً ومنهجياً: منطقة القبول (أو منطقة عدم الرفض) ومنطقة الرفض (Rejection Region) المعروفة أيضاً بالمنطقة الحرجة (Critical Region). ترتبط هذه النقطة ارتباطاً وثيقاً بمستوى الدلالة الإحصائية المختار مسبقاً، والمعروف بالرمز الإغريقي ألفا (α)، والذي يحدد الاحتمال الأقصى المقبول لارتكاب خطأ من النوع الأول، أي رفض الفرضية الصفرية بينما هي صحيحة في الواقع.

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

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

1.2 سياق استخدام اختبار Z في البحوث النفسية والبيانات السلوكية

يحتل اختبار Z (Z-test) مكانة بارزة في مجالات القياس النفسي والعلوم السلوكية، حيث تتطلب دراسة المتغيرات النفسية والقدرات المعرفية ونماذج السلوك البشري معايير قياس صارمة. غير أن تطبيق اختبار Z يستند إلى شروط وافتراضات إحصائية بالغة الأهمية تميزه عن اختبار T (Student’s t-test). الشرط الأول والأكثر صرامة هو معرفة التباين أو الانحراف المعياري للمجتمع الأصلي ($\sigma$) بصورة دقيقة ومسبقة، وهو أمر يتحقق غالباً في الاختبارات النفسية المقننة دولياً مثل مقاييس الذكاء واختبارات القدرات المعيارية حيث تتوفر معايير مجتمعية تاريخية واسعة النطاق.

الشرط الثاني يرتبط بحجم عينة الدراسة ($n$)؛ فاستناداً إلى نظرية النهاية المركزية (Central Limit Theorem)، عندما يكون حجم العينة كبيراً بصورة كافية (عادةً $n ge 30$)، فإن توزيع معاينة المتوسط الحسابي يقترب بشكل وثيق من التوزيع الطبيعي حتى لو كان توزيع المجتمع الأصلي ينحرف قليلاً عن الاعتدال. وفي القياس النفسي، تتيح العينات الكبيرة للباحثين استخدام اختبار Z لتقييم الفروق في الأداء بين الفئات المجتمعية أو قياس استجابة الأفراد للبرامج العلاجية والسلوكية بموثوقية فائقة.

تكتسب دقة تحديد القيمة الحرجة ومنطقة الرفض أهمية استثنائية في الأبحاث السلوكية والنفسية، حيث يؤدي الخطأ في تحديد العتبة الإحصائية إلى مخاطر علمية وأخلاقية جسيمة؛ فالوقوع في الخطأ من النوع الأول (Type I Error) يعني إقرار فاعلية تدخل نفسي أو علاجي غير فعال في الحقيقة، مما يترتب عليه هدر الموارد وربما الإضرار بالمرضى، في حين أن الخطأ من النوع الثاني (Type II Error) قد يؤدي إلى إهمال برامج وتدخلات ذات أثر إيجابي حقيقي.

2. الأساس الرياضي والتوزيع الطبيعي المعياري

2.1 خصائص التوزيع الطبيعي المعياري Z

يُعد التوزيع الطبيعي المعياري (Standard Normal Distribution)، والذي يُرمز له غالباً بالحرف $Z \sim \mathcal{N}(0, 1)$، حالة خاصة واستثنائية من التوزيع الطبيعي العام؛ حيث يتميز بمتوسط حسابي يساوي تماماً الصفر ($\mu = 0$) وانحراف معياري يساوي واحداً صحيحاً ($\sigma = 1$). يتم تحويل أي متغير عشوائي يتبع توزيعاً طبيعياً $X \sim \mathcal{N}(\mu, \sigma^2)$ إلى هذا التوزيع المعياري عبر التحويل الخطي الشهير المعروف بالدرجة المعيارية: $Z = \frac{X – \mu}{\sigma}$.

يمتاز المنحنى الاحتمالي للتوزيع الطبيعي المعياري بخصائص هندسية ورياضية فريدة، أهمها التماثل التام (Symmetry) حول نقطة المركز ($Z = 0$)؛ حيث يتطابق المتوسط والوسيط والمنوال عند هذه النقطة. هذا التماثل يعني أن شكل المنحنى على يمين الصفر هو صورة مرآتية مطابقة تماماً لشكله على يساره، وتكون درجة الالتواء (Skewness) مساوية للصفر تماماً، ومعامل التفرطح (Kurtosis) مساوياً لثلاثة (أو صفراً وفق مقياس التفرطح المعياري الإضافي).

المساحة الكلية الواقعة تحت منحنى دالة الكثافة الاحتمالية للتوزيع الطبيعي المعياري تساوي تماماً واحداً صحيحاً (أو 100%)، استناداً إلى بديهيات نظرية الاحتمالات. يتم التعبير عن هذه المساحة من خلال التكامل الرياضي لدالة الكثافة الاحتمالية (PDF):

$$\int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}} e^{-\frac{z^2}{2}} dz = 1$$

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

2.2 مفهوم دالة التوزيع التراكمي العكسية (PPF)

لفهم الآلية التي تعتمدها لغات البرمجة والأنظمة الإحصائية لحساب القيم الحرجة، يجب التمييز بدقة بين دالتين رياضيتين متكاملتين: دالة التوزيع التراكمي (Cumulative Distribution Function – CDF) ودالة التوزيع التراكمي العكسية المعروفة باسم دالة نقطة النسبة المئوية (Percent Point Function – PPF) أو دالة المئين (Quantile Function).

تقوم دالة التوزيع التراكمي $F(z) = P(Z le z)$ بأخذ قيمة معيارية معينة $z$ كمدخل، وتقوم بحساب وتوليد الاحتمال التراكمي المتجمع على يسار تلك النقطة، والذي يمثل مساحة تحت المنحنى تتراوح قيمتها حصراً بين 0 و 1. على النقيض من ذلك تماماً، تعمل دالة نقطة النسبة المئوية $Q(p) = F^{-1}(p)$ بصورة عكسية؛ حيث تستقبل قيمة الاحتمال التراكمي المطلوب ($p$ حيث $0 < p < 1$) كمدخل رئيسي، وتقوم بإرجاع القيمة المعيارية$z$ التي تقع على المحور الأفقي وتفصل تلك المساحة التراكمية الدقيقة إلى يسارها.

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

3. تهيئة بيئة بايثون وتثبيت المكتبات اللازمة

3.1 تثبيت واستيراد مكتبة SciPy

تُعد مكتبة SciPy (Scientific Python) الركيزة البرمجية الأساسية للحسابات العلمية المتقدمة والتحليلات الإحصائية في لغة بايثون. توفر المكتبة حزمة فرعية مخصصة بالكامل للعمليات الإحصائية والتوزيعات الاحتمالية تُعرف باسم scipy.stats. لتثبيت هذه المكتبة في بيئة العمل الخاصة بك، يُمكن استخدام مدير الحزم القياسي pip عبر تنفيذ الأمر التالي في سطر الأوامر (Terminal أو Command Prompt):

pip install scipy

أما بالنسبة للمستخدمين الذين يفضلون بيئة Anaconda المخصصة لعلوم البيانات والتعلم الآلي، فيمكن تثبيت المكتبة وإدارتها عبر بيئة conda باستخدام الأمر التالي:

conda install scipy

بمجرد اكتمال التثبيت بنجاح، يتم استيراد الوحدة الإحصائية داخل الشيفرة البرمجية أو داخل دفاتر Jupyter Notebooks بالصيغة القياسية المعتمدة مجتمعياً:

from scipy import stats

أو استيراد دالة التوزيع الطبيعي مباشرة لتسهيل الوصول إليها:

from scipy.stats import norm

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

3.2 المكتبات المساعدة للتحليل البياني والعددي

لا يقتصر العمل الإحصائي المتكامل على مجرد استخراج الأرقام المجردة، بل يمتد ليشمل المعالجة المصفوفية السريعة والتمثيل البياني البصري للنتائج لتسهيل تفسيرها ونشرها في الأوراق البحثية. تتكامل مكتبة SciPy بصورة مثالية مع مكتبة NumPy لمعالجة البيانات الرقمية والمصفوفات، ومكتبتي Matplotlib و Seaborn لإنشاء الرسوم البيانية الإحصائية عالية الجودة.

يمكن تثبيت هذه المكتبات المساعدة دفعة واحدة عبر سطر الأوامر:

pip install numpy matplotlib seaborn pandas

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

import numpy as np
import pandas as pd
from scipy import stats
from scipy.stats import norm
import matplotlib.pyplot as plt
import seaborn as sns

# ضبط النمط البصري للرسوم البيانية لتلائم النشر الأكاديمي
sns.set_theme(style="whitegrid")
plt.rcParams['font.family'] = 'DejaVu Sans'
plt.rcParams['figure.figsize'] = (10, 6)

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

4. استخدام الدالة scipy.stats.norm.ppf في بايثون

4.1 بناء الجملة البرمجية للدالة ومحدداتها

تُمثل الدالة scipy.stats.norm.ppf() الأداة المعيارية والأساسية في بايثون لحساب القيم الحرجة للتوزيع الطبيعي. يرمز الاختصار ppf إلى Percent Point Function. تتبع الدالة بنية وسيطية محددة تتضمن معاملات أساسية تتحكم في طبيعة المخرجات وحساباتها الرياضية، وصيغتها العامة هي:

scipy.stats.norm.ppf(q, loc=0, scale=1)

تحتوي الدالة على ثلاثة معاملات رئيسية يجب فهمها بعمق:

  • المعامل q (Quantile): يمثل الاحتمال التراكمي أو المساحة الواقعة تحت منحنى التوزيع الطبيعي من أقصى الطرف الأيسر ($-\infty$) وصولاً إلى النقطة المراد حسابها. يجب أن تكون قيمة q محصورة بشكل صارم بين 0 و 1 (أي $0 le q le 1$). يمكن تمرير رقم عشري مفرد (Float) أو مصفوفة من الأرقام (NumPy Array/List) لحساب قيم حرجة متعددة في آن واحد.
  • المعامل loc (Location): يمثل المتوسط الحسابي ($\mu$) للتوزيع الطبيعي المستهدف. قيمته الافتراضية المبرمجة هي 0، وهو ما يتوافق تماماً مع التوزيع الطبيعي المعياري. إذا تم تغيير هذه القيمة، فإن الدالة ستحسب النقطة المئوية لتوزيع طبيعي غير معياري بإزاحة مركزية.
  • المعامل scale (Scale): يمثل الانحراف المعياري ($\sigma$) للتوزيع الاحتمالي. قيمته الافتراضية المبرمجة هي 1، وهي القيمة المطابقة للتوزيع الطبيعي المعياري. يجب أن تكون هذه القيمة دائماً موجبة تماماً ($\sigma > 0$).

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

4.2 مبدأ عمل الدالة في حساب الإحداثيات الاحتمالية

تعتمد دالة norm.ppf في بنيتها التحتية المبرمجة بلغة C و Fortran على حل الدالة الرياضية العكسية لدالة الخطأ (Inverse Error Function – $\text{erf}^{-1}$) بدلاً من استخدام جداول تقريبية مخزنة مسبقاً. ترتبط دالة التوزيع التراكمي للتوزيع الطبيعي بدالة الخطأ من خلال العلاقة التحليلية:

$$\Phi(z) = \frac{1}{2} \left[ 1 + \text{erf}\left( \frac{z}{\sqrt{2}} \right) \right]$$

وبناءً عليه، يتم التعبير عن دالة نقطة النسبة المئوية رياضياً بالمعادلة العكسية التالية:

$$z = \text{norm.ppf}(q) = \sqrt{2} \cdot \text{erf}^{-1}(2q – 1)$$

توفر هذه الخوارزمية العددية دقة حسابية فائقة تتبع المعيار القياسي للحسابات ذات الفاصلة العائمة المزدوجة (IEEE 754 Double Precision)، مما يمنح الباحث دقة تصل إلى نحو 15 إلى 17 رقماً عشرياً بعد الفاصلة. تتفوق هذه الدقة البرمجية المطلقة على الجداول الإحصائية الورقية المعتادة التي تقتصر عادة على 4 أو 5 خانات عشرية وتتطلب تقريباً يدوياً عند التعامل مع قيم دلالة غير شائعة (مثل $\alpha = 0.001$ أو مستويات مخصصة لتصحيح المقارنات المتعددة).

5. إيجاد القيمة الحرجة للاختبار أحادي الطرف الأيسر (Left-Tailed Test)

5.1 الصياغة الإحصائية للاختبار أحادي الطرف الأيسر

يُستخدم الاختبار أحادي الطرف الأيسر (Left-Tailed Test أو Lower-Tailed Test) عندما تكون الفرضية البحثية تتوقع بصورة موجهة وصريحة أن متوسط المجتمع الأصلي أو النسبة المقاسة أقل من قيمة معيارية مرجعية محددة ($\mu_0$). تصاغ الفرضيات الإحصائية في هذه الحالة وفق البناء الرياضي التالي:

  • الفرضية الصفرية ($H_0$): $\mu ge \mu_0$ (متوسط المجتمع أكبر من أو يساوي القيمة المرجعية).
  • الفرضية البديلة ($H_1$): $\mu < \mu_0$ (متوسط المجتمع أقل قطيعةً من القيمة المرجعية).

في هذا التصميم الإحصائي، تتركز منطقة الرفض (Rejection Region) بالكامل في الذيل الأيسر المتطرف للتوزيع الطبيعي المعياري. هذا يعني أن المساحة الكلية لمستوى الدلالة الإحصائية ألفا ($\alpha$) تقع كاملةً في أقصى يسار المنحنى الاحتمالي. وبالتالي، فإن القيمة الحرجة المطلوبة هي تلك النقطة المعيارية السالبة $Z_{\text{crit}}$ التي يكون الاحتمال التراكمي المتجمع إلى يسارها مساوياً تماماً لقيمة $\alpha$، أي أن $P(Z le Z_{\text{crit}}) = \alpha$.

5.2 التطبيق العملي في بايثون وتفسير النتيجة

نظراً لأن دالة norm.ppf تأخذ الاحتمال التراكمي من جهة اليسار كمعامل افتراضي وطبيعي، فإن حساب القيمة الحرجة للاختبار أحادي الطرف الأيسر يمثل التطبيق الأكثر مباشرة للدالة؛ حيث يتم تمرير قيمة $\alpha$ مباشرة كمعامل للمدخل q. يوضح المثال البرمجي التالي كيفية استخراج القيمة الحرجة عند مستوى دلالة شائع $\alpha = 0.05$:

from scipy.stats import norm

# تحديد مستوى الدلالة ألفا
alpha = 0.05

# حساب القيمة الحرجة للطرف الأيسر
z_critical_left = norm.ppf(alpha)
print(f"القيمة الحرجة Z للاختبار أحادي الطرف الأيسر (alpha = {alpha}): {z_critical_left:.5f}")

تنتج عن هذا الكود القيمة الرقمية: -1.64485. تكون هذه القيمة سالبة حتماً لأنها تقع على يسار المتوسط الحسابي الصفري للتوزيع المعياري. تنص قاعدة اتخاذ القرار الإحصائي في هذا السياق على الآتي:

  • إذا كان إحصاء الاختبار المحسوب من بيانات العينة ($Z_{\text{calc}}$) أقل من أو يساوي القيمة الحرجة ($Z_{\text{calc}} le -1.64485$)، يقع الإحصاء في منطقة الرفض ويتم رفض الفرضية الصفرية لصالح الفرضية البديلة عند مستوى ثقة 95%.
  • إذا كان إحصاء الاختبار المحسوب أكبر من القيمة الحرجة ($Z_{\text{calc}} > -1.64485$)، يقع الإحصاء في منطقة عدم الرفض، ويُحكم بـ عدم كفاية الأدلة الإحصائية لرفض الفرضية الصفرية.

6. إيجاد القيمة الحرجة للاختبار أحادي الطرف الأيمن (Right-Tailed Test)

6.1 الصياغة الإحصائية للاختبار أحادي الطرف الأيمن

يُطبق الاختبار أحادي الطرف الأيمن (Right-Tailed Test أو Upper-Tailed Test) في الدراسات والتجارب التي تفترض اتجاهاً إيجابياً أو زيادة دالة إحصائياً في القياسات؛ كأن يفترض الباحث أن برنامجاً تعليمياً مبتكراً يؤدي إلى رفع درجات التحصيل المعرفي فوق المتوسط العام للمجتمع. تصاغ الفرضيات في هذا الاختبار على النحو التالي:

  • الفرضية الصفرية ($H_0$): $\mu le \mu_0$ (متوسط المجتمع أقل من أو يساوي القيمة المرجعية).
  • الفرضية البديلة ($H_1$): $\mu > \mu_0$ (متوسط المجتمع أكبر قطيعةً من القيمة المرجعية).

تتموضع منطقة الرفض الإحصائي بالكامل في الذيل الأيمن المتطرف للتوزيع الطبيعي المعياري. وبالتالي، فإن مساحة الذيل الأيمن المخصصة للرفض تساوي تماماً مستوى الدلالة $\alpha$. ولأن دالة norm.ppf في بايثون مصممة رياضياً لتكامل المساحة التراكمية من أقصى اليسار ($-\infty$)، فإن المساحة التراكمية الواقعة على يسار القيمة الحرجة اليمنى تساوي المكمل الحسابي لمستوى الدلالة، أي: $(1 – \alpha)$. وبالتالي، نبحث رياضياً عن النقطة $Z_{\text{crit}}$ التي تحقق الشرط: $P(Z le Z_{\text{crit}}) = 1 – \alpha$.

6.2 التطبيق العملي في بايثون وتفسير النتيجة

لحساب القيمة الحرجة للاختبار أحادي الطرف الأيمن في بايثون، نقوم بتمرير القيمة التراكمية المكملة 1 - alpha إلى الدالة norm.ppf. يوضح الكود التالي كيفية تنفيذ هذا الحساب عند مستوى دلالة $\alpha = 0.05$:

from scipy.stats import norm

# تحديد مستوى الدلالة ألفا
alpha = 0.05

# حساب القيمة الحرجة للطرف الأيمن باستخدام المكمل الاحتمالي
z_critical_right = norm.ppf(1 - alpha)
print(f"القيمة الحرجة Z للاختبار أحادي الطرف الأيمن (alpha = {alpha}): {z_critical_right:.5f}")

تُسفر هذه العملية الحسابية عن القيمة الموجبة: +1.64485. نلاحظ هنا التطابق التام في القيمة المطلقة مع اختبار الطرف الأيسر مع اختلاف الإشارة فقط، وهو تجسيد مباشر لخاصية التماثل المحوري للتوزيع الطبيعي المعياري. ترتكز قاعدة القرار للاختبار أحادي الطرف الأيمن على المعيار التالي:

  • إذا كان إحصاء الاختبار المحسوب ($Z_{\text{calc}}$) أكبر من أو يساوي القيمة الحرجة الموجبة ($Z_{\text{calc}} ge 1.64485$)، فإن النتيجة تقع في أقصى الذيل الأيمن ويتم رفض الفرضية الصفرية بثقة إحصائية قدرها 95%.
  • إذا كان إحصاء الاختبار المحسوب أصغر من القيمة الحرجة ($Z_{\text{calc}} < 1.64485$)، فإننا نفشل في رفض الفرضية الصفرية لعدم وجود أدلة إحصائية كافية تدعم الزيادة المفترضة.

7. إيجاد القيمة الحرجة للاختبار ثنائي الطرف (Two-Tailed Test)

7.1 الأساس النظري لتقسيم منطقة الرفض

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

  • الفرضية الصفرية ($H_0$): $\mu = \mu_0$ (متوسط المجتمع مساوٍ تماماً للقيمة المرجعية / لا توجد فروق).
  • الفرضية البديلة ($H_1$): $\mu ne \mu_0$ (متوسط المجتمع يختلف عن القيمة المرجعية / توجد فروق في أي من الاتجاهين).

نظراً لإمكانية ظهور الفروق الإحصائية في كلا الاتجاهين الإيجابي أو السلبي، يتم تقسيم المساحة الإجمالية المخصصة لمستوى الدلالة ألفا بالتساوي التام على طرفي المنحنى الاحتمالي، بحيث يحصل كل ذيل على مساحة رفض قدرها $\frac{\alpha}{2}$. يترتب على هذا التقسيم وجود نقطتين حرجتين متناظرتين حول الصفر:

  • قيمة حرجة سالبة في أقصى اليسار تفصل مساحة تراكمية قدرها $\frac{\alpha}{2}$.
  • قيمة حرجة موجبة في أقصى اليمين تترك خلفها مساحة تراكمية قدرها $1 – frac{alpha}{2}$.

7.2 التطبيق البرمجي المزدوج في بايثون

لحساب القيمتين الحرجة المزدوجة للاختبار ثنائي الطرف في بايثون، نطبق دالة norm.ppf مرتين لتحديد الحدين الأدنى والأعلى لمنطقة الرفض، أو نعتمد على مبدأ التماثل لحساب إحداهما واستنتاج الأخرى. يوضح المثال البرمجي التالي الآلية الحسابية المعتمدة عند مستوى دلالة قياسي $\alpha = 0.05$ (المقابل لمستوى ثقة $95%$):

from scipy.stats import norm

# تحديد مستوى الدلالة الكلي
alpha = 0.05

# حساب القيمة الحرجة للطرف الأيسر السفلي
z_crit_lower = norm.ppf(alpha / 2)

# حساب القيمة الحرجة للطرف الأيمن العلوي
z_crit_upper = norm.ppf(1 - (alpha / 2))

print(f"القيم الحرجة للاختبار ثنائي الطرف (alpha = {alpha}):")
print(f"الحد الحرج السفلي (Left Tail): {z_crit_lower:.5f}")
print(f"الحد الحرج العلوي (Right Tail): {z_crit_upper:.5f}")

المخرجات الناتجة تعطي القيمتين الشهيرتين عالمياً في التحليل الإحصائي: -1.95996 و +1.95996 (والتي يتم تقريبها عادة في الكتابات الإحصائية التقليدية إلى $\pm 1.96$).

تتم صياغة قاعدة القرار الإحصائي للاختبار ثنائي الطرف عبر أسلوبين متكافئين رياضياً:

  • أسلوب المقارنة المباشرة: نرفض الفرضية الصفرية إذا كان $Z_{\text{calc}} le -1.95996$ أو كان $Z_{\text{calc}} ge +1.95996$.
  • أسلوب القيمة المطلقة: نرفض الفرضية الصفرية إذا كانت القيمة المطلقة لإحصاء الاختبار المحسوب أكبر من أو تساوي القيمة الحرجة المطلقة: $|Z_{\text{calc}}| ge 1.95996$.

8. أتمتة حساب القيم الحرجة لمستويات دلالة متعددة

8.1 إنشاء دوال مخصصة (Custom Functions) لحساب Z

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

يُوضح الكود الاحترافي التالي بناء دالة شاملة وقابلة لإعادة الاستخدام في التحليلات الإحصائية:

from scipy.stats import norm
from typing import Union, Tuple

def get_z_critical_value(alpha: float = 0.05, test_type: str = 'two-tailed') -> Union[float, Tuple[float, float]]:
"""
حساب القيمة الحرجة Z للتوزيع الطبيعي المعياري بناءً على مستوى الدلالة ونوع الاختبار.

المعاملات:
alpha (float): مستوى الدلالة الإحصائية (بين 0 و 1). القيمة الافتراضية 0.05.
test_type (str): نوع الاختبار ('two-tailed', 'left-tailed', 'right-tailed').

المخرجات:
float أو Tuple[float, float]: القيمة الحرجة أو زوج القيم الحرجة.
"""
if not 0 < alpha < 1:
raise ValueError("يجب أن تكون قيمة ألفا محصورة بدقة بين 0 و 1.")

test_type = test_type.lower().strip()

if test_type in ['two-tailed', 'two_sided', 'both']:
z_lower = norm.ppf(alpha / 2)
z_upper = norm.ppf(1 - (alpha / 2))
return z_lower, z_upper
elif test_type in ['left-tailed', 'less', 'left']:
return norm.ppf(alpha)
elif test_type in ['right-tailed', 'greater', 'right']:
return norm.ppf(1 - alpha)
else:
raise ValueError("نوع الاختبار غير مدعوم. اختر من: 'two-tailed', 'left-tailed', 'right-tailed'.")

تتيح هذه الدالة استدعاءات برمجية واضحة ومقروءة تلائم خطوط أنابيب تحليل البيانات (Data Pipelines)، مثل:

# أمثلة للاستدعاء السريع
z_crit_two = get_z_critical_value(alpha=0.01, test_type='two-tailed')
z_crit_left = get_z_critical_value(alpha=0.05, test_type='left-tailed')

8.2 مقارنة القيم لمستويات الدلالة الشائعة (0.01، 0.05، 0.10)

لتكوين رؤية إحصائية مقارنة وموسعة، يُفضل بناء جدول تحليلي منظم يربط بين مستويات الدلالة الأكثر شيوعاً في الأدبيات العلمية ($10%$, $5%$, $1%$) ومستويات الثقة المقابلة لها، مع عرض القيم الحرجة لكافة أنواع الاختبارات. يمكن أتمتة إنشاء هذا الجدول بسهولة باستخدام مكتبة Pandas في بايثون:

import pandas as pd
from scipy.stats import norm

alphas = [0.10, 0.05, 0.01, 0.001]
data = []

for a in alphas:
conf_level = f"{(1 - a) * 100:.1f}%"
z_left = norm.ppf(a)
z_right = norm.ppf(1 - a)
z_two = norm.ppf(1 - (a / 2))
data.append({
'مستوى الدلالة (Alpha)': a,
'مستوى الثقة (Confidence)': conf_level,
'الطرف الأيسر (Left-Tailed)': f"{z_left:.4f}",
'الطرف الأيمن (Right-Tailed)': f"{z_right:.4f}",
'ثنائي الطرف (Two-Tailed)': f"±{z_two:.4f}"
})

df_critical_values = pd.DataFrame(data)
print(df_critical_values.to_string(index=False))

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

9. حساب فترات الثقة (Confidence Intervals) باستخدام قيم Z الحرجة

9.1 الربط بين القيمة الحرجة Z وهامش الخطأ (Margin of Error)

ترتبط فترات الثقة (Confidence Intervals) ارتباطاً وثيقاً واشتقاقياً باختبارات الفرضيات ثنائية الطرف؛ ففترة الثقة تمثل نطاقاً من القيم المعقولة التي يُتوقع أن يقع داخلها معلم المجتمع الحقيقي (مثل المتوسط الحسابي $\mu$ أو النسبة $p$) بدرجة ثقة محددة إحصائياً قدرها$(1 – alpha) times 100%$.

يُشتق الحد الرياضي لفترة الثقة لمتوسط المجتمع عند معرفة الانحراف المعياري للمجتمع ($\sigma$) عبر المعادلة الأساسية التالية:

$$\text{CI} = \bar{X} \pm E$$

حيث يمثل $E$ هامش الخطأ (Margin of Error)، والذي يُحسب بضرب القيمة الحرجة Z المقابلة لنصف مستوى الدلالة في الخطأ المعياري للمتوسط (Standard Error – SE):

$$E = Z_{alpha/2} \times \left( \frac{\sigma}{\sqrt{n}} \right)$$

يتضح من هذا البناء الرياضي الدور المحوري للقيمة الحرجة Z في التحكم في اتساع فترة الثقة؛ فزيادة مستوى الثقة المطلوب (مثلاً من $95%$ إلى $99%$) تؤدي مباشرة إلى زيادة قيمة$Z_{alpha/2}$ (من $1.96$ إلى $2.576$)، مما يؤدي إلى زيادة هامش الخطأ واتساع فترة الثقة، وهو ما يجسد المفاضلة الإحصائية الحتمية بين درجة اليقين ومستوى الدقة التقديرية.

9.2 تطبيق بايثون لبناء فترات الثقة تلقائياً

يمكن حساب فترات الثقة في بايثون بطريقتين متطابقتين: الطريقة اليدوية المباشرة باستخدام القيمة الحرجة المشتقة من norm.ppf، أو استخدام الدالة الجاهزة عالية الكفاءة scipy.stats.norm.interval(). يوضح الكود التالي كلا النهجين لتحليل بيانات عينة تجريبية تتكون من درجات مقياس نفسي معياري:

import numpy as np
from scipy.stats import norm

# معطيات العينة والمجتمع
sample_mean = 108.5 # المتوسط الحسابي للعينة
pop_std = 15.0 # الانحراف المعياري المعروف للمجتمع (IQ scale)
n = 100 # حجم العينة
confidence = 0.95 # مستوى الثقة المطلوب
alpha = 1 - confidence

# حساب الخطأ المعياري
standard_error = pop_std / np.sqrt(n)

# الطريقة الأولى: الحساب اليدوي باستخدام norm.ppf
z_crit = norm.ppf(1 - (alpha / 2))
margin_of_error = z_crit * standard_error
ci_lower_manual = sample_mean - margin_of_error
ci_upper_manual = sample_mean + margin_of_error

# الطريقة الثانية: الحساب التلقائي المباشر عبر norm.interval
ci_lower_auto, ci_upper_auto = norm.interval(confidence, loc=sample_mean, scale=standard_error)

print(f"قيمة Z الحرجة المستخدمة: {z_crit:.4f}")
print(f"هامش الخطأ: {margin_of_error:.4f}")
print(f"فترة الثقة 95% (يدوياً): [{ci_lower_manual:.3f}, {ci_upper_manual:.3f}]")
print(f"فترة الثقة 95% (تلقائياً): [{ci_lower_auto:.3f}, {ci_upper_auto:.3f}]")

يؤكد تطابق النتائج بين الطريقتين أن دالة norm.interval تعتمد داخلياً على نفس التكامل الرياضي لـ norm.ppf، مما يمنح الباحث مرونة الاختيار بين التفصيل الإجرائي أو السرعة البرمجية في معالجة البيانات.

10. التمثيل البصري للقيمة الحرجة ومناطق الرفض باستخدام بايثون

10.1 رسم منحنى التوزيع الطبيعي المعياري

يُعد التمثيل البصري (Data Visualization) أحد أقوى وسائل استيعاب وتوصيل النتائج الإحصائية بوضوح. لبناء رسم بياني دقيق للتوزيع الطبيعي المعياري، نستخدم مكتبة NumPy لتوليد نطاق متصل من نقاط البيانات على المحور الأفقي يغطي عادة النطاق من $-4\sigma$ إلى $+4\sigma$، ثم نستخدم دالة الكثافة الاحتمالية scipy.stats.norm.pdf() لتوليد الارتفاعات المقابلة لكل نقطة.

يُنشئ الكود التالي الهيكل الأساسي لمنحنى الجرس المتماثل بصيغة احترافية:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# توليد نقاط المحور الأفقي بكثافة عالية لضمان نعومة المنحنى
x = np.linspace(-4, 4, 1000)
y = norm.pdf(x, loc=0, scale=1)

# إنشاء الشكل البياني
plt.figure(figsize=(12, 6), dpi=300)
plt.plot(x, y, label='التوزيع الطبيعي المعياري Z ~ N(0, 1)', color='#1f77b4', linewidth=2.5)
plt.title('منحنى التوزيع الطبيعي المعياري والقيم الحرجة', fontsize=14, fontweight='bold', pad=15)
plt.xlabel('الدرجة المعيارية (Z-score)', fontsize=12)
plt.ylabel('الكثافة الاحتمالية (Probability Density)', fontsize=12)

10.2 تظليل مناطق الرفض وتحديد خطوط القيم الحرجة

لاكتمل المشهد البياني، يتم دمج القيم الحرجة المحسوبة برمجياً لتظليل مناطق الرفض باستخدام الدالة plt.fill_between()، ورسم خطوط عمودية فاصلة باستخدام plt.axvline() للاختبار ثنائي الطرف عند $\alpha = 0.05$:

# حساب القيم الحرجة ثنائية الطرف
alpha = 0.05
z_crit_left = norm.ppf(alpha / 2)
z_crit_right = norm.ppf(1 - (alpha / 2))

# تظليل منطقة الرفض في الطرف الأيسر
x_left = np.linspace(-4, z_crit_left, 300)
plt.fill_between(x_left, norm.pdf(x_left), color='#d62728', alpha=0.5, label=f'منطقة الرفض اليسرى (α/2 = {alpha/2})')

# تظليل منطقة الرفض في الطرف الأيمن
x_right = np.linspace(z_crit_right, 4, 300)
plt.fill_between(x_right, norm.pdf(x_right), color='#d62728', alpha=0.5, label=f'منطقة الرفض اليمنى (α/2 = {alpha/2})')

# تظليل منطقة عدم الرفض (منطقة القبول)
x_center = np.linspace(z_crit_left, z_crit_right, 400)
plt.fill_between(x_center, norm.pdf(x_center), color='#2ca02c', alpha=0.15, label=f'منطقة عدم الرفض (1 - α = {1-alpha:.2f})')

# إضافة خطوط عمودية متقطعة عند القيم الحرجة
plt.axvline(z_crit_left, color='#d62728', linestyle='--', linewidth=1.5, label=f'القيمة الحرجة Z = {z_crit_left:.3f}')
plt.axvline(z_crit_right, color='#d62728', linestyle='--', linewidth=1.5, label=f'القيمة الحرجة Z = {z_crit_right:.3f}')

# إدراج وسيلة الإيضاح وتعديل المحاور
plt.legend(loc='upper right', frameon=True, fontsize=10)
plt.xlim(-4, 4)
plt.ylim(0, 0.45)
plt.tight_layout()
plt.show()

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

11. المقارنة بين القيمة الحرجة Z والقيمة الحرجة T في بايثون

11.1 متى يجب استخدام scipy.stats.t.ppf بدلاً من norm.ppf؟

يقع العديد من المحللين المبتدئين في خطأ منهجي شائع يتمثل في استخدام القيمة الحرجة Z في سياقات تتطلب حتماً استخدام توزيع T لستيودنت (Student’s t-distribution). تنص القواعد الإحصائية الرصينة على وجوب استخدام دالة scipy.stats.t.ppf بدلاً من norm.ppf في الحالات التالية:

  • عندما يكون الانحراف المعياري للمجتمع الأصلي ($\sigma$) مجهولاً تماماً، ويتم تقديره باستخدام الانحراف المعياري للعينة ($s$).
  • عندما يكون حجم العينة صغيراً نسبياً ($n < 30$).

يتميز توزيع T بكونه يمتلك “ذيولاً أكثر سمكاً وتفرطحاً” (Heavier Tails) مقارنة بالتوزيع الطبيعي المعياري، مما يعكس حالة عدم اليقين الإضافية (Additional Uncertainty) الناتجة عن تقدير معلمة التباين من عينة صغيرة. يعتمد شكل توزيع T على معامل رياضي إضافي يسمى درجات الحرية (Degrees of Freedom – $df = n – 1$). وكلما زاد حجم العينة واقتربت درجات الحرية من اللانهاية ($df to \infty$)، يتقارب توزيع T تدريجياً وبصورة تقاربية متطابقة مع التوزيع الطبيعي المعياري استناداً إلى مبرهنات التقارب الإحصائي.

11.2 كتابة شيفرة مقارنة بين القيمتين برمجياً

يوضح البرنامج التالي مقارنة دقيقة بين القيم الحرجة Z و T لنفس مستوى الدلالة ($\alpha = 0.05$) ثنائي الطرف عبر عينات ذات أحجام مختلفة لاستجلاء أثر درجات الحرية:

import pandas as pd
from scipy.stats import norm, t

alpha = 0.05
sample_sizes = [5, 15, 30, 60, 120, 500, 1000]
comparison_results = []

# القيمة الحرجة Z الثابتة
z_crit = norm.ppf(1 - (alpha / 2))

for n in sample_sizes:
df = n - 1 # درجات الحرية
t_crit = t.ppf(1 - (alpha / 2), df=df)
diff = t_crit - z_crit
comparison_results.append({
'حجم العينة (n)': n,
'درجات الحرية (df)': df,
'القيمة الحرجة T': f"{t_crit:.5f}",
'القيمة الحرجة Z': f"{z_crit:.5f}",
'الفارق المطلق': f"{diff:.5f}"
})

df_comp = pd.DataFrame(comparison_results)
print(df_comp.to_string(index=False))

تُظهر نتائج المقارنة أن القيمة الحرجة لـ T عند عينة $n=5$ ($df=4$) تصل إلى 2.77645، وهي أكبر بكثير من قيمة Z الحرجة ($1.95996$). هذا الفارق يعني أن استخدام Z في عينة صغيرة يؤدي إلى تضخيم غير مبرر لمعدل الخطأ من النوع الأول ورفض خاطئ للفرضيات الصفرية، بينما يتلاشى هذا الفارق عملياً عندما يتجاوز حجم العينة بضع مئات.

12. الأخطاء الشائعة وأفضل الممارسات البرمجية والإحصائية

12.1 الأخطاء الشائعة عند استخدام norm.ppf في بايثون

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

  • الخلط بين مساحة الطرف الأيمن والطرف الأيسر: تمرير $\alpha$ مباشرة إلى norm.ppf(alpha) لحساب اختبار أحادي الطرف الأيمن، مما ينتج قيمة سالبة خاطئة بدلاً من القيمة الموجبة الصحيحة الناتجة عن norm.ppf(1 - alpha).
  • إغفال قسمة ألفا على اثنين في الاختبارات ثنائية الطرف: تمرير norm.ppf(1 - alpha) بدلاً من norm.ppf(1 - alpha/2)، وهو ما يؤدي إلى التعامل مع الاختبار ثنائي الطرف كأنه أحادي الطرف، مما يفسد حسابات فترات الثقة ومناطق الرفض كلياً.
  • تعديل معاملات المركز والقياس دون مبرر إحصائي: تغيير قيم loc و scale في الدالة عند الرغبة في إيجاد الدرجة المعيارية Z، حيث يجب أن تبقى هذه المعاملات بقيمها الافتراضية (0 و 1) لضمان الحصول على قيم معيارية غير مشوبة بوحدات القياس الأصلية.
  • الاعتماد على Z عند جهل تباين المجتمع في العينات الصغيرة: إهمال استخدام scipy.stats.t.ppf عند تقدير الانحراف المعياري من العينة في دراسات المقاييس النفسية المحدودة.

12.2 أفضل الممارسات لتوثيق التحليلات الإحصائية البرمجية

لضمان أعلى معايير الجودة والشفافية في البحوث القائمة على التحليل الإحصائي البرمجي، يُوصى باتباع الحزمة التالية من الممارسات الهندسية والإحصائية:

  • الالتزام بدليل أسلوب بايثون القياسي (PEP 8): كتابة أسماء المتغيرات والدوال بوضوح ودلالة إحصائية صريحة (مثل alpha_level و z_critical_upper) وتجنب الرموز الغامضة المكونة من حرف واحد.
  • التوثيق المنهجي الصريح للفرضيات داخل دفاتر Jupyter: كتابة نص الفرضية الصفرية والبديلة، ومستوى الدلالة المختار، وتبرير استخدام اختبار Z بناءً على حجم العينة وتوفر معلمات المجتمع قبل كتابة الكود التنفيذي.
  • التحقق البرمجي التلقائي من المدخلات (Assertions and Validation): تضمين شروط تحقق برمجية تضمن أن قيم ألفا ومستويات الثقة تقع ضمن النطاق الاحتمالي المنطقي ($0 < alpha < 1$).
  • تثبيت البذور العشوائية وتوثيق بيئة الحزم: توثيق إصدارات بايثون ومكتبتي SciPy و NumPy باستخدام ملفات requirements.txt لضمان قابلية إعادة التكرار المطابق للأبحاث العلمية (Scientific Reproducibility).

خاتمة

تُمثل القيمة الحرجة Z ركيزة بنيوية لا غنى عنها في صرح الاستدلال الإحصائي واختبار الفرضيات العلمية. ومن خلال الإمكانات البرمجية الفائقة التي توفرها لغة بايثون عبر مكتبة scipy.stats وتحديداً الدالة norm.ppf، أضحى بإمكان الباحثين والمحللين استخراج هذه القيم بدقة عددية متناهية تتجاوز تماماً عوائق الجداول التقليدية، مما يسهم في بناء نماذج إحصائية وفترات ثقة موثوقة تعزز من دقة القرارات العلمية والتطبيقية في مختلف المجالات البحثية والمهنية.

المراجع (References)

  • Casella, G., & Berger, R. L. (2024). Statistical Inference (2nd ed.). Cengage Learning. https://www.cengage.com
  • Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., … & Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585(7825), 357-362. https://doi.org/10.1038/s41586-020-2649-2
  • National Institute of Standards and Technology. (2023). NIST/SEMATECH e-Handbook of Statistical Methods. U.S. Department of Commerce. https://www.itl.nist.gov/div898/handbook/
  • Rosner, B. (2021). Fundamentals of Biostatistics (8th ed.). Cengage Learning. https://www.cengage.com
  • Virtanen, P., Gommers, R., Oliphant, T. E., Haberland, M., Reddy, T., Cournapeau, D., … & SciPy 1.0 Contributors. (2020). SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nature Methods, 17(3), 261-272. https://doi.org/10.1038/s41592-019-0686-2
  • Wackerly, D., Mendenhall, W., & Scheaffer, R. L. (2020). Mathematical Statistics with Applications (7th ed.). Brooks/Cole. https://www.cengage.com

اقتباس هذا المقال

looti, M. (2026, أغسطس 26). كيفية إيجاد القيمة الحرجة Z في بايثون. عرب سايكلوجي. https://arabpsychology.com/statistics/how-to-find-z-critical-value-in-python/
looti, Mohammed. “كيفية إيجاد القيمة الحرجة Z في بايثون.” عرب سايكلوجي, 26 أغسطس 2026, https://arabpsychology.com/statistics/how-to-find-z-critical-value-in-python/.
looti, Mohammed. “كيفية إيجاد القيمة الحرجة Z في بايثون.” عرب سايكلوجي. أغسطس 26, 2026. https://arabpsychology.com/statistics/how-to-find-z-critical-value-in-python/.