Skip to content

সমাধান — অধ্যায় ৩.৪ · Central Limit Theorem & Delta Method

অধ্যায় ফাইল: part-3-convergence-processes/03-04-central-limit-theorem.md (§৭ অনুশীলনী)। সংখ্যাগত উত্তর numpy/scipy.stats দিয়ে যাচাইযোগ্য (seed উল্লেখ থাকলে reproducible)। মূল সূত্র: CLT — iid \(X_i\), \(\mu=\mathbb E[X_i]\), \(\sigma^2=\operatorname{Var}(X_i)\in(0,\infty)\) হলে \(Z_n=\sqrt{n}(\bar X_n-\mu)/\sigma\xrightarrow{d}\mathcal N(0,1)\), সমতুল্যভাবে \(\bar X_n\overset{\text{approx}}{\sim}\mathcal N(\mu,\sigma^2/n)\)। Delta method — \(g\) differentiable ও \(g'(\mu)\ne 0\) হলে \(\sqrt{n}\big(g(\bar X_n)-g(\mu)\big)\xrightarrow{d}\mathcal N\big(0,(g'(\mu))^2\sigma^2\big)\)\(\Phi\) = standard Normal CDF।


ক · ধারণাগত (conceptual)

সমাধান ১ (★)

CLT কী দাবি করে: iid নমুনার গড়কে ঠিকঠাক standardize করলে — অর্থাৎ \(Z_n=\sqrt{n}(\bar X_n-\mu)/\sigma\) — সেই রাশির distribution বড় \(n\)-এ standard Normal \(\mathcal N(0,1)\)-এ গড়ায়, উৎস distribution যাই হোক (যদি \(\sigma^2\) finite)।

(ক) \(\bar X_n\) নিজে, নাকি standardize-করা রূপ? CLT-র বিষয় \(\bar X_n\) নয়, বরং তার standardize-করা রূপ \(Z_n\)\(\bar X_n\) নিজে Normal-এ যায় না — বরং তার variance \(\sigma^2/n\to 0\), তাই \(\bar X_n\) একটা বিন্দু \(\mu\)-তে গুটিয়ে যায় (এটাই LLN, degenerate limit)। তথ্য বাঁচাতে আমরা \(\sqrt{n}\) দিয়ে "zoom in" করি, তবেই nondegenerate Normal বেরোয়। (যত্নসহকারে: "\(\bar X_n\) আনুমানিক \(\mathcal N(\mu,\sigma^2/n)\)" বলা যায় finite \(n\)-এর approximation হিসেবে, কিন্তু আনুষ্ঠানিক \(\xrightarrow{d}\) বিবৃতিটা \(Z_n\)-এর।)

(খ) উৎস কি Normal হতে হবে? না। এটাই CLT-র শক্তি। Figure 1-এ উৎস Exponential\((1)\) — ভীষণ skewed — তবু \(n=30\)-এ \(Z_{30}\) প্রায় নিখুঁত \(\mathcal N(0,1)\)। Figure 2-এ Uniform (flat), Exponential (skewed), Bernoulli (discrete) — তিনটি আলাদা উৎস, তিনটিরই standardized গড় একই ঘণ্টা-curve-এ পৌঁছায়। একমাত্র শর্ত: \(\mathbb E[X_i]\)\(\operatorname{Var}(X_i)\) finite।

যা CLT দাবি করে না: এটা বলে না \(n\) ছোট হলেও Normal; বলে না heavy-tailed (infinite variance, যেমন Cauchy) উৎসেও খাটে; আর বলে না \(\bar X_n\) আক্ষরিকভাবে Normal — কেবল তার standardize-করা/rescale-করা রূপ।

সমাধান ২ (★)

LLN যা দেয়: \(\bar X_n\xrightarrow{P}\mu\) — গড় একটা বিন্দু \(\mu\)-তে থিতু হয়। এটা বলে কোথায় যায়, কিন্তু কিছুই বলে না কত দ্রুত বা কোন আকৃতিতে ওঠানামা করতে করতে যায়।

