1
Data Integration
اشرح مفهوم الـ Data Integration وإيه مثال عليه؟
Explain the concept of Data Integration and Provide example.
📋 نص السؤال

Question 1: Explain the concept of Data Integration and Provide example.

🧩 الـ Data Integration إيه يعني؟
ببساطة زي فكرة التطبيقات اللي بتجمع اشتراكاتك في Netflix و YouTube وكل حاجة في شاشة واحدة.
يعني: عندك بيانات في أماكن مختلفة بـأشكال مختلفة → الـ Data Integration بتحول الكل لـشكل واحد موحد وتدمجهم مع بعض.
📌 التعريف الأكاديمي (للامتحان)
📖 Data integration involves converting different data types and merging them into a common structure or schema.
🔑 الكلمات المفتاحية
Data Integration دمج البيانات
Common schema هيكل موحد
Different data types أنواع بيانات مختلفة
SQL / CSV / Excel مصادر مختلفة
📦 المثال من الامتحان (Retail Company)
تخيل شركة بيع بالتجزئة عندها بيانات في 3 أماكن:
البياناتالمكانالأعمدة
🛒 Sales DataSQL DatabaseTransaction_ID, Product_ID, Quantity, Price, Timestamp
👤 Customer DataCSV FileCustomer_ID, Name, Email, Phone_Number
📦 Inventory DataExcel SheetProduct_ID, Product_Name, Stock_Quantity, Supplier
الـ Data Integration بتاخد الـ 3 مصادر دول وتحطهم في schema واحد عشان تقدر تعمل analysis صح! ✅
اكتب التعريف الأكاديمي أول حاجة، وبعدين اشرح المثال بالجدول بتاع الـ 3 مصادر.
2
Data Filtering
اشرح مفهوم الـ Data Filtering وإيه مثال عليه؟
Explain the concept of Data Filtering and Provide example.
📋 نص السؤال

Question 2: Explain the concept of Data Filtering and Provide example.

🔍 الـ Data Filtering إيه يعني؟
زي ما بتفلتر السوشيال ميديا وبتشوف بس اللي يهمك. الـ Data Filtering يعني بتاخد من البيانات الكبيرة بس الجزء اللي مفيدك وبيخص المستخدم.
📌 التعريف الأكاديمي (للامتحان)
📖 Data filtering involves identifying information relevant to any particular user.
🎬 المثال من الامتحان (Netflix/Movies)
مستخدم عايز يلاقي أفلام بمعايير معينة:
  • Genre: action مثلاً
  • Release Year: بعد 2020
  • Rating: أكبر من 8
النظام بياخد ملايين الأفلام ويفلتر وييجيب بس اللي ينطبق عليه المعايير دي. ده هو الـ Data Filtering!
🔑 الكلمات المفتاحية
Relevant information معلومات ذات صلة
Particular user مستخدم معين
Criteria معايير التصفية
Filter تصفية
الفرق بين Data Integration ودي: Integration بتجمع بيانات من أماكن مختلفة، Filtering بتختار بيانات معينة من مصدر واحد.
3
Pandas Operations
اشرح Merge و Join في Pandas مع كود
Using Pandas, define Merge, Join and write Python code example.
📋 نص السؤال

Question 3: Using Pandas, define each of the following operations:

  • Merge
  • Join

Then write the appropriate Python code example for each operation.

🔗 الـ merge()
🧲 merge: زي الـ JOIN في SQL. بتجمع DataFrame مع تاني على أساس عمود مشترك (common column).
الاستخدام: لما عندك جدولين وفيهم عمود مشترك زي "customer_id" مثلاً.
📖 merge: Use for performing SQL-like joins based on common columns.
Python
import pandas as pd

# DataFrame 1: بيانات الطلاب
df1 = pd.DataFrame({
    'student_id': [1, 2, 3],
    'name': ['Ali', 'Sara', 'Omar']
})

# DataFrame 2: الدرجات
df2 = pd.DataFrame({
    'student_id': [1, 2, 3],
    'grade': [90, 85, 92]
})

# Merge على عمود student_id
result = pd.merge(df1, df2, on='student_id')
print(result)
▶ Output
   student_id  name  grade
