स्थानिक लाइन पैटर्न के लिए सांख्यिकीय परीक्षण?


32

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

मैं जिस डेटा का विश्लेषण करना चाहता हूं, वह मानव और पशु आंदोलन की ओडी (मूल-गंतव्य) लाइनें हैं। ( अप्रत्यक्ष लाइनों को क्लस्टर करने में उदाहरण के समान ।)

अब तक, एक विचार 4 डी बिंदुओं की तरह लाइनों का इलाज करना था और बिंदु पैटर्न परीक्षणों का उपयोग करना था, लेकिन अगर यह उपयुक्त है तो मैं अनिश्चित हूं।

आदर्श परीक्षा यह निर्धारित करना संभव बनाती है कि लाइनों के क्लस्टर हैं या नहीं।

सहज रूप से, मैं कहूंगा कि कई लाइनें जो एक ही मूल से शुरू होती हैं लेकिन सभी प्रकार के अलग-अलग गंतव्य हैं, उन्हें एक क्लस्टर नहीं माना जाना चाहिए। दूसरी ओर, कई लाइनें जो लंबे समय तक समानांतर चलती हैं (करीब) एक क्लस्टर होंगी। यहाँ छवि विवरण दर्ज करें


यदि एक रेखा दूसरी रेखा के समानांतर हो तो आपका व्यवहार कैसा होना चाहिए लेकिन 1) पहली पंक्ति की तुलना में बहुत कम या 2) "दूर" पहली पंक्ति की दिशा में दूर है
radouxju

उन मामलों में @radouxju, मैं वे एक ही क्लस्टर से संबंधित नहीं कहेंगे
UnderDark

जवाबों:


17

यह एक मुश्किल सवाल है क्योंकि अभी तक कई नहीं हुए हैं, यदि कोई हो, तो लाइन फीचर्स के लिए स्थानिक प्रक्रिया के आँकड़े विकसित किए गए हैं। समीकरणों और कोड में गंभीरता से खुदाई किए बिना, बिंदु प्रक्रिया के आँकड़े रैखिक सुविधाओं के लिए आसानी से लागू नहीं होते हैं और इस प्रकार, सांख्यिकीय रूप से अमान्य हैं। ऐसा इसलिए है क्योंकि अशक्त, कि किसी दिए गए पैटर्न के खिलाफ परीक्षण किया जाता है, बिंदु घटनाओं पर आधारित होता है न कि यादृच्छिक क्षेत्र में रैखिक निर्भरता पर। मेरा कहना है कि मुझे यह भी पता नहीं है कि अशक्तता कितनी होगी और व्यवस्था / अभिविन्यास और भी कठिन होगा।

मैं यहां सिर्फ थूकने-बजाने का काम कर रहा हूं, लेकिन मैं सोच रहा हूं कि क्या यूक्लिडियन दूरी (या हॉसडॉर्फ दूरी अगर लाइनें जटिल हैं) के साथ मिलकर लाइन घनत्व का एक बहु-स्तरीय मूल्यांकन क्लस्टरिंग के एक निरंतर माप का संकेत नहीं देगा। यह डेटा लाइन वैक्टर के लिए संक्षेप में प्रस्तुत किया जा सकता है, लंबाई में भिन्नता (थॉमस 2011) के लिए विचरण का उपयोग करते हुए, और K- साधन जैसे एक आँकड़ा का उपयोग करके क्लस्टर मान असाइन किया गया। मुझे पता है कि आप असाइन किए गए समूहों के बाद नहीं हैं, लेकिन क्लस्टर मान क्लस्टरिंग की डिग्री को विभाजित कर सकता है। यह, जाहिर है, कश्मीर के एक इष्टतम फिट की आवश्यकता होगी, इसलिए मनमाने ढंग से समूहों को सौंपा नहीं गया है। मैं सोच रहा हूं कि ग्राफ सैद्धांतिक मॉडल में बढ़त संरचना का मूल्यांकन करने में यह एक दिलचस्प दृष्टिकोण होगा।

