यह निर्धारित करते हुए कि क्या आर के उपयोग से वन गैप के भीतर के पेड़ों को काट दिया जाता है?


14

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

क्लस्टर के भीतर क्लस्टरिंग को निर्धारित करने के लिए सबसे अच्छा तरीका क्या है?

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


1
हारून, आप कहते हैं कि आपने मोरन I को चलाने की कोशिश की, क्या आप यह मापने में रुचि रखते हैं कि एक पौधे की विशेषता पड़ोसी के गुणों की तुलना कैसे करती है (यानी आप एक चिह्नित बिंदु पैटर्न के साथ काम कर रहे हैं )? शीर्षक से यह प्रतीत होता है कि आप केवल एक दूसरे के सापेक्ष पौधे के स्थान में रुचि रखते हैं न कि उनकी विशेषताओं के।
मन्नीगॉव

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

जवाबों:


7

आपके पास एक समान रैंडम फ़ील्ड नहीं है, इसलिए आपके डेटा का एक बार में विश्लेषण करने का प्रयास करने से आप समस्या में फेंकने के लिए चुने गए किसी भी आंकड़े की मान्यताओं का उल्लंघन करेंगे। यदि आपका डेटा एक चिह्नित बिंदु प्रक्रिया है (यानी, प्रत्येक पेड़ के स्थान से जुड़ा व्यास या ऊंचाई) तो यह आपके पद से स्पष्ट नहीं है। यदि यह डेटा एक चिह्नित बिंदु प्रक्रिया का प्रतिनिधित्व नहीं कर रहा है, तो मुझे पता नहीं है कि आपने मोरन-आई कैसे लागू किया। यदि डेटा केवल स्थानिक स्थानों का प्रतिनिधित्व करता है, तो मैं शून्य पर शून्य अपेक्षा को मानकीकृत करने के लिए बेसग-एल परिवर्तन के साथ रिप्ले-के का उपयोग करने की सिफारिश करूंगा। यह क्लस्टरिंग के बहु-विषयक मूल्यांकन की अनुमति देता है। यदि आपके डेटा का एक संबद्ध मूल्य है, तो आपका सबसे अच्छा विकल्प एक स्थानीय मोरन-I (LISA) है। मैं वास्तव में इसे दोनों आंकड़ों के साथ देखूंगा। आपकी पसंद चाहे जो भी हो, मान्य परिणामों का उत्पादन करने के लिए आपको प्रत्येक व्यक्तिगत साइट के माध्यम से लूप करने की आवश्यकता होगी। यहाँ कुछ उदाहरण है Ripley-K / Besag's-L के मोंटे कार्लो अनुकरण के लिए R कोड बिल्ट-इन रेडवुड सैपलिंग डेटासेट का उपयोग करके। इसे अपनी साइटों के माध्यम से लूप में संशोधित करने और प्रत्येक के लिए एक ग्राफ बनाने के लिए काफी सरल होना चाहिए।

# ADD REQUIRED PACKAGES
require(sp)
require(spatstat)
options(scipen=5)

# USE REDWOOD SAPLING DATASET
spp <- SpatialPoints(coords(redwood))

###################################################
###### START BESAG'S-L MONTE CARLO  ANALYSUS ######
###################################################
# CREATE CONVEX HULL FOR ANALYSIS WINDOW                       
W=ripras(coordinates(spp)) 

# COERCE TO spatstat ppp OBJECT
spp.ppp=as.ppp(coordinates(spp), W)                     
  plot(spp.ppp) 

# ESTIMATE BANDWIDTH
area <- area.owin(W)
lambda <- spp.ppp$n/area
 ripley <- min(diff(W$xrange), diff(W$yrange))/4
   rlarge <- sqrt(1000/(pi * lambda))
     rmax <- min(rlarge, ripley)
bw <- seq(0, rmax, by=rmax/10)  

# CALCULATE PERMUTED CROSS-K AND PLOT RESULTS       
Lenv <- envelope(spp.ppp, fun="Kest", r=bw, i="1", j="2", nsim=99, nrank=5, 
                 transform=expression(sqrt(./pi)-bw), global=TRUE)            
plot(Lenv, main="Besag's-L", xlab="Distance", ylab="L(r)", legend=F, col=c("white","black","grey","grey"), 
    lty=c(1,2,2,2), lwd=c(2,1,1,1) )
     polygon( c(Lenv$r, rev(Lenv$r)), c(Lenv$lo, rev(Lenv$hi)), col="lightgrey", border="grey")
       lines(supsmu(bw, Lenv$obs), lwd=2)
       lines(bw, Lenv$theo, lwd=1, lty=2)
         legend("topleft", c(expression(hat(L)(r)), "Simulation Envelope", "theo"), pch=c(-32,22),
                col=c("black","grey"), lty=c(1,0,2), lwd=c(2,0,2), pt.bg=c("white","grey"))

