হাইপোথিসিস টেস্টিং ও p-value
এই পাঠে যা শিখবেন
- নাল ও অল্টারনেটিভ হাইপোথিসিস কীভাবে ঠিকভাবে সেট আপ করতে হয়
- টেস্ট স্ট্যাটিসটিক ও p-value-এর নিখুঁত সংজ্ঞা, এবং কেন এটি একটি শর্তাধীন সম্ভাবনা
- সিগনিফিক্যান্স লেভেল ও সিদ্ধান্ত নেওয়ার নিয়ম
- p-value নিয়ে সবচেয়ে বেশি ছড়ানো ভুল ব্যাখ্যাটি এবং কেন সেটি ভুল
- NumPy দিয়ে একটি সম্পূর্ণ হাইপোথিসিস টেস্ট হাতে-কলমে হিসাব করা
১ · কেন শুধু "সংখ্যাটা আলাদা" যথেষ্ট নয়
ধরুন আপনার মডেলের নতুন ভার্সন (B) পুরনো ভার্সনের (A) চেয়ে ১০০ জন ব্যবহারকারীর মধ্যে ২ জন বেশি সঠিক উত্তর দিয়েছে। এটা কি প্রকৃত উন্নতি, নাকি নিছক কাকতালীয় (random) ফলাফল? পাঠ ২৯-এ আমরা দেখেছি স্যাম্পল মিন প্রকৃত মিনের চারপাশে ওঠানামা করে — তাই শুধু দুটো সংখ্যা পাশাপাশি রেখে সিদ্ধান্ত নেওয়া বিপজ্জনক। হাইপোথিসিস টেস্টিং হলো এই "পার্থক্যটা কি বাস্তব, নাকি স্রেফ শব্দ (noise)?" প্রশ্নের একটি কঠোর, গাণিতিক উত্তর দেওয়ার পদ্ধতি — এবং এটি সরাসরি পাঠ ২৪-এর সম্ভাবনার স্বতঃসিদ্ধ ও শর্তাধীন সম্ভাবনার উপর দাঁড়িয়ে আছে।
২ · নাল হাইপোথিসিস বনাম অল্টারনেটিভ হাইপোথিসিস
প্রতিটি হাইপোথিসিস টেস্ট শুরু হয় দুটি প্রতিদ্বন্দ্বী বিবৃতি দিয়ে। নাল হাইপোথিসিসNull Hypothesis, $H_0$"কোনো প্রভাব নেই" বা "কোনো পার্থক্য নেই" — এই ডিফল্ট ধারণা যা আমরা খণ্ডন করার চেষ্টা করি। ($H_0$) হলো "কোনো পার্থক্য নেই" ধরনের রক্ষণশীল ধারণা — যেমন "কয়েনটি ফেয়ার, $p=0.5$" বা "মডেল A ও B-এর প্রকৃত অ্যাকুরেসি সমান"। অল্টারনেটিভ হাইপোথিসিসAlternative Hypothesis, $H_1$যা আমরা প্রমাণ করতে চাই — $H_0$-এর বিপরীত। ($H_1$) হলো আমরা যা সন্দেহ করছি — যেমন "কয়েনটি ফেয়ার নয়, $p \neq 0.5$"। গুরুত্বপূর্ণ কথা: আমরা কখনো সরাসরি $H_1$ "প্রমাণ" করি না, বরং শুধু $H_0$-কে প্রত্যাখ্যান করার জন্য যথেষ্ট প্রমাণ আছে কি না তা যাচাই করি।
এটি অনেকটা আদালতের "নির্দোষ প্রমাণিত না হওয়া পর্যন্ত নির্দোষ" নীতির মতো — $H_0$ (নির্দোষ/কোনো পার্থক্য নেই) ততক্ষণ বহাল থাকে যতক্ষণ না ডেটা তার বিরুদ্ধে যথেষ্ট শক্তিশালী প্রমাণ দেয়।
৩ · টেস্ট স্ট্যাটিসটিক ও p-value-এর সংজ্ঞা
প্রথমে ডেটা থেকে একটি সংখ্যা বের করা হয় যাকে বলে টেস্ট স্ট্যাটিসটিকTest Statisticপর্যবেক্ষিত ডেটা থেকে গণনা করা একটি সংখ্যা, যা $H_0$-এর অধীনে একটি পরিচিত বিতরণ অনুসরণ করে। — এটি এমনভাবে তৈরি করা হয় যাতে $H_0$ সত্য হলে এর বিতরণ আমরা জানি। এরপর আসে এই পাঠের কেন্দ্রীয় সংজ্ঞা:
p-value হলো — $H_0$ সত্য ধরে নিলে, পর্যবেক্ষিত ডেটার সমান বা তার চেয়ে চরম (extreme) কিছু দেখার সম্ভাবনা। প্রতীকে লিখলে, যদি $T$ টেস্ট স্ট্যাটিসটিক ও $t_{obs}$ আমাদের পর্যবেক্ষিত মান হয়, তাহলে (দুই-পার্শ্বীয় টেস্টে) $$p = P(|T| \geq |t_{obs}| \mid H_0 \text{ সত্য})$$ লক্ষ করুন — এটি একটি শর্তাধীন সম্ভাবনা (পাঠ ২৪), এবং শর্তটি সবসময় $H_0$-এর উপর, ডেটার উপর নয়।
৪ · একটি সম্পূর্ণ উদাহরণ — কয়েনটি কি ফেয়ার?
পাঠ ৩০-এ আমরা coin-flip MLE দেখেছিলাম, যেখানে $n$ বার ফ্লিপে $k$ বার হেড পেলে $\hat p = k/n$। এখন প্রশ্ন করি — এই $\hat p$ কি এতটাই আলাদা $0.5$ থেকে যে কয়েনটি ফেয়ার নয় বলে সন্দেহ করা যায়? ধরা যাক $n=100$ বার ফ্লিপে $k=62$ বার হেড পাওয়া গেছে।
সেটআপ: $H_0: p = 0.5$ (কয়েন ফেয়ার), $H_1: p \neq 0.5$। $H_0$-এর অধীনে হেডের সংখ্যা $X \sim \text{Binomial}(n, 0.5)$, যার গড় $\mu = np = 50$ ও স্ট্যান্ডার্ড ডেভিয়েশন $\sigma = \sqrt{np(1-p)} = \sqrt{25} = 5$ (বড় $n$-এর জন্য Binomial-কে Normal দিয়ে আসন্নীকরণ করা যায় — এই যুক্তির গভীর ভিত্তি পাঠ ২৯-এর কেন্দ্রীয় সীমা উপপাদ্য)। টেস্ট স্ট্যাটিসটিক (z-score): $$z = \frac{k - \mu}{\sigma} = \frac{62 - 50}{5} = 2.4$$ দুই-পার্শ্বীয় p-value হলো $z$-এর মান $2.4$-এর চেয়ে বড় বা $-2.4$-এর চেয়ে ছোট হওয়ার সম্ভাবনা: $$p = 2 \times P(Z \geq 2.4) = 2 \times \big(1 - \Phi(2.4)\big) \approx 0.0164$$ যেখানে $\Phi$ হলো স্ট্যান্ডার্ড নরমাল CDF।
import numpy as np
from math import erf, sqrt
n = 100 # মোট coin flip
k = 62 # হেড-এর সংখ্যা
p0 = 0.5 # H0-এর অধীনে সম্ভাবনা
# H0-এর অধীনে প্রত্যাশিত mean ও std (Binomial -> Normal আসন্নীকরণ)
mu = n * p0
sigma = np.sqrt(n * p0 * (1 - p0))
# টেস্ট স্ট্যাটিসটিক (z-score)
z = (k - mu) / sigma
# স্ট্যান্ডার্ড নরমাল CDF, erf ফাংশন দিয়ে
def norm_cdf(x):
return 0.5 * (1 + erf(x / sqrt(2)))
# দুই-পার্শ্বীয় (two-sided) p-value
p_value = 2 * (1 - norm_cdf(abs(z)))
print("z =", round(z, 4))
print("p-value =", round(p_value, 4))
alpha = 0.05
print("H0 প্রত্যাখ্যান?" , "হ্যাঁ" if p_value < alpha else "না")
৫ · সিগনিফিক্যান্স লেভেল ও সিদ্ধান্তের নিয়ম
টেস্ট করার আগেই একটি থ্রেশহোল্ড ঠিক করা হয়, যাকে বলে সিগনিফিক্যান্স লেভেলSignificance Level, $\alpha$$H_0$ সত্য হলেও ভুলবশত প্রত্যাখ্যান করার সর্বোচ্চ গ্রহণযোগ্য সম্ভাবনা। সচরাচর $0.05$। ($\alpha$), সাধারণত $0.05$। সিদ্ধান্তের নিয়ম সহজ:
- যদি $p < \alpha$ — $H_0$ প্রত্যাখ্যান করো ("স্ট্যাটিস্টিক্যালি সিগনিফিক্যান্ট")।
- যদি $p \geq \alpha$ — $H_0$ প্রত্যাখ্যান করার মতো যথেষ্ট প্রমাণ নেই (এর মানে $H_0$ সত্য প্রমাণিত হলো — তাও নয়)।
৬ · সবচেয়ে সাধারণ ভুল ব্যাখ্যা
ধোঁয়া অ্যালার্ম বাজলে এর মানে এই নয় যে "আগুন লাগার সম্ভাবনা ৯৯%" — এর মানে হলো "যদি আগুন না-ও লাগে, তাহলেও অ্যালার্ম বাজার সম্ভাবনা কম"। p-value ঠিক এভাবেই কাজ করে — এটি প্রমাণের শক্তি মাপে, সিদ্ধান্তের সত্যতার সম্ভাবনা নয়।
৭ · বাস্তব প্রয়োগ — A/B টেস্টিং
মডেল A ও মডেল B-এর মধ্যে তুলনা করার সময়ও ঠিক এই একই যন্ত্র ব্যবহার হয়: $H_0$ হলো "দুটি ভার্সনের প্রকৃত অ্যাকুরেসি/কনভার্শন রেট সমান", টেস্ট স্ট্যাটিসটিক গণনা করা হয় দুই গ্রুপের পার্থক্য থেকে, এবং p-value বলে দেয় এই পার্থক্য নিছক নমুনা-শব্দ (sampling noise) দিয়ে ব্যাখ্যা করা যায় কি না। প্রতিটি প্রোডাক্ট টিমের A/B টেস্টিং ড্যাশবোর্ডের পেছনে ঠিক এই গণিতটাই আছে।
হাইপোথিসিস টেস্টিং একটি নিশ্চিত উত্তর দেয় না — এটি একটি সুশৃঙ্খল উপায়ে বলে দেয় ডেটা $H_0$-এর বিরুদ্ধে কতটা শক্তিশালী প্রমাণ দিচ্ছে। ছোট p-value মানে "প্রমাণ শক্তিশালী", "সিদ্ধান্ত নিশ্চিত সত্য" নয় — এই পার্থক্যটি মাথায় রাখলেই এই পুরো টুলটি সঠিকভাবে ব্যবহার করা যায়।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ যদি $n=10$ বার ফ্লিপে $k=6$ বার হেড পেতাম (একই অনুপাত $0.6$, কিন্তু ছোট নমুনা), তাহলে p-value কি $0.0164$-এর মতোই ছোট হতো?
না — অনেক বড় হতো। $\sigma = \sqrt{10 \times 0.5 \times 0.5} \approx 1.58$, তাই $z = (6-5)/1.58 \approx 0.63$, যা $2.4$-এর চেয়ে অনেক ছোট এবং p-value বেশ বড় ($\approx 0.53$) হবে। ছোট নমুনায় একই অনুপাত অনেক কম প্রমাণ বহন করে — কারণ নমুনা-শব্দের (sampling noise) পরিমাণ $\sigma$ নমুনার আকারের সাথে সম্পর্কিত ($\sigma \propto 1/\sqrt{n}$, পাঠ ২৯)। বড় নমুনায় একই ছোট পার্থক্যও পরিসংখ্যানগতভাবে সিগনিফিক্যান্ট হতে পারে।
প্র ০২ একজন গবেষক $\alpha=0.05$-এর কাছাকাছি $p=0.049$ পেয়ে "সফল" ঘোষণা করলেন। এটি কেন সমস্যাজনক হতে পারে?
$\alpha=0.05$ একটি প্রায়-স্বেচ্ছাচারী (arbitrary) কনভেনশন, কোনো জাদুকরী সীমারেখা নয়। $p=0.049$ ও $p=0.051$-এর মধ্যে বাস্তবিক পার্থক্য প্রায় শূন্য, অথচ একটিকে "সিগনিফিক্যান্ট" ও আরেকটিকে "নন-সিগনিফিক্যান্ট" বলা হলে ভুল দ্বিমুখী সিদ্ধান্তের অনুভূতি তৈরি হয়। এছাড়া বহু প্যারামিটার/বহু টেস্ট চালিয়ে সবচেয়ে ছোট p-value বেছে নেওয়া (p-hacking) মিথ্যা পজিটিভের সম্ভাবনা অনেক বাড়িয়ে দেয়।
প্র ০৩ এক-পার্শ্বীয় (one-sided) টেস্ট ও দুই-পার্শ্বীয় (two-sided) টেস্টের মধ্যে পার্থক্য কী, এবং কোনটি কখন ব্যবহার করবেন?
দুই-পার্শ্বীয় টেস্ট ($H_1: p \neq 0.5$) দুই দিকের বিচ্যুতিই (বেশি বা কম) সন্দেহজনক ধরে নেয়। এক-পার্শ্বীয় টেস্ট ($H_1: p > 0.5$) শুধু একটি নির্দিষ্ট দিকের বিচ্যুতিতেই আগ্রহী — যেমন "নতুন মডেল পুরনোটির চেয়ে ভালো কি না" (শুধু ভালো হওয়ার প্রশ্ন, খারাপ হওয়া নয়)। এক-পার্শ্বীয় টেস্টে একই ডেটায় p-value ছোট হয় (এখানে অর্ধেক, $\approx 0.0082$), কিন্তু দিকনির্দেশ আগে থেকেই ঠিক করে রাখতে হয় — ফলাফল দেখে পছন্দমতো দিক বেছে নেওয়া বৈধ নয়।
অনুশীলন
-
নিজে হিসাব করুন: কোড সেলে $n=200$, $k=115$ বসিয়ে নতুন $z$ ও p-value হাতে হিসাব করুন, তারপর Run
চেপে মিলিয়ে দেখুন। $H_0$ প্রত্যাখ্যাত হয় কি না?
$\mu = 100$, $\sigma = \sqrt{200 \times 0.25} \approx 7.07$, $z = (115-100)/7.07 \approx 2.12$, $p \approx 2(1-\Phi(2.12)) \approx 0.034$। যেহেতু $p < 0.05$, $H_0$ প্রত্যাখ্যাত হয়।
-
ব্যাখ্যা করুন: একজন সহকর্মী বললেন "আমাদের A/B টেস্টে $p=0.03$ পেয়েছি, মানে নতুন ভার্সন ৯৭%
নিশ্চিতভাবে ভালো"। এই বাক্যে ঠিক কোন ভুলটি আছে এবং সঠিক ব্যাখ্যা কী হবে?
এটি p-value-কে "$H_0$ মিথ্যা হওয়ার সম্ভাবনা"-র সাথে গুলিয়ে ফেলছে। সঠিক ব্যাখ্যা: "যদি দুই ভার্সনের প্রকৃত পারফরম্যান্স সমান হতো (অর্থাৎ $H_0$ সত্য হতো), তাহলে আমরা যে পার্থক্য পর্যবেক্ষণ করেছি তার সমান বা তার চেয়ে চরম পার্থক্য দেখার সম্ভাবনা মাত্র ৩%"। এটি "নতুন ভার্সন ৯৭% নিশ্চিত ভালো" থেকে সম্পূর্ণ আলাদা একটি বিবৃতি।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ৩২ · রেগুলারাইজেশন as MAP পূর্ববর্তী Bayes, MLE ও norms কীভাবে একত্রে regularization তৈরি করে তা ফিরে দেখুন।
- পাঠ ৩৪ · ক্রস-এনট্রপি ও KL ডাইভার্জেন্স পরবর্তী পাঠ লস ফাংশনের সম্ভাবনাভিত্তিক ভিত্তি — এবং MLE-এর সাথে এর সরাসরি সম্পর্ক।
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৩৫টি পাঠ Math for AI & ML কোর্সের সব পাঠের তালিকা।