दूरियों के बीच अंतर का सांख्यिकीय महत्व


12

मेरे पास दो आयामी ग्रिड पर 3000 से अधिक वैक्टर हैं, जिनमें लगभग एक समान असतत वितरण है। वैक्टर के कुछ जोड़े एक निश्चित स्थिति को पूरा करते हैं। नोट: यह शर्त केवल वैक्टरों के जोड़े पर लागू होती है , व्यक्तिगत वैक्टरों पर नहीं। मेरे पास लगभग 1500 ऐसे जोड़े हैं, चलो इसे समूह 1 कहते हैं। समूह 2 में अन्य सभी वेक्टर जोड़े हैं। मैं यह जानना चाहता हूं कि समूह 1 में एक जोड़ी में वैक्टर के बीच की दूरी दो वैक्टर के बीच की औसत दूरी से काफी कम है या नहीं। मैं उसे कैसे कर सकता हूँ?

सांख्यिकीय परीक्षण : क्या मेरे मामले में केंद्रीय सीमा प्रमेय लागू है? यही है, क्या मैं दूरियों के नमूनों का साधन ले सकता हूं और नमूनों के साधनों की तुलना करने के लिए छात्र के टी-टेस्ट का उपयोग कर सकता हूं, जो उन नमूनों के साधनों के साथ शर्त को पूरा करता है जो शर्त को पूरा नहीं करते हैं? अन्यथा, यहां कौन सा सांख्यिकीय परीक्षण उचित होगा?

नमूना आकार और नमूनों की संख्या : मैं समझता हूं कि यहां दो चर हैं, प्रत्येक दो समूहों के लिए मुझे आकार मीटर के एन नमूने लेने और प्रत्येक नमूने का औसत लेने की आवश्यकता है। क्या n और m चुनने का कोई राजसी तरीका है ? क्या उन्हें यथासंभव बड़ा होना चाहिए? या क्या उन्हें यथासंभव कम होना चाहिए, जब तक कि वे सांख्यिकीय महत्व नहीं दिखाते हैं? क्या उन्हें दोनों समूहों में से प्रत्येक के लिए समान होना चाहिए? या उन्हें समूह 2 के लिए बड़ा होना चाहिए, जिसमें कई और वेक्टर जोड़े हैं?


1
आम तौर पर लोग इतने भाग्यशाली नहीं होते हैं कि उनके डेटा बिंदुओं के लिए निश्चित सीमाएँ होती हैं - या फिर सीमाएँ जटिल होती हैं। यह, दूरियों (त्रिभुज असमानता द्वारा निर्मित) के बीच के सहसंबंधों के साथ, औसत दूरी के नमूने वितरण के लिए एक अच्छी विश्लेषणात्मक अभिव्यक्ति विकसित करने का प्रस्ताव रखता है। इसलिए वे आम तौर पर डेटा से resampling द्वारा औसत दूरी के नमूना वितरण का अनुमान लगाते हैं।
whuber

@ जब मुझे यकीन नहीं हो रहा है अगर मैं आपको सही तरीके से समझता हूं, तो क्या आप सुझाव दे रहे हैं कि मैं दोनों समूहों में से प्रत्येक से n नमूने लेता हूं , और उन नमूनों के साधनों की तुलना करने के लिए टी-टेस्ट का उपयोग करता हूं ? मैंने अपना प्रश्न संपादित किया, मुझे उम्मीद है कि अब यह स्पष्ट हो जाएगा।
माइकू

जवाबों:


14

डेटा के लिए "महत्वपूर्ण रूप से" हमेशा अलग, हमेशा एक सांख्यिकीय मॉडल निर्धारित करता है। यह उत्तर सबसे सामान्य मॉडल में से एक का प्रस्ताव करता है जो प्रश्न में प्रदान की गई न्यूनतम जानकारी के अनुरूप है। संक्षेप में, यह व्यापक मामलों में काम करेगा, लेकिन किसी अंतर का पता लगाने के लिए यह हमेशा सबसे शक्तिशाली तरीका नहीं हो सकता है।

डेटा के तीन पहलू सही मायने में मायने रखते हैं: बिंदुओं के कब्जे वाले स्थान का आकार; उस स्थान के भीतर बिंदुओं का वितरण; और "स्थिति" वाले बिंदु-युग्मों द्वारा गठित ग्राफ - जिसे मैं "उपचार" समूह कहूंगा। "ग्राफ़" से मेरा मतलब है कि उपचार समूह में बिंदु-जोड़े द्वारा निहित बिंदुओं और अंतर्संबंधों का पैटर्न। उदाहरण के लिए, ग्राफ के दस बिंदु-जोड़े ("किनारों") में 20 अलग-अलग बिंदु या पांच अंकों तक हो सकते हैं। पूर्व मामले में कोई भी दो किनारों का एक साझा बिंदु नहीं होता है, जबकि बाद वाले मामले में किनारों में पांच बिंदुओं के बीच सभी संभावित जोड़े होते हैं।

