সমাধান — অধ্যায় ৪.৬ · Confidence Intervals¶
অধ্যায় ফাইল:
part-4-inference/04-06-confidence-intervals.md(§৭ অনুশীলনী)। সংখ্যাগত উত্তরnumpy/scipyদিয়ে যাচাইযোগ্য (seed উল্লেখ থাকলে reproducible)। মূল বস্তু — confidence level \(1-\alpha\), margin of error \(m=z_{\alpha/2}\,\mathrm{SE}\), z-interval \(\bar x\pm z_{\alpha/2}\,\sigma/\sqrt n\) (\(\sigma\) জানা), t-interval \(\bar x\pm t_{n-1,\alpha/2}\,s/\sqrt n\) (\(\sigma\) অজানা), proportion CI \(\hat p\pm z_{\alpha/2}\sqrt{\hat p(1-\hat p)/n}\), এবং pivot (যার distribution \(\theta\)-নিরপেক্ষ)। চলমান উদাহরণ: E1 z-interval; E2 t-interval; E3 proportion CI; E4 MLE-based CI। (\(z_{0.025}=1.95996\approx1.96\), \(z_{0.005}=2.5758\approx2.576\)।)
ক · ধারণাগত (conceptual)¶
সমাধান ১ (★)¶
- confidence level \(1-\alpha\) — পদ্ধতিটার long-run coverage: যদি বহুবার নতুন নমুনা নিয়ে একই নিয়মে interval বানাই, তাদের প্রায় \((1-\alpha)\) ভাগ সত্যি প্যারামিটারকে ধরবে। এটা একটা পদ্ধতির গুণ, কোনো একটা নির্দিষ্ট interval-এর নয়।
- margin of error \(m\) — interval-এর কেন্দ্র (estimate) থেকে দুই প্রান্তের দূরত্ব: \(m=z_{\alpha/2}\,\mathrm{SE}\), তাই interval \(=\hat\theta\pm m\)। এটা "অনিশ্চয়তার ব্যাসার্ধ"।
- critical value \(z_{\alpha/2}\) — standard normal \(\mathcal{N}(0,1)\)-এর সেই বিন্দু যার ডানে ঠিক \(\alpha/2\) ভর; symmetric বলে \([-z_{\alpha/2},\,z_{\alpha/2}]\)-এর ভেতরে ঠিক \(1-\alpha\) ভর।
\(95\%\) CI: \(1-\alpha=0.95\Rightarrow\alpha=0.05\), \(\alpha/2=0.025\), তাই \(z_{\alpha/2}=z_{0.025}\approx\mathbf{1.96}\) (stats.norm.ppf(0.975)=1.95996)।
সমাধান ২ (★) — [CI-এর সঠিক ব্যাখ্যা]¶
কেন বাক্যটা ভুল। frequentist কাঠামোয় সত্যি \(\mu\) একটা স্থির (অজানা) number (সংখ্যা) — random নয়, তাই তাকে কোনো probability দেওয়া যায় না। একবার data দেখে interval-এ নির্দিষ্ট সংখ্যা (\([\,12.1,\,15.9\,]\)) বসিয়ে ফেললে, ঘটনাটা সম্পূর্ণ নির্ধারিত: হয় \(\mu\in[\,12.1,\,15.9\,]\) (তখন সম্ভাবনা \(1\)), নয় \(\mu\notin\) (তখন \(0\))। কোনো মাঝামাঝি "\(0.95\)" থাকে না। "৯৫%" সংখ্যাটা এই নির্দিষ্ট interval-এর সম্পত্তি নয় — এটা সেই পদ্ধতির সম্পত্তি যা interval-টা তৈরি করেছে।
সঠিক ব্যাখ্যা (এক-দুই বাক্যে): "যদি আমি বহুবার এভাবে নমুনা নিয়ে \(95\%\) CI বানাতাম, সেই interval-গুলোর প্রায় \(95\%\) সত্যি \(\mu\)-কে ধরত। এই নির্দিষ্ট interval \([\,12.1,\,15.9\,]\) সেই \(95\%\)-এর একটা — কিন্তু এটা ধরেছে কি না তা আমি জানি না।"
Figure-যুক্তি। Figure 1-এ interval-দণ্ডগুলো নমুনাভেদে এদিক-ওদিক লাফায় (random জিনিস = interval), কিন্তু \(\mu\)-এর কালো রেখা স্থির — \(100\)-র মধ্যে \(96\)টা ধরে। Figure 2-এর বাঁ দিক এই সঠিক ছবি (অনেক interval, ~৯৫% cover); ডান দিক ভুল ছবিটা (একটা interval-এর ওপর \(\mu\)-এর কাল্পনিক probability "মেঘ") লাল ✗ দিয়ে বাতিল করে। সংক্ষেপে: random জিনিসটা interval, \(\mu\) নয় — তাই probability-টা interval-এর ওপর, \(\mu\)-এর ওপর নয়। (\(\mu\)-কে probability দিতে চাইলে Bayesian credible interval লাগে, যা ভিন্ন কাঠামো।)
সমাধান ৩ (★★)¶
- z-interval কখন: population \(\sigma\) জানা থাকলে (বিরল, কিন্তু পাঠ্যপুস্তকীয়), অথবা \(n\) যথেষ্ট বড় (\(\gtrsim30\)) যাতে \(s\approx\sigma\) ও CLT ভালো খাটে।
- t-interval কখন: \(\sigma\) অজানা (প্রায় সব বাস্তব ক্ষেত্রে) এবং তাকে নমুনা-থেকে \(s\) দিয়ে আঁচ করতে হয়, বিশেষত ছোট \(n\)-এ — তখন \(\frac{\bar X-\mu}{s/\sqrt n}\sim t_{n-1}\)।
কেন t চওড়া (Figure 3): \(\sigma\) অজানা থাকায় আমরা এক ধাপ বেশি অনিশ্চয়তা বহন করি — \(s\) নিজেও নমুনাভেদে ওঠানামা করে। Student-t distribution-এর লেজ normal-এর চেয়ে মোটা, তাই \(t_{n-1,\alpha/2}>z_{\alpha/2}\) (যেমন \(t_{9,0.025}=2.262>1.96\)); এই বড় multiplier interval-কে চওড়া করে — এটাই "\(\sigma\) আঁচ করার দাম"।
\(n\) বড় হলে: \(s\xrightarrow{P}\sigma\) এবং df \(=n-1\to\infty\)-এ \(t_{n-1}\to\mathcal{N}(0,1)\), তাই \(t_{n-1,\alpha/2}\to z_{\alpha/2}\) — দুই interval মিলে যায় (Figure 3a-তে কমলা curve নীল রেখায় মেশে)। ব্যবহারিক নিয়ম: \(n\gtrsim30\)-এ z আর t-এর ফারাক নগণ্য।
সমাধান ৪ (★★)¶
কোনটা চওড়া: \(99\%\) CI চওড়া। কারণ width = \(2m=2z_{\alpha/2}\,\mathrm{SE}\), আর বেশি confidence মানে ছোট \(\alpha\), মানে বড় \(z_{\alpha/2}\): \(z_{0.005}=2.576>z_{0.025}=1.96\)। একই data (\(\mathrm{SE}\) একই) হলে \(99\%\) interval \(\tfrac{2.576}{1.96}\approx1.31\) গুণ চওড়া।
tradeoff: একই \(n\)-এ confidence ↑ ⇒ width ↑ (precision ↓) — সরাসরি বিনিময়। বেশি নিশ্চিত হতে চাইলে interval বড় করে \(\theta\)-কে "ধরার" সম্ভাবনা বাড়াতে হয়; সরু interval চাইলে ধরার নিশ্চয়তা ছাড়তে হয়।
দুটোই উন্নত করার উপায়: \(n\) বাড়ানো। যেহেতু \(m=z_{\alpha/2}\,\sigma/\sqrt n\), বড় \(n\) একসাথে \(\mathrm{SE}\) ছোট করে — তাই confidence স্থির রেখেও interval সরু করা যায়, বা একই width-এ বেশি confidence (Figure 4: \(m\propto1/\sqrt n\))। অর্থাৎ confidence ও precision-এর tradeoff থেকে বেরোনোর একমাত্র দরজা হলো বেশি data।
খ · গাণনিক (computational)¶
সমাধান ৫ (★) — E1 (z-interval)¶
দেওয়া: \(\sigma=4\) (জানা), \(n=16\), \(\bar x=502\), \(95\%\Rightarrow z_{0.025}=1.96\)। $$ \mathrm{SE}=\frac{\sigma}{\sqrt n}=\frac{4}{\sqrt{16}}=\frac{4}{4}=1,\qquad m=z_{0.025}\,\mathrm{SE}=1.96\times1=1.96. $$ $$ \text{CI}=\bar x\pm m=502\pm1.96=\boxed{[\,500.04,\ 503.96\,]\ \text{গ্রাম}}. $$ ব্যাখ্যা: এই পদ্ধতি ৯৫% সময় সত্যি গড় ওজনকে ধরে।
সমাধান ৬ (★★) — E2 (t-interval)¶
দেওয়া: \(\sigma\) অজানা, \(n=10\), \(\bar x=210\), \(s=15\), \(t_{9,0.025}=2.262\)। $$ \mathrm{SE}=\frac{s}{\sqrt n}=\frac{15}{\sqrt{10}}=4.7434,\qquad m=t_{9,0.025}\,\mathrm{SE}=2.262\times4.7434=10.730. $$ $$ \text{CI}=210\pm10.73=\boxed{[\,199.27,\ 220.73\,]\ \text{ঘণ্টা}}. $$ z হলে চওড়া না সরু? z-interval \(1.96\) ব্যবহার করত: \(m_z=1.96\times4.7434=9.297\), interval \([\,200.70,\,219.30\,]\) — সরু। কিন্তু \(\sigma\) অজানা বলে সেই সরু interval-এর প্রকৃত coverage ৯৫%-এর নিচে নামত (under-coverage); t-interval বাড়তি অনিশ্চয়তা পুষিয়ে সঠিক ৯৫% দেয়। তাই এখানে t-ই সঠিক।
সমাধান ৭ (★★) — E3 (proportion CI)¶
দেওয়া: \(n=400\), \(\hat p=0.30\), \(z_{0.025}=1.96\)। $$ \widehat{\mathrm{SE}}=\sqrt{\frac{\hat p(1-\hat p)}{n}}=\sqrt{\frac{0.30\times0.70}{400}}=\sqrt{\frac{0.21}{400}}=\sqrt{0.000525}=0.022913. $$ $$ m=1.96\times0.022913=0.044910,\qquad \text{CI}=0.30\pm0.0449=\boxed{[\,0.2551,\ 0.3449\,]}. $$ margin of error \(\approx\pm0.045=\pm\mathbf{4.5}\) শতাংশ-বিন্দু। (এটি Bernoulli-র MLE \(\hat p\)-এর Wald CI — E4-এর বিশেষ ঘটনা।)
সমাধান ৮ (★★) — sample size planning¶
চাই \(m\le0.02\), \(95\%\) confidence। সাধারণ সূত্র (Wald): $$ m=z_{\alpha/2}\sqrt{\frac{\hat p(1-\hat p)}{n}}\le m_0 \;\Longrightarrow\; n\ge\Big(\frac{z_{\alpha/2}}{m_0}\Big)^2\hat p(1-\hat p). $$ \(\hat p\) অজানা হলে worst case \(\hat p(1-\hat p)\) সর্বোচ্চ \(=0.25\) (\(\hat p=0.5\)-এ): $$ n\ge\Big(\frac{1.96}{0.02}\Big)^2\times0.25=(98)^2\times0.25=9604\times0.25=2401. $$ সুতরাং কমপক্ষে \(\boxed{n=2401}\)। (যদি \(\hat p\approx0.3\) ধরা যায়, \(n\ge9604\times0.21=2017\) যথেষ্ট হতো — worst-case ধরায় আমরা নিরাপদ দিকে থাকি।)
গ · প্রমাণভিত্তিক (proof-based)¶
সমাধান ৯ (★★) — pivot পদ্ধতি¶
ধাপ ১ — pivot। \(X_i\overset{iid}{\sim}\mathcal{N}(\mu,\sigma^2)\) হলে \(\bar X\sim\mathcal{N}\!\big(\mu,\ \sigma^2/n\big)\)। standardize: $$ Z=\frac{\bar X-\mu}{\sigma/\sqrt n}\sim\mathcal{N}(0,1). $$ \(Z\)-এর distribution ঠিক standard normal — এতে \(\mu\) বা \(\sigma\) আর প্যারামিটার হিসেবে আসে না (তারা সংজ্ঞায় থাকলেও বণ্টন সবসময় \(\mathcal{N}(0,1)\))। যেহেতু \(Z\)-এর বণ্টন অজানা \(\mu\)-নিরপেক্ষ, \(Z\) একটা pivot।
ধাপ ২ — probability statement। standard normal symmetric বলে $$ P\big(-z_{\alpha/2}\le Z\le z_{\alpha/2}\big)=1-\alpha. $$
ধাপ ৩ — \(\mu\) isolate। ভেতরে \(Z\) বসিয়ে: $$ -z_{\alpha/2}\le\frac{\bar X-\mu}{\sigma/\sqrt n}\le z_{\alpha/2}. $$ সব দিকে \(\sigma/\sqrt n>0\) গুণ: $$ -z_{\alpha/2}\frac{\sigma}{\sqrt n}\le \bar X-\mu\le z_{\alpha/2}\frac{\sigma}{\sqrt n}. $$ \(\bar X\) বিয়োগ ও চিহ্ন উল্টে (অসমতা উল্টায়, ক্রম ঠিক রেখে লিখলে): $$ \bar X-z_{\alpha/2}\frac{\sigma}{\sqrt n}\le\mu\le\bar X+z_{\alpha/2}\frac{\sigma}{\sqrt n}. $$ সুতরাং $$ P\Big(\bar X-z_{\alpha/2}\tfrac{\sigma}{\sqrt n}\le\mu\le \bar X+z_{\alpha/2}\tfrac{\sigma}{\sqrt n}\Big)=1-\alpha, $$ অর্থাৎ random interval \(\boxed{\bar X\pm z_{\alpha/2}\,\sigma/\sqrt n}\) একটা \((1-\alpha)\) confidence interval — ঠিক z-interval। \(\blacksquare\) (লক্ষ্য: এখানে randomness সম্পূর্ণ \(\bar X\)-এ; \(\mu\) স্থির।)
সমাধান ১০ (★★)¶
coverage probability। estimator-ভিত্তিক random interval \(C_n=[\,L(X),\,U(X)\,]\)-এর coverage probability সত্যি প্যারামিটার \(\theta\)-তে: $$ \mathrm{cov}(\theta)=P_\theta\big(\theta\in C_n\big)=P_\theta\big(L(X)\le\theta\le U(X)\big). $$
\((1-\alpha)\) CI-এর সংজ্ঞা। \(C_n\) একটা \((1-\alpha)\) confidence interval যদি $$ P_\theta\big(L(X)\le\theta\le U(X)\big)\ge 1-\alpha\qquad\text{প্রতিটি সম্ভাব্য }\theta\text{-এর জন্য।} $$ (অনেক ক্ষেত্রে ঠিক সমান \(=1-\alpha\); "\(\ge\)" রাখা হয় যাতে অন্তত-coverage নিশ্চিত থাকে।)
কেন probability interval-এর ওপর, \(\theta\)-এর ওপর নয়। এই সংজ্ঞায় একমাত্র random জিনিস হলো data \(X\), তাই \(L(X)\) ও \(U(X)\) random — interval-টাই এদিক-ওদিক সরে। \(\theta\) একটা স্থির (অজানা) ধ্রুবক: সে কোনো বণ্টন থেকে আসে না, তাই "\(\theta\in C_n\)" ঘটনাটার randomness পুরোপুরি \(C_n\)-এর (অর্থাৎ \(X\)-এর) randomness থেকে আসে। তাই বাক্যটা পড়তে হবে "random interval-টা স্থির \(\theta\)-কে ধরবে কি না" — "\(\theta\) randomly interval-এ পড়বে কি না" নয়। Figure 2-এর বাঁ দিক ঠিক এটাই দেখায়: \(\theta\)-এর রেখা স্থির, interval-দণ্ডগুলো random ভাবে এদিক-ওদিক, ~\((1-\alpha)\) ভাগ স্থির রেখাকে ধরে। ডান দিকের ভুল ছবিটা \(\theta\)-কে random ধরে — যা frequentist কাঠামোয় অবৈধ। \(\blacksquare\)
সমাধান ১১ (★★★) — E4 (MLE-based / large-sample CI)¶
(ক) Wald CI। ধরা আছে বড় নমুনায় \(\hat\theta\approx\mathcal{N}\big(\theta,\ \widehat{\mathrm{se}}^{\,2}\big)\), \(\widehat{\mathrm{se}}=1/\sqrt{n\,I(\hat\theta)}\)। তাই approximate pivot $$ \frac{\hat\theta-\theta}{\widehat{\mathrm{se}}}\ \xrightarrow{d}\ \mathcal{N}(0,1), $$ এবং §৭ Q9-এর মতোই isolate করে $$ \boxed{\ \hat\theta\ \pm\ z_{\alpha/2}\,\widehat{\mathrm{se}}\ } \qquad\Big(=\ \hat\theta\pm z_{\alpha/2}\big/\sqrt{n\,I(\hat\theta)}\Big), $$ একটা approximate \((1-\alpha)\) CI।
(খ) delta method (রূপান্তরিত প্যারামিটার)। \(\psi=g(\theta)\), \(g\) মসৃণ ও \(g'(\theta)\ne0\)। delta method বলে $$ g(\hat\theta)\approx\mathcal{N}!\Big(g(\theta),\ \big[g'(\theta)\big]^2\,\widehat{\mathrm{se}}^{\,2}\Big), \quad\text{তাই}\quad \widehat{\mathrm{se}}\psi=\big\lvert g'(\hat\theta)\big\rvert\,\widehat{\mathrm{se}}. $$ সুতরাং \(\psi\)-এর approximate \((1-\alpha)\) CI: $$ \boxed{\ g(\hat\theta)\ \pm\ z. $$}\,\big\lvert g'(\hat\theta)\big\rvert\,\widehat{\mathrm{se}}\
(গ) pivot-যুক্তির সাথে মিল। §৭ Q9-এ pivot \(\frac{\bar X-\mu}{\sigma/\sqrt n}\)-এর বণ্টন ঠিক \(\mathcal{N}(0,1)\) (exact, normal data + জানা \(\sigma\))। এখানে \(\frac{\hat\theta-\theta}{\widehat{\mathrm{se}}}\) একটা approximate pivot — এর বণ্টন বড় নমুনায় \(\mathcal{N}(0,1)\)-এর দিকে যায় (asymptotic normality of the MLE, 4.5)। গঠন একই (pivot \(\to\) probability bracket \(\to\) isolate \(\theta\)); পার্থক্য শুধু "exact" বনাম "asymptotic"। তাই Wald CI হলো pivot-পদ্ধতিরই বৃহৎ-নমুনা সংস্করণ — আর E3-এর proportion CI এর বিশেষ ঘটনা (\(\theta=p\), \(\hat\theta=\hat p\), \(\widehat{\mathrm{se}}=\sqrt{\hat p(1-\hat p)/n}\))। \(\blacksquare\)
ঘ · কোডিং (coding)¶
সমাধান ১২ (★★) — coverage simulation¶
import numpy as np
from scipy import stats
def coverage_z(mu=50.0, sigma=10.0, n=25, R=10000, seed=0):
rng = np.random.default_rng(seed)
z = stats.norm.ppf(0.975)
X = rng.normal(mu, sigma, size=(R, n))
xbar = X.mean(axis=1)
m = z * sigma / np.sqrt(n) # sigma জানা
cover = (xbar - m <= mu) & (mu <= xbar + m)
return cover.mean(), m
cov25, m25 = coverage_z(n=25)
cov5, m5 = coverage_z(n=5)
print(f"n=25 : coverage={cov25:.4f}, half-width={m25:.3f}")
print(f"n=5 : coverage={cov5:.4f}, half-width={m5:.3f}")
সমাধান ১৩ (★★) — z বনাম t, \(\sigma\) অজানা হলে¶
import numpy as np
from scipy import stats
def coverage_unknown_sigma(mu=50.0, sigma=10.0, n=5, R=10000, seed=1):
rng = np.random.default_rng(seed)
X = rng.normal(mu, sigma, size=(R, n))
xbar = X.mean(axis=1)
s = X.std(axis=1, ddof=1) # sigma অজানা -> s দিয়ে আঁচ
se = s / np.sqrt(n)
m_z = stats.norm.ppf(0.975) * se # ভুল: z ব্যবহার
m_t = stats.t.ppf(0.975, df=n-1) * se # ঠিক: t ব্যবহার
cov_z = ((xbar - m_z <= mu) & (mu <= xbar + m_z)).mean()
cov_t = ((xbar - m_t <= mu) & (mu <= xbar + m_t)).mean()
return cov_z, cov_t
cz, ct = coverage_unknown_sigma(n=5)
print(f"n=5 z-interval coverage = {cz:.4f} (under-covers)")
print(f"n=5 t-interval coverage = {ct:.4f} (~0.95)")
সমাধান ১৪ (★★★) — proportion CI (E3) ও MLE-CI (E4)¶
import numpy as np
from scipy import stats
def wald_proportion_coverage(p=0.3, n=400, R=5000, seed=2):
rng = np.random.default_rng(seed)
phat = rng.binomial(n, p, size=R) / n
se = np.sqrt(phat * (1 - phat) / n) # = MLE-based se
z = stats.norm.ppf(0.975)
lo, hi = phat - z*se, phat + z*se
cover = (lo <= p) & (p <= hi)
return cover.mean()
print("Wald proportion-CI coverage:", wald_proportion_coverage())
Wald proportion-CI coverage: 0.9492।
ব্যাখ্যা:
- \(p=0.3\), \(n=400\)-এ coverage \(\approx0.95\) — প্রতিশ্রুত \(0.95\)-এর প্রায় সমান (Wald এখানে ভালোই কাজ করে)। Wald CI চরম \(p\) বা ছোট \(n\)-এ বেশি under-cover করে (যেমন \(p=0.05\)); \(p=0.3\) মাঝামাঝি বলে এখানে কাছাকাছি \(0.95\)। (চাইলে Wilson বা Agresti–Coull interval ভালো coverage দেয় — পরবর্তী আলোচনার বিষয়।)
- E3 = E4-এর বিশেষ ঘটনা। Bernoulli\((p)\)-তে log-likelihood থেকে MLE \(\hat p=\bar X\) (নমুনা-অনুপাত), আর তার asymptotic se হলো \(\widehat{\mathrm{se}}=\sqrt{\hat p(1-\hat p)/n}=1/\sqrt{n\,I(\hat p)}\) যেখানে \(I(p)=\frac{1}{p(1-p)}\) (Bernoulli-র Fisher information)। তাই proportion-CI \(\hat p\pm z_{\alpha/2}\widehat{\mathrm{se}}\) হুবহু MLE-based Wald CI — কোডে se = sqrt(phat*(1-phat)/n) ঠিক এই \(\widehat{\mathrm{se}}\)। সুতরাং E3 আর E4 একই সূত্রের দুই নাম — proportion-CI আসলে Bernoulli-MLE-র large-samp