2011-11-08 7 views
37

मैं और लहरिल ऑपरेटर के उपयोग के आसपास मेरे सिर प्राप्त करने के लिए कोशिश कर रहा हूँ, इनसे संबंधित कार्यों । मेरा पहला सवाल यह है कि अंकगणितीय ऑपरेटरों को निर्दिष्ट करने के लिए I() का उपयोग क्यों किया जाना चाहिए? उदाहरण के लिए, इन 2 भूखंडों अलग परिणाम उत्पन्न (पूर्व एक सीधी रेखा है, और बाद उम्मीद की अवस्था)आर सूत्रों में, क्यों ~ मैं y की तरह, बिजली शर्तों पर मैं() फ़ंक्शन का उपयोग करने की क्या ज़रूरत है मैं (x^3)

x <- c(1:100) 
y <- seq(0.1,10,0.1) 

plot(y~x^3) 
plot(y~I(x^3)) 

आगे है, तो निम्न भूखंडों के दोनों भी अपेक्षित परिणाम

plot(x^3, y) 
plot(I(x^3), y) 

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

+8

इस प्रश्न का कोई भी उत्कृष्ट उत्तर 'फॉर्मूला' में मौजूद चीज़ों पर भारी आकर्षित करेगा। – joran

+0

डुप्लिकेट; हमें इनमें से एक को बंद करना चाहिए और अन्य कैनोलिक बनाना चाहिए: [आर रैखिक प्रतिगमन सूत्र में पूंजी अक्षर "मैं" का क्या अर्थ है?] (http://stackoverflow.com/questions/24192428/capital-letter-i-in- आर-रैखिक-प्रतिगमन) – smci

उत्तर

38

यहां मुद्दा यह है कि सूत्रों का अर्थ कैसे समझा जाता है। एक सूत्र में टिल्ड बाएं हाथ की ओर दाएं हाथ से अलग करता है। सूत्रों में ^ ऑपरेटर बातचीत के निर्माण के लिए है ताकि x = x^2 = x^3 बल्कि शायद उम्मीद गणितीय शक्ति से। कि आप लिखकर (x+y)^2 आर दुभाषिया का उत्पादन होता है (अपने अच्छे आंतरिक उपयोग के लिए), एक गणितीय नहीं: x^2 +2xy +y^2, बल्कि एक प्रतीकात्मक: x + y +x:y जहां x:y एक बातचीत शब्द है।

?formula 

I() समारोह में कार्य करता है तर्क "as.is", यानी आप क्या उम्मीद करने के लिए कन्वर्ट करने के लिए। तो मैं (x^2) दूसरी शक्ति में उठाए गए मूल्यों का एक वेक्टर वापस कर दूंगा।

~ को अवसाद कार्यों में देखा जाने पर "जैसा वितरित किया गया है" या "निर्भर है" कहने के बारे में सोचा जाना चाहिए। यह मॉडल विवरणों में एक त्रुटि शब्द का तात्पर्य है जिसे आम तौर पर "(इंटरसेप्ट)" लेबल किया जाएगा और फ़ंक्शन संदर्भ और तर्क भी लॉग() या लॉगिट() जैसे लिंक फ़ंक्शन को निर्धारित कर सकते हैं।

साजिश में() - टिंग यह मूल रूप से तर्क के सामान्य (x, y) आदेश है कि भूखंड समारोह आमतौर पर ले जाता है पराजयों कार्य करता है। वहाँ एक plot.formula विधि लिखा ताकि सूत्रों आर के साथ संवाद स्थापित graphics::plot.formula, curve में की एक और अधिक "गणितीय" मोड, और 'जाली' और 'ggplot' कार्यों के रूप में इस्तेमाल किया जा सकता था, यह नियंत्रित करता है कि कैसे कई कारकों या संख्यात्मक वैक्टर प्रदर्शित होते हैं और "पहलू"।

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

"+" ऑपरेटर के ओवरलोडिंग पर टिप्पणियों में चर्चा की गई है और साजिश पैकेज में भी किया जाता है: ggplot2 और gridExtra यह ऑब्जेक्ट परिणाम देने वाले कार्यों को अलग करता है, इसलिए यह कार्य करता है और पास-थ्रू के रूप में कार्य करता है और लेयरिंग ऑपरेटर। समेकन फ़ंक्शंस जिनमें फॉर्मूला विधि है "+" को "व्यवस्था" और समूहकरण ऑपरेटर के रूप में उपयोग करती है।

+0

मैंने पहले ही 'फॉर्मूला' पढ़ा था (हालांकि यह मेरे प्रश्न से स्पष्ट नहीं था); मॉडल फॉर्मूलेशन में ऑपरेटरों की अवधारणा मुझे क्या उलझन में डालती है।उदाहरण के लिए, मैं पूरी तरह से खो गया हूं कि कैसे '+' प्रतीक का मतलब दो मूल्यों को जोड़ने के अलावा कुछ और हो सकता है – ChrisW

+2

एक रिग्रेशन फ़ंक्शन के भीतर एक सूत्र में आप निहित (अनुमानित) गुणांक के एक सेट को वापस करने के लिए कह रहे हैं (आम तौर पर "+" से जुड़े प्रत्येक शब्द द्वारा गुणा किया जाता है। –

+3

@ChrisW '+' ऑपरेटर को सूत्र के संदर्भ में अधिभारित किया गया है। यह सूत्र विनिर्देशों के लिए एक अधिक सहज महसूस करने के लिए किया जाता है। अन्यथा रिग्रेशन कॉल 'एलएम (फॉर्मूला = फॉर्मूला (y.var, x.var1, x.var2)) जैसा दिखेंगे, जो समझने में कम आसान है। –

संबंधित मुद्दे