यहाँ R में काम किया गया उदाहरण है, क्षमा करें, लेकिन यह QGIS उदाहरण प्रदान करने की तुलना में अधिक तेज़ और अधिक प्रतिलिपि प्रस्तुत करने योग्य है, और मेरे आराम क्षेत्र में अधिक है :)

पुस्तकालयों को जोड़ें और स्पॉट उदाहरण के रूप में तांबा psp ऑब्जेक्ट का उपयोग लाइन उदाहरण के रूप में करें

library(spatstat)
library(raster)
library(spatialEco)

data(copper)
l <- copper$Lines
l <- rotate.psp(l, pi/2)

मानकीकृत पहली और दूसरी क्रम रेखा घनत्व की गणना करें और फिर रेखापुंज श्रेणी की वस्तुओं के साथ तालमेल करें

d1st <- density(l)
  d1st <- d1st / max(d1st)
  d1st <- raster(d1st)  
d2nd <- density(l, sigma = 2)
  d2nd <- d2nd / max(d2nd)
  d2nd <- raster(d2nd)  

स्केल-इंटीग्रेटेड घनत्व में 1 और 2 क्रम घनत्व को मानकीकृत करें

d <- d1st + d2nd
d <- d / cellStats(d, stat='max')  

मानकीकृत उल्टे यूक्लिडियन दूरी की गणना करें और रेखापुंज वर्ग के लिए मोटे

euclidean <- distmap(l)
euclidean <- euclidean / max(euclidean)
euclidean <- raster.invert(raster(euclidean))

एक spatialLinesDataFrame ऑब्जेक्ट को स्प्रैटर एक्सट्रैक्शन में उपयोग करने के लिए एक स्पैटस्टील स्पर्स के लिए कोर्स स्पैटस्टैट psp

as.SpatialLines.psp <- local({
     ends2line <- function(x) Line(matrix(x, ncol=2, byrow=TRUE))
     munch <- function(z) { Lines(ends2line(as.numeric(z[1:4])), ID=z[5]) }
     convert <- function(x) {
        ends <- as.data.frame(x)[,1:4]
        ends[,5] <- row.names(ends)
        y <- apply(ends, 1, munch)
        SpatialLines(y)
     }
     convert
})
l <- as.SpatialLines.psp(l)
l <- SpatialLinesDataFrame(l, data.frame(ID=1:length(l)) )

प्लॉट का परिणाम

par(mfrow=c(2,2))
  plot(d1st, main="1st order line density")
    plot(l, add=TRUE)
  plot(d2nd, main="2nd order line density")
    plot(l, add=TRUE) 
  plot(d, main="integrated line density")
    plot(l, add=TRUE)   
  plot(euclidean, main="euclidean distance")
    plot(l, add=TRUE) 

रेखापुंज मान निकालें और प्रत्येक रेखा से जुड़े सारांश आँकड़ों की गणना करें

l.dist <- extract(euclidean, l)
l.den <- extract(d, l)
l.stats <- data.frame(min.dist = unlist(lapply(l.dist, min)),
                      med.dist = unlist(lapply(l.dist, median)),
                      max.dist = unlist(lapply(l.dist, max)),
                      var.dist = unlist(lapply(l.dist, var)),
                      min.den = unlist(lapply(l.den, min)),
                      med.den = unlist(lapply(l.den, median)),
                      max.den = unlist(lapply(l.den, max)),
                      var.den = unlist(lapply(l.den, var)))

इष्टतम k। फ़ंक्शन के साथ, इष्टतम k (क्लस्टर की संख्या) का मूल्यांकन करने के लिए क्लस्टर सिल्हूट मान का उपयोग करें, फिर क्लस्टर मान को लाइनों में असाइन करें। फिर हम घनत्व क्लस्टर के शीर्ष पर प्रत्येक क्लस्टर को रंग और भूखंड सौंप सकते हैं।

