Last chance! 50% off DataCamp Premium
Sale ends in
आज की डेटा-चालित दुनिया में, व्यवसाय केवल अंतर्ज्ञान के भरोसे महत्वपूर्ण निर्णय नहीं ले सकते। इसके बजाय, उन्हें अपने कदमों को ठोस डेटा से पुष्ट करने के लिए परिकल्पना परीक्षण जैसे सांख्यिकीय तरीकों का उपयोग करना चाहिए। इसी उद्देश्य के लिए एक लोकप्रिय परीक्षण t-test है, जो आपको दो समूहों के माध्य की तुलना करने और यह निर्धारित करने देता है कि वे सांख्यिकीय रूप से अलग हैं या नहीं।
लेकिन व्यवहार में t-test कैसे लागू करें, और इसके परिणामों की व्याख्या कैसे करें? इस ट्यूटोरियल में, हम इन सवालों और भी बहुत कुछ की पड़ताल करेंगे। विशेष रूप से, हम आपको एक उदाहरण परिदृश्य के माध्यम से ले जाएंगे, जिसमें आप किसी व्यवसाय द्वारा लॉन्च की गई नई सुविधा की सफलता का आकलन करना चाहते हैं। हम दिखाएंगे कि Python और इसकी शक्तिशाली लाइब्रेरीज़ में t-tests का उपयोग कर आउटपुट का विश्लेषण कैसे करें।
ट्यूटोरियल के अंत तक, आपके पास t-tests की ठोस समझ होगी और आप उन्हें अपने डेटा पर आत्मविश्वास के साथ लागू कर पाएंगे।
इस ट्यूटोरियल में, हम t-tests के विभिन्न प्रकार – one-sample test, two-sample test, paired t-test, और Welch’s test – के साथ-साथ उनके उपयोग और इन्हें कब लागू करना है, की पड़ताल करेंगे।
t-test के विवरण में गहराई से जाने से पहले, आइए इससे जुड़ी कुछ शब्दावलियों को तेजी से समझ लें, जो इस सांख्यिकीय परीक्षण की आपकी वैचारिक पकड़ को और मजबूत करेंगी।
परिकल्पना परीक्षण एक ऐसी प्रक्रिया है जिसमें हम एक मान्यता या शून्य परिकल्पना से शुरू करते हैं और उसे खारिज करने के साक्ष्य ढूंढ़ने का प्रयास करते हैं। शून्य परिकल्पना यथास्थिति का प्रतिनिधित्व करती है, जबकि वैकल्पिक परिकल्पना शून्य परिकल्पना के विपरीत को दर्शाती है।
उदाहरण के लिए, हम परिकल्पना परीक्षण का उपयोग यह निर्धारित करने के लिए कर सकते हैं कि किसी व्यवसाय द्वारा लॉन्च की गई नई सुविधा को ग्राहकों से अच्छा प्रतिसाद मिल रहा है और क्या यह सफलता मापदंड में परिलक्षित होता है। विषय के बारे में अधिक जानने के लिए हमारा hypothesis testing course देखें।
p-value वह प्रायिकता है जिसके तहत, शून्य परिकल्पना सत्य मानते हुए, प्रेक्षित जितने या उससे अधिक चरम परिणाम प्राप्त होते हैं। छोटा p-value यह दर्शाता है कि शून्य परिकल्पना सही होने पर भी ऐसे परिणाम मिलने की संभावना बहुत कम है।
महत्त्व स्तर, जिसे alpha द्वारा दर्शाया जाता है, शून्य परिकल्पना के सत्य होने की स्थिति में उसे खारिज करने की प्रायिकता है। इसे Type 1 error भी कहा जाता है।
सांख्यिकीय महत्त्व का अर्थ यह भरोसा है कि प्रेक्षित परिणाम संयोगवश नहीं है। यह ध्यान रखना महत्वपूर्ण है कि सांख्यिकीय महत्त्व का मतलब जरूरी नहीं कि व्यावहारिक महत्त्व भी हो, क्योंकि प्रेक्षित परिणाम व्यावहारिक दृष्टि से नगण्य भी हो सकता है। यदि नमूना बड़ी जनसंख्या का सही प्रतिनिधित्व न करे तो सैम्पलिंग त्रुटि भी सांख्यिकीय महत्त्व में योगदान दे सकती है।
किसी भी सांख्यिकीय परीक्षण की मान्यताओं को समझना सटीक और विश्वसनीय परिणाम सुनिश्चित करने के लिए आवश्यक है। t-test भी इससे अलग नहीं है। इसकी मान्यताओं का उल्लंघन भ्रामक निष्कर्षों तक ले जा सकता है, जो प्रतिकूल होगा। आइए t-test की चार मान्यताओं को विस्तार से समझें:
पहले, स्वतंत्रता का गुण बताता है कि प्रेक्षण डेटा में मौजूद किसी अप्रत्यक्ष कारक से प्रभावित नहीं हैं और समय के साथ सहसंबद्ध नहीं हैं। स्वतंत्रता सुनिश्चित करने के लिए, आश्रित डेटा से निपटने हेतु विभिन्न तकनीकों को लागू किया जा सकता है, जैसा कि University of Texas at Austin द्वारा समझाया गया है।
दूसरे, अपवाद मानों या असामान्य डेटा अभिलेखों की उपस्थिति, t-statistic के मान को कम कर सकती है और डेटा में विचरण बढ़ा सकती है, जिससे शून्य परिकल्पना को अस्वीकार करने की प्रायिकता प्रभावित होती है। इसलिए, असामान्य व्यवहार के अंतर्निहित कारणों की पहचान और समझना महत्वपूर्ण है, ताकि यह तय किया जा सके कि वह वैध है या त्रुटिपूर्ण डेटा। डेटा के वास्तविक व्यवहार को समझने में डोमेन विशेषज्ञ से परामर्श सहायक हो सकता है।
तीसरे, t-test केवल सामान्य वितरण वाले डेटा के लिए मान्य है। विकृत (skewed) डेटा शून्य परिकल्पना के गलत अस्वीकार तक ले जा सकता है। हालांकि, सीमित डेटा बिंदुओं के साथ सामान्य वितरण की जाँच करना कठिन है। ऐसे मामलों में, उन अप्रामित परीक्षणों का उपयोग किया जा सकता है जो डेटा के वितरण के बारे में मान्यता नहीं बनाते, या सामान्यता प्राप्त करने के लिए सुधारात्मक उपाय के रूप में data transformation किया जा सकता है।
अंततः, जिन दो जनसंख्याओं की तुलना की जा रही है, उनका विचरण t-test के लिए समान होना चाहिए। इसे ग्राफ़िक रूप से Q-Q प्लॉट का उपयोग करके जाँचा जा सकता है।
अब जब हमें t-test की मान्यताओं की बेहतर समझ हो गई है, तो आइए Python उदाहरण के माध्यम से t-tests के विभिन्न प्रकारों का अन्वेषण करें। इस ट्यूटोरियल के अंत तक, आपके पास t-tests करने और उनके परिणामों की आत्मविश्वास से व्याख्या करने के लिए आवश्यक ज्ञान होगा।
One-sample t-test एक सांख्यिकीय परिकल्पना परीक्षण है जो यह निर्धारित करने में मदद करता है कि अज्ञात जनसंख्या माध्य (mu) किसी दावे किए गए मान के बराबर नहीं है।

