परीक्षण करें कि क्या चर समान वितरण का अनुसरण करते हैं


16

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

यहां वितरण के साथ मेरा मतलब है "सामान्य", "ची-स्क्वायर", "गामा" आदि।

जवाबों:


35

आइए जानें कि यह एक अच्छा परीक्षण है या नहीं। यह दावा करने की तुलना में बहुत अधिक है कि यह खराब है या एक उदाहरण में दिखा रहा है कि यह अच्छी तरह से काम नहीं करता है। अधिकांश परीक्षण कुछ परिस्थितियों में खराब तरीके से काम करते हैं, इसलिए अक्सर हमें उन परिस्थितियों की पहचान करने का सामना करना पड़ता है जिनमें कोई प्रस्तावित परीक्षण संभवतः एक अच्छा विकल्प हो सकता है।

परीक्षण का विवरण

किसी भी परिकल्पना परीक्षण की तरह, यह (ए) एक शून्य और वैकल्पिक परिकल्पना और (बी) एक परीक्षण सांख्यिकीय (सहसंबंध गुणांक) परिकल्पना के बीच भेदभाव करने का इरादा रखता है।

अशक्त परिकल्पना यह है कि दो चर एक ही वितरण से आते हैं। सटीक होना, हमें चर नाम जाने और और मान लेते हैं हमने देखा है के उदाहरण , बुलाया , और के उदाहरण , कहा जाता । अशक्त परिकल्पना यह है कि एक्स और वाई के सभी उदाहरण स्वतंत्र और पहचान के साथ वितरित किए जाते हैं (आईआईडी)।वाई एन एक्स एक्स एक्स आई = ( एक्स 1 , एक्स 2 , , एक्स एन एक्स ) एन वाई वाई वाई आईXYnxXxi=(x1,x2,,xnx)nyYyiXY