clust <- optimal.k(scale(l.stats), nk = 10, plot = TRUE)                      
  l@data <- data.frame(l@data, cluster = clust$clustering) 

kcol <- ifelse(clust$clustering == 1, "red", "blue")
plot(d)
  plot(l, col=kcol, add=TRUE)

इस बिंदु पर कोई परीक्षण करने के लिए लाइनों का यादृच्छिककरण कर सकता है यदि परिणामी तीव्रता और दूरी यादृच्छिक से महत्वपूर्ण है। आप "rshift.psp" फ़ंक्शन का उपयोग अपनी रेखाओं को बेतरतीब ढंग से पुनर्निर्मित करने के लिए कर सकते हैं। आप भी बस शुरुआत को रोक सकते हैं और अंक रोक सकते हैं और प्रत्येक पंक्ति को फिर से बना सकते हैं।

एक यह भी आश्चर्य है कि "क्या होगा" यदि आपने लाइनों के प्रारंभ और रुकने के बिंदुओं पर एक अविभाज्य या क्रॉस विश्लेषण सांख्यिकीय का उपयोग करके एक बिंदु पैटर्न विश्लेषण किया। एक अविभाज्य विश्लेषण में आप शुरुआत के परिणामों की तुलना करेंगे और यह देखने के लिए अंक रोकेंगे कि क्या दो बिंदु पैटर्न के बीच क्लस्टरिंग में स्थिरता है। यह F-hat, G-hat या Ripley's-K-hat (अनमार्क्ड पॉइंट प्रोसेस के लिए) के जरिए किया जा सकता है। एक अन्य दृष्टिकोण एक क्रॉस विश्लेषण होगा (उदाहरण के लिए, क्रॉस-के) जहां दो बिंदु प्रक्रियाओं को एक साथ उन्हें [प्रारंभ, रोक] के रूप में चिह्नित करके परीक्षण किया जाता है। यह प्रारंभ और रोक बिंदुओं के बीच क्लस्टरिंग प्रक्रिया में दूरी संबंधों को इंगित करेगा। तथापि, एक अंतर्निहित तीव्रता प्रक्रिया पर स्थानिक निर्भरता (नॉनस्टायोनैरिटी) इस प्रकार के मॉडल में एक मुद्दा हो सकता है जो उन्हें अमानवीय बना सकता है और एक अलग मॉडल की आवश्यकता होती है। विडंबना यह है कि अमानवीय प्रक्रिया को एक तीव्रता फ़ंक्शन का उपयोग करके तैयार किया जाता है, जो हमें पूर्ण चक्र को वापस घनत्व में लाता है, इस प्रकार क्लस्टरिंग के माप के रूप में स्केल-एकीकृत घनत्व का उपयोग करने के विचार का समर्थन करता है।

अगर Ripleys K (Besags L) स्टेटिक का उपयोग करके एक अनकवर्ड पॉइंट प्रोसेस के ऑटोकॉर्लेशन के लिए स्टेटिक का एक त्वरित काम किया गया उदाहरण है, तो लाइन फीचर क्लास के स्थानों को रोकें। अंतिम मॉडल एक क्रॉस-के है जो नाममात्र चिह्नित प्रक्रिया के रूप में स्थानों को शुरू करने और रोकने दोनों का उपयोग करता है।

library(spatstat)
  data(copper)
  l <- copper$Lines
  l <- rotate.psp(l, pi/2)

Lr <- function (...) {
 K <- Kest(...)
  nama <- colnames(K)
   K <- K[, !(nama %in% c("rip", "ls"))]
   L <- eval.fv(sqrt(K/pi)-bw)
  L <- rebadge.fv(L, substitute(L(r), NULL), "L")
 return(L)
}

### Ripley's K ( Besag L(r) ) for start locations
start <- endpoints.psp(l, which="first")
marks(start) <- factor("start")
W <- start$window
area <- area.owin(W)
lambda <- start$n / area
 ripley <- min(diff(W$xrange), diff(W$yrange))/4
   rlarge <- sqrt(1000/(pi * lambda))
     rmax <- min(rlarge, ripley)