जहाँ,
x = नमूना माध्य
𝝁 = जनसंख्या माध्य
S = नमूना मानक विचलन
n = नमूने में प्रेक्षणों की संख्या
t = t-स्टैटिस्टिक
इसे एक उदाहरण से समझते हैं। एक कंपनी 10 सेमी व्यास की बॉल बेयरिंग बनाती होने का दावा करती है (शून्य परिकल्पना), और आप यह ऑडिट करना चाहते हैं कि क्या यह सच है। आप शहर भर की कई दुकानों से 21 बॉल बेयरिंग इकट्ठा करते हैं और उनका व्यास मापते हैं। आपको मापों के आधार पर यह निर्धारित करना है कि कंपनी का दावा गलत है या नहीं (वैकल्पिक परिकल्पना)।
परीक्षण इस प्रकार परिभाषित है:
शून्य परिकल्पना: H0 : x = 𝝁
वैकल्पिक परिकल्पना: Ha : x ≠ 𝝁

दावे को गलत घोषित करने के लिए, आपको सांख्यिकीय रूप से यह सिद्ध करना होगा कि नमूने से प्राप्त माप कंपनी द्वारा बताए गए 10 सेमी से भिन्न हैं। चूँकि नमूना आकार 21 है (जो 30 से कम है), हम t-test का उपयोग करते हैं। यहाँ नमूना माध्य 11 सेमी है, और मानक विचलन 1 सेमी है।
आइए scipy.stats.ttest_1samp() फ़ंक्शन का उपयोग करके Python में one-sample t-test करना सीखें।
import numpy as np
from scipy import stats
# Population Mean
mu = 10
# Sample Size
N1 = 21
# Degrees of freedom
dof = N1 - 1
# Generate a random sample with mean = 11 and standard deviation = 1
x = np.random.randn(N1) + 11
# Using the Stats library, compute t-statistic and p-value
t_stat, p_val = stats.ttest_1samp(a=x, popmean = mu)
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 4.689539773390642
p-value = 0.0001407967502139183
t-statistic का मान 4.69 आता है, जो t-वितरण में शून्य के माध्य से काफी दूर प्रतीत होता है। ऐसे चरम मान को मापने के लिए, हम p-value का सहारा लेते हैं (जिसका परिचय शब्दावली खंड में किया गया है)। p-value डिफ़ॉल्ट 0.05 के महत्त्व स्तर से कम है, जो दर्शाता है कि ऐसे चरम परिणाम की संभावना लगभग शून्य के पास है और शून्य परिकल्पना को खारिज किया जा सकता है।
ध्यान दें कि महत्त्व स्तर प्रयोग की शुरुआत में तय किया जाता है।
आइए ttest_1samp() फ़ंक्शन के बिना one-sample t-test करें। इस स्थिति में t-statistic को नमूना और जनसंख्या माध्य के अंतर को मानक त्रुटि से भाग देकर परिभाषित किया जाता है, जैसा कि पिछले खंड में चर्चा की गई।
# Sample Mean
x_bar = x.mean()
# Standard Deviation
std = np.std(x, ddof=1)
# Standard Error
ste = std/np.sqrt(N1)
# Calculating the T-Statistics
t_stat = (x_bar - mu) / ste
# p-value of the t-statistic
p_val = 2*(1 - stats.t.cdf(abs(t_stat), df = dof))
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 4.689539773390642
p-value = 0.0001407967502139183
आइए उदाहरण को आगे बढ़ाते हुए मान लें कि कंपनी समान बॉल बेयरिंग बनाने के लिए एक और फैक्ट्री स्थापित करती है। हमें यह जानना है कि क्या दोनों फैक्ट्रियों की बॉल बेयरिंग के आकार अलग हैं। ऐसी स्थिति में, हम two-sample test का उपयोग करते हैं। यहाँ t-statistic नीचे परिभाषित है।