0           1   Ali     90
1           2  Sara     85
2           3  Omar     92
🔀 الـ join()
🗂️ join: بتجمع DataFrames على أساس الـ index. يعني بدل ما تحدد عمود، بتستخدم الـ index بتاع الـ DataFrame.
الاستخدام: لما عايز تدمج DataFrames بناءً على الـ row index.
📖 join: Use for combining DataFrames based on index or specific columns.
Python
import pandas as pd

# DataFrame 1
df1 = pd.DataFrame({
    'name': ['Ali', 'Sara', 'Omar']
}, index=[1, 2, 3])

# DataFrame 2
df2 = pd.DataFrame({
    'grade': [90, 85, 92]
}, index=[1, 2, 3])

# Join على الـ index
result = df1.join(df2)
print(result)
▶ Output
   name  grade
1   Ali     90
2  Sara     85
3  Omar     92
الفرقmerge()join()
بيجمع علىعمود مشترك (column)الـ index
شبيه بـSQL JOINIndex-based join
الاستخدامأكثر مرونةأبسط وأسرع مع index
في الامتحان اكتب التعريف + الكود. الـ merge على column، الـ join على index.
4
Pandas Operations
اشرح Append و Concat في Pandas مع كود
Using Pandas, define Append, Concat and write Python code example.
📋 نص السؤال

Question 4: Using Pandas, define each of the following operations:

  • Append
  • Concat

Then write the appropriate Python code example for each operation.

➕ الـ append()
📋 append إيه يعني؟
تخيل عندك جدول فيه اسمين (Ali, Sara)، وعندك جدول تاني فيه اسم (Omar).
الـ append بتاخد الجدول التاني وتحطه أسفل الأول في نفس الجدول:
df1
name   grade
Ali     90
Sara    85
+
df2
name   grade
Omar    92
=
النتيجة
name   grade
Ali     90
Sara    85
Omar    92 ← اتضاف
📖 append: Use when adding rows from one DataFrame to another.
Python
import pandas as pd

df1 = pd.DataFrame({
    'name': ['Ali', 'Sara'],
    'grade': [90, 85]
})

df2 = pd.DataFrame({
    'name': ['Omar'],
    'grade': [92]
})

# append: بضيف صفوف df2 على df1
result = df1.append(df2, ignore_index=True)
print(result)
▶ Output
   name  grade
0   Ali     90
1  Sara     85
2  Omar     92
🤔 ليه كتبنا ignore_index=True؟
لو ما كتبناهاش، الأرقام (الـ Index) هتفضل زي ما هي في الجداول القديمة وهتتكرر.

❌ من غيرها:
result = df1.append(df2)
   name  grade
0   Ali     90
1  Sara     85
0  Omar     92  ← الـ index باظ
✅ معاها:
result = df1.append(df2, ignore_index=True)
   name  grade
0   Ali     90
1  Sara     85
2  Omar     92  ← تسلسل نظيف
🔧 الـ concat()
🔗 concat: أقوى من append. بتدمج DataFrames على محور معين:
  • axis=0 → رأسي (بيضيف صفوف / rows)
  • axis=1 → أفقي (بيضيف أعمدة / columns)
📖 concat: Use for combining DataFrames along rows or columns based on axes.
Python
import pandas as pd

df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})

# concat رأسي (بيضيف rows)
result_rows = pd.concat([df1, df2], axis=0, ignore_index=True)

# concat أفقي (بيضيف columns)
result_cols = pd.concat([df1, df2], axis=1)

print("Rows:\n", result_rows)
print("Cols:\n", result_cols)
▶ Output
Rows:
   A  B
0  1  3
1  2  4
2  5  7
3  6  8

Cols:
   A  B  A  B
0  1  3  5  7
1  2  4  6  8
الفرقappend()concat()
بيضيفrows فقطrows أو columns
المحورaxis=0 دايماًaxis=0 أو axis=1
الحالةقديم (deprecated)الأحدث والأقوى
الـ concat أقوى وبيدعم axis، الـ append بس للصفوف وقديم. اتكلم عن الفرق ده!
5
Code Output
توقع الـ Output بتاع الكود ده (Q5)
Guess the output of the following Python code.
📋 نص السؤال

