हम विभिन्न पा सकते हैं Resampling तरीकों , या शिथिल बुलाया " अनुकरण " तरीकों, कि इस बात पर निर्भर resampling या उथल नमूनों की। उचित शब्दावली के संबंध में राय में मतभेद हो सकते हैं, लेकिन निम्नलिखित चर्चा सामान्यीकरण और सरल साहित्य में उपलब्ध क्या करने की कोशिश करती है:
रेज़मैप्लिंग के तरीकों का उपयोग डेटा के सबसेट (जैसे जैकोनिफ़िंग) के माध्यम से नमूना आँकड़ों की सटीकता / सटीकता का आकलन करने में किया जाता है या डेटा बिंदुओं के एक सेट से प्रतिस्थापन के साथ यादृच्छिक रूप से ड्राइंग (जैसे बूटस्ट्रैपिंग) (2) महत्व का प्रदर्शन करते समय डेटा बिंदुओं पर लेबल का आदान-प्रदान करना। परीक्षण (क्रमपरिवर्तन परीक्षण, जिसे सटीक परीक्षण, रेंडमाइजेशन परीक्षण या पुन: रैंडमाइजेशन परीक्षण भी कहा जाता है) (3) यादृच्छिक उपसमुच्चय (बूटस्ट्रैपिंग, क्रॉस वैधीकरण) का उपयोग करके मॉडलों को वैधता देना (विकिपीडिया देखें: पुन : नमूनाकरण के तरीके )
BOOTSTRAPING
" बूटस्ट्रैपिंग मूल नमूने से प्रतिस्थापन के साथ नमूना द्वारा एक अनुमानक के नमूना वितरण का अनुमान लगाने के लिए एक सांख्यिकीय तरीका है "। विधि सटीकता का माप प्रदान करती है ( अनुमानों के अनुसार पूर्वाग्रह , विचरण , विश्वास अंतराल , भविष्यवाणी त्रुटि या कुछ अन्य उपाय के रूप में परिभाषित )।
बूटस्ट्रैपिंग का मूल विचार यह है कि नमूना डेटा ( नमूना → जनसंख्या ) से आबादी के बारे में नमूना डेटा को फिर से जमा करके और चालू (नमूनाकरण) नमूना पर निष्कर्ष निकालकर मॉडल बनाया जा सकता है। जैसा कि आबादी अज्ञात है, इसके जनसंख्या मूल्य के खिलाफ एक नमूना सांख्यिकीय में सच्ची त्रुटि अनजानी है। बूटस्ट्रैप-रिसैम्पल्स में, 'जनसंख्या' वास्तव में नमूना है, और यह ज्ञात है; इसलिए डेटा को फिर से भरने से गुणवत्ता का अनुमान → 'सत्य' नमूना औसत दर्जे का है। '' विकिपीडिया देखें
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
#To generate a single bootstrap sample
sample(Yvar, replace = TRUE)
#generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000)
boot[[i]] <- sample(Yvar,replace=TRUE)
अविभाज्य समस्याओं में, आम तौर पर प्रतिस्थापन के साथ व्यक्तिगत टिप्पणियों को फिर से भरना स्वीकार्य है ("मामले को फिर से भरना")। यहां हम डेटा को रिप्लेसमेंट के साथ रीप्ले करते हैं, और रिस्प्ले का आकार मूल डेटा सेट के आकार के बराबर होना चाहिए।
प्रतिगमन समस्याओं में, मामले को फिर से खोलना व्यक्तिगत मामलों को फिर से शुरू करने की सरल योजना को संदर्भित करता है - अक्सर प्रतिगमन समस्याओं में सेट किए गए डेटा की पंक्तियाँ, व्याख्यात्मक चर अक्सर तय की जाती हैं, या प्रतिक्रिया चर की तुलना में अधिक नियंत्रण के साथ कम से कम मनाया जाता है। साथ ही, व्याख्यात्मक चरों की श्रेणी उनमें से उपलब्ध जानकारी को परिभाषित करती है। इसलिए, मामलों को फिर से शुरू करने का मतलब है कि प्रत्येक बूटस्ट्रैप नमूना कुछ जानकारी खो देगा (देखें विकिपीडिया )। तो यह सिर्फ डेटा के नमूने पंक्तियों के लिए तर्कसंगत होगा Yvar
।
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
Xvar <- c(rep("A", 5), rep("B", 5), rep("C", 5))
mydf <- data.frame (Yvar, Xvar)
boot.samples <- list()
for(i in 1:10) {
b.samples.cases <- sample(length(Xvar), length(Xvar), replace=TRUE)
b.mydf <- mydf[b.samples.cases,]
boot.samples[[i]] <- b.mydf
}
str(boot.samples)
boot.samples[1]
आप देख सकते हैं कि कुछ मामलों को दोहराया जाता है क्योंकि हम प्रतिस्थापन के साथ नमूना ले रहे हैं।
" पैरामीट्रिक बूटस्ट्रैप - एक पैरामीट्रिक मॉडल को डेटा के लिए फिट किया जाता है, अक्सर अधिकतम संभावना द्वारा, और यादृच्छिक संख्या के नमूने इस फिट किए गए मॉडल से खींचे जाते हैं । आमतौर पर खींचे गए नमूने का मूल डेटा के समान नमूना आकार होता है। फिर मात्रा, या अनुमान। , इन आंकड़ों से ब्याज की गणना की जाती है। यह नमूना प्रक्रिया कई बार अन्य बूटस्ट्रैप विधियों के रूप में दोहराई जाती है। बूटस्ट्रैप पद्धति के नमूने चरण में पैरामीट्रिक मॉडल का उपयोग उन प्रक्रियाओं की ओर जाता है, जो बुनियादी जैविक सिद्धांत को लागू करके प्राप्त की गई प्रक्रियाओं से भिन्न होती हैं। उसी मॉडल के लिए आक्षेप। "( विकिपीडिया देखें )। माध्य और मानक विचलन मापदंडों के साथ सामान्य वितरण धारणा के साथ पैरामीट्रिक बूटस्ट्रैप निम्नलिखित है।
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
# parameters for Yvar
mean.y <- mean(Yvar)
sd.y <- sd(Yvar)
#To generate a single bootstrap sample with assumed normal distribution (mean, sd)
rnorm(length(Yvar), mean.y, sd.y)
#generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000)
boot[[i]] <- rnorm(length(Yvar), mean.y, sd.y)
बूटस्ट्रैप के अन्य वेरिएंट हैं, कृपया विकिपीडिया पृष्ठ या किसी भी अच्छी स्टैटिकल बुक को पुनर्स्मरण के बारे में देखें।
JACKNIFE
"एक पैरामीटर का जैकनाइफ़ अनुमानक एक डेटासेट से प्रत्येक अवलोकन को व्यवस्थित रूप से छोड़ने और अनुमान की गणना करने और फिर इन गणनाओं के औसत को खोजने के द्वारा पाया जाता है। आकार एन के एक नमूने को देखते हुए, जैकनेफ़ अनुमान प्रत्येक N − 1
अनुमान के अनुमानों को एकत्र करके पाया जाता है। नमूने में। " देखें: विकिपीडिया निम्नलिखित दिखाता है कि कैसे जैकनाइफ को Yvar
।
jackdf <- list()
jack <- numeric(length(Yvar)-1)
for (i in 1:length (Yvar)){
for (j in 1:length(Yvar)){
if(j < i){
jack[j] <- Yvar[j]
} else if(j > i) {
jack[j-1] <- Yvar[j]
}
}
jackdf[[i]] <- jack
}
jackdf
"नियमित बूटस्ट्रैप और जैकनाइफ़, अनुमानों की परिवर्तनशीलता से अनुमान लगाते हैं कि उप-विभाजनों के बीच उस सांख्यिकीय की परिवर्तनशीलता से , बजाय पैरामीट्रिक मान्यताओं से । अधिक सामान्य जैकनाइफ़ के लिए, डिलीट-मी अवलोकन जैकपाइफ़, बूटस्ट्रैप को यादृच्छिक के रूप में देखा जा सकता है। इसका अनुमान है। दोनों समान संख्यात्मक परिणाम देते हैं, यही वजह है कि प्रत्येक को दूसरे के लिए सन्निकटन के रूप में देखा जा सकता है। " इस सवाल को बूटस्ट्रैप बनाम जैकनीफ पर देखें ।
रैंडमाइजेशन नियम
"पैरामीट्रिक परीक्षणों में हम एक या अधिक आबादी से बेतरतीब ढंग से नमूना लेते हैं। हम उन आबादी के बारे में कुछ धारणाएं बनाते हैं, सबसे आम तौर पर वे समान रूप से समान रूपांतरों के साथ वितरित किए जाते हैं। हम एक शून्य परिकल्पना स्थापित करते हैं जो मापदंडों के संदर्भ में तैयार की जाती है, अक्सर फॉर्म एम 1 की। -m2 = 0। हम इसी नमूना मापदंडों के अनुमान के रूप में अपने नमूना आंकड़ों का उपयोग करते हैं, और एक परीक्षण सांख्यिकीय (जैसे परीक्षण में) की गणना करते हैं। उदाहरण के लिए: छात्र के टी में भिन्नता के लिए परीक्षण का मतलब है कि जब परिवर्तन अज्ञात हैं, लेकिन माना जाता है। समान होना। ब्याज की परिकल्पना यह है कि H0: m1 = m2
वैकल्पिक परिकल्पना में से एक के रूप में कहा जाएगा:HA: m1 < m2
। आबादी 1 और 2 से खींचे गए दो नमूनों को देखते हुए, यह मानते हुए कि ये समान रूप से समान भिन्नताओं के साथ आबादी वितरित किए जाते हैं, और यह कि नमूने स्वतंत्र रूप से और प्रत्येक जनसंख्या से यादृच्छिक रूप से तैयार किए गए हैं, फिर एक सांख्यिकीय जिसका वितरण ज्ञात है, परीक्षण के लिए विस्तृत हो सकता है H0
।
इन वितरण संबंधी मान्यताओं से बचने का एक तरीका यह है कि अब इसे गैर पैरामीट्रिक, रैंक - ऑर्डर, रैंक - लाइक और डिस्ट्रीब्यूशन - फ्री आँकड़े कहा जाता है। ये वितरण - मुक्त आँकड़े आमतौर पर आबादी को सामान्य रूप से वितरित करने के आधार पर अनुरूप परीक्षण से कम "कुशल" होने के लिए आलोचना की जाती है।
एक अन्य वैकल्पिक दृष्टिकोण रैंडमाइजेशन दृष्टिकोण है - "किसी व्यक्ति के ज्ञान से स्वतंत्र टिप्पणियों के लिए रेंकली असाइन करने की प्रक्रिया, जिसका नमूना एक सदस्य है। एक रैंडमाइजेशन टेस्ट इस तरह की प्रक्रिया का उपयोग करता है, लेकिन संयुक्त के बजाय टिप्पणियों पर काम करके ऐसा करता है। अवलोकनों की रैंकिंग। इस कारण से, एक सादृश्य सांख्यिकीय (एक नमूने में टिप्पणियों का योग) के वितरण को आसानी से सारणीबद्ध नहीं किया जा सकता है, हालांकि इस तरह के वितरण की गणना करना सैद्धांतिक रूप से संभव है "( देखें )
यादृच्छिकता परीक्षण लगभग हर सम्मान में पैरामीट्रिक परीक्षणों से भिन्न होता है। (1) कोई आवश्यकता नहीं है कि हमारे पास एक या अधिक आबादी से यादृच्छिक नमूने हैं - वास्तव में हमने आमतौर पर यादृच्छिक रूप से नमूना नहीं लिया है। (2) हम कभी-कभी उन आबादी के संदर्भ में सोचते हैं जहां से डेटा आया था, और सामान्यता या समरूपता के बारे में कुछ भी मानने की आवश्यकता नहीं है (3) हमारी अशक्त परिकल्पना का मापदंडों से कोई लेना-देना नहीं है, लेकिन अस्पष्ट रूप से अस्पष्ट है, जैसा कि, उदाहरण के लिए, यह परिकल्पना कि उपचार का प्रतिभागियों पर कोई प्रभाव नहीं पड़ता है। (4) क्योंकि हम आबादी से संबंधित नहीं हैं, हम उन आबादी की विशेषताओं का अनुमान लगाने (या परीक्षण) से भी चिंतित नहीं हैं (5) हम कुछ की गणना करते हैं। टेस्ट स्टेटिस्टिक की तरह, हालांकि हम उस स्टैटिस्टिक की तुलना टैबिल डिस्ट्रीब्यूशन से नहीं करते हैं। बजाय, हम इसकी तुलना उन परिणामों से करते हैं जो हम प्राप्त करते हैं जब हम बार-बार समूहों में डेटा को यादृच्छिक करते हैं, और प्रत्येक यादृच्छिकरण के लिए संबंधित सांख्यिकीय की गणना करते हैं। (6) पैरामीट्रिक परीक्षणों से भी अधिक, यादृच्छिककरण परीक्षण प्रतिभागियों को उपचार के यादृच्छिक असाइनमेंट के महत्व पर जोर देते हैं। "देखते हैं ।
यादृच्छिककरण परीक्षण का प्रकार जो बहुत लोकप्रिय है वह क्रमपरिवर्तन परीक्षण है। यदि हमारा नमूना आकार 12 और 5 है, तो कुल क्रमपरिवर्तन संभव है C(12,5) = 792
। यदि हमारे नमूने का आकार 10 और 15 है, तो 3.2 मिलियन से अधिक की व्यवस्था संभव है। यह कंप्यूटिंग चुनौती है: फिर क्या? नमूना । जब संभावित व्यवस्थाओं का ब्रह्मांड बहुत बड़ा है, तो इस ब्रह्मांड से स्वतंत्र रूप से और यादृच्छिक पर नमूना व्यवस्था क्यों नहीं? नमूनों की इस श्रृंखला पर परीक्षण आँकड़ा का वितरण तब सारणीबद्ध किया जा सकता है, इसका 'माध्य और विचरण गणना, और अनुमान परिकल्पना परीक्षण से जुड़ी त्रुटि दर।
सत्यापन परीक्षण
विकिपीडिया के अनुसार "एक क्रमपरिवर्तन परीक्षण (जिसे एक यादृच्छिक परीक्षण भी कहा जाता है , पुनः-यादृच्छिकरण परीक्षण , या एक सटीक परीक्षण ) एक प्रकार का सांख्यिकीय महत्व परीक्षण है जिसमें सभी संभावित मूल्यों की गणना करके शून्य परिकल्पना के तहत परीक्षण सांख्यिकीय का वितरण प्राप्त किया जाता है। अवलोकन किए गए डेटा बिंदुओं पर लेबल के पुनर्व्यवस्था के तहत परीक्षण आँकड़ा । किसी भी परीक्षण सांख्यिकीय के लिए क्रमपरिवर्तन परीक्षण मौजूद हैं, भले ही इसका वितरण ज्ञात हो या न हो। इस प्रकार एक हमेशा उन आँकड़ों को चुनने के लिए स्वतंत्र है जो परिकल्पना और विकल्प के आधार पर सर्वोत्तम भेदभाव करता है। जो नुकसान को कम करता है। "
क्रमपरिवर्तन और बूटस्ट्रैप के बीच का अंतर यह है कि प्रतिस्थापन के साथ बूटस्ट्रैप नमूना, और प्रतिस्थापन के बिना क्रमपरिवर्तन नमूना । या तो मामले में, टिप्पणियों का समय क्रम खो जाता है और इसलिए अस्थिरता क्लस्टरिंग खो जाती है - इस प्रकार यह आश्वासन देते हुए कि नमूने बिना अस्थिरता क्लस्टरिंग के शून्य परिकल्पना के तहत हैं।
क्रमपरिवर्तन में हमेशा समान अवलोकन होते हैं, इसलिए वे बूटस्ट्रैप नमूनों की तुलना में मूल डेटा की तरह अधिक होते हैं। उम्मीद यह है कि क्रमपरिवर्तन परीक्षण बूटस्ट्रैप परीक्षण की तुलना में अधिक संवेदनशील होना चाहिए। क्रमपरिवर्तन अस्थिरता क्लस्टरिंग को नष्ट करते हैं लेकिन कोई अन्य परिवर्तनशीलता नहीं जोड़ते हैं ।
क्रमांकन बनाम बूटस्ट्रैपिंग पर प्रश्न देखें - " परिकल्पना परीक्षण परिकल्पना के परीक्षण के लिए सर्वोत्तम है और विश्वास अंतराल का अनुमान लगाने के लिए बूटस्ट्रैपिंग सर्वोत्तम है "।
तो इस मामले में क्रमपरिवर्तन करने के लिए हम replace = FALSE
उपरोक्त बूटस्ट्रैप उदाहरण में बदल सकते हैं ।
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
#generate 1000 bootstrap samples
permutes <-list()
for (i in 1:1000)
permutes[[i]] <- sample(Yvar,replace=FALSE)
एक से अधिक वेरिएबल के मामले में, केवल पंक्तियों को चुनने और ऑर्डर को फेरबदल करने से कोई फर्क नहीं पड़ेगा क्योंकि डेटा समान रहेगा। तो हम y चर का फेरबदल करते हैं। आपने जो कुछ किया है, लेकिन मुझे नहीं लगता कि हमें ( और जैसा आपने किया है) दोनों के डबल फेरबदल की जरूरत नहीं है । x
y variables
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
Xvar <- c(rep("A", 5), rep("B", 5), rep("C", 5))
mydf <- data.frame (Yvar, Xvar)
permt.samples <- list()
for(i in 1:10) {
t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
b.df <- data.frame (Xvar, t.yvar)
permt.samples[[i]] <- b.df
}
str(permt.samples)
permt.samples[1]
मोंटे कार्लो मैथोड्स
"मोंटे कार्लो विधियों (या मोंटे कार्लो प्रयोगों) कम्प्यूटेशनल एल्गोरिदम का एक व्यापक वर्ग है जो संख्यात्मक परिणामों को प्राप्त करने के लिए बार-बार यादृच्छिक नमूनाकरण पर भरोसा करते हैं ; आमतौर पर एक अज्ञात संभाव्यता इकाई के वितरण को प्राप्त करने के लिए एक से अधिक बार सिमुलेशन चलाता है। नाम आता है। तकनीक के सदृश होने से एक वास्तविक जुआ कैसीनो में खेलने और रिकॉर्डिंग के परिणाम के अधिनियम में। " विकिपीडिया देखें
"लागू आंकड़ों में, मोंटे कार्लो विधियों का आमतौर पर दो उद्देश्यों के लिए उपयोग किया जाता है:
(1) यथार्थवादी डेटा शर्तों के तहत छोटे नमूनों के लिए प्रतिस्पर्धी आंकड़ों की तुलना करना। हालाँकि, टाइप I त्रुटि और आंकड़ों की शक्ति गुणों की गणना शास्त्रीय सैद्धांतिक वितरणों (जैसे, सामान्य वक्र, कॉची वितरण) से स्पर्शोन्मुख स्थितियों (i। ई, अनंत नमूना आकार और असीम रूप से छोटे उपचार प्रभाव) के लिए की जाती है, वास्तविक डेटा अक्सर किया जाता है। इस तरह के वितरण नहीं हैं।
(२) हाइपोथिसिस परीक्षणों के कार्यान्वयन को प्रदान करने के लिए जो कि सटीक परीक्षणों की तुलना में अधिक कुशल होते हैं जैसे कि अनुमापांक वितरण के लिए महत्वपूर्ण मूल्यों की तुलना में अधिक सटीक होते हुए क्रमपरिवर्तन परीक्षण (जिनकी गणना करना अक्सर असंभव होता है)।
मोंटे कार्लो विधियाँ भी अनुमानित यादृच्छिकरण और क्रमपरिवर्तन परीक्षणों के बीच एक समझौता है । एक अनुमानित यादृच्छिककरण परीक्षण सभी क्रमपरिवर्तन के निर्दिष्ट उपसमूह पर आधारित है (जो संभावित रूप से विशाल हाउसकीपिंग की अनुमति देता है जिसमें क्रमपरिवर्तन माना गया है)। मोंटे कार्लो दृष्टिकोण बेतरतीब ढंग से तैयार किए गए क्रमपरिवर्तन की एक निर्दिष्ट संख्या पर आधारित है ( यदि एक क्रमचय दो बार खींचा गया है, तो सटीकता में मामूली नुकसान का आदान-प्रदान किया जा सकता है - जो क्रमपरिवर्तन पहले से ही चुने गए हैं, उनकी दक्षता के लिए - )।
MC और क्रमपरिवर्तन परीक्षण दोनों को सामूहिक रूप से यादृच्छिक परीक्षण कहा जाता है । अंतर एमसी में है हम क्रमपरिवर्तन के नमूनों का नमूना लेते हैं, बल्कि सभी संभव संयोजनों का उपयोग करके देखते हैं ।
परिणाम का सत्यापन करना
क्रॉस सत्यापन से परे विचार यह है कि मॉडल को उन आंकड़ों के साथ परीक्षण किया जाना चाहिए जो मॉडल को फिट करने के लिए उपयोग नहीं किए गए थे। क्रॉस सत्यापन शायद सबसे अधिक बार भविष्यवाणी के संदर्भ में उपयोग किया जाता है ।
"क्रॉस-मान्यता एक भविष्य कहनेवाला मॉडल को मान्य करने के लिए एक सांख्यिकीय पद्धति है। मान्य सेटों के उपयोग के लिए डेटा के सब्सक्रिप्शन को आयोजित किया जाता है । एक मॉडल शेष डेटा (एक प्रशिक्षण सेट) के लिए फिट है और सत्यापन सेट के लिए भविष्यवाणी करने के लिए उपयोग किया जाता है। सत्यापन सेट के दौरान भविष्यवाणियों की गुणवत्ता पैदावार सटीकता का एक समग्र पैदावार देती है।
क्रॉस-मान्यता का एक रूप एक बार में एक ही अवलोकन को छोड़ देता है; यह कटहल के समान है। एक और, के-गुना क्रॉस-सत्यापन, डेटा को के सबसेट में विभाजित करता है; प्रत्येक को बारी-बारी से सत्यापन सेट के रूप में आयोजित किया जाता है। " विकिपीडिया देखें । क्रॉस सत्यापन आमतौर पर मात्रात्मक डेटा के साथ किया जाता है। आप एक रैखिक मॉडल को फिट करने और इस मॉडल का परीक्षण करने के लिए अपने गुणात्मक (कारक डेटा) को मात्रात्मक किसी में परिवर्तित कर सकते हैं। निम्नलिखित सरल है। होल्ड-आउट रणनीति जहां 50% डेटा का उपयोग मॉडल भविष्यवाणी के लिए किया जाता है जबकि बाकी का उपयोग परीक्षण के लिए किया जाता है। मान लें Xvar
कि यह मात्रात्मक चर भी है।
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
Xvar <- c(rep(1, 5), rep(2, 5), rep(3, 5))
mydf <- data.frame (Yvar, Xvar)
training.id <- sample(1:nrow(mydf), round(nrow(mydf)/2,0), replace = FALSE)
test.id <- setdiff(1:nrow(mydf), training.id)
# training dataset
mydf.train <- mydf[training.id]
#testing dataset
mydf.test <- mydf[test.id]
बूटस्ट्रैप और क्रमपरिवर्तन परीक्षणों के विपरीत, प्रशिक्षण और परीक्षण के लिए क्रॉस-सत्यापन डेटासेट अलग है। निम्नलिखित आंकड़ा विभिन्न तरीकों में रेज़मैपलिंग का सारांश दिखाता है।
उम्मीद है इससे कुछ मदद मिली होगी।