आइए हम वैकल्पिक परिकल्पना के रूप में लेते हैं कि (ए) सभी उदाहरण कुछ अंतर्निहित वितरण एफ एक्स के अनुसार हैं और (बी) वाई के सभी उदाहरण कुछ अंतर्निहित वितरण एफ वाई के अनुसार हैं लेकिन (सी) एफ एक्स एफ से अलग हैं । (इस प्रकार, हम x i के बीच संबंध, y i के बीच संबंध, x i और y j के बीच संबंध या x 's या y के बीच वितरण के अंतरों की तलाश नहीं करेंगे।XFXYFYFXFYxiyixiyjxyअलग से: यह माना जाता है कि प्रशंसनीय नहीं है।)

प्रस्तावित परीक्षण आंकड़ा मानता है कि (इस आम मूल्य फोन एन ) और के सहसंबंध गुणांक की गणना करता है ( एक्स [ मैं ] , y [ मैं ] ) हमेशा की तरह,, (जहां [ मैं ] निर्दिष्ट करता है जिनकी मैं वें सबसे छोटा डेटा का)। इस टी को बुलाओ ( x , y )nx=nyn(x[i],y[i])[i]itht(x,y)

क्रमपरिवर्तन परीक्षण

इस स्थिति में - कोई बात नहीं कि सांख्यिकीय प्रस्तावित है - हम हमेशा एक क्रमचय परीक्षण कर सकते हैं शून्य परिकल्पना के तहत, डेटा की संभावना ( ( x 1 , x 2 , , x n ) , ( y 1 , y 2 , , y n ) ) 2 n के किसी भी क्रमपरिवर्तन की संभावना के समान है। डेटा मान। दूसरे शब्दों में, X को आधे डेटा और दूसरे आधे Y को असाइनमेंटt((x1,x2,,xn),(y1,y2,,yn))2nएक्सYएक शुद्ध यादृच्छिक संयोग है। यह iid मान्यताओं और शून्य परिकल्पना का एक सरल, प्रत्यक्ष परिणाम है जो एफएक्स=एफY

इसलिए, , ओवल्यूशन पर सशर्त वितरण x i और y i , सभी के लिए प्राप्त t के सभी मानों का वितरण है ( 2 n ) ! डेटा के क्रमपरिवर्तन। हम इसमें रुचि रखते हैं क्योंकि किसी भी निर्धारित परीक्षण आकार α के लिए , जैसे कि α = .05 ( 95 % आत्मविश्वास के अनुरूप ), हम टी के नमूना वितरण से दो तरफा महत्वपूर्ण क्षेत्र का निर्माण करेंगे : इसमें सबसे चरम शामिल हैंt(x,y)xiyit(2n)!αα=.0595tटी के संभावित मूल्यों का 100 α %(उच्च पक्ष पर, क्योंकि उच्च सहसंबंध समान वितरण के अनुरूप है और कम सहसंबंध नहीं है)। यह इस तरह से है कि हम यह निर्धारित करने के बारे में जाते हैं कि विभिन्न वितरणों से आने वाले डेटा को तय करने के लिए सहसंबंध गुणांक कितना बड़ा होना चाहिए।100αt

शून्य नमूना वितरण का अनुकरण

क्योंकि (या, यदि आपको पसंद है, ( 2 एन)(2n)!, जो2nडेटा को आकार के दो टुकड़ों मेंविभाजित करने के तरीकों की संख्या को गिनता हैn) छोटेn केलिए भी बड़ा हो जाता है, यह बिल्कुल नमूना वितरण की गणना करने के लिए व्यावहारिक नहीं है, इसलिए हम इसे एक सिमुलेशन का उपयोग करके नमूना करते हैं। (उदाहरण के लिए, जबn=16, ( 2n)(2nn)/22nnnn=16और(2n)! 2.63×1035।) लगभग एक हजार नमूने अक्सर पीड़ित होते हैं (और निश्चित रूप से उन अन्वेषणों के लिए जो हम शुरू करने वाले हैं)।(2nn)/2=300 540 195(2n)!2.63×1035

दो बातें हमें पता लगाने की जरूरत है: पहला, नमूना वितरण शून्य परिकल्पना के तहत कैसा दिखता है। दूसरा, यह परीक्षण विभिन्न वितरणों के बीच कितना अच्छा भेदभाव करता है?

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

कार्यान्वयन

समझाने के लिए, मैंने इस काम को अंजाम दिया R। यह प्राकृतिक रूप से तीन टुकड़ों में गिरता है।

  1. परीक्षण सांख्यिकीय गणना करने के लिए एक समारोह । क्योंकि मैं एक छोटे से अधिक सामान्य, मेरे संस्करण हैंडल विभिन्न आकार डेटासेट (होना चाहते हैं n एक्सn y ) रैखिक (क्रमबद्ध) बड़े डेटासेट में मूल्यों के बीच interpolating के साथ मैच बनाने के लिए द्वारा (क्रमबद्ध) छोटे डाटासेट। क्योंकि यह पहले से ही फ़ंक्शन द्वारा किया गया है , मैं अभी इसके परिणाम लेता हूं:t(x,y)nxnyRqqplot

    test.statistic <- function(x, y) {
      transform <- function(z) -log(1-z^2)/2
      fit <- qqplot(x,y, plot.it=FALSE)
      transform(cor(fit$x, fit$y))
    }

    एक छोटा सा मोड़ - अनावश्यक लेकिन विज़ुअलाइज़ेशन के लिए सहायक - सहसंबंध गुणांक को एक तरह से फिर से व्यक्त करता है जो शून्य सांख्यिकीय के वितरण को लगभग सममित बना देगा। वही transformकर रहा है।

  2. नमूना वितरण का अनुकरण। इनपुट के लिए यह फ़ंक्शन n.iterसरणियों में डेटा के दो सेटों के साथ पुनरावृत्तियों की संख्या को स्वीकार करता है xऔर y। यह n.iterपरीक्षण आँकड़ा के मूल्यों की एक सरणी का उत्पादन करता है । इसका आंतरिक कामकाज पारदर्शी होना चाहिए, यहां तक ​​कि एक गैर Rउपयोगकर्ता के लिए भी :

    permutation.test <- function(n.iter, x, y) {
      z <- c(x,y)
      n.x <- length(x)
      n.y <- length(y)
      n <- length(z)
      k <- min(n.x, n.y)
      divide <- function() {
        i <- sample.int(n, size=k)
        test.statistic(z[i], z[-i])
      }
      replicate(n.iter, divide())
    }
  3. हालांकि बस इतना ही है कि हम की जरूरत का संचालन परीक्षण, यह अध्ययन करने के लिए हम परीक्षण कई बार दोहराना चाहते हैं जाएगा क्रम में। इसलिए, हम एक बार परीक्षण का संचालन करते हैं और उस कोड को तीसरी कार्यात्मक परत के भीतर लपेटते fहैं, जिसे आम तौर पर यहां नाम दिया गया है, जिसे हम बार-बार कॉल कर सकते हैं। व्यापक अध्ययन के लिए इसे पर्याप्त रूप से सामान्य बनाने के लिए, इनपुट के लिए यह डेटासेट के आकारों को अनुकरण करने के लिए स्वीकार करता है ( n.xऔर n.y), प्रत्येक क्रमपरिवर्तन परीक्षण ( n.iter) के लिए पुनरावृत्तियों की संख्या test, परीक्षण सांख्यिकीय की गणना करने के लिए फ़ंक्शन का एक संदर्भ (आप देखेंगे) क्षण भर में हम इसे हार्ड-कोड क्यों नहीं करना चाहते हैं), और आईआईडी यादृच्छिक मान उत्पन्न करने के लिए दो कार्य, लिए एक ( ) और वाई के लिए एक ( )। एक विकल्पXdist.xYdist.yplot.it क्या हो रहा है यह देखने में मदद करने के लिए उपयोगी है।

    f <- function(n.x, n.y, n.iter, test=test.statistic, dist.x=runif, dist.y=runif, 
        plot.it=FALSE) {
      x <- dist.x(n.x)
      y <- dist.y(n.y)
      if(plot.it) qqplot(x,y)
    
      t0 <- test(x,y)
      sim <- permutation.test(n.iter, x, y)
      p <- mean(sim > t0) + mean(sim==t0)/2
      if(plot.it) {
        hist(sim, xlim=c(min(t0, min(sim)), max(t0, max(sim))), 
             main="Permutation distribution")
        abline(v=t0, col="Red", lwd=2)
      }
      return(p)
    }

    आउटपुट एक सिम्युलेटेड "पी-वैल्यू" है: डेटा के लिए वास्तव में गणना की गई तुलना में अधिक चरम लग रहा है कि एक सांख्यिकीय उपज सिमुलेशन के अनुपात ।

