إنتقل إلى المحتوى الرئيسي

الأسبوع 10: التسليم النهائي — تقرير تحليل استكشافي لأداء الطلاب

🏁 كل شيء من الأسابيع 6–9 — الإطار العام، مخططات المتغير الواحد، تحليل الارتباط، اللمسة السردية — يجتمع في تقرير واحد هذا الأسبوع.

🎯 أهداف التعلم

بنهاية هذا الأسبوع ستكون قادرًا على:

  • التخطيط والتنفيذ المستقل لمشروع تحليل استكشافي كامل على مجموعة بيانات جديدة، من صياغة الأسئلة إلى المخططات النهائية.
  • إنتاج تقرير مكتوب موجز يجمع بين النتائج والأدلة (المخططات/الإحصاءات) وتفسير حذر بشكل مناسب.
  • تحديد القيود الواقعية لهذه البيانات وما لا يمكن أن تدعمه من استنتاجات.
  • تجميع بنية تقرير كاملة من التقنيات المنفردة للأسابيع 6–9.

الدرس

مجموعة البيانات: أداء الطلاب في الاختبارات

يُعد students-performance.csv (موثّق هنا) من أكثر مجموعات بيانات التحليل الاستكشافي للمبتدئين استخدامًا على Kaggle، ويضم 8 أعمدة: gender، race_ethnicity، parental_level_of_education، lunch، test_preparation_course، وثلاثة أعمدة نتائج رقمية — math_score، reading_score، writing_score.

التسليم المطلوب

أنتج تقرير تحليل استكشافي موجزًا (دفتر ملاحظات بخلايا Markdown تشرح كل خطوة، أو ملخص مكتوب مع كودك) يتضمن، كحد أدنى:

  1. ملف تعريف البيانات (الأسبوع 6): الشكل، الأنواع، القيم المفقودة، التوزيعات الأساسية لكل عمود.
  2. 3 أسئلة مصاغة على الأقل، مكتوبة قبل تحليلها، تغطي كلا النوعين:
    • سؤال متغير واحد (الأسبوع 7) — مثل "كيف يبدو توزيع math_score؟"
    • سؤال ثنائي أو متعدد المتغيرات (الأسبوع 8/9) — مثل "هل يرتبط test_preparation_course بالدرجات، وهل يصمد ذلك عبر الأجناس؟"
  3. تحليل ارتباط (الأسبوع 8) لأعمدة الدرجات الثلاثة، مع خريطة حرارية.
  4. مخطط سردي واحد على الأقل مقسّم أو موضّح (الأسبوع 9).
  5. استنتاج مكتوب موجز لكل سؤال: ماذا وجدت، ما مدى ثقتك (بالإشارة إلى حجم العينة لكل مجموعة، حسب الأسبوع 6)، وتفسير بديل معقول واحد لا يمكنك استبعاده (حسب نقاش الأسبوع 8 عن أن الارتباط ليس سببية).

مجموعة الأدوات الكاملة، بنظرة واحدة

كل تقنية من هذا القسم تقابل جزءًا من التقرير:

قسم التقريرالتقنيات (من)
ملف تعريف البيانات.shape، .dtypes، .isna().sum()، .value_counts()، فحص الانحراف بين المتوسط والوسيط (الأسبوع 6)
سؤال متغير واحدمخطط تكراري، مخطط صندوق، مخطط شريطي، حساسية عدد الصناديق (الأسبوع 7)
سؤال ثنائي/متعدد المتغيرات.corr()، خريطة حرارية، مخطط انتشار مع hue، مخطط صندوق مجمّع، pd.crosstab (الأسبوع 8)
مخطط سرديالتقسيم إلى ألواح (col=/row=)، ترتيب مقصود، لوحة آمنة لعمى الألوان، توضيح (الأسبوع 9)
الاستنتاجنتيجة + ثقة (حجم العينة) + تفسير بديل، لكل سؤال

