Statistical analysis Guide
- 11 يونيو
- 11 دقيقة قراءة
📊 Statistics & Regression
Field Reference Manual
For Sales & Customer Data Analysis
What's inside this manual:✦ Part 1: Decision Map — When to use what tool✦ Part 2: Module Cards — Quick reference for every topic✦ Part 3: Complete Analysis Project Walkthrough✦ Part 4: Python Code for Every Module✦ Part 5: Common Interpretation Mistakes |
Version 1.0 | June 2026 | Sales & Customer Analytics Track
PART 1 — DECISION MAP: متى تستخدم إيه؟
:السؤال الأساسي اللي هيحدد كل حاجة
هدفك من التحليل إيه؟.الإجابة على السؤال دا هي اللي تحدد الأداة الصح — مش نوع البيانات أو الشكل الظاهر منها |
Salesمثال 📦 | الأداة 🔧 | هدفك 🎯 | سؤالك ❓ |
/ DescribeExplore | بيان البيانات وشكلها | Probability + Z-Score + Distribution | توزيع المبيعات الشهرية |
متوسط قيمة الأوردر في السوق كله | Estimate | Confidence Interval | تقدير قيمة مجهولة |
Compare 2Groups | مقارنة متوسطين | T-Test (Two-Sample) | مبيعات الفرعA vs الفرع B |
+ Compare 3Groups | مقارنة 3مجموعات أو أكتر | أداء 4مناطق مبيعات | ANOVA |
Salesمثال 📦 | الأداة 🔧 | هدفك 🎯 | سؤالك ❓ |
Test aProportion | اختبار نسبة/فئة | Population Proportion Test | نسبة العملاء الراضين |
Association inCategories | هل فيه علاقة؟ (فئات) | نوع العميل ×المنتج المفضل | Chi-Squared |
Predict(Numeric) | قياس تأثير متغير على آخر | Simple/Multiple Linear Regression | تأثير الإعلان على المبيعات |
) تنبؤ بفئة (نعم/لأ | Predict (Binary) | Logistic Regression | هيشتري ول لأ |
+ CompareControl Variable | مقارنة مع عوامل إضافية | الأداء بعد إزالة تأثير الخبرة | ANCOVA |
MultipleOutcomes Together | عدة متغيرات تابعة | MANOVA / MANCOVA | تحليلRevenue + Satisfaction معا |
+ A/B TestingExperimental Design | Causal Test | اختبار تأثير تجربة/تعديل | الجديد offerهل الـ أفضل؟ |
Predict frompast data | تنبؤ بسيط من تاريخي | Linear Regression + Confidence Intervals | توقع مبيعات الشهر القادم |
شجرة القرار السريعة
كام متغير تابع عندك؟ — STEP 1 واحد →روحSTEP 2 → أكتر من واحدMANOVA / MANCOVA |
المتغير التابع بتاعك من أي نوع؟ — STEP 2 → STEP 3رقم مستمر( نعم /لأBinary) → Logistic Regression → Chi-Squaredفئات بدون ترتيب |
هدفك وصف ولا مقارنة ولا تنبؤ؟ — STEP 3 → وصف البياناتProbability + Z-Score + Distribution → تقدير قيمةConfidence Interval) → T-Test (one or two sampleاختبار فرضية على متوسط → ANOVAمقارنة + 3مجموعات → قياس علاقة /تنبؤRegression (Simple أوMultiple) → اختبار تجربة فعليةA/B Testing + Experimental Design |
بطاقات الموضوعات — PART 2
01 | Probability & Conditional Probability |
متى تستخدمهتفهم احتمالية حدوث حاجة معينة في بياناتكمثال :احتمال إن العميل يشتري منتج معين | الشرط الأساسيعندك بيانات تاريخية كافية لحساب التكرار |
مثال | معناه العملي | المصطلح |
(شراء = )عدد المشترين /كل الزوار P | A احتمال حدوث | )P(A |
)شراء |فتح الإيميل( P | حصلت Bبشرط إن Aاحتمال | )P(A|B |
اشترى +عاد للشراء مرة تانية | كلاهما حصل | )P(A and B |
اشترى أونلاين أو بالفرع | واحد أو التنين حصلوا | )P(A or B |
:ازاي تستخدم النتيجة ⚡ |
02 | Probability Distribution & Z-Score |
متى تستخدمهتفهم شكل توزيع بياناتك وتحدد القيم الشاذةهل المبيعات موزعة طبيعي؟ | الناتج الرئيسيZ-Score = كمstandard deviation الرقم ده بعيد عن المتوسطZ > 2 أوZ < -2 ← Outlier |
تفسيرZ-Score فيSales:العميل ده متوسط تماما → Z = 0مبيعاته عالية جدا (أعلى من % 97.7من العملاء) → Z = +2) churnخطر( مبيعاته منخفضة جدا → Z = -2Z > 3 → Outlier — ( اتحقق منهdata error أوVIP customer) |
:تطبيق عملي ⚡ |
03 | Sampling & Sampling Distribution |
متى تستخدمه populationلما بياناتك كبيرة جدا أو مش قادر تأخد كل الـعملاء — اختبار منتج جديد Survey | Central Limit Theoremتوزيع المتوسطات ،) (n ≥ 30كافية samplesلو أخدت هيبقى طبيعي حتى لو الداتا مش طبيعية |
تحذير | امتى تستخدمه | Samplingنوع الـ |
مكلف في العمل الميداني | اختيار عشوائي تام | Random |
المتنوعة Salesالأفضل لبيانات | من كل فئة sampleتقسيم لفئات ثم أخد | Stratified |
biasسريع لكن ممكن يحتوي | عميل في القائمة nكل | Systematic |
تجنبه في التحليل الجاد — ⚠️ Biased | اللي سهل وصوله | Convenience |
04 | Confidence Intervals & Margin of Error |
:الفكرة الجوهرية%'بدل ما تقول 'متوسط قيمة الأوردر 250جنيه '— قول 'متوسط قيمة الأوردر بين 237و 263جنيه بثقة 95ده أكتر صدق وأكتر مفيد لتخاذ القرار |
متى تستخدمه | معناه | CIالـ |
تقارير سريعة — قرارات أولية | أسرع وأضيق | %90 |
Businessمعظم تحليلات الـ | المعيار الأكتر استخداما | %95 |
قرارات عالية المخاطرة | أوسع — أكتر تحفظا | %99 |
Population Proportion CI'لما بتسأل' :كام %من عملاؤنا راضين؟ %بـ68: مثالmargin ±4% | Mean CI'لما بتسأل' :ما هو متوسط الإنفاق في السوق؟مثال : 340جنيه ±25 |
:ازاي تستخدم النتيجة ⚡ |
05 | Hypothesis Testing — T-Tests |
:المنطق الأساسي'ل فيه فرق /ل فيه تأثير — 'الوضع الفتراضي :)H0 (Null'فيه فرق /فيه تأثير — 'اللي بتختبره :)H1 (Alternativeالنتيجة معنوية (مش صدفة) → H0ارفض → p-value < 0.05مش عندك دليل كافي → H0فشل في رفض → p-value ≥ 0.05 |
Salesمثال | امتى تستخدمه | T-Testنوع الـ |
هل متوسط مبيعاتنا = 300زي الهدف؟ | مقارنة متوسط العينة بقيمة معروفة أو هدف | One-Sample T-Test |
Two-Sample (Independent) | Bالفرع A vsمبيعات الفرع | مقارنة مجموعتين مختلفتين |
أداء الفريق قبل وبعد التدريب | نفس الناس قبل وبعد | Paired T-Test |
:ازاي تقرأ النتيجة ⚡t = 2.34, p = 0.023, df = 48 → p < 0.05 → الفرق معنويللتحقق من حجم العينة ، dfللمعنوية ، p-valueلتجاه الفرق t-statisticاقرأ |
06 | A/B Testing & Experimental Design |
A/B Testing( اختبار نسختينA control، B treatment)أحسن من %15؟ % discount 20هل الـ :النتيجةConversion Rate + p-value | Experimental Designتصميم التجربة نفسها بشكل صحRandomization + Control Group + Sample Size Correlationمش Causalعشان النتيجة تبقى |
تحذير | التفاصيل | خطوة |
1. Define Metric | KPI ( واحد رئيسيConversion Rate / Revenue) | هتلاقي واحد — metricsمتاخدش 10 significant بالصدفة |
2. Sample Size | عينة صغيرة =نتيجة مش موثوقة | ) (power analysisاحسب قبل ما تبدأ |
تحذير | التفاصيل | خطوة |
3. Randomize | أي تحيز في التقسيم =نتيجة مش صالحة | manuallyمش randomlyق ّسم العملاء |
4. Run Test | ل توقفه بدري لو نتيجة إيجابية | خلّيه يشتغل لحد ما تيجي البيانات الكافية |
اقرأ النتيجة بعيدا عن التوقعات | metricحسب الـ Chi-Squaredأو T-Test | 5. Analyze |
⚡ متى تختارA/B Testing عن الـRegression؟عايز تثبت سببية (هذا التغيير س ّبب هذه النتيجة )— لزم يكون عندك تحكم في التجربة :A/Bبتحلل بيانات تاريخية وعايز تفهم العلاقات — مش بتتحكم في التجربة :Regression |
07 | Chi-Squared Test |
:متى تستخدمه(فئات )وعايز تعرف هل فيه علاقة بينهم؟ Categoricalعندك متغيرين) (A/B/Cمثال :نوع العميل (جديد/قديم × )المنتج اللي اشتراه |
Test of Independenceهل المتغيرين مترابطين؟هل المنطقة الجغرافية بتأثر على المنتج المفضل؟ | Goodness of Fitهل التوزيع الفعلي زي المتوقع؟هل المبيعات موزعة بالتساوي على الشهور؟ |
:قراءة النتيجة ⚡ offersوتخصيص الـ segmentationفيه علاقة معنوية بين الفئتين →استخدمها في → p < 0.05)للقوة Cramér's Vاستخدم( بيقولك فيه علاقة ول لأ — مش بيقولك مدى قوة العلاقة ⚠️ Chi-Squared |
08 | ANOVA — ANCOVA — MANOVA — MANCOVA |
امتى تستخدمها | المستقل | المتغير التابع | الأداة |
مقارنة متوسط مبيعات 4مناطق | فئوي (+ 3مجموعات) + 1 | رقمي 1 | ANOVA |
مقارنة مناطق بعد التحكم في حجم الفرع | ) (covariateفئوي +رقمي | رقمي 1 | ANCOVA |
MANOVA | 2+ رقمي | 1+ فئوي | Revenue + Satisfaction 4 معا لـ مناطق |
امتى تستخدمها | المستقل | المتغير التابع | الأداة |
بس مع التحكم في متغير MANOVAنفس إضافي | ) (covariateفئوي +رقمي | رقمي +2 | MANCOVA |
:بيقولك فيه فرق بس مش فين — ANOVAمهم جداعشان تعرف أي مجموعتين بالظبط مختلفتين ) Post-Hoc Test (Tukey HSDاعمل → ANOVAفي p < 0.05لوهم المختلفان Dو Aقالك المنطقة — Tukeyقالك 4مناطق مختلفين : ANOVAمثال |
09 | Linear Regression — Simple & Multiple |
:الفكرة الجوهريةY = β0 + β1X1 + β2X2 + ... + εالخطأ = | εقوة التأثير = | βالمتغيرات المف ّسرة = | Xالمتغير اللي بتتنبأ به = Y |
التفسير | القيمة الجيدة | بيقيسك إيه | المقياس |
%النموذج بيفسر R²=0.75 → 75Yمن التغيرات في | ≥ 0.65 | نسبة التباين المف َّسر | R² |
تأثيره معنوي وليس → p=0.003صدفة | < 0.05 | هل المتغير ده مهم؟ | ).p-value (coef |
< pأي قيمة مع 0.05 | مقدار التأثير | )Coefficient (β | ترفع Xكل وحدة زيادة في → β=12 Y 12 بـ |
جنيه →خطأ ± RMSE=500 500في المتوسط | أصغر ما يمكن | متوسط الخطأ في التنبؤ | RMSE |
:اللي لازم تتحقق منها Assumptionsالـ 51. Linearity — ( العلاقة خطيةplot Y vs X)2. Independence — الـobservations مش مرتبطة ببعض3. Homoscedasticity — ( التباين ثابتResidual plot flat)4. Normality of Residuals — ( الأخطاء موزعة طبيعيQ-Q plot)) (VIF < 5المتغيرات المستقلة مش مترابطة — 5. No Multicollinearity |
10 | Logistic Regression |
:متى تستخدمها |
)نعم/لأ — اشترى/ما اشتراش — س ّدد/ما س ّددش( Binaryبتاعك بالـ Yالمتغير التابعبين 0و : P(Y=1) 1الناتج مش رقم، هو احتمالية |
التفسير | بيقيسك إيه | المقياس |
احتمال الشراء أعلى بـ 2.5مرة → OR=2.5 | Y كام مرة أكتر احتمال حدوث | Odds Ratio |
بيتنبأ صح % 82من الوقت → % Accuracy=82 | نسبة التنبؤ الصح | Accuracy |
كويس > | 0.85ممتاز > 0.75 | جودة النموذج كلها | AUC-ROC |
مؤثر → < 0.05 | هل المتغير مهم؟ | ).p-value (coef |
Confusion Matrix | تفاصيل الأخطاء | True/False Positive + Negative |
⚡ مثالSales:بنى نموذج على :سن العميل +عدد الزيارات +الإنفاق السابق →يتنبأ هيشتري في الكامبين القادم؟78: %النتيجةaccuracy + AUC=0.83 → نموذج قوي يستخدم فيcustomer targeting |
متى تدمج الأدوات مع بعض؟
الترتيب | الأدوات اللي بتدمجها | السيناريو |
Customer Segmentation | Z-Score + Clustering + ANOVA | Z-Score → حددoutliers → ANOVA اختبر الفروق |
Campaign Effectiveness | A/B Testing + T-Test + Chi-Squared | A/B Design → T-Test للـRevenue → Chi-Squared للـConversion |
Sales Forecasting | Confidence Interval + Linear Regression | لحدود الخطأ → CIللتنبؤ Regression |
Churn Prediction | Logistic Regression + Probability | Prob analysis → Logistic model → Probability score لكل عميل |
Regional Performance | ANOVA + Post-Hoc + Regression | → حدد مين → Tukeyاكتشف فرق ANOVA Regression اعرف السبب |
New Product Pricing | A/B Testing + T-Test + Confidence Interval | A/B experiment → T-Test → للمعنوية Revenueلتقدير الـ CI |
PART 3 — :مشروع تحليل متكاملCampaign Impact Analysis
:السيناريو.شركة بيع بالتجزئة — عملت كامبين تسويقي جديد (خصم %) 25على 3مناطق جغرافيةالسؤال :هل الكامبين نجح؟ وفي أنهي منطقة؟ ومين العملاء الأكتر استجابة؟ |
فهم البيانات : — Exploreالخطوة 1
قبل أي تحليل outliersللمبيعات →حدد الـ Z-Scoreاحسب •
؟ normal distributionارسم التوزيع →هل المبيعات •
• احسبConditional Probability → P( | استجاب للكامبينVIP)
تقدير المتوسطات : — Estimateالخطوة 2
لمتوسط المبيعات في كل منطقة % Confidence Interval 95احسب •
) (Population Proportionلنسبة العملاء اللي استجابوا CIاحسب •
موثوق لكل منطقة مش مجرد رقم واحد rangeالنتيجة :عندك •
اختبار الكامبين : — Testالخطوة 3
بعد الكامبين →هل الفرق معنوي؟ vsمبيعات قبل :• Two-Sample T-Test
هل نوع العميل (جديد/قديم )مرتبط بالستجابة؟ :• Chi-Squared
مقارنة الأداء في 3مناطق جغرافية في نفس الوقت :• ANOVA
أنهي منطقتين بالظبط هم المختلفين → ANOVAبعد ):• Post-Hoc (Tukey
فهم السبب والتنبؤ : — Modelالخطوة 4
تأثير (المنطقة +عمر العميل +تاريخ الشراء )على المبيعات :• Multiple Linear Regression
من العملاء اللي هيستجيبوا في الكامبين الجاي؟ :• Logistic Regression
Python Statistics Reference
Sales & Customer Data Analysis
Setup — Run Once
pip install pandas numpy scipy statsmodels scikit-learn matplotlib seaborn pingouin
import pandas as pd
import numpy as np
from scipy import stats
import statsmodels.formula.api as smf
import statsmodels.api as sm
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report, roc_auc_score, ConfusionMatrixDisplay
from statsmodels.stats.proportion import proportion_confint, proportions_ztest
import matplotlib.pyplot as plt
import seaborn as sns
import pingouin as pg
01 — Probability & Conditional Probability
# P(Buy)
p_buy = df['purchased'].mean()
# P(Buy | Email Opened)
opened = df[df['opened_email'] == 1]
p_buy_given_open = opened['purchased'].mean()
print(f'P(Buy) = {p_buy:.2%}')
print(f'P(Buy | Email Open) = {p_buy_given_open:.2%}')
print(f'Lift = {p_buy_given_open / p_buy:.2f}x')
Read the output:
Lift > 1 → العملاء اللي بيفتحوا الإيميل أكتر شراءً من المتوسط
Lift = 2.5 → أعلى بـ 150% من المتوسط → ركز عليهم في الكامبين
02 — Z-Score & Outlier Detection
# احسب Z-Score لكل عميل
df['z_revenue'] = stats.zscore(df['revenue'])
# صنّف العملاء
df['segment'] = pd.cut(
df['z_revenue'],
bins=[-np.inf, -2, -1, 1, 2, np.inf],
labels=['At-Risk', 'Below Avg', 'Normal', 'Above Avg', 'VIP']
)
# Outliers
outliers = df[df['z_revenue'].abs() > 3]
print(f'Outliers count: {len(outliers)}')
print(df['segment'].value_counts())
Read the output:
Z > +2 → VIP / high-value customer
Z < -2 → at-risk, potential churn
Z > ±3 → Outlier — verify: data error or exceptional case?
03 — Confidence Intervals
# CI for Mean (95%)
ci_mean = stats.t.interval(
confidence=0.95,
df=len(df['revenue']) - 1,
loc=df['revenue'].mean(),
scale=stats.sem(df['revenue'])
)
print(f'95% CI for Mean Revenue: {ci_mean[0]:.1f} → {ci_mean[1]:.1f}')
# CI for Proportion (e.g. % satisfied customers)
satisfied = df['satisfied'].sum()
ci_prop = proportion_confint(satisfied, len(df), alpha=0.05)
print(f'95% CI for Satisfaction: {ci_prop[0]:.1%} → {ci_prop[1]:.1%}')
Read the output:
CI = [237, 263] → أي قرار تسعير بين الرقمين مبني على أساس سليم
Margin of Error = (upper - lower) / 2
04 — T-Tests
# One-Sample T-Test — هل المتوسط = target معين؟
t_stat, p_val = stats.ttest_1samp(df['sales'], popmean=300)
print(f'One-Sample: t={t_stat:.3f}, p={p_val:.4f}')
# Two-Sample T-Test — مقارنة فرعين
group_a = df[df['branch'] == 'A']['sales']
group_b = df[df['branch'] == 'B']['sales']
t_stat, p_val = stats.ttest_ind(group_a, group_b, equal_var=False) # Welch's
print(f'Two-Sample: t={t_stat:.3f}, p={p_val:.4f}')
print(f'Mean A = {group_a.mean():.1f} | Mean B = {group_b.mean():.1f}')
if p_val < 0.05:
print('✓ Significant difference')
else:
print('✗ No significant difference')
# Paired T-Test — نفس المجموعة قبل وبعد
t_stat, p_val = stats.ttest_rel(df['sales_before'], df['sales_after'])
print(f'Paired: t={t_stat:.3f}, p={p_val:.4f}')
Read the output:
p < 0.05 → الفرق معنوي، مش صدفة
t positive → الـ first group أعلى
t negative → الـ second group أعلى
05 — Chi-Squared Test
# Contingency table
ct = pd.crosstab(df['customer_type'], df['product_category'])
chi2, p_val, dof, expected = stats.chi2_contingency(ct)
print(f'Chi2={chi2:.3f}, p={p_val:.4f}, df={dof}')
if p_val < 0.05:
print('✓ Significant association between the two variables')
# Cramér's V — strength of association (0=none, 1=perfect)
n = ct.sum().sum()
cramers_v = np.sqrt(chi2 / (n * (min(ct.shape) - 1)))
print(f"Cramér's V = {cramers_v:.3f}")
Read the output:
p < 0.05 → فيه علاقة بين المتغيرين → استخدمها في Segmentation
Cramér's V < 0.1 → علاقة ضعيفة | 0.3+ → علاقة معتدلة | 0.5+ → قوية
06 — ANOVA + Post-Hoc + ANCOVA
# One-Way ANOVA
groups = [df[df['region'] == r]['sales'] for r in df['region'].unique()]
f_stat, p_val = stats.f_oneway(*groups)
print(f'ANOVA: F={f_stat:.3f}, p={p_val:.4f}')
# Post-Hoc Tukey — لازم لو ANOVA p < 0.05
tukey = pg.pairwise_tukey(data=df, dv='sales', between='region')
print(tukey[['A', 'B', 'mean(A)', 'mean(B)', 'p-tukey']].to_string())
# ANCOVA — مقارنة مع التحكم في covariate
from statsmodels.stats.anova import anova_lm
model = smf.ols('sales ~ C(region) + store_size', data=df).fit()
print(anova_lm(model, typ=2))
Read the output:
ANOVA p < 0.05 → فيه فرق ما بين المجموعات → شوف Tukey
Tukey: كل صف مقارنة بين مجموعتين — p-tukey < 0.05 → دول المختلفان
ANCOVA: بيزيل تأثير الـ covariate قبل المقارنة
07 — Linear Regression (Simple & Multiple)
# Simple
model_simple = smf.ols('revenue ~ ad_spend', data=df).fit()
print(model_simple.summary())
# Multiple
model = smf.ols(
'revenue ~ ad_spend + customer_age + visits + C(region)',
data=df
).fit()
print(model.summary())
# الأرقام المهمة من الـ Summary
print(f'R² = {model.rsquared:.3f}')
print(f'F p-val = {model.f_pvalue:.4f}')
print(model.params) # coefficients
print(model.pvalues) # p-value per variable
# --- Check Assumptions ---
# 1. Normality of Residuals
sm.qqplot(model.resid, line='s')
plt.title('Q-Q Plot — should follow the line')
plt.show()
# 2. Homoscedasticity
plt.scatter(model.fittedvalues, model.resid, alpha=0.5)
plt.axhline(0, color='red')
plt.xlabel('Fitted Values')
plt.ylabel('Residuals')
plt.title('Residuals vs Fitted — should be flat/random')
plt.show()
# 3. Multicollinearity — VIF
from statsmodels.stats.outliers_influence import variance_inflation_factor
X = df[['ad_spend', 'customer_age', 'visits']]
X_c = sm.add_constant(X)
vif = pd.DataFrame({
'Feature': X_c.columns,
'VIF': [variance_inflation_factor(X_c.values, i) for i in range(X_c.shape[1])]
})
print(vif)
# VIF > 5 → مشكلة Multicollinearity → احذف أو دمج المتغيرات
Read the output:
R² = 0.75 → النموذج بيفسر 75% من التغيرات في Revenue
coef = 12 → كل وحدة زيادة في X ترفع Y بـ 12
p < 0.05 للمعامل → المتغير ده مهم في النموذج
08 — Logistic Regression
X = df[['customer_age', 'visits', 'past_revenue', 'days_since_last_buy']]
y = df['will_buy'] # 0 or 1
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
y_prob = model.predict_proba(X_test)[:, 1]
print(classification_report(y_test, y_pred))
print(f'AUC-ROC = {roc_auc_score(y_test, y_prob):.3f}')
# Confusion Matrix
ConfusionMatrixDisplay.from_estimator(model, X_test, y_test)
plt.show()
# Probability score per customer
df['buy_probability'] = model.predict_proba(X)[:, 1]
top_targets = df.nlargest(100, 'buy_probability')
print(top_targets[['customer_id', 'buy_probability']].head(10))
Read the output:
AUC > 0.85 → نموذج ممتاز | > 0.75 → كويس | < 0.65 → ضعيف
Precision → من اللي قلنا هيشتري، كام % اشترى فعلاً
Recall → من اللي اشتروا فعلاً، كام % اتوقعناهم صح
buy_probability → استخدمها مباشرة في Customer Targeting
09 — A/B Testing
control = df[df['group'] == 'control']['revenue']
treatment = df[df['group'] == 'treatment']['revenue']
# T-Test for Revenue
t_stat, p_val = stats.ttest_ind(control, treatment, equal_var=False)
print(f'Revenue T-Test: t={t_stat:.3f}, p={p_val:.4f}')
print(f'Control Mean = {control.mean():.1f}')
print(f'Treatment Mean = {treatment.mean():.1f}')
# Proportions Test for Conversion Rate
n_c = len(df[df['group'] == 'control'])
n_t = len(df[df['group'] == 'treatment'])
conv_c = df[df['group'] == 'control']['converted'].sum()
conv_t = df[df['group'] == 'treatment']['converted'].sum()
z_stat, p_val2 = proportions_ztest([conv_t, conv_c], [n_t, n_c])
print(f'Conversion Z-Test: z={z_stat:.3f}, p={p_val2:.4f}')
# Lift
lift = (conv_t / n_t) / (conv_c / n_c)
print(f'Conversion Lift = {lift:.2f}x')
if p_val < 0.05 and p_val2 < 0.05:
print('✓ Treatment wins on both Revenue and Conversion')
Read the output:
p < 0.05 في الاتنين → الكامبين الجديد أفضل بشكل معنوي
Lift = 1.3 → تحسن 30% في الـ Conversion Rate
لو p Revenue معنوي بس مش الـ Conversion → الكامبين بيجيب نفس الناس بس بأكتر
Quick Reference
Test | Function | Key Output |
One-Sample T | stats.ttest_1samp(x, popmean) | t, p |
Two-Sample T | stats.ttest_ind(a, b) | t, p |
Paired T | stats.ttest_rel(before, after) | t, p |
Chi-Squared | stats.chi2_contingency(ct) | chi2, p, dof |
One-Way ANOVA | stats.f_oneway(*groups) | F, p |
Post-Hoc | pg.pairwise_tukey(...) | p-tukey per pair |
OLS Regression | smf.ols(formula, data).fit() | R², coef, p |
Logistic Reg | LogisticRegression().fit(X, y) | AUC, accuracy |
CI for Mean | stats.t.interval(0.95, ...) | lower, upper |
CI for Proportion | proportion_confint(n, N) | lower, upper |
Statistics & Regression Python Reference — June 2026
القرارات : — Concludeالخطوة 5
:مثال نتائج وترجمتها لقرارات✓ الكامبين رفع المبيعات بشكل معنوي → T-Test: p=0.019 Bو Aمختلفة عن Cالمنطقة : → Tukeyفيه فرق بين المناطق → ANOVA: p=0.003العملاء القدامى أكتر استجابة → Chi-Squared: p=0.041) (β=0.43, p<0.001تاريخ الشراء هو الأقوى في التنبؤ → Regression: R²=0.71 |
%النموذج بيحدد العملاء المحتملين بدقة Logistic: AUC=0.80 → 80. Logistic modelبالـ targetingمع Cالقرار :ركز الكامبين الجاي على العملاء القدامى في المنطقة |
Part 5 : اشهر اخطاء التفسير
الصح ✅ | الخطأ ❌ |
بيقيسك الصدفة — مش الأهمية .لزم تبص على p-valueEffect Size ( كمانCohen's d, R²) | معناه النتيجة مهمة عمليا p < 0.05 |
بيزيدوا salesو ad_spendالعلاقة الرتباطية مش سببية .لو مع بعض — مش معناه الإعلان هو السبب | Correlation = Causation |
لزم تختبر على بيانات . Overfittingممكن يعني R²=0.95جديدة | عالي =نموذج كويس R² |
هو اللي — Post-Hocبيقول فيه فرق في مكان ما ANOVAيحدد فين بالظبط | كل المجموعات مختلفة = ANOVA p < 0.05 |
معناه :مفيش دليل كافي في البيانات دي .ممكن العينة صغيرة أو فيه متغير متحكم فيه | مفيش علاقة = p > 0.05 |
مش — H0مع consistentيعني البيانات مش H0رفضت H1ثبات لـ | H1ثبتت = H0رفضت |
Confidence Interval 95% = 95% احتمال Rangeالحقيقة جوه الـ | اللي هتعملها بالطريقة دي intervalsمعناه :% 95من الـ CIالـ هتحتوي القيمة الحقيقية |
Type Iمتعددة بترفع احتمال الـ ANOVA — T-Testsلزم Error | على 4مجموعات T-Testاستخدام |
حذف الـOutliers دائما | الـ Outliers ممكن يكونواVIP customers أوdata errors ف ّرق بينهم أول — |
Quick Reference — p-values
القرار | التفسير | p-value |
بثقة عالية جدا H0ارفض | معنوي جدا | < 0.001 |
H0ارفض | معنوي قوي | 0.001 - 0.01 |
H0ارفض | معنوي (الحد العتيادي) | 0.01 - 0.05 |
0.05 - 0.10 | Marginal | قرار حسب السياق والـeffect size |
مفيش دليل كافي — H0فشل في رفض | غير معنوي | > 0.10 |



تعليقات