Question 5: Guess the output of the following Python code.

Python
import pandas as pd

df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'C': [7, 8]})

df_appended = df1.append(df2, sort=False) # sort=False to handle different columns
print("Appended DataFrame:")
print(df_appended)
▶ Output (النتيجة)
Appended DataFrame:
   A    B    C
0  1  3.0  NaN
1  2  4.0  NaN
0  5  NaN  7.0
1  6  NaN  8.0
💡 ليه طلع الناتج كده؟ (شرح الكود)
هنا عندنا 3 أعمدة في الإجمالي (A, B, C).
الجدول الأول (df1) مفيهوش العمود C، والجدول التاني (df2) مفيهوش العمود B.
لما نعمل append، الـ Pandas بتحط NaN في الأماكن الناقصة.

⚠️ طب هل الصح نحط NaN ولا 0؟
الصح هو NaN طبعاً! لأن 0 ده "قيمة" حقيقية (زي إن طالب جاب صفر في الامتحان)، لكن NaN (Not a Number) معناها إن "البيانات دي مفقودة ومش موجودة أصلاً"، وده الأدق في الـ Data Analysis!

🤔 ليه في أرقام طلعت Float (3.0) وأرقام طلعت Integer (1)؟
دي حتة ذكية جداً! البانداز بتعتبر الـ NaN قيمة عشرية (Float).
- العمود A مفيهوش أي NaN، ففضل زي ما هو أرقام صحيحة (1, 2, 5, 6).
- لكن الأعمدة B و C دخل فيهم NaN، فالـ Pandas حولت العمود كله تلقائياً لـ Float (زي 3.0 و 4.0) عشان تقدر تخزن الـ NaN جواهم.

ملاحظة: الـ index (0, 1) اتكرر هنا عشان مكتبناش ignore_index=True زي ما شرحنا فوق.
📝 إزاي تحل أسئلة الـ Output في الامتحان
1
اقرأ الكود سطر بسطر وتخيل إن انت الكمبيوتر.
2
اتتبع المتغيرات - اكتب كل متغير وقيمته جنبك.
3
ركز على الـ loops - اعمل جدول بالـ iteration وكل قيمة.
4
Pandas output: افتكر إن الـ DataFrame بيتطبع بـ header + index + data.
5
merge/concat output: فكر في الشكل النهائي للجدول بعد الدمج.
💡 نصيحة: في أسئلة الـ Pandas output، الـ index بيبدأ من 0 غالباً ما لم تحدد ignore_index=True أو تغير الـ index.
اعمل trace للكود ورقة ورا ورقة. الـ merge بيضيف الـ columns من الاتنين. الـ concat axis=0 بيضيف rows.
6
Code Output
توقع الـ Output بتاع الكود ده (Q6)
Guess the output of the following Python code.
📋 نص السؤال

Question 6: Guess the output of the following Python code.

Python
import pandas as pd

# Creating DataFrames with unequal columns
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'C': [7, 8]})

# Concatenating along columns (axis=1) with unequal columns
df_concatenated = pd.concat([df1, df2], axis=1, sort=False)
print("Concatenated DataFrame:")
print(df_concatenated)
▶ Output (النتيجة)
Concatenated DataFrame:
   A  B  A  C
0  1  3  5  7
1  2  4  6  8
🐼 ليه طلع الناتج كده؟ (شرح الكود)
استخدمنا concat مع axis=1، وده معناه إنه بيلزق الجدولين أفقياً جنب بعض مش تحت بعض (بيضيف أعمدة). عشان كده أعمدة df2 اتحطت يمين df1 على طول!
🔥 أهم حاجات في Pandas Output
Pandas Basics
import pandas as pd