( Lenv <- plot( envelope(start, fun="Lr", r=seq(0, rmax, by=1), nsim=199, nrank=5) ) )

### Ripley's K ( Besag L(r) ) for end locations
stop <- endpoints.psp(l, which="second")
  marks(stop) <- factor("stop")
W <- stop$window
area <- area.owin(W)
lambda <- stop$n / area
 ripley <- min(diff(W$xrange), diff(W$yrange))/4
   rlarge <- sqrt(1000/(pi * lambda))
     rmax <- min(rlarge, ripley)
( Lenv <- plot( envelope(start, fun="Lr", r=seq(0, rmax, by=1), nsim=199, nrank=5) ) )

### Ripley's Cross-K ( Besag L(r) ) for start/stop
sdata.ppp <- superimpose(start, stop)
( Lenv <- plot(envelope(sdata.ppp, fun="Kcross", r=bw, i="start", j="stop", nsim=199,nrank=5, 
                 transform=expression(sqrt(./pi)-bw), global=TRUE) ) )

संदर्भ

थॉमस जेसीआर (2011) एक नया क्लस्टरिंग एल्गोरिदम, K- मीन्स के आधार पर एक रेखा खंड का उपयोग प्रोटोटाइप के रूप में करता है। इन: सैन मार्टिन सी।, किम स्व। (eds) पैटर्न रिकॉग्निशन, इमेज एनालिसिस, कंप्यूटर विज़न और एप्लिकेशन में प्रगति। CIARP 2011. लेक्चर नोट्स इन कंप्यूटर साइंस, वॉल्यूम 7042। स्प्रिंगर, बर्लिन, हीडलबर्ग


14

आप फ्रैचेट दूरी में देखना चाह सकते हैं । मुझे हाल ही में अजगर के कार्यान्वयन की तलाश में हाल ही में एक प्रश्न के बाद इसके बारे में पता चला ।

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

Fréchet दूरी को पट्टे के न्यूनतम लंबाई के रूप में परिभाषित किया गया है जो एक कुत्ते को एक दूसरे प्रक्षेपवक्र पर उसके मालिक के साथ जोड़ता है, दोनों कभी भी पीछे नहीं हटते हैं

इस मीट्रिक में दो वक्रों के लिए एक छोटा मान होगा जो बारीकी से स्थित हैं, लगभग समानांतर हैं, उसी तरह संरेखित हैं, और एक समान लंबाई के साथ।

हालांकि यह क्लस्टर पहचान भाग का जवाब नहीं देता है।

यहाँ एक व्यापक प्रस्तुति है । आपकी स्थिति 46-49 में उल्लिखित कुछ उपयोग-मामलों की तरह लगती है

इस मीट्रिक में बहुत सारे गैर-भू-स्थानिक उपयोग हैं जैसे कि

  • जीन अनुक्रमण में सामान्य उपपट्टियों का पता लगाना
  • हस्तलिपि अभिज्ञान
  • स्टॉक मूल्य इतिहास जैसी समय श्रृंखला में सहसंबद्ध अवधि का पता लगाना

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

हालाँकि यह पेपर आशाजनक था: -

बुचिन, के।, बुचिन, एम।, और वांग, वाई। (2009)। फ़्रेचेट दूरी के माध्यम से आंशिक वक्र मिलान के लिए सटीक एल्गोरिदम। असतत एल्गोरिदम पर 20 वीं एसीएम-एसआईएएम संगोष्ठी की कार्यवाही में, पृष्ठ 645-654

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


2
मुझे लगता है कि यूक्लिडियन दूरी के बजाय, फ्रीचेट या हॉसडॉर्फ दूरी का उपयोग करके न्यूनतम-लिंकेज (या डीबीएससीएएन) क्लस्टरिंग एक अच्छा समाधान होगा।
dbaston