عامل هذا الجدول كمخطط تقريرك قبل كتابة خلية واحدة — نفس انضباط "صِغ البنية قبل الخوض فيها" الذي قدّمه الأسبوع 6 للأسئلة المنفردة، مُطبَّقًا الآن على التسليم بأكمله.

مثال عملي مبدئي

إليك مثالًا مصغّرًا كاملًا للنمط الذي يجب أن يتبعه كل سؤال من أسئلتك — تعريف ← تصوير ← تفسير بحذر مناسب:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.read_csv("students-performance.csv")

# السؤال: هل يرتبط إكمال التحضير للاختبار بمتوسط درجة أعلى
# عبر المواد الثلاث جميعًا؟
df["average_score"] = df[["math_score", "reading_score", "writing_score"]].mean(axis=1)

summary = df.groupby("test_preparation_course")["average_score"].agg(["mean", "count"])
print(summary)

sns.boxplot(data=df, x="test_preparation_course", y="average_score")
plt.title("Average score by test preparation status")
plt.show()

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

تحسب .mean(axis=1) متوسطًا عبر الصفوف لأعمدة الدرجات الثلاثة (axis=1 تعني "عبر الأعمدة، لكل صف" — على خلاف axis=0 الافتراضي، "أسفل كل عمود")، منتجةً قيمة average_score واحدة مجمّعة لكل طالب.

مثال عملي ثانٍ: مخطط سردي متعدد المتغيرات

الجمع بين عمل الارتباط في الأسبوع 8 والتقسيم إلى ألواح في الأسبوع 9 في شكل واحد جاهز للتقرير:

sns.relplot(
data=df, x="reading_score", y="writing_score",
col="test_preparation_course", hue="lunch", palette="colorblind",
)
plt.show()

النتيجة: العلاقة الموجبة القوية بين درجتي القراءة والكتابة تصمد في كلا لوحي التحضير للاختبار، مما يشير إلى أنها ليست خاصة بمجموعة واحدة — على الأرجح تعكس عاملاً كامنًا مشتركًا (محو أمية عام/مهارة لفظية) لا تأثير درجة إحدى المادتين مباشرة على الأخرى. التحفظ: التقسيم حسب متغيرين فئويين (col وhue) في آن واحد يبدأ في إجهاد ما يستطيع القارئ استيعابه من شكل واحد — يستحق جملة تقرّ بذلك، مع التفكير فيما إذا كان تقسيم هذا إلى شكلين أبسط سيكون أوضح لتقرير حقيقي.

الختام: ما لا يمكن أن تخبرك به هذه البيانات

قبل إنهاء تقريرك، دوّن صراحةً الاستنتاجات التي لا تدعمها هذه البيانات: إنها لقطة واحدة (لا دراسة عبر الزمن)، والسكان الدقيقون ومنهجية الجمع غير محددين في نسخة البيانات المستخدمة هنا، و — كما تم التأكيد عليه طوال الأسبوعين 8-9 — لا شيء من هذه العلاقات يثبت سببية. التقرير التحليلي الاستكشافي الصارم أمين بشأن هذه الحدود، لا بشأن ما وجده فقط.

⚠️ أخطاء شائعة

  • تخطي خطوة ملف التعريف لأن البيانات "تبدو نظيفة". شغّل دائمًا خطوات التعريف من الأسبوع 6 أولاً، حتى على بيانات تبدو مرتبة — تأكيد عدم وجود شيء مفقود أو مُرمَّز خطأً جزء من التسليم، لا إجراء اختياري شكلي.
  • كتابة الاستنتاجات قبل فحص أحجام العينات. فرق يبدو مثيرًا في مجموعة فرعية صغيرة (مثل فئة race_ethnicity واحدة بعدد طلاب قليل) يستحق تحفظًا بشأن حجم العينة، بنفس انضباط الأسبوع 6.
  • معاملة "الارتباط ليس سببية" كحاشية بدلاً من ركيزة أساسية. كل نتيجة في التسليم المطلوب تحتاج تحفظها الأمين الخاص بها، لا إخلاء مسؤولية عام واحد في النهاية يغطي كل شيء.
  • نفاد الوقت في التلميع قبل إنهاء المحتوى المطلوب. كل الأجزاء الخمسة للتسليم (التعريف، 3 أسئلة، تحليل الارتباط، مخطط سردي، استنتاجات) أهم من جعل مخطط واحد مثاليًا — احصل على مسودة كاملة أولاً، ثم حسّنها.