1
लेकिन आप बस अपने बिंदु पैटर्न के लिए खिड़की के रूप में उत्तल पतवार का उपयोग करके नहीं जा सकते हैं! याद रखें, खिड़की वह क्षेत्र है जिसमें पैटर्न उत्पन्न होता है जो अंक संचालित करता है। आप एक प्राथमिकता जानते हैं कि पेड़ केवल इन सेट क्षेत्रों में बढ़ते हैं, और आपको उस प्रतिबिंबित करने के लिए अपनी खिड़की सेट करनी होगी। आप अपनी क्लीयरिंग के 0.3x साइज़ के क्रम में K (r) की सीमा को बहुत छोटे से कुछ पर सेट करके इसे कम कर सकते हैं, लेकिन बढ़त प्रभाव सुधार की कमी के कारण आपको पक्षपाती परिणाम मिलेंगे। जेफरी अपने rmax को परिभाषित करने के लिए पूरे अध्ययन क्षेत्र के आकार का उपयोग कर रहा है।
स्पेसमैन

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

1
इस बारे में थोड़ा और सोचने में। आपको वास्तव में बहुभुज का उपयोग करना चाहिए जो आपकी खिड़की के रूप में प्रत्येक अंतराल का प्रतिनिधित्व करता है। यदि आप प्रायोगिक इकाई को प्रतिबिंबित करने के लिए अपनी समस्या को कम करते हैं तो CSR और K पक्षपाती होंगे क्योंकि यह क्षेत्र वास्तव में कैनेडियन विभेदक आकार को प्रतिबिंबित नहीं करता है। यह मेरे और @ Spacedman दोनों की सिफारिशों में एक मुद्दा है।
जेफरी इवांस

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

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

4

आपके पास एक खिड़की के साथ एक बिंदु पैटर्न है जो कि छोटे डिस्कनेक्ट किए गए बहुभुज क्षेत्रों की एक संख्या है।

package:spatstatजब तक आप इसे सही विंडो के साथ फीड करते हैं, तब तक आप सीएसआर के लिए किसी भी परीक्षण का उपयोग करने में सक्षम होना चाहिए । यह या तो (x, y) युग्मों के सेट हो सकते हैं जो प्रत्येक समाशोधन को परिभाषित करते हैं या अंतरिक्ष के (0,1) मानों के द्विआधारी मैट्रिक्स को कहते हैं।

पहले अपने डेटा की तरह दिखने वाली चीज़ को परिभाषित करने देता है:

set.seed(310366)
nclust <- function(x0, y0, radius, n) {
               return(runifdisc(n, radius, centre=c(x0, y0)))
             }
c = rPoissonCluster(15, 0.04, nclust, radius=0.02, n=5)
plot(c)

और हमारे क्लीयरेंस का ढोंग करने वाले वर्ग कोशिकाएं हैं जो बस यही होती हैं:

m = matrix(0,20,20)
m[1+20*cbind(c$x,c$y)]=1
imask = owin(c(0,1),c(0,1),mask = t(m)==1 )
pp1 = ppp(x=c$x,y=c$y,window=imask)
plot(pp1)

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

plot(Kest(pp1,r=seq(0,.02,len=20)))

यदि हम एक ही कोशिकाओं में कुछ CSR अंक उत्पन्न करते हैं, तो हम K-function भूखंडों की तुलना कर सकते हैं। यह सीएसआर की तरह अधिक होना चाहिए:

ppSim = rpoispp(73/(24/400),win=imask)
plot(ppSim)
plot(Kest(ppSim,r=seq(0,.02,len=20)))

पैची खिड़कियों में दो बिंदु पैटर्न

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


2

एंडी के पद के अलावा:

आप जो गणना करना चाहते हैं, वह स्थानिक समरूपता का एक पैमाना है (परिकल्पना को समाप्त करें: "क्या आपके क्लस्टर्ड हैं?") जैसे कि रिप्ले के एल और के फ़ंक्शन

इस ब्लॉग पोस्ट में बताया गया है कि कैसे-कैसे आर बहुत अच्छी तरह से। वर्णित कोड के आधार पर, मैं पहले आपके डेटासेट में प्रत्येक क्लस्टर को लेबल करूँगा और फिर Rley's K के माध्यम से प्रत्येक क्लस्टर के लिए महत्वपूर्ण लिफाफे के लिए एक लूप में गणना करूंगा।


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