मुझे पसंद है कि फ़्रेचेट दूरी मौजूद है और मुझे यह भी पसंद है कि प्रस्तुति "जेलीबीन" और "बेलीबटन" की तुलना करती है।
Fezter

5

मैं यहां बताए गए दृष्टिकोण के समान दृष्टिकोण का उपयोग करने का सुझाव दे रहा हूं ।

ALGORITHM और नामकरण:

a) नाम लाइन लेयर NODES। संगणना बीयरिंग

ख) स्थानिक रूप से दूरी सहिष्णुता का उपयोग करके स्वयं (एक से कई) में शामिल हो जाते हैं। नाम परत कड़ियाँ

c) LINKS से हटाकर स्वयं से जुड़ जाता है, अर्थात NAME = NAME_1

घ) लिंक के अंदर "समान" दिशा जोड़े मिलते हैं। मैंनें इस्तेमाल किया:

def theSame(aList,tol):
    maxB=max(aList);minB=min(aList)
    if abs(maxB-minB)<tol:return 1
    if abs(maxB-minB-180)<tol:return 1
    return 0
#-----------
theSame( [!BEARING!, !BEARING_1!],15)

अर्थात दिशा के विपरीत जाने वाली रेखाएँ विपरीत दिशा में समान होती हैं

डी) लिंक से गैर समान (0) जोड़े हटा दें।

ई) नोड्स के माध्यम से जुड़े लिंक के समूह की गणना करें और समूह की संख्या को नोड्स तालिका में स्थानांतरित करें:

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

दुर्भाग्य से:

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

हालांकि समूह के भीतर बीयरिंग के सरल आँकड़े, उदाहरण के लिए मानक विचलन:

abs(tan(bearing))

पहले मामले में कोई विचलन नहीं दिखा और दूसरे में एक बहुत बड़ा। इसी तरह लंबाई के आंकड़े 'लंबे समय तक समानांतर चलने' में मदद कर सकते हैं।

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

पता नहीं कैसे विपरीत दिशाओं में एक ही बिंदु से जाने वाली रेखाओं की जोड़ी का इलाज करें ...


मुझे स्क्रिप्ट देखने में दिलचस्पी होगी।
अल्फाबेटसप

1
@RichardLaw मेरे समाधान की पहली पंक्ति के लिंक का अनुसरण करता है और इसे देखने के लिए नीचे स्क्रॉल करता है। मेरे पास थोड़ा बेहतर पॉलिश संस्करण है, लेकिन यह करेगा। लॉजिक बेहद सरल है: 1. लिंक और नोड्स का उपयोग करके ग्राफ को संलग्न करें। 1 नोड लें और पूर्वजों को खोजें (समूह 0) 3) ग्राफ़ से नोड्स निकालें और तब तक दोहराएं जब तक कि कोई नोड शेष न हो। मैं बार-बार इसका उपयोग उच्च गुणवत्ता परिषद / LINZ डेटासेट के लिए पाइपों (धाराओं और जो कुछ भी) के डिस्कनेक्ट किए गए समूहों को खोजने के लिए करता
हूं

5

मेरी आँखों में रेखाओं की परिभाषा के साथ एक समस्या है, एक यह निर्धारित करेगी कि उपयोग करने के लिए क्या दृष्टिकोण है (ऊपर उल्लिखित कुछ)। यदि ये OD जोड़े हैं, और ज्यामिति एक भूमिका नहीं निभाती है, तो मैं नेटवर्क क्लस्टरिंग के आधार पर इस पर संपर्क करूंगा। आप कहते हैं कि नेटवर्क एक नेटवर्क नहीं बनाते हैं - इसलिए यह बनें, लेकिन यह संभावना है कि उत्पत्ति और गंतव्य सार्थक क्षेत्रों में आते हैं, और इस प्रकार आप इसे नेटवर्क के रूप में मान सकते हैं।