🧩 التحديات

أجب عن هذا السؤال لتقريرك: هل يرتبط parental_level_of_education بـ average_score؟ اتبع النمط الكامل — جدول ملخص، مخطط، نتيجة، وتحفظ.

وسّع سؤال التحضير للاختبار في المثال العملي للتحقق مما إذا كان التأثير يبدو نفسه عبر gender — هل يبدو أن التحضير للاختبار يرتبط بزيادة أكبر في الدرجات لأحد الجنسين مقارنة بالآخر؟

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

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

أكمل قسم "ملف تعريف البيانات" المطلوب لتقريرك: استخدم فحص انحراف المتوسط مقابل الوسيط من الأسبوع 6 وعدّ القيم الشاذة بطريقة IQR على عمود average_score، وأكّد ما وجدته بمخطط تكراري من الأسبوع 7.

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

🤔 أسئلة سقراطية

  • عبر تقريرك الكامل، بأي نتيجة تشعر بأكبر ثقة، وبأيها تشعر بأقل ثقة؟ ما الذي يحدد بالضبط (حجم العينة، حجم الأثر، معقولية عامل مربك) ذلك الفرق في الثقة؟
  • لو اضطررت لاختيار مخطط واحد فقط من تقريرك بأكمله لتُظهره لشخص لديه 10 ثوانٍ من الانتباه، أيها ستختار، ولماذا؟ ماذا يخبرك ذلك الاختيار عن أي النتائج هي الأهم فعليًا؟
  • لقد أكملت الآن دورة تحليل استكشافي كاملة — سؤال، دليل، تفسير أمين — على بيانات ذات شكل واقعي. أي مادة من أي أسبوع محدد (6 إلى 9) اعتمدت عليها شخصيًا أكثر أثناء القيام بذلك؟ هل يطابق ذلك ما توقعته في البداية؟
  • يقرّ تحفظ المثال العملي الثاني بأن التقسيم حسب متغيرين في آن واحد قد يكون "أكثر من اللازم" بالفعل لشكل واحد. بالنظر إلى تقريرك، هل هناك مخطط بنيته تعتبر الآن تبسيطه، بعد أن مررت بهذه العملية كاملة؟
  • الآن بعد أن بنيت تقرير تحليل استكشافي كاملاً من الصفر، كيف تشرح الفرق بين "التحليل الاستكشافي للبيانات" و"مجرد رسم بعض المخططات" لشخص لم يأخذ هذه الدورة — بكلماتك أنت، لا بكلمات الدرس؟

✅ اختبار الأسبوع

✅ اختبار الأسبوع

1. df[["math_score","reading_score","writing_score"]].mean(axis=1) يحسب:
2. استنتاج تقرير تحليل استكشافي صارم يجب أن:
3. أي مما يلي ليس شيئًا يمكن أن تدعمه هذه البيانات، حسب الدرس؟
4. يجب أن يتضمن التسليم المطلوب هذا الأسبوع كحد أدنى:
5. حسب الدرس، متى يجب أن تفحص حجم العينة (count) لكل مجموعة؟

🎉 لقد أكملت المسار الصعب لتحليل البيانات بـ Pandas — والدورة بأكملها، إذا اخترت الصعب/الصعب أو أي تركيبة عبر القسمين. توجّه إلى تقدمي لرؤية أوسمتك، وإذا أنهيت كل أسبوع، افتح مشاريع المشروع الختامي: تثبيت Python فعليًا وبناء أول وكيل ذكاء اصطناعي خاص بك.