# DataFrame shape: rows x columns
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# الـ merge على عمود مشترك
df2 = pd.DataFrame({'A': [1, 2], 'C': [7, 8]})
merged = pd.merge(df, df2, on='A')
# Output:
#    A  B  C
# 0  1  4  7
# 1  2  5  8
💡 قاعدة الـ merge: بياخد بس الـ rows اللي فيها match في العمود المشترك (inner join by default).
🔑 قواعد مهمة
merge default = inner بياخد المشترك بس
concat axis=0 بيضيف صفوف تحت
NaN لما ما فيش قيمة
reset_index بيرجع الـ index لـ 0
افتكر إن الـ merge default هو inner join - بياخد بس الـ rows اللي موجودة في الاتنين.
7
Code Output
توقع الـ Output بتاع الكود ده (Q7)
Guess the output of the following Python code.
📋 نص السؤال

Question 7: Guess the output of the following Python code.

Python
import pandas as pd

# Creating DataFrames
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['X', 'Y'])
df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]}, index=['X', 'Y'])

# Joining based on index
joined_df = df1.join(df2, how='outer')
print("Joined DataFrame:")
print(joined_df)
▶ Output (النتيجة)
Joined DataFrame:
   A  B  C  D
X  1  3  5  7
Y  2  4  6  8
📊 أنواع الـ Join في Pandas (شرح الكود)
🗂️ هنا استخدمنا join() اللي بتدمج الجداول بناءً على الـ Index المشترك (اللي هو X, Y). وعملنا how='outer' يعني بناخد كل البيانات من الجدولين.

لازم تعرف الـ 4 أنواع دول عشان تتوقع الـ output صح:
النوعhow=بياخد
Inner Joininnerالـ rows المشتركة فقط
Left Joinleftكل rows الـ Left + المشتركة
Right Joinrightكل rows الـ Right + المشتركة
Outer Joinouterكل rows من الاتنين + NaN للناقص
🚨 تركة امتحان مهمة جداً (مين الـ Default؟):
- لو بتستخدم pd.merge() ⬅️ الـ Default بتاعه هو inner.
- لو بتستخدم df.join() ⬅️ الـ Default بتاعه هو left.
Python (مثال عملي على الـ join)
import pandas as pd

# الجداول هنا بتستخدم الـ Index للدمج
df1 = pd.DataFrame({'name': ['Ali', 'Sara']}, index=[1, 2])
df2 = pd.DataFrame({'age': [20, 22]}, index=[2, 3])

# Inner - المشترك بس (index=2)
inner = df1.join(df2, how='inner')

# Left (وهو الـ default بتاع join) - كل اللي في df1 (index=1, 2)
left = df1.join(df2, how='left')

# Right - كل اللي في df2 (index=2, 3)
right = df1.join(df2, how='right')

# Outer - كل حاجة، والناقص بـ NaN (index=1, 2, 3)
outer = df1.join(df2, how='outer')
▶ Output (النتيجة العملية)
--- Inner Join ---
   name  age
2  Sara   20

--- Left Join ---
   name   age
1   Ali   NaN
2  Sara  20.0

--- Right Join ---
   name  age
2  Sara   20
3   NaN   22

--- Outer Join ---
   name   age
1   Ali   NaN
2  Sara  20.0
3   NaN  22.0
💡 تيبس للـ output:
  • لو شفت NaN في الـ output يبقى عمل outer أو left/right join وفيه قيم ناقصة.
  • أول ما تظهر الـ NaN في أي عمود أرقام، الـ Pandas بيحول كل الأرقام الصحيحة (Integer) اللي في العمود ده لـ Float (عشرية) تلقائياً عشان يقدر يخزن الـ NaN معاهم.
اقرأ الـ how parameter في الـ merge وحدد نوع الـ join أول حاجة.
8
Deep Learning
ارسم واشرح معمارية الـ U-Net Model كاملة
Draw and explain the complete architecture of the U-Net Model.
📋 نص السؤال

Question 8: Draw and explain the complete architecture of the U-Net Model.

  • Contracting Path
  • Expanding Path