भागों (2) और (3) बेहद सामान्य हैं: आप test.statisticकिसी अन्य गणना के साथ बदलकर एक अलग परीक्षा के लिए इस तरह का अध्ययन कर सकते हैं । हम नीचे ऐसा करते हैं।

पहला परिणाम

डिफ़ॉल्ट रूप से, हमारा कोड दो समान वितरण से तैयार किए गए डेटा की तुलना करता है। मैंने इसे ऐसा करने के लिए ( , जो कि काफी छोटे डेटासेट हैं और इसलिए मध्यम कठिन परीक्षण मामला प्रस्तुत करते हैं) और फिर इसे समान-सामान्य तुलना और एक समान-घातीय तुलना के लिए दोहराते हैं। (वर्दी वितरण सामान्य वितरण से अलग करना आसान नहीं है, जब तक कि आपके पास 16 से थोड़ा अधिक मूल्य न हों, लेकिन घातीय वितरण - उच्च तिरछा होना और लंबी दाएं पूंछ - आमतौर पर समान वितरण से आसानी से अलग होते हैं।)n.x=n.y=1616

set.seed(17)             # Makes the results reproducible
n.per.rep <- 1000        # Number of iterations to compute each p-value
n.reps <- 1000           # Number of times to call `f`
n.x <- 16; n.y <- 16     # Dataset sizes