यह निर्धारित करने के लिए कि उपचार समूह में किनारों के बीच की दूरी "महत्वपूर्ण" है, हम एक यादृच्छिक प्रक्रिया पर विचार कर सकते हैं जिसमें सभी अंक क्रमिक रूप से क्रमपरिवर्तन द्वारा अनुमत हैं । यह किनारों को भी अनुमति देता है: किनारे को द्वारा प्रतिस्थापित किया जाता है । अशक्त परिकल्पना यह है कि किनारों का उपचार समूह इन में से एक के रूप में उत्पन्न होता है । यदि हां, तो इसकी क्रमिक दूरी उन क्रमपरिवर्तन में दिखाई देने वाली मध्य दूरी की तुलना में होनी चाहिए। हम काफी आसानी से उन सभी क्रमपरिवर्तन के कुछ हजार का नमूना करके उन यादृच्छिक माध्य दूरी के वितरण का अनुमान लगा सकते हैं।n=3000σ(vi,vj)(vσ(i),vσ(j))3000!1021024

(यह उल्लेखनीय है कि यह दृष्टिकोण केवल मामूली संशोधनों के साथ, किसी भी दूरी या वास्तव में किसी भी मात्रा में हर संभव बिंदु जोड़ी के साथ काम करेगा। यह केवल मतलब ही नहीं, बल्कि दूरी के किसी भी सारांश के लिए भी काम करेगा।)


समझाने के लिए, यहां दो स्थितियां हैं अंक और एक उपचार समूह में किनारे। शीर्ष पंक्ति में प्रत्येक किनारे के पहले बिंदुओं को यादृच्छिक रूप से अंकों से चुना गया था और फिर प्रत्येक किनारे के दूसरे बिंदुओं को स्वतंत्र रूप से और यादृच्छिक रूप से उनके पहले बिंदु से अलग अंकों से चुना गया था । इन किनारों में कुल मिलाकर बिंदु शामिल हैं ।n=1002810010013928

नीचे की पंक्ति में, अंकों में से आठ को यादृच्छिक रूप से चुना गया था। किनारों उन सभी संभव जोड़े से मिलकर बनता है।10028

आकृति 1

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

नमूना वितरण भिन्न होते हैं: यद्यपि औसत दूरी समान होती है, किनारों के बीच चित्रमय अन्योन्याश्रितियों के कारण दूसरे मामले में औसत दूरी में भिन्नता अधिक होती है। यह एक कारण है कि केंद्रीय सीमा प्रमेय का कोई सरल संस्करण उपयोग नहीं किया जा सकता है: इस वितरण के मानक विचलन की गणना करना कठिन है।

यहां प्रश्न में वर्णित आंकड़ों के तुलनीय परिणाम दिए गए हैं: अंक लगभग एक वर्ग के भीतर समान रूप से वितरित किए गए हैं और उनके जोड़े के उपचार समूह में हैं। गणनाओं को केवल कुछ सेकंड लगे, उनकी व्यावहारिकता का प्रदर्शन।n=30001500

चित्र 2

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

आम तौर पर, उपचार समूह में सिमुलेशन और उपचार समूह दोनों से औसत दूरी के बराबर या बराबर दूरी से अधिक दूरी का अनुपात इस nonparametric क्रमपरिवर्तन परीक्षण के पी-मूल्य के रूप में लिया जा सकता है


यह Rचित्र बनाने के लिए उपयोग किया जाने वाला कोड है।

