top of page

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

نسبة التباين المف َّسر

تأثيره معنوي وليس → 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



 
 
 

المنشورات الأخيرة

إظهار الكل

تعليقات

تم التقييم بـ 0 من أصل 5 نجوم.
لا توجد تقييمات حتى الآن

إضافة تقييم
bottom of page