2012-10-10 21 views
10

मैं यह समझने का प्रयास कर रहा हूं कि predict.loess फ़ंक्शन x पर नए अनुमानित मानों (y_hat) की गणना करने में सक्षम है जो मूल डेटा में मौजूद नहीं है। उदाहरण के लिए (यह एक सरल उदाहरण है और मुझे पता है लेस स्पष्ट रूप से इस तरह के एक उदाहरण के लिए की जरूरत नहीं है, लेकिन यह बिंदु दिखाता है): प्रत्येक x पर बहुआयामी पद का उपयोग करकेनए x मानों के साथ पूर्वानुमान की भविष्यवाणी

x <- 1:10 
y <- x^2 
mdl <- loess(y ~ x) 
predict(mdl, 1.5) 
[1] 2.25 

loess प्रतिगमन काम करता है और इस प्रकार यह एक बनाता है प्रत्येक y पर y_hat की भविष्यवाणी की गई। हालांकि, क्योंकि कोई गुणांक संग्रहित नहीं किया जा रहा है, इस मामले में "मॉडल" केवल y_hat की भविष्यवाणी करने के लिए उपयोग किए जाने वाले विवरण का विवरण है, उदाहरण के लिए, span या degree। जब मैं predict(mdl, 1.5) करता हूं, तो predict इस नए x पर कोई मूल्य उत्पन्न करने में सक्षम कैसे है? क्या यह दो निकटतम मौजूदा x मूल्यों और उनके संबंधित y_hat के बीच अंतर कर रहा है? यदि हां, तो यह कैसे कर रहा है इसके पीछे विवरण क्या हैं?

मैंने cloess दस्तावेज़ीकरण ऑनलाइन पढ़ा है लेकिन यह कहने में असमर्थ है कि यह कहां चर्चा करता है।

+0

इंटरपोलेशन, एक्सट्रापोलेशन, या दोनों? मुझे लगता है कि आप केवल इंटरपोलेशन का मतलब है। – smci

उत्तर

5

हालांकि, वहाँ रहे हैं, क्योंकि कोई गुणांक संग्रहीत किया जा रहा, "मॉडल" इस मामले में बस क्या y_hat

हो सकता है कि प्रत्येक भविष्यवाणी करने के लिए इस्तेमाल किया गया था का ब्यौरा है आप print(mdl) आदेश या बस mdl का इस्तेमाल किया है यह देखने के लिए कि मॉडल mdl में क्या है, लेकिन ऐसा नहीं है। मॉडल वास्तव में जटिल है और बड़ी संख्या में पैरामीटर स्टोर करता है।

यह जानने के लिए कि अंदर क्या है, आप unlist(mdl) का उपयोग कर सकते हैं और इसमें पैरामीटर की बड़ी सूची देख सकते हैं।

फिटिंग स्थानीय स्तर पर किया जाता है:

यह बताया कि कैसे यह वास्तव में काम करता है आदेश के मैनुअल का एक हिस्सा है। यही है, बिंदु एक्स पर फिट के लिए, एक्स एक्स के पड़ोस में बिंदुओं का उपयोग करके फिट किया जाता है, जो एक्स से उनकी दूरी से भारित होता है (दूरी की गणना करते समय 'पैरामीट्रिक' चरों में अंतर के साथ अनदेखा किया जाता है)। पड़ोस का आकार α (span या enp.target द्वारा सेट) द्वारा नियंत्रित किया जाता है। Α < 1 के लिए, पड़ोस में अंक के अनुपात α शामिल हैं, और इनमें त्रिभुज भार (आनुपातिक (1 - (dist/maxdist)^3)^3) है। Α> 1 के लिए, सभी बिंदुओं का उपयोग किया जाता है, 'अधिकतम दूरी' के साथ α^(1/पी) बार पी व्याख्यात्मक चर के लिए वास्तविक अधिकतम दूरी माना जाता है।

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

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

फिर दिया गया एक्स 'जिसके लिए ऊंचाई की भविष्यवाणी की जानी चाहिए, एक्स को इंगित करने के लिए निकटतम है, मैंने पॉइंट एक्स के पड़ोस पर लगाए गए बहुपद का उपयोग करने की कोशिश की - पी (एक्स) कहें - और इसे एक्स' पी (एक्स ') कहें - और यह भविष्यवाणी होगी।

मुझे बताएं कि क्या आप कुछ विशेष खोज रहे हैं।

+1

आपके उत्तर के लिए धन्यवाद। हालांकि, मेरे प्रश्न में बहुपद प्रतिगमन के पीछे तर्क/गणित का वर्णन किया गया है। मैं समझने की कोशिश कर रहा हूं कि कोई मध्यवर्ती बिंदुओं की गणना कैसे करता है। यह किसी प्रकार के इंटरपोलेशन के माध्यम से होना चाहिए? – Alex

+0

मैंने उत्तर – Ali

+1

अपडेट किया है धन्यवाद, हां, यह वही है जो मैं इस प्रश्न में वर्णन करता हूं। कृपया ध्यान दें: "बिंदु एक्स पर फिट, फिट एक्स के पड़ोस में बिंदुओं का उपयोग करके किया जाता है"। सवाल यह है: x_1 और x_2 के बीच क्या होता है .. उदाहरण के लिए, x_1 + epsilon जो डेटा-सेट – Alex

2

पुस्तिका के पृष्ठ 42 पर मिला जवाब:

In this algorithm a set of points typically small in number is selected for direct  
computation using the loess fitting method and a surface is evaluated using an interpolation 
method that is based on blending functions. The space of the factors is divided into 
rectangular cells using an algorithm based on k-d trees. The loess fit is evaluated at 
the cell vertices and then blending functions do the interpolation. The output data 
structure stores the k-d trees and the fits at the vertices. This information 
is used by predict() to carry out the interpolation. 
+0

कौन सा मैनुअल? मैं जवाब ढूंढने का प्रयास कर रहा हूं मैं और मिश्रण कार्यों को देखना चाहता हूं। –

+0

मुझे लगता है कि आप इस दस्तावेज़ को उद्धृत कर रहे हैं: http://www.netlib.org/a/cloess.pdf जो विलियम एस क्लीवलैंड द्वारा एक पेपर या रिपोर्ट के लिए एक परिशिष्ट प्रतीत होता है , एरिक ग्रोस, और मिंग-जेन श्याउ। हालांकि मैं उद्धरण के बारे में निश्चित नहीं हूं क्योंकि मैंने मुख्य दस्तावेज़, बस परिशिष्ट नहीं पाया है। –

5

बेहतर समझने के लिए क्या TeachingDemos पैकेज से loess.demo समारोह चल रहा है एक लेस फिट कोशिश में हो रहा है। यह आपको साजिश (बिंदुओं के बीच भी) पर इंटरैक्टिव रूप से क्लिक करने देता है और फिर यह बिंदुओं के सेट और भविष्य में उपयोग किए जाने वाले वजन और उस बिंदु के लिए अनुमानित रेखा/वक्र दिखाता है।

यह भी ध्यान दें कि loess के लिए डिफ़ॉल्ट भी लस फिट पर दूसरा चिकनाई/इंटरपोलेट करना है, इसलिए आप फिट ऑब्जेक्ट में जो देखते हैं वह संभवतः सही नींद फिटिंग जानकारी नहीं है, बल्कि द्वितीयक चिकनाई है।