Resampling / सिमुलेशन विधि: मोंटे कार्लो, बूटस्ट्रैपिंग, जैकक्निफिंग, क्रॉस-मान्यता, यादृच्छिककरण परीक्षण, और क्रमपरिवर्तन परीक्षण


73

मैं विभिन्न resampling तरीकों (मोंटे कार्लो सिमुलेशन, पैरामीट्रिक बूटस्ट्रैपिंग, गैर पैरामीट्रिक बूटस्ट्रैपिंग, जैकक्निफिंग, क्रॉस-वैधीकरण, यादृच्छिककरण परीक्षण, और क्रमपरिवर्तन परीक्षण) और उनके उपयोग को अपने संदर्भ में आर के उपयोग से समझने की कोशिश कर रहा हूं ।

मैं निम्नलिखित स्थिति है कहो - मैं एक साथ एनोवा करना चाहते वाई चर ( Yvar) और एक्स चर ( Xvar)। Xvarस्पष्ट है। मुझे निम्नलिखित चीजों में दिलचस्पी है:

(1) पी-वैल्यू का महत्व - गलत खोज दर

(2) Xvarस्तरों के प्रभाव का आकार

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)

क्या आप मुझे स्पष्ट रूप से काम किए गए उदाहरणों के साथ नमूने के अंतरों की व्याख्या करने के लिए जेल कर सकते हैं कि ये पुनरुत्पादन विधि कैसे काम करती है?

संपादन: यहाँ मेरे प्रयास हैं:

बूटस्ट्रैप 10 बूटस्ट्रैप के नमूने, प्रतिस्थापन के साथ नमूनों की नमूना संख्या, इसका मतलब है कि नमूनों को दोहराया जा सकता है

boot.samples <- list()
for(i in 1:10) {
   t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=TRUE) ]
   t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=TRUE) ]
   b.df <- data.frame (t.xvar, t.yvar) 
   boot.samples[[i]] <- b.df 
}
str(boot.samples)
 boot.samples[1]

क्रमपरिवर्तन: 10 क्रमपरिवर्तन नमूने, प्रतिस्थापन के बिना नमूनों की नमूना संख्या

 permt.samples <- list()
    for(i in 1:10) {
       t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=FALSE) ]
       t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
       b.df <- data.frame (t.xvar, t.yvar) 
       permt.samples[[i]] <- b.df 
    }
    str(permt.samples)
    permt.samples[1]

मोंटे कारो सिमुलेशन

यद्यपि "रेज़मैपलिंग" शब्द का उपयोग अक्सर किसी भी दोहराए गए यादृच्छिक या छद्म आयामी सैंपलिंग सिमुलेशन को संदर्भित करने के लिए किया जाता है, जब "रेज़म्पलिंग" एक ज्ञात सैद्धांतिक वितरण से किया जाता है, तो सही शब्द "मोंटे कार्लो" सिमुलेशन है।

मुझे उपरोक्त सभी शर्तों के बारे में निश्चित नहीं है और क्या मेरे उपरोक्त संपादन सही हैं। मुझे जैकनीफ पर कुछ जानकारी मिली, लेकिन मैं इसे अपनी स्थिति के लिए नहीं बता सका।


3
जैकनेफ बूटस्ट्रैप का एक सरल पूर्ववर्ती है। en.wikipedia.org/wiki/Jackknife_(statistics)
EngrStudent

4
अधिक सटीक रूप से: जैकनाइफ छुट्टी-एक-आउट पुनर्निर्माण है [लेकिन क्रॉस सत्यापन के लिए उपयोग नहीं किया गया]
cbeleites

जवाबों:


121

हम विभिन्न पा सकते हैं 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 चर का फेरबदल करते हैं। आपने जो कुछ किया है, लेकिन मुझे नहीं लगता कि हमें ( और जैसा आपने किया है) दोनों के डबल फेरबदल की जरूरत नहीं है । xy 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]

बूटस्ट्रैप और क्रमपरिवर्तन परीक्षणों के विपरीत, प्रशिक्षण और परीक्षण के लिए क्रॉस-सत्यापन डेटासेट अलग है। निम्नलिखित आंकड़ा विभिन्न तरीकों में रेज़मैपलिंग का सारांश दिखाता है।

यहाँ छवि विवरण दर्ज करें

उम्मीद है इससे कुछ मदद मिली होगी।


23
यह प्रभावशाली है - और विशेष रूप से इसलिए, क्योंकि यह आपका पहला उत्तर है! मुझे आशा है कि आप यहां भाग लेते रहेंगे और मैं हमारी साइट पर आपके भविष्य के योगदानों की प्रतीक्षा करूंगा।
whuber

यह उत्तर इस तरह का एक बड़ा चित्र है। हालाँकि, कुछ लिंक को छोड़ दिया गया है। क्या किसी के पास कोई सुराग है कि लिंक कहाँ हैं?
टिंथिथॉन्ग

6

यहाँ मेरा योगदान है।

डेटा

Yvar <- c(8,9,10,13,12,
          14,18,12,8,9,
          1,3,2,3,4)
Xvar <- rep(LETTERS[1:3], each=5)
mydf <- data.frame(Yvar, Xvar)

मौंटे कारलो

