Sampling ও Central Limit Theorem
এই পাঠে যা শিখবেন
- Population, sample, parameter, statistic — বেসিক vocabulary
- ৩টি sampling পদ্ধতি — কখন কোনটা, bias-variance trade-off
- Sampling distribution — sample-এর "sample"
- CLT — কেন statistical inference সম্ভব
১ · Population vs Sample
PopulationPopulationআমরা যাদের সম্পর্কে inference করতে চাই — পুরো গোষ্ঠী। প্রায়ই inaccessible (পুরো বাংলাদেশ-এর সব ভোটার)। প্যারামিটার (μ, σ) population-এর বৈশিষ্ট্য। = সম্পূর্ণ আগ্রহের গোষ্ঠী (যেমন: বাংলাদেশের সব Daraz user)। Sample = সেই population থেকে নেওয়া ছোট subset (১০০০ user)।
Parameter: population-এর true value (যেমন: $\mu$ = সব user-এর গড় order value)। জানা যায় না সাধারণত।
Statistic: sample থেকে গণনা (যেমন: $\bar{x}$ = sample-এর গড়)। parameter-এর estimate।
১) Cost: পুরো population সবসময় access করা যায় না।
২) Time: ৫ কোটি user survey অসম্ভব।
৩) Sufficient: ভাল sample → population সম্পর্কে নির্ভরযোগ্য inference।
২ · Random sampling
Simple random samplingSimple Random Sampling (SRS)প্রতিটি unit-এর সমান probability of selection। Lottery-r মতো — তাত্ত্বিকভাবে আদর্শ। Practical-এ তালিকা প্রয়োজন।: প্রতিটি unit-এর সমান probability। Lottery-র মতো।
সুবিধা: Bias নেই; গাণিতিক treatment সহজ।
সমস্যা: Sub-group under-represent হতে পারে। Practical-এ পুরো তালিকা চাই।
উদাহরণ: Daraz-এর ৫ কোটি user থেকে ১০০০ random user বাছুন — তাদের satisfaction জিজ্ঞাসা করুন।
৩ · Stratified sampling
Stratified samplingStratified SamplingPopulation-কে homogeneous sub-group-এ ভাগ (strata) — প্রতিটি থেকে আলাদা random sample। Variance reduction-এর প্রধান উপায় যখন strata-এ outcome ভিন্ন।: population-কে আগে stratum-এ ভাগ — তারপর প্রতি stratum থেকে আনুপাতিক random sample।
উদাহরণ: বাংলাদেশের বিভাগ অনুযায়ী stratify — ঢাকা ৩০%, চট্টগ্রাম ২০%, রাজশাহী ১০%, ... — তারপর প্রতিটি থেকে proportional sample।
সুবিধা: প্রতিটি sub-group represent; variance কমে যায়।
সমস্যা: Stratum information আগে চাই।
৪ · Cluster sampling
Cluster (যেমন: এলাকা, স্কুল) random-ভাবে বাছুন — তারপর সেই cluster-এর সবাইকে নিন।
উদাহরণ: বাংলাদেশের ৬৪ জেলা থেকে ১০ জেলা random — সেই জেলার সব Pathao driver সমীক্ষা।
সুবিধা: Logistically সহজ। Field survey-এ cost-effective।
সমস্যা: একই cluster-এর সদস্যরা similar — variance বাড়ে। Design effect বিবেচনা করতে হয়।
৫ · Sampling distribution
Sampling distributionSampling Distributionএকই process থেকে অনেকবার sample নিলে — sample statistic (যেমন: mean) যে distribution তৈরি করে। Inferential statistics-এর core concept। = একই size-এর অনেক sample নিলে — sample statistic-এর (mean, median) distribution।
উদাহরণ: Daraz population mean = ৫০০ BDT। আপনি ১০০-size-এর ১০০০টি sample নিলেন। প্রতিটি sample-এর mean ভিন্ন। সেই ১০০০টি mean-এর distribution = sampling distribution।
Standard error = sampling distribution-এর std। $\text{SE}(\bar{x}) = \sigma / \sqrt{n}$।
Sample যত বড়, SE তত ছোট — sample mean true mean-এর কাছাকাছি। কিন্তু $\sqrt{n}$ — তাই precision দ্বিগুণ করতে sample চারগুণ লাগে।
৬ · Central Limit Theorem (CLT)
Central Limit TheoremCentral Limit TheoremDe Moivre (১৭৩৩) ও Laplace (১৮১২)-এর কাজ; modern form Lyapunov (১৯০১)। Sample size যথেষ্ট হলে — sample mean approximately normal, যেকোনো source distribution থেকে।: যদি population-এর mean $\mu$ এবং finite variance $\sigma^2$ থাকে — sample size $n$ যথেষ্ট হলে:
$$\bar{X} \sim \mathcal{N}\left(\mu, \frac{\sigma^2}{n}\right) \quad \text{approximately}$$
মূল কথা: source distribution যাই হোক — exponential, log-normal, uniform, anything — sample mean-এর distribution normal-এর কাছাকাছি যাবে।
"যথেষ্ট n" কত?
- Source close to normal → n = ১০-ই কাজ করে।
- Mildly skewed → n = ৩০ enough।
- Heavily skewed (income, click count) → n = ১০০-৩০০ লাগতে পারে।
- Cauchy distribution-এ CLT কাজ করে না (no finite variance)।
৭ · CLT কেন এত গুরুত্বপূর্ণ
- Confidence interval সম্ভব — sample mean-এর CI normal-ভিত্তিক।
- t-test, ANOVA — সব sample mean-এর normality assume।
- A/B test — conversion rate-এর difference normal হিসেবে ধরে।
- Regression coefficient-এর CI।
একে বলা হয় "statistical theory-র crown jewel" — কারণ এটাই inference-কে সম্ভব করে।
৮ · CLT সিমুলেশন (NumPy)
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(42)
# Skewed source: exponential distribution
population = np.random.exponential(scale=2.0, size=100_000)
mu = population.mean()
# Sample mean simulation
sample_size = 30
n_simulations = 5000
sample_means = np.array([
np.random.choice(population, sample_size, replace=False).mean()
for _ in range(n_simulations)
])
# Compare
fig, axes = plt.subplots(1, 2, figsize=(11, 4))
axes[0].hist(population, bins=60, color="#dc2626", alpha=0.6)
axes[0].set_title(f"Population (skewed) — μ={mu:.2f}")
axes[1].hist(sample_means, bins=40, color="#059669", alpha=0.6)
axes[1].axvline(mu, color="black", linestyle="--", label=f"μ={mu:.2f}")
axes[1].set_title(f"Sample means (n={sample_size}) — looks normal!")
axes[1].legend()
plt.tight_layout()
plt.show()
print(f"Population mean : {mu:.3f}")
print(f"Sample-means mean : {sample_means.mean():.3f}")
print(f"Theoretical SE : {population.std()/np.sqrt(sample_size):.3f}")
print(f"Empirical SE : {sample_means.std():.3f}")
৯ · Stratified vs random — বাস্তব তুলনা
import numpy as np
import pandas as pd
np.random.seed(0)
# Population: ৩ বিভাগ — ভিন্ন গড় order value
df = pd.DataFrame({
"div": np.repeat(["Dhaka","Ctg","Sylhet"], [6000, 3000, 1000]),
"ord": np.concatenate([
np.random.normal(800, 150, 6000),
np.random.normal(500, 100, 3000),
np.random.normal(400, 80, 1000),
])
})
true_mean = df["ord"].mean()
# Random sample
random_sample = df.sample(n=200, random_state=1)
# Stratified sample (proportional to division)
stratified = df.groupby("div", group_keys=False).apply(
lambda g: g.sample(int(np.round(len(g)/len(df) * 200)), random_state=1)
)
print(f"True population mean : {true_mean:.1f}")
print(f"Random sample mean : {random_sample['ord'].mean():.1f}")
print(f"Stratified mean : {stratified['ord'].mean():.1f}")
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ আপনি ঢাকা শহরে Pathao satisfaction survey করতে চান। ১০০০ user-কে বাছবেন। Random, stratified, ও cluster — কোনটি কোন situation-এ সেরা? Trade-off কী?
এই বাছাইটি research design-এর core decision — এবং প্রায়ই survey-এর সফলতা/ব্যর্থতা এতে নির্ভর।
Simple Random:
- Pathao-এর সমস্ত user-এর তালিকা থেকে ১০০০ randomly।
- প্লাস: Bias-free (যদি list complete)। Mathematical treatment সহজ।
- মাইনাস: Sub-group represent না হতে পারে (যেমন: রাত-শিফট driver, পুরান ঢাকার user)। সর্বশেষ — যদি ১০০ গ্রামাঞ্চল-active user থাকেন, random-এ ৫-১০ পেতে পারেন — যা নির্ভরযোগ্য না।
Stratified:
- User-দের stratum-এ ভাগ করুন: bike-rider vs car, monthly active vs occasional, ঢাকা/চট্টগ্রাম। প্রতিটি stratum থেকে proportional।
- প্লাস: প্রতিটি sub-group represent। Variance কম। Sub-group analysis (যেমন: "নতুন user কী বলে") পরিষ্কার।
- মাইনাস: Stratum information আগে চাই। Stratum বাছাই itself a decision (geography? user-tier? ride-type?)।
- সেরা যখন: Sub-group-এর মধ্যে outcome ভিন্ন হবে। যেমন: ride-type অনুসারে satisfaction different।
Cluster:
- ৩০০ এলাকা থেকে ১০টি random — সেই এলাকার সব Pathao user।
- প্লাস: Field operation cost কম (in-person interview)। Logistically simple।
- মাইনাস: Cluster-এর মধ্যে correlation — design effect-এ effective sample size কম। Variance বেশি।
- সেরা যখন: Field survey, সম্পূর্ণ list নেই, in-person data collection।
Pathao-specific recommendation:
- App-based survey পাঠাবেন? — Stratified by user-tier ও ride-frequency।
- Phone interview? — Random with quota।
- In-person at hubs? — Cluster + random within cluster।
- Multi-mode? — দু'টি combine — best practice।
Important caveats:
- Non-response bias: যারা respond করেন, যারা করেন না — তারা ভিন্ন। Weighting ব্যবহার করুন।
- Selection bias: শুধু active user থেকে → churn-cause miss।
- Survivorship bias: যারা এখনো platform-এ আছেন — তারা ভিন্ন voice।
মূল উপলব্ধি: Sampling design — research-এর প্রথম এবং সবচেয়ে গুরুত্বপূর্ণ decision। ভুল sample বহু analysis fix করবে না।
প্র ০২ "Sample size $\sqrt{n}$-এ precision বাড়ে" — এর মানে কী? Confidence interval অর্ধেক করতে কত গুণ sample লাগে?
এই $\sqrt{n}$ rule statistics-এর সবচেয়ে important practical rule।
গাণিতিক ভিত্তি:
- Standard Error = $\sigma / \sqrt{n}$।
- ৯৫% CI = $\bar{x} \pm 1.96 \cdot \text{SE}$।
- CI width $\propto 1/\sqrt{n}$।
সংখ্যায়:
- n = ১০০ → SE = σ/১০।
- n = ৪০০ → SE = σ/২০। (অর্ধেক)
- n = ১৬০০ → SE = σ/৪০। (এক-চতুর্থাংশ)
- n = ১০,০০০ → SE = σ/১০০। (দশ ভাগের এক)
Implications:
- CI অর্ধেক করতে — sample চারগুণ চাই।
- CI এক-তৃতীয়াংশ করতে — সাত-আট গুণ।
- ৩ digit precision চাইলে — হাজার-হাজার sample।
Cost-benefit reality:
- n = ৫০ → CI ±১০। Survey cost: ৫০,০০০ টাকা।
- n = ২০০ → CI ±৫। Survey cost: ২,০০,০০০।
- n = ৮০০ → CI ±২.৫। Survey cost: ৮,০০,০০০।
- প্রতিটি precision doubling-এ cost ৪×।
"Diminishing returns"-এর কারণ:
- প্রথম ১০০ sample অনেক information add করে।
- পরবর্তী ১০০ কম। তার পরের ১০০ আরো কম।
- n = ১০,০০০-এর বেশি — practical-এ rare cases ছাড়া অপ্রয়োজনীয়।
Practical guidance:
- National poll: n ≈ ১০০০ → CI ±৩ percentage point।
- A/B test: n ≈ ১০,০০০ per arm → 1% effect detectable।
- Medical trial: n ≈ ৫০০ — কারণ effect বড় লক্ষ্য।
"Big data" misconception:
- n = ১০ লাখ থাকলেও — যদি bias থাকে, precision বাড়লেও accuracy বাড়ে না।
- Literary Digest poll (১৯৩৬) — ১০ মিলিয়ন sample, কিন্তু wrong winner predict।
মূল উপলব্ধি: $\sqrt{n}$ rule — sample size doubling বহুদূর নয়। Precision বনাম cost-এর ভারসাম্য survey design-এর core decision।
প্র ০৩ CLT কাজ করে "যেকোনো" distribution-এ — কিন্তু কিছু exception আছে। কোন সব distribution-এ CLT ভেঙে পড়ে এবং কেন?
CLT-র "যেকোনো" — actually finite-variance distribution। কিছু সাধারণ exception আছে।
(১) Cauchy distribution:
- Heavy tail — variance অসীম।
- Sample mean-এর distribution Cauchy-ই থাকে — কখনোই normal হয় না।
- "কোনো central limit নেই" — n বাড়ালেও।
- Practical-এ rare — finance-এর কিছু extreme model-এ।
(২) Power-law / Pareto (heavy tail):
- City population, wealth, internet traffic — অনেক power-law follow।
- α < 2 হলে variance অসীম — CLT applies না।
- α > 2 হলে CLT কাজ করে কিন্তু খুব slow convergence — n = ১০,০০০-এও কাজ নাও করতে পারে।
(৩) Strongly correlated samples:
- Time series, network data — independence ভঙ্গ।
- Effective sample size আসল n-এর চেয়ে অনেক কম।
- Block bootstrap বা GLS-এর মতো corrections দরকার।
(৪) Mixture distributions:
- Bimodal বা multi-modal — যেমন: পুরুষ + নারী উচ্চতা mixed।
- CLT কাজ করে কিন্তু sample mean-এর interpretation কঠিন।
(৫) Discrete with extreme imbalance:
- Click rate ০.০১% হলে — n = ১০০-এ অধিকাংশ sample mean = ০।
- Normal approximation ভাঙে — Poisson-ই বরং সঠিক।
- Rule: $np \geq 10$ এবং $n(1-p) \geq 10$ — তবেই normal approximation।
(৬) Infinite-variance source:
- Stable distributions ($\alpha < 2$) — Lévy stable।
- Generalized CLT কাজ করে — কিন্তু limit Lévy stable, not normal।
কীভাবে detect:
- Tail behavior দেখুন — log-log plot-এ straight line = power-law।
- Sample mean বাড়ার সাথে stabilize হচ্ছে কি? — নয়তো heavy tail।
- Sample variance n-এর সাথে stable হচ্ছে কি? — নয়তো infinite variance।
Bangladesh-এ relevant:
- Wealth distribution — Pareto-এর কাছাকাছি, mean inadequate।
- Daraz transaction — extreme event (১০ লাখ-এর order) heavy tail বাড়ায়।
- Earthquake, flood — power-law।
মূল উপলব্ধি: CLT magical — but not universal। Heavy-tail data-এ alternative inference (median, bootstrap, robust statistics) দরকার।
প্র ০৪ আপনি Daraz-এ একটি ১০ লাখ user-এর dataset পেয়েছেন। মডেল train-এর জন্য কি পুরো ডেটা ব্যবহার করবেন, নাকি sample? কী trade-off?
এটি modern data science-এর একটি practical দ্বন্দ্ব — "big data" আছে বলে কি সব ব্যবহার করতে হবে?
পুরো ব্যবহারের সুবিধা:
- Maximum statistical power — rare event detect সম্ভব।
- Sub-group performance — ছোট group-ও sufficient sample।
- Production deployment ready — distribution shift কম।
পুরো ব্যবহারের অসুবিধা:
- Training time — ১০ লাখ row-এর XGBoost ৩-৪ ঘণ্টা; ১ লাখ-এ ৫ মিনিট।
- Iteration speed — হঠাৎ feature engineering trial করা অসম্ভব।
- Memory cost — RAM-এ fit না হতে পারে।
- Compute cost — cloud bill।
- Diminishing returns — ১ লাখ থেকে ১০ লাখে accuracy ০.৫% বাড়ে।
Sample-এ কখন:
- Exploration phase — দ্রুত iterate।
- Hyperparameter search — হাজার hyperparameter combo।
- Prototype demo।
- Resource constrained (free Colab)।
Best practice — phased approach:
- Phase 1 — Exploration (n = ১০-৫০ হাজার): Stratified random sample। Feature engineering, modeling experimentation।
- Phase 2 — Validation (n = ১-২ লাখ): পছন্দের approach refine।
- Phase 3 — Final training (full n বা ৫ লাখ): Production-ready model।
Sampling-এ সাবধানতা:
- Stratified — class imbalance preserve।
- Time-based — train past, validate future (no leakage)।
- Group-based — same user-এর sample একই split-এ।
"More data > better model"-এর সত্য:
- Halevy, Norvig, Pereira (২০০৯): "The Unreasonable Effectiveness of Data" — Google's discovery।
- Simple models + huge data > complex models + small data — কখনো কখনো।
- কিন্তু — একটি ৫% sample-এ যদি ৯৮% accuracy পাওয়া যায়, full data-এ ৯৮.৫% — extra ৯৫% data সবসময় worth না।
Modern reality — DL-এর exception:
- Deep learning data-hungry — large scale benefits significantly।
- LLM, vision model — billion-scale needed।
- Tabular ML (Daraz-এর fraud detection) — মাঝারি scale-ই enough।
Pragmatic recommendation:
- Tabular: ২ লাখ stratified sample → final ৫ লাখে train।
- Image/text: চাইলে full ব্যবহার, কিন্তু validation set আলাদা।
- Track learning curve — extra data-এ accuracy plateau হলে stop।
মূল উপলব্ধি: Big data-এর যুগেও sample-এর ভূমিকা আছে। Speed of iteration প্রায়ই accuracy-এর চেয়ে গুরুত্বপূর্ণ — সেটাই "ML productivity"।
অনুশীলন
-
SE হিসাব: bKash transaction-এর σ = ১,০০০ BDT। আপনি n = ১০০ sample নিলে SE কত? n = ৪০০-এ কত? CI half করতে কত sample লাগবে?
- n = ১০০ → SE = ১০০০/√১০০ = ১০০।
- n = ৪০০ → SE = ১০০০/√৪০০ = ৫০।
- CI half মানে SE half — n চারগুণ চাই (১০০ → ৪০০)।
-
CLT সিমুলেশন: NumPy দিয়ে — uniform(0, 1) থেকে n=৫০ size-এর ১০০০ sample, প্রতিটির mean — histogram দেখুন।
import numpy as np, matplotlib.pyplot as plt means = [np.random.uniform(0, 1, 50).mean() for _ in range(1000)] plt.hist(means, bins=40); plt.title("Sample means → bell shape"); plt.show()Uniform-এর mean ০.৫, std = √(1/12) ≈ ০.২৮৯ → SE ≈ ০.০৪১। Histogram normal-এর কাছাকাছি।
-
ভাবুন: বাংলাদেশের ৬৪ জেলা থেকে education survey করতে হবে। Random vs stratified vs cluster — কোনটি বেছে নেবেন এবং কেন?
সাধারণত stratified (বিভাগ অনুপাতে) + cluster (জেলার মধ্যে স্কুল)। Field cost কমে কিন্তু representation নিশ্চিত। প্র ০১-এ details।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ১১ · Confidence Interval পরবর্তী পাঠ CLT-র সরাসরি প্রয়োগ — sample mean থেকে population mean-এর interval।
- পাঠ ০৯ · Distribution ও Normality আগের পাঠ CLT কেন আকর্ষণীয় — যেকোনো source distribution থেকে normal!
- পাঠ ১৫ · A/B testing এই পাঠের সাথে সম্পর্কিত Sample size calculation — CLT-র direct application।
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।