अगर ज्यामिति को कुछ कहना है (ये हैं, जीपीएस ट्रैजेटरी कहें और आप ज्यामिति पर विचार करना चाहते हैं), तो आपको वास्तव में (x, y, t) स्पेस में काम करने की आवश्यकता होगी - आंदोलन के पदचिह्न के समान ज्यामिति लेकिन अलग-अलग समय का मूल्यांकन एक ही के रूप में नहीं किया जा सकता है - यह प्रश्न में निर्दिष्ट नहीं है।

कुछ संभावनाएं जो आप देख सकते हैं:

  1. आपकी जरूरत के सबसे करीब चकमा, वेइबेल, फोरूटान (2009) है, यहां http://orca.cf.ac.uk/94865/1/PhysicsMovement.pdf
  2. यदि ज्यामिति को सरल बनाया जा सकता है, तो शायद यहाँ बताए गए पैरामीटर उपयोग के हो सकते हैं: http://www.tandfonline.com/doi/full/10.1080/17445647.2017.1313788

लेकिन अंत में, अपने प्रारंभिक प्रश्न को एक बार फिर से पढ़ना, यह अधिक सरल हो सकता है: क्या आप युग्मक (खंडों के बीच) खंडों के रैखिक विस्तार और उनके निकटतम बिंदुओं के चौराहे के बीच की दूरी, किसी भी तरह से सामान्य कर सकते हैं (शायद लंबाई के आधार पर) स्वयं खंड) और मैट्रिक्स क्लस्टरिंग एल्गोरिदम का उपयोग करें? रीजनिंग: सेगमेंट्स जो कि इंटरसेक्ट करते हैं, उससे ज्यादा समान (समानान्तर) होते हैं, जो क्लोज द्वारा पास होते हैं। ड्रॉइंग्स में, आप यह नहीं कहते कि सह-रेखीय या समानांतर खंडों का इलाज कैसे करें जो एक ऑफसेट (लंबे फ्रीस्कैट डिस्ट) में हैं। मुझे लगता है कि यह ऊपर के समाधान के लिए परेशानी देगा। (स्पष्टता के लिए संपादित, ऊपर स्पष्ट रूप से "रैखिक विस्तार" बताते हुए)

नोट (जनवरी 2018): मैंने हाल ही में इस पर ठोकर खाई है:

  1. कै, युहान और रेमंड एनजी। "चेबिशेव बहुपद के साथ अनुक्रमण-लौकिक प्रक्षेपवक्रों को अनुक्रमित करना।" डेटा के प्रबंधन पर 2004 ACM SIGMOD अंतर्राष्ट्रीय सम्मेलन की कार्यवाही। एसीएम, 2004।

जो प्रक्षेपवक्र समानता से संबंधित है और इस प्रकार कुछ हद तक समानता परिमाणीकरण को सक्षम करेगा। यह घटता के बहुपद सन्निकटन पर आधारित है और एक Chebyshev दूरी की गणना करता है।


4

क्या आप जिस डेटा के साथ काम कर रहे हैं, उस पर थोड़ा और विस्तार दे सकते हैं? क्या ये सिर्फ एक पंक्तियों की एक श्रृंखला है या वे एक नेटवर्क बनाते हैं? क्या आपने स्थानिक पैटर्न विश्लेषण के लिए आर्कजीआईएस उपकरणों में से किसी का उपयोग किया है? आर्कगिस के कई तरीके (रिप्ले के, एनएन इंडेक्स, मोरान I) सिर्फ गैर-बिंदु डेटा पर उपयोग किए जाने पर लाइनों / पॉलीगॉन के केंद्रक का उपयोग करते हैं। हालाँकि, यहाँ आपको प्रत्येक पंक्ति को अलग-अलग वर्गों में विभाजित करने पर विचार करने की आवश्यकता हो सकती है, जिससे कि बहुत लंबी लाइनें उनके केन्द्रक के बहुत दूर होने के कारण नहीं समझी जा सकें।

