2013-02-25 48 views
6

आर पैकेज में spatstat (मैं वर्तमान संस्करण, 1.31-0 का उपयोग कर रहा हूं), एक विकल्प use.gam है। जब आप इसे सत्य पर सेट करते हैं, तो आप रैखिक भविष्यवाणी में चिकनी शर्तों को शामिल कर सकते हैं, वैसे ही आप आर पैकेज mgcv के साथ करते हैं। उदाहरण के लिए,आर पैकेज "spatstat": po.gon = TRUE जब एक poisson प्रक्रिया मॉडल (फ़ंक्शन: पीपीएम) में गैर-चिकनी शर्तों के लिए आपको मानक त्रुटियां कैसे मिलती हैं?

g <- ppm(nztrees, ~1+s(x,y), use.gam=TRUE) 

अब, अगर मैं अवरोधन के लिए एक विश्वास अंतराल चाहते हैं, तो आप आमतौर पर summary या vcov उपयोग कर सकते हैं, जो काम करता है आप gam का उपयोग नहीं करते जब लेकिन विफल रहता है आप का उपयोग गम

vcov(g) 
करते हैं जब

जो त्रुटि संदेश

Error in model.frame.default(formula = fmla, data = 
    list(.mpl.W = c(7.09716796875, :invalid type (list) for variable 's(x, y)' 

मैं वाकिफ हूँ देता है कि इस मानक त्रुटि सन्निकटन यहाँ उचित क नहीं है एन आप gam उपयोग करें, लेकिन यह चेतावनी संदेश द्वारा कब्जा कर लिया गया है: - मैं उद्देश्य मैं उन्हें उपयोग कर रहा हूँ के लिए इन मानक त्रुटियों के उपयोग का औचित्य साबित करने के लिए तैयार कर रहा हूँ

In addition: Warning message: model was fitted by gam(); 
      asymptotic variance calculation ignores this 

मैं इस बारे में चिंतित नहीं हूँ - मुझे सिर्फ संख्याएं चाहिए और ऐसा करने के लिए "लेखन-मेरा-खुद" से बचना चाहूंगा।

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

क्या किसी के पास इस बारे में कोई सुझाव या अंतर्दृष्टि है? क्या यह एक बग है? मेरे आश्चर्य के लिए, मैं इस ऑनलाइन के बारे में कोई चर्चा नहीं ढूंढ पाया। किसी भी मदद या संकेत की सराहना की जाती है।

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

+0

मुझे एक ही त्रुटि संदेश मिलता है अगर मैं स्क्रीन पर जी को मुद्रित करने का प्रयास करता हूं। ऐसा लगता है कि मॉडल.फ्रेम फ़ंक्शन को कॉल करते समय समस्या होती है। सरल डीबगिंग के साथ त्रुटि डेटा डेटा में होती है <- आंतरिक (model.frame (सूत्र, rownames, चर, varnames, extras, extranames, subset, na.action)) –

+0

हाय @ हेमो, मैं इसे देख सकता हूं। लेकिन, मॉडल का अनुमान लगाया गया है (उदा। 'कोफ (जी) 'काम करता है) और आप भविष्यवाणी मूल्यों आदि को साजिश कर सकते हैं (हालांकि, जब आप भविष्यवाणियों के लिए मानक त्रुटियां प्राप्त करने का प्रयास करते हैं, तो आप इस त्रुटि पर वापस आ जाते हैं)। कोई सुझाव? – Macro

+0

पीपीएम और mpl.engine के कोड को तुरंत देखकर, मैं कहूंगा कि पीपीएम और इसके उपखंड मॉडल.फ्रेम दृष्टिकोण का उपयोग नहीं करते हैं। यह आउटपुट (जी $ आंतरिक) में फॉर्मूला और डेटा बचाता है, लेकिन डिफ़ॉल्ट फॉर्मूला पार्सिंग/model.frame.default सूची एस (x, y) को संभाल नहीं सकता है क्योंकि डेटा फ्रेम में ऐसी कोई चीज़ नहीं है। मेरा अनुमान है कि यह एक बग है, और आपको इसे पैकेज लेखक से पूछना चाहिए। आप पैकेज के पुराने संस्करण के साथ इसका परीक्षण भी कर सकते हैं और देख सकते हैं कि आपको एक ही त्रुटि मिलती है या नहीं। –

उत्तर

4

मैंने इस बारे में पैकेज लेखकों में से एक एड्रियन Baddeley से संपर्क किया है।उन्होंने तुरंत जवाब दिया और मुझे बताया कि यह वास्तव में सॉफ्टवेयर के साथ एक बग है और जाहिर है, मैं इसे सामना करने वाला पहला व्यक्ति हूं। सौभाग्य से, इस मुद्दे को ट्रैक करने और इसे सही करने के लिए उसे केवल थोडा समय लगा। फिक्सस्टैट, 1.31-1 की अगली रिलीज में फिक्स शामिल किया जाएगा।

संपादित करें:spatstat के अद्यतन संस्करण जारी किया गया है और इस बग अब और नहीं है:

g <- ppm(nztrees, ~1+s(x,y), use.gam=TRUE) 
sqrt(vcov(g)[1,1]) 
[1] 0.1150982 
Warning message: 
model was fitted by gam(); asymptotic variance calculation ignores this 

अन्य रिलीज नोट्स के लिए the spatstat website देखें। इस धागे में पढ़ने और भाग लेने वाले सभी लोगों के लिए धन्यवाद!

1

मुझे यकीन नहीं है कि आप इस तरह के रुझान को निर्दिष्ट कर सकते हैं जो संभवतः त्रुटि उत्पन्न कर रहा है। यह सुनिश्चित करने के लिए प्रतीत नहीं होता भावना according to the documentation:

The default formula, ~1, indicates the model is stationary and no trend is to be fitted.

लेकिन बजाय तुम इतनी तरह मॉडल निर्दिष्ट कर सकते हैं:

g <- ppm(nztrees, ~x+y, use.gam=TRUE) 
#Then to extract the coefficientss: 
>coef(g) 
(Intercept)    x    y 
-5.0346019490 0.0013582470 -0.0006416421 
#And calculate their se: 
vc <- vcov(g) 
se <- sqrt(diag(vc)) 
> se 
(Intercept)   x   y 
0.264854030 0.002244702 0.003609366 

क्या यह मेकअप भावना/अपेक्षित परिणाम? मुझे पता है कि पैकेज लेखक r-sig-geo मेलिंग lsit पर बहुत सक्रिय हैं क्योंकि उन्होंने अतीत में मेरी मदद की है। आप अपने प्रश्न को उस मेलिंग सूची में भी पोस्ट करना चाहते हैं, लेकिन जब आप ऐसा करते हैं तो आपको यहां अपने प्रश्न का संदर्भ देना चाहिए।

+0

हाय @ सिमॉन, आपके ध्यान के लिए धन्यवाद। एक गैर-पैरामीट्रिक चिकनी फ़ंक्शन (अनुमानित अनुमानित) द्वारा 'x, y' के प्रभाव को निर्दिष्ट करने के लिए' x, y) '' gam' वाक्यविन्यास है। [गैम दस्तावेज़] देखें (http://127.0.0.1:31246/library/mgcv/html/gam.html)। ध्यान दें कि जब आप अपना कोड चलाते हैं तो मॉडल * को एक कार्यात्मक पैरामीटर के रूप में अनुमानित किया जाता है (उदाहरण के लिए भविष्यवाणी की गई सतह - प्लॉट (भविष्यवाणी (जी)) '), लेकिन ऐसा लगता है कि 'गेम' वाला लिंक अधूरा है, क्योंकि एसईएस गैर-चिकनी शर्तों के लिए उपलब्ध नहीं हैं। आपके द्वारा फिट किया गया मॉडल 'x' और 'y' में एक सामान्य लॉग-रैखिक है और मुझे उन मानक त्रुटियों को प्राप्त करने में सफलता मिली है, आदि – Macro

+0

@ मैक्रो आह मुझे अधिक ध्यान देना चाहिए था। मैं यह देखने के लिए आगे देखूंगा कि क्या मैं मदद कर सकता हूं, लेकिन मैं दृढ़ता से आर-सिग-जिओ को पोस्ट करने की सलाह देता हूं, और मैं दृढ़ता से [पोस्टिंग गाइड] पढ़ने के लिए सलाह देता हूं (http://www.r-project.org/ पोस्टिंग-गाइड.html) पहले। मुझे एक खराब गठित प्रश्न के लिए पहले मेलिंग सूची के लिए तैयार किया गया है! –

+0

गैर-स्थानीय [गेम दस्तावेज] (http://finzi.psych.upenn.edu/R/library/mgcv/html/gam.html) इसके बाद किसी और के लिए –