मैं मोंटे कार्लो को एक (परिणाम) यादृच्छिक चर के वितरण को प्राप्त करने के लिए एक विधि के रूप में देखता हूं, जो अन्य (इनपुट) यादृच्छिक चर के एक nontrivial फ़ंक्शन का परिणाम है। मैं तुरंत वर्तमान एनोवा विश्लेषण के साथ एक ओवरलैप नहीं देखता हूं, शायद अन्य मंच के सदस्य यहां अपना इनपुट दे सकते हैं।

बूटस्ट्रैपिंग

इसका उद्देश्य एक देखे गए नमूने से गणना की गई सांख्यिकीय की अनिश्चितता का विचार करना है। उदाहरण के लिए: हम गणना कर सकते हैं कि यवर का नमूना का अर्थ 8.4 है, लेकिन हम यव के लिए जनसंख्या के कितने निश्चित हैं ? चाल यह है कि जैसे नमूना आबादी है, और उस नकली आबादी से कई बार नमूना।

n <- 1000
bootstrap_means <- numeric(length=n)
for(i in 1:n){
   bootstrap_sample <- sample(x=Yvar, size=length(Yvar), replace=TRUE)
   bootstrap_means[i] <- mean(bootstrap_sample)
}
hist(bootstrap_means)

हमने सिर्फ नमूने लिए और किसी भी पैरामीट्रिक वितरण को ग्रहण नहीं किया। यह नॉनपामेट्रिक बूटस्ट्रैप है । यदि आप उदाहरण के लिए यह मानकर सहज महसूस करते हैं कि Xvar सामान्य रूप से वितरित किया जाता है, तो आप rnorm(...)अनुमानित माध्य और मानक विचलन का उपयोग करके एक सामान्य वितरण ( ) से नमूना भी ले सकते हैं , यह पैरामीट्रिक बूटस्ट्रैप होगा

अन्य उपयोगकर्ता संभवतः बूटस्ट्रैप के Xvarस्तर के प्रभाव आकारों के संबंध में आवेदन दे सकते हैं?

Jackknifing

कटहल थोड़ा पुराना लग रहा है। पूर्णता के लिए, आप इसकी तुलना कमोबेश बूटस्ट्रैप से कर सकते हैं, लेकिन रणनीति यह देखने के लिए है कि क्या होता है यदि हम एक अवलोकन छोड़ देते हैं (और प्रत्येक अवलोकन के लिए इसे दोहराते हैं)।

परिणाम का सत्यापन करना

क्रॉस-मान्यता में, आप अपने (आमतौर पर बड़े) डेटासेट को एक प्रशिक्षण सेट और एक सत्यापन सेट में विभाजित करते हैं, यह देखने के लिए कि आपका अनुमानित मॉडल सत्यापन सेट में मूल्यों का अनुमान लगाने में कितना सक्षम है। मैंने व्यक्तिगत रूप से अभी तक एनोवा को क्रॉस-सत्यापन का आवेदन नहीं देखा है, इसलिए मैं इस हिस्से को दूसरों पर छोड़ना पसंद करता हूं।

रैंडमाइजेशन / क्रमचय परीक्षण

चेतावनी दी हो, शब्दावली पर सहमति नहीं है। रैंडमाइजेशन परीक्षण और क्रमचय परीक्षण के बीच अंतर देखें ।

अशक्त परिकल्पना यह होगी कि समूहों ए, बी और सी की आबादी के बीच कोई अंतर नहीं है, इसलिए यह कोई फर्क नहीं पड़ता कि क्या हम Xvar के 15 मूल्यों के लेबल को यादृच्छिक रूप से आदान-प्रदान करते हैं। यदि मूल रूप से मनाया गया F मान (या कोई अन्य आँकड़ा) बेतरतीब ढंग से लेबलों के आदान-प्रदान के बाद प्राप्त होने वाले लोगों से सहमत नहीं है, तो संभवतः यह मायने रखता था, और अशक्त परिकल्पना को अस्वीकार किया जा सकता है।

observed_F_value <- anova(lm(Yvar ~ Xvar))$"F value"[1]

n <- 10000
permutation_F_values <- numeric(length=n)

for(i in 1:n){
   # note: the sample function without extra parameters defaults to a permutation
   temp_fit <- anova(lm(Yvar ~ sample(Xvar)))
   permutation_F_values[i] <- temp_fit$"F value"[1]
}

hist(permutation_F_values, xlim=range(c(observed_F_value, permutation_F_values)))
abline(v=observed_F_value, lwd=3, col="red")
cat("P value: ", sum(permutation_F_values >= observed_F_value), "/", n, "\n", sep="")

हिस्टोग्राम

यद्यपि आप जटिल डिजाइनों के मामले में लेबल को पुन: असाइन करने के तरीके से सावधान रहें। यह भी ध्यान दें कि असमान भिन्नताओं के मामले में, विनिमेयता की अशक्त परिकल्पना पहले स्थान पर सही नहीं है, इसलिए यह क्रमपरिवर्तन परीक्षण सही नहीं होगा।

यहां हमने स्पष्ट रूप से लेबल के सभी संभावित क्रमों के माध्यम से नहीं जाना है, यह पी-मूल्य का एक मोंटे कार्लो अनुमान है। छोटे डेटासेट के साथ आप सभी संभावित क्रमपरिवर्तन के माध्यम से जा सकते हैं, लेकिन ऊपर आर-कोड समझना थोड़ा आसान है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.