par(mfcol=c(2,3))        # Lay results out in three columns
null <- replicate(n.reps, f(n.x, n.y, n.per.rep))
hist(null, breaks=20)
plot(null)

normal <- replicate(n.reps, f(n.x, n.y, n.per.rep, dist.y=rnorm))
hist(normal, breaks=20)
plot(normal)

exponential <- replicate(n.reps, f(n.x, n.y, n.per.rep, dist.y=function(n) rgamma(n, 1)))
hist(exponential, breaks=20)
plot(exponential)

सहसंबंध परीक्षण के परिणाम

जब और Y दोनों समान हों तो बाईं ओर p- मानों का अशक्त वितरण होता है । हमें उम्मीद है कि हिस्टोग्राम वर्दी के करीब है (चरम बाएं छोर पर विशिष्ट ध्यान देना, जो "महत्वपूर्ण" परिणामों की सीमा में है) - और यह वास्तव में है - और यह है कि सिमुलेशन के दौरान प्राप्त मूल्यों का क्रम, इसके नीचे दिखाया गया है, यादृच्छिक लगता है - और यह करता है। अच्छी बात है। इसका मतलब है कि हम यह अध्ययन करने के लिए अगले कदम पर आगे बढ़ सकते हैं कि जब एक्स और वाई अलग-अलग वितरण से आते हैं तो यह कैसे बदलता है ।XYXY

मिडल प्लॉट्स समान वेरिएंट x i का 16 सामान्य वेरिएंट y i के खिलाफ परीक्षण करते हैं । अधिक बार नहीं, पी-मान अपेक्षा से कम थे। यह इस परीक्षण के लिए वास्तव में एक अंतर का पता लगाने की प्रवृत्ति को इंगित करता है। लेकिन यह एक बड़ा नहीं है। उदाहरण के लिए, हिस्टोग्राम में सबसे बाईं पट्टी से पता चलता है कि 1000 रनों में से (1000 अलग-अलग सिम्युलेटेड डेटासेट शामिल हैं), पी-वैल्यू केवल 0.05 से कम था 110 बार। यदि हम उस "महत्वपूर्ण" पर विचार करते हैं, तो इस परीक्षण में केवल 16 के आधार पर एक समान और सामान्य वितरण के बीच अंतर का पता लगाने का लगभग 11 % मौका है।16xi16yif0.051116प्रत्येक से स्वतंत्र मूल्य। यह बहुत कम शक्ति है। लेकिन शायद यह अपरिहार्य है, तो चलिए आगे बढ़ते हैं।

दाएं हाथ के भूखंड इसी तरह एक घातांक के खिलाफ एक समान वितरण का परीक्षण करते हैं। यह परिणाम विचित्र है। यह परीक्षण, अधिक बार नहीं, यह निष्कर्ष निकालने के लिए जाता है कि समान डेटा और घातीय डेटा समान दिखते हैं। यह "लगता है" लगता है कि वर्दी और घातीय चर दो समान चर से अधिक समान हैं ! यहाँ क्या चल रहा है?

समस्या यह है कि एक घातांक वितरण के डेटा में कुछ अत्यंत उच्च मूल्य होंगे। जब आप समान रूप से वितरित मूल्यों के खिलाफ उन लोगों का एक बिखरा हुआ बनाते हैं, तो बाकी सभी के ऊपरी दाएं से कुछ बिंदु दूर होंगे। यह एक बहुत ही उच्च सहसंबंध गुणांक से मेल खाती है। इस प्रकार, जब भी वितरण में से कुछ चरम मान उत्पन्न करते हैं, तो सहसंबंध गुणांक मापने के लिए एक भयानक विकल्प होता है कि वितरण कितने अलग हैं। यह एक और भी बदतर समस्या की ओर जाता है: जैसे-जैसे डेटासेट का आकार बढ़ता है, कुछ चरम अवलोकन प्राप्त करने की संभावना बढ़ जाती है। इस प्रकार, हम इस परीक्षण की अपेक्षा कर सकते हैं कि डेटा की मात्रा में वृद्धि के रूप में यह बदतर और खराब प्रदर्शन करेगा। कितना भयंकर है ...?