🎯 السؤال هيجي إزاي وتكتب إيه في الامتحان؟
السؤال صريح: "Draw and explain the complete architecture of the U-Net Model".
عشان تاخد الدرجة النهائية (Full Mark) لازم إجابتك يكون فيها 3 حاجات:
  1. الرسمة (Draw): ترسم شكل الـ U-Net (زي الرسمة اللي تحت دي بالظبط)، وتوضح إن فيه 5 مستويات للـ Filters بتبدأ من 64 وتوصل لـ 1024 تحت خالص في الـ Bottleneck.
  2. شرح الـ Contracting Path: تكتب إنه بيستخدم Convolution و Pooling عشان يستخرج الـ Features ويصغر أبعاد الصورة (سطرين بالظبط).
  3. شرح الـ Expanding Path: تكتب إنه بيستخدم Up-Convolution عشان يرجع الصورة لحجمها الأصلي، وبيستخدم الـ Skip Connections عشان يحافظ على التفاصيل (سطرين بالظبط).
  4. معلومة Extra للتميز: خلي بالك إن كل بلوك Conv في الرسمة هو في الحقيقة طبقتين ورا بعض (Conv ×2)، وإن الـ Skip Connections بتعمل دمج للقنوات (Concatenation) مش جمع (Addition).
U-Net Architecture
Input Image
Conv 64 ×2
⟶ skip ⟶
Conv 64 ×2
Output Map
MaxPool ↓
UpConv ↑
Conv 128 ×2
⟶ skip ⟶
Conv 128 ×2
MaxPool ↓
UpConv ↑
Conv 256 ×2
⟶ skip ⟶
Conv 256 ×2
MaxPool ↓
UpConv ↑
Conv 512 ×2
⟶ skip ⟶
Conv 512 ×2
MaxPool ↓
UpConv ↑
Bottleneck 1024 ×2
Conv + ReLU MaxPooling Up-Conv Output Skip Connection
📉 الـ Contracting Path (الجانب الأيسر = Encoder)
الجانب ده زي "المعقد" اللي بيفهم الصورة:
  • بيستخدم Convolution layers عشان يستخرج الـ features
  • بيستخدم MaxPooling عشان يصغر الـ spatial dimensions (الصورة بتتصغر)
  • فيه 5 blocks، في كل block بتتضاعف الـ filters: 64 → 128 → 256 → 512 → 1024
📖 The contracting path uses convolution & pooling to extract features while reducing image dimensions.
📈 الـ Expanding Path (الجانب الأيمن = Decoder)
الجانب ده بيعمل عكس اللي فات:
  • بيستخدم Up-Convolution (Transpose Convolution) عشان يكبر الصورة تاني
  • بيستخدم الـ Skip Connections عشان يجيب details دقيقة من الـ contracting path
  • في الآخر بيطلع Segmentation Map
📖 The expanding path uses up-convolution to combine features and upsample until a segmentation map is generated.
🔑 الكلمات المفتاحية
Contracting Path مسار التقليص (Encoder)
Expanding Path مسار التوسع (Decoder)
Skip Connections وصلات التخطي
Segmentation Map خريطة التجزئة
MaxPooling تصغير الأبعاد
Up-Convolution تكبير الأبعاد
ارسم الـ U شكل. الجانب الأيسر Encoder (بيضغط)، الأيمن Decoder (بيوسع). وفيه Skip Connections بتوصل الاتنين.
9
Statistics
الفرق بين Descriptive و Inferential Statistics
Differentiate between Descriptive Statistics & Inferential Statistics.
📋 نص السؤال

Question 9: Differentiate between:

  • Descriptive Statistics
  • Inferential Statistics
🍲 عشان متتلخبطش.. افتكر "حلة الشوربة":
  • Descriptive (وصفي): إنت ذقت معلقة واحدة من حلة الشوربة وقولت: "المعلقة دي طعمها مالح".. إنت كده بتوصف العينة اللي في إيدك بالظبط (Sample).
  • Inferential (استنتاجي): بناءً على المعلقة دي، إنت استنتجت وقولت: "أكيد حلة الشوربة كلها مالحة".. إنت كده استنتجت وخدت قرار عن الحلة كلها (Population) من غير ما تشربها كلها!
Descriptive Statistics Inferential Statistics
  1. Collect
  2. Organize
  3. Summarize
  4. Display
  5. Analyze
  1. Predict & Forecast population parameters
  2. Test hypothesis about population
  3. Make decisions
