statistics - Root mean square deviation on binned GAM results using R -


पृष्ठभूमि

एक PostgreSQL डेटाबेस आर कार्यों को कॉल करने के लिए PL / R का उपयोग करता है । स्पेमैन के सहसंबंध की गणना करने के लिए एक आर कॉल निम्न प्रकार से दिखता है:

  cor (रैंक (x), रैंक (y))  

इसके अलावा आर में, एक भोले एक सज्जित सामान्यीकृत योजक मॉडल (जीएएम) की गणना:

  डेटा.फ्रेम (एक्स, फिट (gam (y ~ s (x))))  

यहां <कोड> एक्स 1 9 00 से 200 9 तक का साल दर्शाता है और उस वर्ष के लिए y औसत माप (जैसे, न्यूनतम तापमान) है।

समस्या

फिट ट्रेन्ड लाइन (जीएएम का उपयोग करना) काफी सटीक है, क्योंकि आप निम्न चित्र में देख सकते हैं:

समस्या यह है कि सहसंबंध (निचले बाएं में दिखाए गए हैं) सही रूप से प्रतिबिंबित नहीं करते कि मॉडल कितनी बारीकी से डेटा में फिट होता है।

संभावित समाधान

सहसंबंध की सटीकता को सुधारने का एक तरीका बिनूडा डेटा पर रूट अर्थ स्क्वायर एरर (आरएमएसई) गणना का उपयोग करना है।

प्रश्न

Q.1। आप कैसे नकल करेंगे

Q.2। वहाँ है, जीएम के माप के लिए फिट के एक संबंध (0 और 1 के बीच) पाने के लिए binned डेटा पर RMSE गणना ment? डेटा के लिए जीएएम के सही होने की सटीकता का पता लगाने का एक बेहतर तरीका है, और यदि हां, तो यह क्या है (उदाहरण के लिए, रूट का मतलब वर्ग विचलन)?

समाधान 1 का प्रयास किया

  1. मनाया मात्रा और मॉडल (जीएएम) मात्रा का उपयोग करके पीएल / आर फ़ंक्शन को कॉल करें:
      correlation_rmse: = जलवायु। >  
  2. plr_corr_rmse को परिभाषित करें (जहां o और m मनाया गया और मॉडल किए गए डेटा का प्रतिनिधित्व करते हैं):
     < कोड> बनाएँ या बदलें फ़ंक्शन Climate.plr_corr_rmse (ओ डबल सटीक [], मी डबल परिशुद्धता []) दोहरे सटीक के रूप में $ शरीर $ sqrt (मतलब (ओ - मी) ^ 2) $ शरीर $ $ 'PLR' स्वस्थ कठोर लागत रिटर्न 100;  

o - m गलत है मैं हर 5 डेटा पॉइंट के mean की गणना करके दोनों डेटा सेटों को बन्द करना चाहता हूं (अधिकतम 110 डेटा बिंदु होंगे)। उदाहरण के लिए:

  omean & lt; - c (मतलब (ओ [1: 5]), मतलब (ओ [6:10]), ...) mmean & lt; - c (मतलब (एम [1: 5]), मतलब (मी [6:10]), ...)  

फिर आरएमएसई गणना को ठीक करें:

  एसक्यूआरटी (मतलब (ओमान - एमएमएएन) ^ 2)  

आप कैसे गणना करते हैं c (मतलब (ओ [1: 5]), मतलब (ओ [6:10] ), ...) एक उपयुक्त लंबाई के लिए एक उचित संख्या में वेक्टर (5, उदाहरण के लिए, केवल 67 माप के लिए आदर्श नहीं हो सकता है)?

मुझे नहीं लगता है < कोड> हिस्ट यहां उपयुक्त है, है ना?

समाधान 2 का प्रयास किया

निम्न कोड समस्या का समाधान करेगा, हालांकि यह डेटा सूची के अंत से अंक (5 से विभाज्य सूची बनाने के लिए) समाधान आदर्श नहीं है क्योंकि संख्या "5" बल्कि जादुई है।

  जबकि (लंबाई (ओ) %% 5! = 0) {o & lt; - o [-length (o  

अग्रिम धन्यवाद।

P>

आप कहते हैं कि:

समस्या यह है कि सहसंबंध (में दिखाया गया है नीचे बचे हुए) सटीक रूप से प्रतिबिंबित नहीं करते कि मॉडल कितनी बारीकी से डेटा को फिट बैठता है।

आप फिट मानों और मापा मानों के बीच के संबंध की गणना कर सकते हैं:

  Cor (y, फिट (gam (y ~ s (x))))  

मुझे नहीं पता कि आप अपने डेटा को बंटाने क्यों चाहते हैं, लेकिन आप इसे निम्नानुसार कर सकते हैं:

  mean.binned & lt; - function (y, n = 5) {apply (मैट्रिक्स (c (y, प्रतिनिधि (एनए, (n - (लंबाई (y) %% n)) %% n)), n), 2, फ़ंक्शन (x) माध्य (x, na.rm = TRUE))}  

यह थोड़ा बदसूरत दिखता है, लेकिन इसे वैक्टर को नियंत्रित करना चाहिए जिसका लंबाई एक बहु ओ नहीं है च की बिनिंग की लंबाई (यानी आपके उदाहरण में 5)।

आप यह भी कहते हैं कि:

परस्पर संबंध की सटीकता को सुधारने का एक तरीका है रूट अर्थ स्क्वायर एरर (आरएमएसई) पर गणना Binned डेटा।

मुझे समझ में नहीं आ रहा है कि आप इसका मतलब क्या है। मतलब चुकता त्रुटि का निर्धारण करने में सहसंबंध एक कारक है - उदाहरण के लिए, समीकरण 10 को देखें। लेकिन कृपया समझें कि आप क्या कह रहे हैं।


Comments