n.vectors <- 3000
n.condition <- 1500
d <- 2              # Dimension of the space
n.sim <- 1e4        # Number of iterations
set.seed(17)
par(mfrow=c(2, 2))
#
# Construct a dataset like the actual one.
#
# `m` indexes the pairs of vectors with a "condition."
# `x` contains the coordinates of all vectors.
x <- matrix(runif(d*n.vectors), nrow=d)
x <- x[, order(x[1, ]+x[2, ])]
#
# Create two kinds of conditions and analyze each.
#
for (independent in c(TRUE, FALSE)) {
  if (independent) {
    i <- sample.int(n.vectors, n.condition)
    j <- sample.int(n.vectors-1, n.condition)
    j <- (i + j - 1) %% n.condition + 1
    m <- cbind(i,j)
  } else {
    u <- floor(sqrt(2*n.condition))
    v <- ceiling(2*n.condition/u)
    m <- as.matrix(expand.grid(1:u, 1:v))
    m <- m[m[,1] < m[,2], ]
  }
  #
  # Plot the configuration.
  #
  plot(t(x), pch=19, cex=0.5, col="Gray", asp=1, bty="n",
       main="The Data", xlab="X", ylab="Y",
       sub=paste(length(unique(as.vector(m))), "points"))
  invisible(apply(m, 1, function(i) lines(t(x[, i]), col="#80000040")))
  points(t(x[, unique(as.vector(m))]), pch=16, col="Red", cex=0.6)
  #
  # Precompute all distances between all points.
  #
  distances <- sapply(1:n.vectors, function(i) sqrt(colSums((x-x[,i])^2)))
  #
  # Compute the mean distance in any set of pairs.
  #
  mean.distance <- function(m, distances)
    mean(distances[m])
  #
  # Sample from the points using the same *pattern* in the "condition."
  # `m` is a two-column array pairing indexes between 1 and `n` inclusive.
  sample.graph <- function(m, n) {
    n.permuted <- sample.int(n, n)
    cbind(n.permuted[m[,1]], n.permuted[m[,2]])
  }
  #
  # Simulate the sampling distribution of mean distances for randomly chosen
  # subsets of a specified size.
  #
  system.time(
    sim <- replicate(n.sim, mean.distance(sample.graph(m, n.vectors), distances))
  stat <- mean.distance(m, distances)
  p.value <- 2 * min(mean(c(sim, stat) <= stat), mean(c(sim, stat) >= stat))

  hist(sim, freq=FALSE, 
       sub=paste("p-value:", signif(p.value, ceiling(log10(length(sim))/2)+1)),
       main="Histogram of mean distances", xlab="Distance")
  abline(v = stat, lwd=2, lty=3, col="Red")
}

आपका बहुत बहुत धन्यवाद! यही मैं ढूंढ रहा था। लेकिन क्या आप स्पष्ट करेंगे कि पी-मूल्य की गणना कैसे की जानी चाहिए? मैं "सिमुलेशन और उपचार समूह, जो उपचार समूह में औसत दूरी से अधिक या बराबर हैं, दोनों से औसत दूरी का अनुपात" का सूत्रीकरण नहीं समझता। आप दो माध्य दूरी के अनुपात के बारे में बात कर रहे हैं और उनमें से एक है "मतलब समूह से [...] उपचार समूह जो उपचार समूह में औसत दूरी के बराबर या अधिक हैं"। मैं उलझन में हूं, यह एक तनातनी जैसा लगता है। क्या आप इसे स्पष्ट करने के लिए कोई सूत्र या R कोड लिख सकते हैं?
माइकू

किसी भी मामले में, यह पता चला है कि मेरा मामला आपके दूसरे उदाहरण के समान है, क्रमपरिवर्तन की दूरी 22 है जो मानक विचलन 0.3 के आसपास 22 है, और उपचार समूह का मतलब 12. है। इसलिए यह एक स्पष्ट संकेत की तरह दिखता है कि अंतर सांख्यिकीय रूप से महत्वपूर्ण है। केवल एक चीज जो अब मैं संघर्ष कर रहा हूं वह है पी-वैल्यू का अनुमान। वास्तव में, यहां तक ​​कि क्रमपरिवर्तन (10000) के एक बड़े नमूने के साथ, बिना किसी अपवाद के सभी साधन काफी संकीर्ण अंतराल में हैं, आइए हम बताते हैं [21, 23]। क्या यह कुछ है जो मैं पी-वैल्यू का अनुमान लगाने के लिए उपयोग कर सकता हूं?
माइकू

1
ठीक है, मैंने मोंटे कार्लो के क्रमपरिवर्तन परीक्षणों के बारे में थोड़ा पढ़ा है। मेरी समझ के अनुसार: यदि मेरे द्वारा आजमाए गए सभी 10000 पारगमन के साधन उपचार समूह के माध्य से अधिक हैं, तो मैं उस p <0.0001 का निष्कर्ष निकाल सकता हूं। क्या यह उतना ही सरल है?
मिचौ

1
हां, यह उतना सरल है! मैंने दो-पूंछ वाले पी-मूल्य की गणना करने और प्रदर्शित करने के लिए अंत में कोड जोड़ा (जो, यकीनन, इस स्थिति के लिए उपयुक्त है)। एक-पूंछ वाले पी-मूल्य के लिए, mean(c(sim, stat) <= stat)या तो mean(c(sim, stat) >= stat)उपयुक्त के रूप में उपयोग करें ।
whuber

महान! एक-पूंछ वाले परीक्षण के साथ स्थिति अब पूरी तरह से स्पष्ट है, लेकिन मुझे अभी भी दो-पूंछ वाले परीक्षण की समझ नहीं है, विशेष रूप से 2 से गुणा। यदि 10000 परमिटों ने मुझे सीमा में मतलब दिया [21, 23], इसका मतलब है कि 12 और 32 दोनों 99.99% विश्वास अंतराल के बाहर हैं, जो पी <0.0001 से मेल खाती है? क्या मुझे केवल उन दूरीओं की गणना नहीं करनी चाहिए statजो वितरण के मध्य से किसी भी दिशा में हैं? कुछ इस तरह p.value <- mean(abs(c(sim, stat)-mean(sim)) >= abs(stat-mean(sim)))
18
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.