Friday, 16 February 2018

गणना से आगे बढ़ - औसत - इन - sas


इस पोस्ट में, मैं औसत गणना हिलना करने के लिए एक चाल दिखाता हूं (जो अन्य कार्यों के लिए विस्तारित किया जा सकता है, जो विंडोिंग फ़ंक्शन की आवश्यकता होती है) जो कि सुपर फास्ट है प्रायः, एसएएस विश्लेषकों को औसत गणना चलाना पड़ता है और वरीयता के क्रम में कई विकल्प हैं: 1. प्रोसी एक्सपैंड 2. डाटा स्टेप 3. प्रोक एसक्यूएल (SQL), लेकिन कई साइटें प्रोसेक्स का उपयोग करने के लिए एसएटीटीएस को लाइसेंस नहीं दे सकती हैं STEP को कुछ कोडिंग की आवश्यकता होती है और त्रुटि प्रवण होती है। प्रोक एसक्यूएल जूनियर प्रोग्रामर्स के लिए एक स्वाभाविक विकल्प है और कई व्यावसायिक मामलों में एकमात्र समाधान है, लेकिन एसएएस के प्रोक एसक्यूएल में विंडोिंग फ़ंक्शन का अभाव है, जो औसत गणना को आगे बढ़ने के लिए कई डीबी में उपलब्ध हैं। आमतौर पर एक तकनीक जो लोग इस्तेमाल करते हैं वह पार है, जो बहुत महंगा है और यहां तक ​​कि मध्यम आकार के डेटा सेट के लिए एक व्यवहार्य समाधान नहीं है। इस पोस्ट में, मैं औसत गणना हिलना करने के लिए एक चाल दिखाता हूँ (जो दूसरे कार्यों के लिए विस्तारित किया जा सकता है, जो विंडिंग फ़ंक्शन की आवश्यकता होती है) जो कि सुपर फास्ट है सबसे सरल चलती औसत गणना पर विचार करें जहां पिछली कश्मीर टिप्पणियों को गणना में शामिल किया गया है, अर्थात् एमए (के), यहां हम के 5 सेट करते हैं। हम पहले 20 एब् नमूना डेटा जेनरेट करते हैं, जहां वेरिएबल आईडी का उपयोग विंडोिंग के लिए किया जाता है और एमए गणना में वैरिएबल एक्स का उपयोग किया जाता है, और फिर हम मानक क्रॉस को लागू करते हैं, पहले परिणामस्वरूप डेटा, गैर-समूहीकृत, की जांच करें डेटा संरचना का लाभ उठाने के तरीके को समझने के लिए परिणामस्वरूप डेटा सेट से, एक सुराग मिलना कठिन है, अब इस डेटा सेट में उद्धरण स्तंभ द्वारा क्रमबद्ध करें: इस सॉर्ट किए गए डेटा से, यह स्पष्ट है कि हम वास्तव में पूरे मूल डेटा सेट को क्रॉस में शामिल नहीं करते हैं, बल्कि इसके बजाय, हम एक क्वाइट्रोवरक्वाइट डेटा सेट उत्पन्न कर सकते हैं जिसमें अंतर का मान होता है, और मूल डेटा सेट को सीआरओएसएस को इस छोटे से छोटे क्वाटेशनक्वाट डेटा सेट के साथ जुड़ने दें, और हमें एमए गणना के लिए उपयोग करने वाले सभी डेटा को वहां मौजूद होगा। अब चलो यह करते हैं: CROSS quotectionquot डेटा के साथ मूल डेटा में शामिल हों, क्रमबद्ध (ए. आई. डी.ओप्स), जो वास्तव में सॉर्ट किए गए डेटा सेट में उद्धृत होता है ध्यान दें कि उपरोक्त कोड में, बी.वेट द्वारा कुल्हाड़ा गुणा करना आवश्यक है ताकि डेटा अंतर-छोड़ा जा सकता है, अन्यथा मूल तालिका से समान एक्स मान आउटपुट होगा और एमए गणना विफल रहेगी। स्पष्ट वजन परिवर्तक वास्तव में पूरे एमए गणना में अधिक लचीलेपन में जोड़ता है। एक सामान्य एमए गणना के परिणामस्वरूप, सभी सामान्य परिणामों के लिए इसे 1 के रूप में सेट करते हुए, अलग-अलग वजन प्रदान करने से अधिक जटिल एमए कंप्यूटिंग को हल करने में मदद मिलेगी, जैसे कि आगे की टिप्पणियों को क्षययुक्त एमए के लिए कम वजन देना। यदि एमए (के) गणना में अलग-अलग पैरामीटर की आवश्यकता है, तो केवल ऑपरेशन डेटा सेट को अपडेट करने की आवश्यकता है जो तुच्छ नौकरी है। अब एमए (के) गणना के लिए वास्तविक कोड टेम्पलेट होगा: इस नई विधि के साथ, यह महंगी स्वयं क्रॉस जॉइन के साथ-साथ प्रोसी एक्सपेंड के साथ तुलना करने के लिए दिलचस्प है। मेरे वर्कस्टेशन (इंटेल i5 3.8 गीगा, 32 जीबी मेमोरी, 1 टीबी 72 के एचडीडी) पर, स्वयं क्रॉस जॉइन लंबे समय से चलने में लंबे समय से है (यदि डेटा बड़ा है) जबकि नई विधि प्रोसी एक्सपेंड के रूप में ज्यादा समय के लिए केवल 2 एक्स का उपयोग करती है, दोनों समय खपत तुलसी आत्म क्रॉस से जुड़ें नीचे दिखाए गए समय की खपत वास्तव में है नीचे कोड पाठक चला सकते हैं और स्वयं की तुलना कर सकते हैं। 10 मई 2015 को लिआंग झी ने एसएएस प्रोग्रामिंग के लिए डेटा माइनिंग में मेरी समस्या को स्पष्ट करने में मदद करने के लिए एक स्क्रीनशॉट शामिल किया था: मैं किसी प्रकार की चलती औसत की गणना करने और मानक विचलन के चलने की कोशिश कर रहा हूं। बात मैं वास्तविक मूल्य के लिए भिन्नता (stdevavg) के गुणांक की गणना करना चाहता हूं। आम तौर पर यह पिछले 5 वर्षों से stdev और औसत की गणना के द्वारा किया जाता है। हालांकि कभी-कभी मेरे डेटाबेस में अवलोकन होगा, जिसके लिए मेरे पास पिछले 5 वर्षों की जानकारी नहीं है (शायद केवल 3, 2 आदि) यही वजह है कि मुझे एक ऐसा कोड चाहिए जो औसत और एसटीडीई की गणना करेगा, भले ही पूरे 5 सालों के लिए कोई जानकारी न हो। इसके अलावा, जैसा कि आप टिप्पणियों में देखते हैं, कभी-कभी मुझे 5 साल से अधिक समय की जानकारी होती है, जब ऐसा होता है तो मुझे किसी प्रकार की औसत चलती है जो मुझे पिछले 5 वर्षों से औसत और स्टेडीवी की गणना करने की अनुमति देता है। इसलिए अगर किसी कंपनी की 7 साल की जानकारी है तो मुझे किसी प्रकार का कोड चाहिए जो कि औसत और एसटीडीवी की गणना करेगा, कहता है, 1 99 7 (1 99 1 से 1 99 6 तक), 1 99 8 (1 99 1 से 1 99 7 तक) और 1 999 (1993-1998) जैसा कि एसएएस कमांड से बहुत ही परिचित नहीं है, यह देखना चाहिए (बहुत बहुत मोटे तौर पर) जैसे: या ऐसा कुछ, मुझे कोई सुराग नहीं है, मैं कोशिश करूँगा और इसे समझूंगा, लेकिन इसे पोस्ट करने के लायक अगर मैं इसे स्वयं नहीं खोजूँगा। तिथि सीमा के साथ तिथि सीमा के साथ औसत चलती औसत के साथ दिनांक सीमा के साथ औसत चल रहा है I एसएएस के लिए नया है, और मुझे डेटासेट के भीतर दिनांक और समूह के आधार पर चलती औसत की गणना के साथ कुछ समस्याएं आ रही हैं I असल में, मैं पिछले 90 दिनों के आधार पर प्रत्येक अवलोकन के चलते औसत की गणना करने की कोशिश कर रहा हूं। प्रत्येक अवलोकन की तिथि है मुझे उनको समूह बनाने की भी आवश्यकता है ताकि चलती औसत केवल समूह पर आधारित हो। दूसरे शब्दों में, अगर मैं इसे फलों से समूहीकृत कर रहा था, तो सेब की ही चलती औसत और इरोज़ों आदि होगी। मुझे पता है कि मुझे डाटासेट को पहले सॉर्ट करना होगा, फिर एक बयान जारी रखें। मैं वास्तव में एक मैक्रो भी करने की सोच रहा था मैंने इसे शुरू किया, लेकिन काम करने के लिए इसका कोई भी हिस्सा नहीं मिल सकता है। कोई मुझे मदद कर सकता है मुझे पता है कि सॉर्टिंग कैसे करना है, लेकिन मुझे यह भी पता है कि कैसे औसत प्राप्त करना है, लेकिन इसकी सही ढंग से समूहबद्ध नहीं है यह केवल मुझे अवलोकन के मूल्य दे रहा है फिर मैंने इसे एसक्यूएल के साथ करने की कोशिश की, लेकिन यह काम नहीं कर रहा था। मैंने ये ढूंढ निकाला। proc sql तालिका डेटा को बनाने के लिए। movingavg का चयन करें।, मतलब (आधार) xx से आगे बढ़ने के रूप में जहां दिनांकित उत्पाद द्वारा दिनांकित समूह: तिथि सीमा के साथ औसत चलने वाला यह या तो काम करता है। आईडी डेट के आधार पर डेटा सेट नया है, यदि date90 है तो औसत औसत (आधार) आरई: चलती औसत दिनांक सीमा के साथ यहां मेरे डेटासेट का एक उदाहरण है I उत्पाद की तारीख के आधार सेब मई 20 4 नारंगी मार्च 2 3 सेब अप्रैल 3 केला जेन 31 33 सेब फ़ेब 13 88 सेब डिक 2 12 मुझे किस चीज की ज़रूरत है वह आधार राशि के आधार पर उत्पाद के पिछले 90 दिनों के चालू चलती औसत है। कई पदों के लिए खेद है, लेकिन जब मैं अपनी पिछली पोस्ट फिर से पढ़ता हूं, तो यह लग रहा था कि मैं क्या करने की कोशिश कर रहा हूं। धन्यवाद RE: दिनांक सीमा के साथ औसत चलना klaz2002 (प्रोग्रामर) 25 Sep 07 16:00 मुझे इस प्रश्न के लिए धन्यवाद कहकर शुरू करना होगा। क्योंकि यह मुझे कोई आराम नहीं दिया जब तक मैं इसे हल नहीं कर सकता मुझे बताएं कि मेरा क्या मानना ​​है कि आपकी आवश्यकता सिर्फ इसलिए है कि आप और मैं एक ही पृष्ठ पर हूं। Req 1) आप उत्पाद के नाम से पिछले 9 0 दिनों के डेटा के चलती औसत चाहते हैं। जिसका मतलब है, एक एकल उत्पाद (उदा। सेब) के लिए आप उस उत्पाद के आधार-मूल्यों में रुचि रखते हैं, जो वापस 90 दिनों के लिए जा रहे हैं। 2) मैंने मान लिया है कि आपके पास एक (1) रिकार्ड प्रति दिन प्रति दिन है इसका मतलब है कि प्रतिदिन प्रति उत्पाद एक से अधिक आधार मूल्य नहीं है (कोड अभी अधिक संभाल नहीं करता है) इतिहास के मुद्दे को हल करने के लिए (मूल्य वापस 90 दिनों तक जा रहे हैं) मैंने लैगॉक्स () का इस्तेमाल किया और 1 9 0 दिनों को वैरिएबल में डाल दिया और फिर उन्हें एआरआरए में जोड़ा। चूंकि वेरिएबल को सरणी में शामिल किया जाना है, इसलिए मैंने एक छोटी सी मैक्रो का निर्माण किया है जो कि मुझे आवश्यक कोड की लाइनों को उत्पन्न करता है मैक्रो जो इतिहास मैक्रोज़ सेटवर्कर के 90 दिनों के लिए 270 संस्करण बनाते हैं I1 से 90 प्रोडोमिपी लैगम्पी (उत्पाद) डेटैपी लैगम्पी (डेट) आधारमिपी लैगम्पी (बेसिस) अंत में उत्पाद और तारीख proc सॉर्ट डेटा को अपनी डेट आउट करके उत्पाद तिथि रन डेटा अंतिम तिथि निर्धारित उत्पाद दिनांक लंबाई द्वारा prod1-prod90 7 date1-date90 basis1-base90 mysum 8 सरणी वर्तमान mysum सरणी prod prod1-prod90 सरणी dt date1-date90 सरणी बीएस आधार 1-आधार 9 सेटवेर्ड्स तारीख को निर्धारित करने के लिए पहले 90 दिनों की DateMinus90 date-90 बीसीटीआर 1 माइस्सम 0 सभी संभावित दिनों के माध्यम से आईओ 1 से 90 उत्पाद समूह में पहले मामले के लिए अपवाद लिखिए, यदि पहले तो कोई लेग न हो, तो उत्पादकता के आधार पर आगे चलकर उत्पाद का नाम और उसके बाद 90 दिनों के भीतर चेक करें। अगर ट्रिम (अपकेस )) ट्रिम (अपकेस (प्रॉडक्ट)) और डीटी डेनिमिनयुस 90, तो फिर अगर आप कुछ समय के लिए अपना मूल्य जोड़ते हैं (माइसम, बेसिस, बीएस) तो कितने आंकड़े बीटीटीआर 1 के अंत में मिलते हैं, अगर कोई संख्या नहीं है तो मौजूदा बेज़िस वैल्यू इस्तेमाल किया जाना चाहिए यदि मैसम 0 तो मैवग आधार अन्य मैवग मायसाम्बक्टर रन प्रो प्रिंट डेटाफिनल वार्स उत्पाद तिथि डेटिमसन 90 आधार मायवग प्रारूप तारीख डेटिमसन 90 मिमीवय 10। रन मुझे उम्मीद है कि यह आपकी मदद करेगा आपको वास्तव में यह देखना चाहिए क्योंकि मैंने यह वास्तव में व्यापक जांच के बिना किया था। इस कोड के लिए कई सीमाएं हो सकती हैं इसलिए सावधान रहें। पूर्ण कोड टैब पर नमूना कोड दिखाता है कि किसी डेटा सेट में पिछले एन के अवलोकन के दौरान, पूरे डेटा सेट के माध्यम से एक चर के चलती औसत की गणना कैसे करें, या पिछले एन पर एक BY-Group के भीतर टिप्पणियां ये नमूना फाइलें और कोड उदाहरण एसएएस इंस्टीट्यूट इंक द्वारा प्रदान किए जाते हैं क्योंकि किसी भी प्रकार की वारंटी के बिना, किसी भी विशेष या उद्देश्य के लिए व्यापारिकता और रखरखाव के अंतर्निहित वारंटी के साथ या तो सीमित या सीमित नहीं है। प्राप्तकर्ता इस बात को स्वीकार करते हैं और स्वीकार करते हैं कि एसएएस संस्थान इस सामग्री के उपयोग से उत्पन्न किसी भी नुकसान के लिए उत्तरदायी नहीं होगा। इसके अतिरिक्त, एसएएस इंस्टीट्यूट यहां मौजूद सामग्री के लिए कोई समर्थन प्रदान नहीं करेगा। ये नमूना फाइलें और कोड उदाहरण एसएएस इंस्टीट्यूट इंक द्वारा प्रदान किए जाते हैं क्योंकि किसी भी प्रकार की वारंटी के बिना, किसी भी विशेष या उद्देश्य के लिए व्यापारिकता और रखरखाव के अंतर्निहित वारंटी के साथ या तो सीमित या सीमित नहीं है। प्राप्तकर्ता इस बात को स्वीकार करते हैं और स्वीकार करते हैं कि एसएएस संस्थान इस सामग्री के उपयोग से उत्पन्न किसी भी नुकसान के लिए उत्तरदायी नहीं होगा। इसके अतिरिक्त, एसएएस इंस्टीट्यूट यहां मौजूद सामग्री के लिए कोई समर्थन प्रदान नहीं करेगा। डेटा सेट में अंतिम एन ओवरशन पर, या बीवाई-समूह के अंतिम एन अवलोकन के ऊपर, पूरे डेटा सेट के माध्यम से एक चर के चल औसत की गणना करें।

No comments:

Post a Comment