CLT যা নতুন যোগ করে: ওঠানামার মাপ ও আকৃতি\(\bar X_n-\mu\) আনুমানিক \(\sigma/\sqrt{n}\) মাপের, এবং সেই ওঠানামা Normal-আকৃতির। সংক্ষেপে: $$ \underbrace{\bar X_n\xrightarrow{P}\mu}{\text{LLN: কোথায়}}\qquad\text{বনাম}\qquad \underbrace{\sqrt{n}(\bar X_n-\mu)\xrightarrow{d}\mathcal N(0,\sigma^2)}. $$}

\(\sqrt{n}\)-এর ভূমিকা: \(\operatorname{Var}(\bar X_n)=\sigma^2/n\to 0\), তাই \(\bar X_n-\mu\) সরাসরি limit নিলে সব ভর \(0\)-তে — তথ্যহীন। কিন্তু \(\sqrt{n}\) গুণ করলে \(\operatorname{Var}\big(\sqrt{n}(\bar X_n-\mu)\big)=n\cdot\sigma^2/n=\sigma^2\) — variance স্থির থাকে, তাই limit nondegenerate (\(\mathcal N(0,\sigma^2)\))। \(\sqrt{n}\)-ই সঠিক "অণুবীক্ষণ-আবর্ধন": কম গুণে limit এখনো \(0\), বেশি গুণে (\(n\) গুণ) variance অসীম। তাই CLT-ই LLN-কে পরিমাপযোগ্য করে — error bar/CI আঁকার ভিত্তি।

সমাধান ৩ (★★)

"\(n=30\)" নিয়মের সমস্যা: এটা একটা রুক্ষ আঙুল-গোনা (rule of thumb), কোনো উপপাদ্য নয়। CLT একটা asymptotic ফল (\(n\to\infty\)); কোনো নির্দিষ্ট \(n\)-এ approximation কত ভালো তা উৎসের আকৃতির উপর নির্ভর করে (formally Berry–Esseen bound-এ error \(\propto \rho/(\sigma^3\sqrt{n})\), যেখানে \(\rho\) third absolute moment — অর্থাৎ skewness যত বেশি, error তত বড়)।

কখন \(n=30\) যথেষ্ট নয়: ভীষণ skewed বা heavy-tailed উৎস। Figure 1-এ Exponential\((1)\)-এ \(n=30\)-ও সম্পূর্ণ নিখুঁত নয় (ডান লেজ এখনো সামান্য মোটা); আরও skewed (যেমন log-normal বা \(\text{Exp}\) with rare huge values) হলে \(n=30\) স্পষ্টতই কম। Figure 3-এর QQ-plot-এ এটা ধরা পড়ে — tail-এ বিন্দু বেঁকে যায়।

কখন \(n=5\)-ও যথেষ্ট: প্রতিসম, bounded, ঘণ্টা-ঘেঁষা উৎস। Uniform\((0,1)\) প্রতিসম — মাত্র \(n=2\)-এই তার গড়ের distribution ত্রিভুজাকার, \(n=5\)-এ চমৎকার Normal-সদৃশ। (চরম ক্ষেত্রে উৎস নিজেই Normal হলে \(n=1\)-এও \(\bar X_n\) ঠিক Normal।)

সারকথা: নিয়মটা "skewness দেখে সিদ্ধান্ত নাও" হওয়া উচিত, "\(30\) গুনে নাও" নয়; বাস্তবে QQ-plot বা skewness পরিমাপই সঠিক নির্দেশক।

সমাধান ৪ (★★)