एक बेहतर परीक्षा

मूल प्रश्न नकारात्मक में उत्तर दिया गया है। हालांकि, वितरण के बीच भेदभाव करने के लिए एक प्रसिद्ध, शक्तिशाली परीक्षण है: कोलमोगोरोव-स्मिरनोव परीक्षण। सहसंबंध गुणांक के बजाय, यह उनके QQ भूखंड में लाइन से सबसे बड़े ऊर्ध्वाधर विचलन की गणना करता है । (जब डेटा समान वितरण से आता है, तो QQ प्लॉट इस लाइन का अनुसरण करता है। अन्यथा, यह कहीं न कहीं विचलित हो जाएगा। KS आँकड़ा इस तरह के सबसे बड़े विचलन को उठाता है।)y=x

यहाँ एक Rकार्यान्वयन है:

test.statistic <- function(x, y) {
  ks.test(x,y)$statistic
}

यह सही है: यह सॉफ़्टवेयर में बनाया गया है, इसलिए हमें केवल इसे कॉल करना होगा। लेकिन रुकें! यदि आप मैनुअल को ध्यान से पढ़ते हैं, तो आप सीखेंगे कि (ए) परीक्षण एक पी-मूल्य की आपूर्ति करता है लेकिन (बी) कि पी-मूल्य (सकल) गलत है जब दोनों xऔर yडेटासेट हैं। इसका उपयोग करने के लिए इरादा है जब आपको लगता है कि आपको पता है कि डेटा वास्तव में किस वितरण से xआया है और आप देखना चाहते हैं कि क्या यह सच है। इस प्रकार परीक्षण से वितरण के बारे में अनिश्चितता को ठीक से समायोजित नहीं किया गया है जिसमें से डेटा yआया था।

कोई दिक्कत नहीं है! क्रमपरिवर्तन परीक्षण की रूपरेखा अभी भी मान्य है। पूर्ववर्ती परिवर्तन करके test.statistic, हम सभी को पिछले अध्ययन को फिर से चलाना है, अपरिवर्तित। यहाँ परिणाम हैं।

केएस परीक्षण अध्ययन

p=0.20

700.0511

30α=550α=100.10

निष्कर्ष

इस प्रकार, सहसंबंध परीक्षण के साथ समस्याएं इस सेटिंग में कुछ अंतर्निहित कठिनाई के कारण नहीं हैं। न केवल सहसंबंध परीक्षण बहुत खराब प्रदर्शन करता है, यह व्यापक रूप से ज्ञात और उपलब्ध परीक्षण की तुलना में खराब है। (मुझे लगता है कि यह नाकाफी है, इसका मतलब है कि यह हमेशा केएस परीक्षण के क्रमपरिवर्तन संस्करण की तुलना में औसतन, खराब प्रदर्शन करेगा, इसका अर्थ है कि इसका उपयोग करने का कोई कारण नहीं है।)


बहुत अच्छी व्याख्या, और मैं दूसरों को कुछ अनुकरण करते देखना पसंद करता हूं। मुझे अभी भी एक परेशानी हो रही है कि एक सहसंबंध थोड़ा भविष्यवाणी क्यों करता है (या हम इतना भी नहीं कह सकते?)। इसके अलावा, केवल अस्पष्ट (यह समझने के लिए महत्वपूर्ण हिस्सा कि केएस काम क्यों करता है) "x = y" लाइन के बारे में है ("यह उनके QQ प्लॉट में लाइन y = x से सबसे बड़े ऊर्ध्वाधर विचलन की गणना करता है। (जब डेटा उसी से आता है) वितरण, QQ प्लॉट इस पंक्ति का अनुसरण करता है। ")) हालांकि इस प्रयास के लिए धन्यवाद, मैंने बहुत कुछ सीखा
पास्कलवूटेन