🔑 الكلمات المفتاحية
Descriptive وصفي - بيوصف ما عندك
Inferential استنتاجي - بيتنبأ
Sample عينة من البيانات
Population المجتمع الكلي
Hypothesis فرضية
Forecast تنبؤ
Descriptive = بتوصف. Inferential = بتستنتج وتاخد قرارات. سهل تفتكر!
10
Data Types
الفرق بين Qualitative و Quantitative Data
Differentiate between Qualitative and Quantitative data types with examples.
📋 نص السؤال

Question 10: Differentiate between the following data types with practical examples:

  • Qualitative (Categorical or Nominal)
  • Quantitative (Measurable or Countable)

Provide suitable examples for each type.

🎨 أسهل طريقة تفتكر:
Qualitative = صفة/نوع → مش رقم → زي لون العين (أزرق/بني)
Quantitative = رقم/عدد → تقدر تحسبه → زي الطول والوزن
Qualitative (Categorical/Nominal) Quantitative (Measurable/Countable)
  • Describes Qualities, Categories, and Types
  • Cannot be measured mathematically
  • Consists of Labels or Names
  • Describes Numbers and Values
  • Can be measured and calculated mathematically
  • Consists of Numerical data
📝 الأمثلة من الامتحان
🎨 Qualitative
Genderالجنس (Male/Female)
Nationalityالجنسية (Egyptian/American)
Car colorلون العربية (Red/Blue)
🔢 Quantitative
Student gradesدرجات الطلاب
Number of booksعدد الكتب
Height & Weightالطول والوزن
Monthly salaryالراتب الشهري
اسأل نفسك "هل تقدر تحسب متوسطه؟" → لو آه فهو Quantitative، لو لأ فهو Qualitative.
11
Statistics - Quartiles
احسب الـ Q1 و Q3 للعمولات
Locate the first quartile (Q1) and third quartile (Q3) for commissions data.
📋 نص السؤال

Question 11: Listed below are the commissions earned last month by a sample of 15 brokers at Salomon Smith Barney's Oakland, California, office.

$2038   $1758   $1721   $1637   $2097   $2047   $2205   $1787
$2287   $1940   $2311   $2054   $2406   $1471   $1460

Locate the first quartile (Q1) and the third quartile (Q3) for the commissions earned.

📉 الـ Quartiles إيه؟
الـ Quartiles بتقسم البيانات لـ 4 أجزاء متساوية:
  • Q1 (First Quartile) = 25% من البيانات أقل منه
  • Q2 (Median) = 50% (النص)
  • Q3 (Third Quartile) = 75% من البيانات أقل منه
📊 البيانات من الامتحان
$2038, $1758, $1721, $1637, $2097, $2047, $2205, $1787, $2287, $1940, $2311, $2054, $2406, $1471, $1460
📝 الحل خطوة بخطوة
1
رتب البيانات تصاعدياً:
1460, 1471, 1637, 1721, 1758, 1787, 1940, 2038, 2047, 2054, 2097, 2205, 2287, 2311, 2406
n = 15 قيمة
2
احسب موقع Q1 (L25):
L₂₅ = (25/100) × 15 = 3.75 → 4th value
(الناتج 3.75 كسر، بنقرب للرقم الصحيح الأكبر اللي هو القيمة الرابعة)
4th value = $1,721
Therefore, Q1 = $1,721
3
احسب موقع Q3 (L75):
L₇₅ = (75/100) × 15 = 11.25 → 12th value
(الناتج 11.25 كسر، بنقرب للرقم الصحيح الأكبر اللي هو القيمة الـ 12)
12th value = $2,205
Therefore, Q3 = $2,205
النتيجة النهائية:
Q1 (First Quartile) = $1,721
Q3 (Third Quartile) = $2,205
📐 الصيغة العامة
L_p = (p/100) × n
الـ Rule: لو الناتج عدد كسري → ارفعه للأعلى (ceiling).
لو عدد صحيح → خد متوسط القيمة دي واللي بعدها.
💡 خلاصة الحل في 3 خطوات:
1️⃣ رتّب الأرقام تصاعدياً.
2️⃣ احسب الـ (L) عشان تعرف مكان الرقم فين.
3️⃣ طلّع القيمة من المكان اللي حسبته.
⚠️ ركز جداً في قاعدة الـ (L):
  • لو L طلع كسر (مثال: L = 3.2): قربه للرقم الصحيح الأكبر دايماً (Ceiling) يعني تاخد القيمة الـ 4.
  • لو L طلع رقم صحيح (مثال: L = 3): بتاخد القيمة دي واللي بعدها وتجيب متوسطهم.. يعني (القيمة الـ 3 + القيمة الـ 4) ÷ 2.
