المشروع ده معمول علشان نحلل بيانات المستشفيات في أمريكا ونشوف مين فيهم أداؤه كويس ومين محتاج يطوّر. التحليل بيعتمد على بيانات فيها معدلات الـ 30-day readmission (إعادة الدخول خلال 30 يوم) ومؤشرات الأداء مقارنة بالمعدل القومي.
الفكرة إننا نستخدم SQL خطوة بخطوة من أول التنضيف لحد التحليل، وده بيورّي مهارات مهمة جدًا لأي Data Analyst زي:
تنظيف البيانات (Data Cleaning)
التحليل الاستكشافي (Exploratory Data Analysis)
التحليل المتقدم (Advanced SQL using Window Functions)
تلخيص النتائج وعرضها في Dashboard
hospital_analysis_sql_project/ │ ├── schema.sql # إنشاء الجدول وهيكل البيانات ├── data_cleaning.sql # تنظيف البيانات ومعالجة القيم الناقصة والمكررات ├── data_exploration.sql # تحليل استكشافي للمستشفيات والأداء العام ├── advanced_analysis.sql # تحليلات متقدمة وترتيب المستشفيات ومتابعة الأداء
🧹 1. Data Cleaning (تنظيف البيانات)
في الجزء ده اشتغلت على:
توحيد شكل النصوص (مثلاً أسماء المدن أو الولايات كلها Uppercase).
حذف الصفوف اللي فيها قيم ناقصة أو صفرية في الـ score أو denominator.
تحويل الأعمدة بتاعة التواريخ لصيغة DATE.
إزالة الصفوف المكررة (Duplicates).
📘 مثال:
DELETE FROM hospital_data WHERE score IS NULL OR denominator = 0;
📊 2. Data Exploration (التحليل الاستكشافي)
بعد التنضيف، بدأت أستكشف البيانات وأشوف:
عدد المستشفيات في كل ولاية.
متوسط الدرجات في كل ولاية.
توزيع المستشفيات بالنسبة للأداء القومي (أحسن - أسوأ - زي القومي).
أعلى وأقل 10 مستشفيات من حيث الأداء.
📘 مثال:
SELECT state, ROUND(AVG(score), 2) AS avg_state_score FROM hospital_data GROUP BY state ORDER BY avg_state_score DESC;
🔍 3. Advanced Analysis (التحليل المتقدم)
هنا استخدمت Window Functions علشان أعمل حاجات زي:
ترتيب المستشفيات حسب الأداء العام.
اكتشاف المستشفيات اللي بتتحسن أو بتسوء على مدار الوقت.
حساب عدد المؤشرات اللي أداءها "أسوأ من المعدل القومي".
📘 مثال:
WITH trend AS ( SELECT hospital_name, measure_name, measure_start_date, score, LAG(score) OVER (PARTITION BY hospital_name, measure_name ORDER BY measure_start_date) AS prev_score FROM hospital_data ) SELECT hospital_name, measure_name, (score - prev_score) AS score_change FROM trend WHERE prev_score IS NOT NULL ORDER BY score_change DESC;
توزيع المستشفيات حسب مقارنة الأداء القومي.
من التحليل قدرت أستنتج مثلاً:
بعض الولايات فيها أداء أعلى من المعدل القومي بشكل واضح.
في مستشفيات أداؤها ثابت وأخرى بتحسن ملحوظ.
بعض المؤشرات (زي الـ Readmission) هي أكتر حاجة بتأثر في الأداء العام.
حمّل الملف بتاع البيانات (CSV).
استورد الجدول باستخدام ملف schema.sql.
نفّذ سكريبت التنضيف data_cleaning.sql.
بعد كده شغّل التحليل الاستكشافي والـ advanced.
Structured Query Language (SQL)
Data Cleaning & Preparation
Exploratory Data Analysis (EDA)
Advanced Analytics using Window Functions
Business Insight Reporting
Marwan Eslam Data Analyst | Machine Learning Enthusiast