1
1

केएस परीक्षण करता है कि क्या दो डेटासेट समान वितरण फ़ंक्शन से आए हैं, अर्थात उनके सीडीएफ एक ही हैं। हालांकि, ऐसा लगता है कि ओपी एक परीक्षण की तलाश में है जो कहेगा कि Exp (0.1) वही है जो Exp (100), और Normal (0, 5) है, वही Normal (10, 2) है। )। केएस ऐसा बिल्कुल नहीं करता है, और वास्तव में यह सामान्य रूप से असंभव है (और मुझे वास्तव में नहीं पता है कि आप कब चाहते हैं)। लेकिन एक दूसरे में कितना विकृत है, इसके कुछ परीक्षण साधारण मामलों में काम कर सकते हैं (जैसे कि केंद्रीकरण और मानकीकरण मानदंड को शालीनता से संभालेंगे, हालांकि घातांक नहीं)।
डगल

@Dougal मैंने आपकी टिप्पणी को फिर से प्रकाशित किया। क्या यह कहना सही है कि जब हम उल्लेख करते हैं कि "वितरण समान हैं", हमारा मतलब है कि सीडीएफ समान हैं?
पास्कलवीकूटेन

μσ2

5

नहीं, सहसंबंध इस की अच्छी परीक्षा नहीं है।

x <- 1:100 #Uniform
y <- sort(rnorm(100)) #Normal
cor(x,y) #.98

मैं एक अच्छे परीक्षण के बारे में नहीं जानता, जो तुलना करता है, जैसे कि दो वितरण सामान्य हैं, लेकिन संभवतः अलग-अलग साधनों और एसडी के साथ अप्रत्यक्ष रूप से, आप प्रत्येक की सामान्यता का परीक्षण कर सकते हैं, अलग-अलग, और यदि दोनों सामान्य लग रहे थे, तो अनुमान करें कि वे दोनों थे।


0

यदि पर्याप्त रूप से बड़ी संख्या में चर हैं, तो यह आकार-क्रम वाले मानों के साथ अधिक सहसंबंध दिखा सकता है। हालांकि, यह एक विशेष रूप से उपयोगी तरीका नहीं लगता है, कम से कम नहीं क्योंकि यह विश्वास का अनुमान लगाने के लिए बहुत कम साधन प्रदान करता है कि वे एक ही मॉडल का उपयोग कर सकते हैं।

एक समस्या जिसे आप अनुभव करने के लिए उत्तरदायी हैं, जब आपके पास समान माध्य और तिरछापन वाले मॉडल होते हैं, लेकिन कर्टोसिस में एक अंतर, जैसा कि माप की एक मध्यम संख्या काफी अच्छी तरह से सहसंबद्ध दिखने के लिए पर्याप्त रूप से अच्छी तरह से फिट हो सकती है।

यह देखने के लिए अधिक भिन्न है कि दोनों चर को अलग-अलग वितरणों के खिलाफ देखें, जो कि प्रत्येक के लिए सबसे अधिक संभावना है, और परिणामों की तुलना करें।

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


(1) मेरे विश्लेषण से पता चलता है कि पहले वाक्य में व्यक्त की गई अपेक्षा बाहर नहीं पैदा होती है: पर्याप्त रूप से बड़ी संख्या में चर के साथ, यदि वितरण में से एक में छोटी पूंछ होती है और दूसरे में अधिक चरम मूल्यों को प्रदर्शित करने का बस थोड़ा सा मौका होता है, तो सहसंबंध अधिक ऊंचा हो जाता है। (२) जब आप "मॉडल ... विभिन्न वितरणों के खिलाफ" आप उस पर्चे द्वारा निहित कई आश्रित परीक्षणों के लिए नियंत्रण कैसे करते हैं?
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.