सोचने वाली बात यह है कि वैचारिक रूप से लाइनों का एक समूह क्या है? आपके पास एक-दूसरे के करीब होने वाली कई लाइनें हो सकती हैं, लेकिन फिर उनके अंतिम बिंदुओं को फैलाया जा सकता है। इसी तरह, आपको कई लाइनें मिल सकती हैं, जो एक दूसरे के बहुत करीब से शुरू और खत्म होती हैं, लेकिन फिर उनके स्टार्ट / एंड पॉइंट के बीच बहुत बिखरी हुई हो जाती हैं।

हालांकि एक दृष्टिकोण केवल एक लाइन घनत्व विश्लेषण करने के लिए हो सकता है ताकि अधिक लाइनों वाले क्षेत्रों (जिसे कुछ अर्थों में क्लस्टर माना जा सकता है) में उच्च ग्रिड मान होंगे, जबकि कम घनत्व वाले क्षेत्रों में कम मान होंगे। तो आपको थोड़ा-सा हॉट-स्पॉट आउटपुट मिलता है; हालाँकि यह आपको मोरान I या NNI की तरह एक भी आँकड़ा नहीं देता है। यह एक बहुत अनियमित लाइन (यानी एक तंग सर्पिल) बनाम कई लाइनों के परिणामस्वरूप घनत्व के बीच अंतर नहीं करेगा।

क्षमा करें, यह आपकी समस्या का पूर्ण उत्तर नहीं है, लेकिन मुझे लगता है कि आप जो हासिल करने की कोशिश कर रहे हैं, उसकी पूरी अवधारणा को कुछ बेहतर समाधान प्रदान कर सकते हैं।

अद्यतन करें

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

तो गेटिस-ऑर्ड जीआई (हॉटस्पॉट विश्लेषण) का उपयोग करना एक अच्छा उपकरण होगा जहां यह अनुमान लगाने के लिए कि क्लस्टर कहां हैं; और फिर एक वैश्विक मोरन I का क्लस्टरिंग के वैश्विक स्तर का आकलन करने के लिए।

वह दूरी जिस पर आप लाइनों को खंडित करेंगे, हालांकि क्लस्टरिंग की डिग्री को प्रभावित करते हैं। यदि आप 1 किमी के पैमाने पर क्लस्टर की तलाश कर रहे हैं तो आपको लाइनों को उसके चारों ओर सेगमेंट करना होगा। इसी तरह यदि आप 100 मीटर स्केल पर क्लस्टर की तलाश कर रहे हैं, तो आपको उसके अनुसार लाइनों को खंडित करना होगा। ऐसा है तो आप लाइनों को याद नहीं करते हैं और इसलिए भी आप प्रत्येक पंक्ति को क्लस्टर के रूप में नहीं पहचानते हैं।


रेखाएं यात्रा उत्पत्ति और स्थलों का प्रतिनिधित्व करती हैं। वे एक नेटवर्क नहीं बनाते हैं। मैंने अब तक उत्पत्ति और गंतव्य बिंदुओं के स्थानिक बिंदु पैटर्न के लिए R विधियों का उपयोग किया है। मैं लाइन सेंट्रोइड्स का उपयोग करने के विचार का बहुत शौकीन नहीं हूं, लेकिन यह लाइन को घनीभूत करने और परिणामस्वरूप नोड्स का विश्लेषण करने के लिए एक प्रयास के लायक हो सकता है, धन्यवाद!
UnderDark

लाइन घनत्व विश्लेषण एक गिर वापस समाधान हो सकता है अगर मैं और अधिक उपयुक्त कुछ भी नहीं मिल सकता है।
UnderDark

क्या प्राथमिक रेखा से एक निश्चित दूरी पर बफरिंग होगी और बफर द्वारा पूरी तरह से संलग्न नहीं होने वाली लाइनों का समाधान एक समाधान होगा? मैंने सबसे अधिक संभावित यात्रा मार्ग खोजने के लिए अतीत में इसका एक बड़ा सौदा किया है, लेकिन डेटा में सरल लाइन खंडों के बजाय बहु नोड पॉलीलाइन शामिल थे।
18