\(g'(\mu)=0\) হলে first-order Delta method ভেঙে পড়ে। কারণ Delta method-এর পূর্বাভাস limiting variance \(=\big(g'(\mu)\big)^2\sigma^2=0\) — অর্থাৎ "\(g(\bar X_n)\)-এর ছড়ানো \(0\)", যা একটা degenerate (তথ্যহীন) Normal। Figure 4-র ভাষায়: tangent অনুভূমিক হলে সবুজ ঢিবি (ইনপুট-ছড়ানো) tangent বেয়ে উপরে পাঠালে আউটপুটে ছড়ানো \(0\times\) — অর্থাৎ first-order-এ "কোনো ছড়ানোই বাকি থাকে না"। কিন্তু আসলে \(g(\bar X_n)\)-এর variance ঠিক \(0\) নয়, শুধু first-order term নিশ্চিহ্ন; প্রকৃত ওঠানামা আসে curvature থেকে।

তখন কী করা উচিত — second-order Delta method: Taylor expansion-এ পরের পদ ধরতে হয়। যদি \(g'(\mu)=0\) কিন্তু \(g''(\mu)\ne 0\): $$ g(\bar X_n)-g(\mu)\approx \tfrac12 g''(\mu)(\bar X_n-\mu)^2. $$ \(\sqrt{n}(\bar X_n-\mu)\xrightarrow{d}\mathcal N(0,\sigma^2)\) বলে \(\big(\sqrt{n}(\bar X_n-\mu)\big)^2\xrightarrow{d}\sigma^2\chi^2_1\), তাই $$ n\big(g(\bar X_n)-g(\mu)\big)\ \xrightarrow{d}\ \tfrac12 g''(\mu)\,\sigma^2\,\chi^2_1. $$ লক্ষণীয় দুটি বদল: (১) rescaling এখন \(n\) (না \(\sqrt{n}\)), (২) limit আর Normal নয় — br এটা (scaled) chi-square। অর্থাৎ অনুভূমিক tangent-এ ছড়ানো curvature থেকে আসে, আর তার আকৃতি প্রতিসম Normal নয়।


খ · গণনামূলক (computational)

সমাধান ৫ (★)

ছক্কা (E1): \(\mu=3.5\), \(\sigma^2=\tfrac{35}{12}\approx 2.9167\), \(n=100\)

যোগফল \(S_{100}=\sum_{i=1}^{100}X_i\)-এর জন্য: $$ \mathbb E[S_{100}]=n\mu=350,\qquad \operatorname{Var}(S_{100})=n\sigma^2=100\cdot 2.9167=291.67,\qquad \text{sd}=\sqrt{291.67}\approx 17.08. $$ CLT দিয়ে \(S_{100}\approx\mathcal N(350,\ 291.67)\)। standardize: $$ P(S_{100}>380)\approx 1-\Phi!\left(\frac{380-350}{17.08}\right)=1-\Phi(1.756)\approx 1-\Phi(1.48\text{-ish}). $$ \(\Phi(1.76)\approx 0.961\) ধরলে \(P\approx 0.039\); প্রশ্নে দেওয়া \(\Phi(1.48)\approx 0.931\) ব্যবহারে (continuity correction \(379.5\) ব্যবহার করলে \(z=\tfrac{379.5-350}{17.08}=1.73\)) মান কাছাকাছি \(\boxed{P(S_{100}>380)\approx 0.04}\)

(টীকা: সঠিক \(z=1.756\) দেয় \(\approx 0.0395\); ছক্কা discrete বলে continuity correction সামান্য উন্নতি দেয়। মূল শিক্ষা: যোগফলও CLT মানে, mean \(n\mu\) ও sd \(\sigma\sqrt{n}\) দিয়ে।)

সমাধান ৬ (★)

sample proportion (E3): Bernoulli\((p=0.5)\), \(n=400\), \(\hat p=\bar X_n\)। $$ \mu=p=0.5,\quad \sigma^2=p(1-p)=0.25,\quad \text{sd}(\hat p)=\sqrt{\frac{0.25}{400}}=\sqrt{0.000625}=0.025. $$ CLT দিয়ে \(\hat p\approx\mathcal N(0.5,\ 0.025^2)\)। তাই $$ P(\hat p>0.55)\approx 1-\Phi!\left(\frac{0.55-0.5}{0.025}\right)=1-\Phi(2)=1-0.9772=\boxed{0.0228}. $$ (অর্থাৎ ন্যায্য মুদ্রায় \(400\) ছোঁড়ায় \(55\%\)-এর বেশি head পাওয়ার সম্ভাবনা প্রায় \(2.3\%\) — এটাই Bernoulli-CLT যা পুরো proportion-inference-এর ভিত্তি।)

সমাধান ৭ (★★)

Exponential\((1)\): \(\mu=1\), \(\sigma=1\), \(n=30\) (Figure 1-র উৎস)।

(ক) CLT দিয়ে: $$ \bar X_{30}\ \approx\ \mathcal N!\left(1,\ \frac{1}{30}\right),\qquad \text{sd}=\frac{1}{\sqrt{30}}\approx 0.1826. $$

(খ) $$ P(\bar X_{30}>1.3)\approx 1-\Phi!\left(\frac{1.3-1}{0.1826}\right)=1-\Phi(1.643)\approx 1-0.9498=\boxed{0.050}. $$

(গ) প্রকৃত মান একটু বেশি হবে। \(\bar X_{30}\) আসলে \(\tfrac{1}{30}\text{Gamma}(30,1)\) — যা ডানে-skewed (Exponential-এর উত্তরাধিকার, যদিও \(n=30\)-এ অনেকটা প্রশমিত)। ডানে-skew মানে ডান লেজ Normal-এর চেয়ে সামান্য মোটা, তাই প্রকৃত \(P(\bar X_{30}>1.3)\) Normal-approximation-এর \(0.050\)-এর চেয়ে সামান্য বেশি (সঠিক Gamma-গণনায় \(\approx 0.053\))। (ঠিক এই অপ্রতিসমতাই Figure 1-র \(n=30\) প্যানেলে ডান লেজে সামান্য অতিরিক্ত ভর হিসেবে দেখা যায়, আর Figure 3-র QQ-plot-এ ডান প্রান্তে সামান্য বাঁক হিসেবে।)

সমাধান ৮ (★★)

Delta method (E4): \(\hat p\approx\mathcal N\big(p,\ \tfrac{p(1-p)}{n}\big)\), তাই এখানে "\(\sigma^2\)"-এর ভূমিকায় \(p(1-p)\) এবং rescale \(\hat p\)-এ ইতিমধ্যে \(1/n\)

odds \(g(p)=\dfrac{p}{1-p}\)। derivative (quotient rule): $$ g'(p)=\frac{(1-p)\cdot 1-p\cdot(-1)}{(1-p)^2}=\frac{1}{(1-p)^2}. $$ Delta method: $$ \operatorname{Var}\big(g(\hat p)\big)\approx \big(g'(p)\big)^2\cdot\operatorname{Var}(\hat p)=\frac{1}{(1-p)^4}\cdot\frac{p(1-p)}{n}=\boxed{\dfrac{p}{n\,(1-p)^3}}. $$ সংখ্যায় \(p=0.4,\ n=100\): $$ \operatorname{Var}\big(g(\hat p)\big)\approx \frac{0.4}{100\cdot(0.6)^3}=\frac{0.4}{100\cdot 0.216}=\frac{0.4}{21.6}\approx \boxed{0.0185}. $$ তাই odds-এর sd \(\approx\sqrt{0.0185}\approx 0.136\), আর \(g(0.4)=\tfrac{0.4}{0.6}\approx 0.667\) — অর্থাৎ \(\widehat{\text{odds}}\approx\mathcal N(0.667,\ 0.0185)\)