जहाँ,
X1= पहला नमूना माध्य
X2 = दूसरा नमूना माध्य
S1 = पहले नमूने का मानक विचलन
S2 = दूसरे नमूने का मानक विचलन
N1 = पहले नमूने का आकार
N2 = दूसरे नमूने का आकार
मान लें कि पहली फैक्ट्री 21 नमूने साझा करती है, जिनका औसत व्यास 10.5 सेमी आता है। दूसरी ओर, दूसरी फैक्ट्री 25 नमूने साझा करती है जिनका औसत व्यास 9.5 सेमी है। दोनों का मानक विचलन 1 सेमी है।
# Sample Sizes
N1, N2 = 21, 25
# Degrees of freedom
dof = min(N1,N2) - 1
# Gaussian distributed data with mean = 10.5 and var = 1
x = np.random.randn(N1) + 10.5
# Gaussian distributed data with mean = 9.5 and var = 1
y = np.random.randn(N2) + 9.5
## Using the internal function from SciPy Package
t_stat, p_val = stats.ttest_ind(x, y)
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 3.18913308431476
p-value = 0.0026296199823557754
0.0026 के p-value का संदर्भ लेते हुए, जो 0.05 के महत्त्व स्तर से कम है, हम शून्य परिकल्पना को खारिज करते हैं और निष्कर्ष निकालते हैं कि दोनों फैक्ट्रियों की बेयरिंग समान नहीं हैं।
इन परिणामों को साझा करने पर, कंपनी अपनी विनिर्माण तकनीक में सुधार करने का निर्णय लेती है और एक नई कास्टिंग मशीन पेश करती है। वह इसे एक फैक्ट्री से पायलट के रूप में शुरू करती है और यह जाँच करने के लिए परीक्षण करती है कि क्या नई कास्टिंग मशीन बेयरिंग के व्यास में बदलाव लाती है, जिसके लिए 25-25 बेयरिंग के दो नमूनों की तुलना की जाती है – एक नई मशीन आने से पहले और दूसरा उसके बाद।
औसत व्यास क्रमशः 10.5 सेमी और 9.9 सेमी आता है।
आइए परखा जाए कि यह बदलाव सांख्यिकीय रूप से महत्त्वपूर्ण है या नहीं, इसके लिए paired t-test करते हैं।
# Sample Sizes
N = 25
# Degrees of freedom
dof = N - 1
# Gaussian distributed data with mean = 10.5 and var = 1
x = np.random.randn(N) + 10.5
# Gaussian distributed data with mean = 9.9 and var = 1
y = np.random.randn(N) + 9.9
t_stat, p_val = stats.ttest_rel(x,y)
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 3.446152658909739
p-value = 0.0021043953630465787
कम p-value दर्शाती है कि शून्य परिकल्पना खारिज होती है, अर्थात नई कास्टिंग मशीन शुरू करने के बाद बॉल बेयरिंग के व्यास में बदलाव हुआ है।
Paired t-test की मान्यताएँ मूल प्रेक्षणों पर नहीं, बल्कि युग्मों के अंतरों पर लागू होती हैं। इसलिए, यह सुनिश्चित करना महत्वपूर्ण है कि युग्मों के अंतर सममित रूप से वितरित हों और उनमें अपवाद मान न हों।
पहली फैक्ट्री में नई कास्टिंग मशीन के सफल पायलट के बाद, कंपनी दूसरी फैक्ट्री में एक नई रबिंग मशीन के साथ दूसरा पायलट आजमाना चाहती है। यह मशीन अत्यधिक सटीक बॉल बेयरिंग बनाने के लिए जानी जाती है, लेकिन तापमान परिवर्तन और बिजली उतार-चढ़ाव से प्रभावित होती है। कंपनी को पहली फैक्ट्री के 21 और दूसरी फैक्ट्री के 25 नमूनों की तुलना कर यह पहचानना है कि क्या दोनों फैक्ट्रियों की बॉल बेयरिंग अलग हैं।
पहली फैक्ट्री से बेयरिंग का औसत व्यास 9.9 सेमी और मानक विचलन 1 सेमी आता है, जबकि दूसरी फैक्ट्री से औसत व्यास 10 सेमी और मानक विचलन 3 सेमी आता है। चूँकि दोनों नमूनों के मानक विचलन अलग हैं, हम Welch’s t-test का उपयोग करेंगे।
# Sample Sizes
N1, N2 = 21, 25
# Degrees of freedom
dof = min(N1,N2) - 1
# Gaussian distributed data with mean = 9.9 and var = 1
x = np.random.randn(N1) + 9.9
# Gaussian distributed data with mean = 10 and var = 3
y = 3*np.random.randn(N2) + 10
## Using SciPy Package
t_stat, p_val = stats.ttest_ind(x, y, equal_var = False)
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 1.3828843424092643
p-value = 0.17753505304053804
प्रेक्षित p-value 0.05 के महत्त्व स्तर से अधिक है, जो दर्शाता है कि हम शून्य परिकल्पना को खारिज करने में असफल रहते हैं, अर्थात दोनों फैक्ट्रियों की बेयरिंग समान हैं। दूसरी फैक्ट्री के नमूनों के उच्च मानक विचलन के कारण हम परिणामों के बारे में आश्वस्त नहीं हो सकते; इसलिए z-test करने के लिए और अधिक नमूने एकत्र करने की आवश्यकता होगी।
अन्य t-tests के विपरीत, Welch's t-test असमान जनसंख्या विचरणों के लिए लागू होता है।
डेटा में वह क्षमता है कि वह सही तरह से पूछताछ करने पर व्यावसायिक निर्णयों को प्रभावित करने वाली वास्तविक अंतर्निहित घटनाओं को उजागर कर सके। यह जानने के लिए कि कब कौन सा परीक्षण लागू करना है, विभिन्न सांख्यिकीय परीक्षणों की ठोस समझ आवश्यक है। यह ट्यूटोरियल t-tests पर केंद्रित है और उनकी आधारभूत मान्यताओं जैसे स्वतंत्र और समान रूप से वितरित प्रेक्षण तथा सामान्य वितरण को समझाता है।
परिकल्पना परीक्षण पर एक त्वरित परिचय देने के अलावा, यह ट्यूटोरियल उदाहरण की मदद से t-tests के विभिन्न प्रकारों का व्यापक दृष्टिकोण भी देता है। आपको दृढ़ता से प्रोत्साहित किया जाता है कि आप Python में t-test करना अभ्यास करें और आकलन करें कि अपने प्रयोग के सांख्यिकीय महत्त्व का आँकलन करने के लिए किसे उपयोग करना चाहिए।