@jbgramm मैं कई दृष्टिकोण है कि कुछ परिकलित किया जाएगा के बारे में सोच सकते हैं, लेकिन मैं सांख्यिकीविद् नहीं एक हूँ और इसलिए मैं स्थापित तरीकों की तलाश में हूँ - यदि कोई अस्तित्व
UnderDark

2
एक बिंदु प्रक्रियाओं का प्रतिनिधित्व करने के लिए एक लाइन केंद्र बिंदु या कोने का उपयोग करना सांख्यिकीय रूप से मान्य दृष्टिकोण नहीं है। इसके अलावा, आप स्थानिक प्रक्रिया के प्रतिनिधित्व को भी गहराई से बदल रहे हैं। मैं कुछ प्रतिध्वनि पोस्ट करूंगा, लेकिन ईमानदारी से, एक ही मान्य दृष्टिकोण प्रदान करने वाला एकमात्र एक लाइन घनत्व का @underdark सुझाव है। एक तराजू के साथ एक तराजू के अंक के साथ मिलकर तराजू, रैखिक सुविधाओं में क्लस्टरिंग की एक डिग्री का संकेत होगा।
जेफरी इवांस

3

उदाहरण के लिए धन्यवाद।

आपने जो खोजा है, उसकी गणना करने के लिए मैंने कोई स्थापित तरीका नहीं देखा है, हालाँकि यह मेरा दृष्टिकोण होगा। यह एक क्रूर बल समाधान की तरह है।

एक न्यूनतम बाउंडिंग आयत की गणना करें, फिर इसे एक मनमाने ढंग से विस्तारित करें, लेकिन चार कोनों में से प्रत्येक पर समान बड़ी राशि।

आयत बनाने के द्रव्यमान के केंद्र का पता लगाएं, प्रत्येक रेखा के लिए आयु बिंदुओं के लिए अजीमुथल और दूरी वितरण की गणना करें, और लाइनों के अज़ीमुथों की तुलना करने के साथ-साथ अपनी सीमा आयत के कोनों का उपयोग करें।

चार किरणों में से प्रत्येक किरण के अंत तक समानता के लिए परीक्षण करें। द्रव्यमान के केंद्र से प्रत्येक किरण के अंत तक समानता के लिए परीक्षण करें।

ऐसा करके आप कोनों से छोर तक विचलन की तुलना कर सकते हैं। उदाहरण के लिए (ए) आपके पास कोनों में से दो के पास तीन लाइन क्लस्टर में से प्रत्येक के पास समानांतर रेखाएं होंगी। आपके पास द्रव्यमान के केंद्र से समांतर रेखाओं के पास भी होगा जो कि रेखाओं के दूर के छोर तक होता है।

उदाहरण (b) आपके पास कोई समानांतर रेखा नहीं होती है जब कोनों से प्रत्येक रेखा के अंत तक गणना की जाती है, लेकिन लाइनें यादृच्छिक नहीं लगती हैं, वे एक-दूसरे को मामूली विचलन के साथ ले जाती हैं।

उदाहरण (c) यादृच्छिक प्रतीत होता है

उदाहरण (d) यादृच्छिक नहीं है, यह रेडियल है।

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

ऊपर सिर्फ एक मूर्ख की राय है, और मैं शायद गलत हूं।


-1

आपके सहज वर्णन के बाद, 2 लाइनों के समानांतर होने की कसौटी क्या है?

आप मूल रूप से उन बिंदुओं पर परीक्षण शुरू कर सकते हैं या अंक समाप्त कर सकते हैं:
Sx = (start_x_line_1 - start_x_line_2),
Sy = (start_y_line_1 - start_y_line_2),
और Ex, Ey को समान करें लेकिन उनके अंतिम बिंदुओं के लिए।

इसलिए यदि sqrt (Sx² + Sy²) और sqrt (Ex² + Ey is) एक निश्चित सीमा है, तो आप इन पंक्तियों को समानांतर मान सकते हैं।

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