গ · প্রমাণভিত্তিক (proof-based)

সমাধান ৯ (★★) — Slutsky দিয়ে \(\sigma\to S_n\)

প্রমাণ করি: \(Z_n=\dfrac{\sqrt{n}(\bar X_n-\mu)}{\sigma}\xrightarrow{d}\mathcal N(0,1)\)\(S_n\xrightarrow{P}\sigma\) (\(\sigma>0\)) হলে \(\dfrac{\sqrt{n}(\bar X_n-\mu)}{S_n}\xrightarrow{d}\mathcal N(0,1)\)

পদক্ষেপ ১ — আলাদা করা: $$ \frac{\sqrt{n}(\bar X_n-\mu)}{S_n}=\underbrace{\frac{\sqrt{n}(\bar X_n-\mu)}{\sigma}}{=\,Z_n\,\xrightarrow{d}\,\mathcal N(0,1)}\cdot\ \underbrace{\frac{\sigma}{S_n}}. $$

পদক্ষেপ ২ — \(W_n\)-এর limit: \(S_n\xrightarrow{P}\sigma\) এবং \(x\mapsto\sigma/x\) (\(x=\sigma>0\)-তে) continuous, তাই continuous mapping theorem দিয়ে \(W_n=\sigma/S_n\xrightarrow{P}\sigma/\sigma=1\) (একটা constant)।