12
Statistics - Frequency Distribution
جدول التوزيع التكراري والهيستوجرام
Frequency distribution table, relative frequency, and histogram.
📋 نص السؤال

Question 12: The following data represent the number of hours spent studying per week by 20 students:

5   7   9   11   13   15   17   19   21   23
6   8   10   12   14   16   18   20   22   24

Required:

  • (a) Construct a frequency distribution table using 4 classes of equal width.
  • (b) Calculate the frequency and relative frequency for each class.
  • (c) Draw the histogram for the data.
📊 البيانات: ساعات المذاكرة لـ 20 طالب في الأسبوع
📊 البيانات
57911131517192123
681012141618202224
🔢 الخطوات
1
احسب الـ Class Width:
Range = Max - Min = 24 - 5 = 19
Class Width = 19 ÷ 4 = 4.75 → 5
⚠️ ملحوظة مهمة (Round Up): في الـ Class Width بنقرب دايماً للرقم الأكبر (Ceiling).. يعني حتى لو الناتج طلع 4.25 أو 4.1، برضه هنقربه لـ 5 عشان نضمن إن مفيش ولا رقم كبير يقع بره الجدول.
2
حدد الـ Classes:
(بنبعد من أصغر رقم في البيانات اللي هو 5، وبنزود بمقدار الـ Width اللي هو 5 أرقام. يعني نعد عالتوالي: 5, 6, 7, 8, 9 يبقوا كده 5 أرقام، يبقى أول Class من 5 لـ 9.. واللي بعده يبدأ من 10 وهكذا).
  • Class 1: 5 – 9 (5 أرقام: 5,6,7,8,9)
  • Class 2: 10 – 14 (5 أرقام: 10,11,12,13,14)
  • Class 3: 15 – 19 (5 أرقام: 15,16,17,18,19)
  • Class 4: 20 – 24 (5 أرقام: 20,21,22,23,24)
3
احسب الـ Frequency و Relative Frequency:
(b) جدول الـ Frequency & Relative Frequency
Class Interval Data Values Frequency (f) Relative Frequency
5 – 9 5, 6, 7, 8, 9 5 5/20 = 0.25 = 25%
10 – 14 10, 11, 12, 13, 14 5 5/20 = 0.25 = 25%
15 – 19 15, 16, 17, 18, 19 5 5/20 = 0.25 = 25%
20 – 24 20, 21, 22, 23, 24 5 5/20 = 0.25 = 25%
Total 20 1.00 = 100%
ملاحظة ممتعة: البيانات موزعة بالتساوي تماماً! كل class عندها 5 قيم بالظبط (لأن البيانات متتابعة من 5 لـ 24). الـ Relative Frequency بتتحسب = f/n = 5/20 = 0.25
(c) الـ Histogram
📊 الـ Histogram هو رسم بياني بيمثل الـ Frequency Distribution. كل عمود (bar) بيمثل class واحد.
Frequency (f)
0
5
5
5–9
5
10–14
5
15–19
5
20–24
Study Hours per Week (Classes)
البارات متساوية في الارتفاع (كلها 5) لأن البيانات موزعة بشكل متساوي (Uniform Distribution).
🔑 الصيغ المهمة
Class Width = Range ÷ Number of Classes
Relative Frequency = f ÷ n
Range = Max - Min
💡 خلاصة إجابة السؤال ده في الامتحان (3 أجزاء):
1️⃣ الخطوات الحسابية: احسب الـ Range والـ Class Width وحدد الـ Classes زي ما عملنا.
2️⃣ الجدول: ارسم الجدول وحط فيه البيانات، الـ Frequency، والـ Relative Frequency.
3️⃣ الرسمة: ارسم الـ Histogram، وتأكد إن العمدان (Bars) متلاصقة، ومكتوب تحتها فترات الـ Classes.