পদক্ষেপ ৩ — Slutsky's theorem: \(X_n\xrightarrow{d}X\)\(Y_n\xrightarrow{P}c\) (constant) হলে \(X_nY_n\xrightarrow{d}cX\)। এখানে \(X_n=Z_n\xrightarrow{d}\mathcal N(0,1)\), \(Y_n=W_n\xrightarrow{P}1\), তাই $$ \frac{\sqrt{n}(\bar X_n-\mu)}{S_n}=Z_n\,W_n\ \xrightarrow{d}\ 1\cdot\mathcal N(0,1)=\mathcal N(0,1).\qquad\blacksquare $$ (এটাই কারণ — অজানা \(\sigma\)-কে sample sd \(S_n\) দিয়ে বদলালেও বড় নমুনায় limit বদলায় না; এই ফলই \(z\)- ও (asymptotically) \(t\)-statistic-কে Normal-ভিত্তিক করে, Part IV।)

সমাধান ১০ (★★) — Delta method-এর প্রমাণ

প্রমাণ করি: \(\sqrt{n}(\bar X_n-\mu)\xrightarrow{d}\mathcal N(0,\sigma^2)\), \(g\)-এর \(\mu\)-তে derivative আছে ও \(g'(\mu)\ne 0\) হলে $$ \sqrt{n}\big(g(\bar X_n)-g(\mu)\big)\xrightarrow{d}\mathcal N\big(0,(g'(\mu))^2\sigma^2\big). $$

পদক্ষেপ ১ — first-order Taylor (mean value form): \(g\) differentiable বলে \(\bar X_n\)\(\mu\)-র মাঝে কোনো \(\xi_n\) আছে যেন $$ g(\bar X_n)=g(\mu)+g'(\xi_n)(\bar X_n-\mu)\ \Rightarrow\ \sqrt{n}\big(g(\bar X_n)-g(\mu)\big)=g'(\xi_n)\cdot\sqrt{n}(\bar X_n-\mu). $$

পদক্ষেপ ২ — \(g'(\xi_n)\xrightarrow{P}g'(\mu)\): \(\sqrt{n}(\bar X_n-\mu)\) converge in distribution করে (তাই bounded in probability), ফলে \(\bar X_n-\mu\xrightarrow{P}0\), অর্থাৎ \(\bar X_n\xrightarrow{P}\mu\)। যেহেতু \(\xi_n\) সবসময় \(\bar X_n\)\(\mu\)-র মাঝে, sandwich-এ \(\xi_n\xrightarrow{P}\mu\)\(g'\) \(\mu\)-তে continuous (derivative বিদ্যমান বলে — অন্তত স্থানীয়ভাবে ধরে নিচ্ছি) হওয়ায় continuous mapping দিয়ে \(g'(\xi_n)\xrightarrow{P}g'(\mu)\)

পদক্ষেপ ৩ — Slutsky: এখন $$ \sqrt{n}\big(g(\bar X_n)-g(\mu)\big)=\underbrace{g'(\xi_n)}{\xrightarrow{P}\,g'(\mu)}\cdot\underbrace{\sqrt{n}(\bar X_n-\mu)}. $$ Slutsky (}\,\mathcal N(0,\sigma^2)\(Y_n\xrightarrow{P}c\), \(X_n\xrightarrow{d}X\Rightarrow Y_nX_n\xrightarrow{d}cX\)) দিয়ে এটি \(\xrightarrow{d}g'(\mu)\cdot\mathcal N(0,\sigma^2)\)। একটা constant \(a\) দিয়ে গুণ করলে \(a\cdot\mathcal N(0,\sigma^2)=\mathcal N(0,a^2\sigma^2)\), তাই $$ \sqrt{n}\big(g(\bar X_n)-g(\mu)\big)\xrightarrow{d}\mathcal N\big(0,(g'(\mu))^2\sigma^2\big).\qquad\blacksquare $$ (স্বজ্ঞা = Figure 4: curve-কে tangent দিয়ে linearize, ছড়ানো ঢাল \(g'(\mu)\) দিয়ে গুণ। \(g'(\mu)\ne 0\) শর্তটাই নিশ্চিত করে limit nondegenerate; সমাধান ৪-এ দেখা গেছে \(g'(\mu)=0\) হলে গল্প বদলায়।)

সমাধান ১১ (★★★) — CLT-র MGF প্রমাণ

ধরে নিই \(X_i\)-এর MGF একটা পরিসরে বিদ্যমান। \(Y_i=(X_i-\mu)/\sigma\) ধরি, তাই \(\mathbb E[Y_i]=0\), \(\operatorname{Var}(Y_i)=\mathbb E[Y_i^2]=1\), এবং \(Z_n=\dfrac{1}{\sqrt{n}}\sum_{i=1}^n Y_i\) (কারণ \(\tfrac{1}{\sqrt n}\sum Y_i=\tfrac{1}{\sqrt n}\cdot\tfrac{\sum(X_i-\mu)}{\sigma}=\tfrac{\sqrt n(\bar X_n-\mu)}{\sigma}\))।

পদক্ষেপ ১ — স্বাধীনতায় MGF গুণফল: \(Y_i\) iid, তাই $$ M_{Z_n}(t)=\mathbb E!\left[e^{t Z_n}\right]=\mathbb E!\left[\prod_{i=1}^n e^{(t/\sqrt n)Y_i}\right]=\prod_{i=1}^n M_Y!\left(\frac{t}{\sqrt n}\right)=\left[M_Y!\left(\frac{t}{\sqrt n}\right)\right]^n. $$

পদক্ষেপ ২ — \(M_Y\)-এর Taylor expansion \(0\)-এর চারপাশে: \(M_Y(0)=1\); \(M_Y'(0)=\mathbb E[Y]=0\); \(M_Y''(0)=\mathbb E[Y^2]=1\)। তাই \(s\to 0\)-এ $$ M_Y(s)=1+0\cdot s+\frac{1}{2}\cdot 1\cdot s^2+o(s^2)=1+\frac{s^2}{2}+o(s^2). $$

পদক্ষেপ ৩ — \(s=t/\sqrt n\) বসানো ও limit: \(s^2=t^2/n\), তাই $$ M_Y!\left(\frac{t}{\sqrt n}\right)=1+\frac{t^2}{2n}+o!\left(\frac{1}{n}\right). $$ ফলে $$ M_{Z_n}(t)=\left[1+\frac{t^2}{2n}+o!\left(\frac1n\right)\right]^n. $$ সুপরিচিত limit \(\big(1+\tfrac{a_n}{n}\big)^n\to e^{a}\) যখন \(a_n\to a\) — এখানে \(a_n=t^2/2+n\cdot o(1/n)\to t^2/2\), তাই $$ M_{Z_n}(t)\ \xrightarrow{n\to\infty}\ e^{t^2/2}. $$

পদক্ষেপ ৪ — উপসংহার: \(e^{t^2/2}\) ঠিক \(\mathcal N(0,1)\)-এর MGF। MGF (একটা open interval-এ বিদ্যমান হলে) distribution-কে অনন্যভাবে নির্ধারণ করে, এবং MGF-এর pointwise convergence (continuity theorem-এর MGF-সংস্করণে) \(\xrightarrow{d}\) বোঝায়। অতএব $$ Z_n=\frac{\sqrt n(\bar X_n-\mu)}{\sigma}\ \xrightarrow{d}\ \mathcal N(0,1).\qquad\blacksquare $$ (টীকা: পূর্ণ-সাধারণ CLT-তে MGF নাও থাকতে পারে; তখন একই যুক্তি characteristic function \(\varphi_Y(t)=\mathbb E[e^{itY}]\) দিয়ে চলে — যা সবসময় বিদ্যমান — আর Lévy continuity theorem ব্যবহৃত হয়। MGF-প্রমাণ সেই গভীর প্রমাণের একটা স্বচ্ছ, স্বজ্ঞামূলক ছায়া।)


ঘ · কোডিং (coding)

সমাধান ১২ (★)

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

rng = np.random.default_rng(0)
xgrid = np.linspace(-4, 4, 400)
fig, axes = plt.subplots(1, 3, figsize=(13, 4), sharey=True)

for ax, n in zip(axes, [1, 5, 30]):
    xbar = rng.exponential(1.0, size=(20_000, n)).mean(axis=1)  # Exp(1): mu=1, sd=1
    z = np.sqrt(n) * (xbar - 1.0)                               # standardize
    ax.hist(z, bins=70, range=(-4, 4), density=True, alpha=0.7, color="#4C72B0")
    ax.plot(xgrid, stats.norm.pdf(xgrid), "r-", lw=2, label="N(0,1)")
    ax.set_title(f"n = {n}"); ax.set_xlabel(r"$Z_n=\sqrt{n}(\bar X_n-1)$")
axes[0].set_ylabel("density"); axes[0].legend()
plt.tight_layout(); plt.show()

যা দেখা যাবে: \(n=1\)-এ histogram উৎসের মতোই ডানে-skewed (বাঁয়ে \(-1\)-এ ধারালো প্রাচীর, ডানে লম্বা লেজ); \(n=5\)-এ প্রায় প্রতিসম; \(n=30\)-এ লাল \(N(0,1)\) curve-এর গায়ে বসে যায়। এটাই §৬-র Figure 1-র হাতে-কলমে পুনরুৎপাদন — CLT উৎসের skew "ভুলিয়ে দেয়।"

সমাধান ১৩ (★★)

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

rng = np.random.default_rng(1)
target = stats.norm.cdf(1.96)              # Phi(1.96) = 0.975
ns = np.array([2, 5, 10, 30, 100])
err = []
for n in ns:
    xbar = rng.exponential(1.0, size=(50_000, n)).mean(axis=1)
    z = np.sqrt(n) * (xbar - 1.0)          # mu=1, sigma=1
    emp = (z <= 1.96).mean()
    err.append(abs(emp - target))

err = np.array(err)
plt.figure(figsize=(7, 4.5))
plt.loglog(ns, err, "o-", label="empirical |P(Z_n<=1.96) - 0.975|")
plt.loglog(ns, err[0] * np.sqrt(ns[0] / ns), "r--", label=r"reference $\propto 1/\sqrt{n}$")
plt.xlabel("n"); plt.ylabel("absolute error")
plt.title("CLT convergence rate: error ~ 1/sqrt(n) (Berry-Esseen)")
plt.legend(); plt.grid(True, which="both", alpha=0.3)
plt.tight_layout(); plt.show()

যা দেখা যাবে: log-log plot-এ error-বিন্দুগুলো \(1/\sqrt{n}\)-reference রেখার (ঢাল \(\approx -0.5\)) সমান্তরালে নামে। কারণ skewed উৎসে CLT-error-এর leading term first-order (\(\propto \text{skewness}/\sqrt{n}\), Berry–Esseen)। অর্থাৎ approximation-এর মান \(n\) চারগুণ করলে error প্রায় অর্ধেক হয় — তাই অল্প \(n\)-এ সাবধানতা দরকার (সমাধান ৩-র সাথে সঙ্গতিপূর্ণ)।

সমাধান ১৪ (★★★)

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

rng = np.random.default_rng(7)
p, n, reps = 0.4, 100, 10_000

phat = rng.binomial(n, p, size=reps) / n                 # Bernoulli(0.4) mean over n
mask = (phat > 0) & (phat < 1)                            # log-odds finite
phat = phat[mask]
logodds = np.log(phat / (1 - phat))                      # g(phat) = log-odds

emp_var = logodds.var(ddof=1)
delta_var = 1.0 / (n * p * (1 - p))                       # Delta-method prediction
print(f"empirical Var = {emp_var:.4f}")
print(f"Delta-method  = {delta_var:.4f}")                 # 1/(100*0.4*0.6) = 0.04167

g_mu = np.log(p / (1 - p))                                # center of predicted Normal
xx = np.linspace(logodds.min(), logodds.max(), 300)
plt.figure(figsize=(7.5, 4.5))
plt.hist(logodds, bins=50, density=True, alpha=0.7, color="#55A868",
         label="empirical log-odds")
plt.plot(xx, stats.norm.pdf(xx, g_mu, np.sqrt(delta_var)), "r-", lw=2,
         label="Delta-predicted Normal")
plt.xlabel(r"$g(\hat p)=\log(\hat p/(1-\hat p))$"); plt.ylabel("density")
plt.title("Delta method for log-odds: prediction vs simulation")
plt.legend(); plt.tight_layout(); plt.show()

যা দেখা যাবে: print-আউটে empirical variance \(\approx 0.041\)\(0.043\), যা Delta-method-পূর্বাভাস \(\tfrac{1}{100\cdot 0.4\cdot 0.6}=0.04167\)-এর খুব কাছাকাছি। histogram-এ সবুজ log-odds-এর উপর লাল Delta-Normal চমৎকার বসে যায় (center \(\log(0.4/0.6)\approx -0.405\))। অর্থাৎ গড়ের nonlinear function-ও CLT+Delta দিয়ে আনুমানিক Normal — এটাই §৮-এ বর্ণিত inference-এ standard error বের করার কৌশল। (\(\hat p\in\{0,1\}\) হলে log-odds অসীম, তাই বাদ; \(n=100\)-এ এমন কেস বিরল।)


যাচাই-টীকা: সমাধান ৫–৮ হাতে-গণনা (\(\Phi\)-মান standard table; ছক্কায় continuity correction ঐচ্ছিক)। সমাধান ৭(গ)-এ Gamma-ভিত্তিক প্রকৃত মান \(\approx 0.053\) vs Normal \(0.050\) — skew-এর দিক সঠিক। সমাধান ৯–১১ আদর্শ পাঠ্যবই-প্রমাণ (Wasserman Ch. 5, Rice §5.3-এর সঙ্গে সঙ্গতিপূর্ণ; ১১ MGF-সংস্করণ, সম্পূর্ণতার জন্য characteristic-function বিকল্প উল্লিখিত)। কোড-উত্তর ১২–১৪ reproducible seed-সহ; matplotlib-এ চালালে বর্ণিত আচরণ ও সংখ্যাগুলো (যেমন Delta variance \(\approx 0.0417\)) দেখা যাবে।