किसी सांख्यिकीय विश्लेषण परियोजना का कुशलतापूर्वक प्रबंधन कैसे करें?


89

हम अक्सर कंप्यूटर विज्ञान में परियोजना प्रबंधन और डिजाइन पैटर्न के बारे में सुनते हैं, लेकिन सांख्यिकीय विश्लेषण में कम बार। हालांकि, ऐसा लगता है कि एक प्रभावी और टिकाऊ सांख्यिकीय परियोजना को डिजाइन करने की दिशा में एक निर्णायक कदम चीजों को व्यवस्थित रखना है।

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

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


मैं क्योंकि यह परियोजना प्रबंधन के बारे में है विषय से हटकर के रूप में इस सवाल को बंद करने के मतदान कर रहा हूँ
Aksakal

2
@ अक्षल: मुझे लगता है कि आप थोड़े कठोर हैं। :) यह " आंकड़ों में रुचि रखने वाले लोगों " के लिए प्रासंगिक है । साथ ही 70+ वोट मानक उपयोगकर्ताओं को दृढ़ता से सुझाव देते हैं कि यह ब्याज और उपयोगी का प्रश्न है।
us --r11852

1
मुझे लगता है कि यहां इस विषय पर विचार किया जाना चाहिए।
गंग

@gung क्या आप शायद उस मेटा थ्रेड का उत्तर जोड़ना चाहेंगे ताकि हम उस पर चर्चा कर सकें?
अमीबा

जवाबों:


80

मैं SO पर पाए गए दिशानिर्देशों की एक त्वरित श्रृंखला (जैसा कि @Shane द्वारा सुझाया गया है), Biostar (इसके बाद, BS) और इस SE को संकलित कर रहा हूं । मैंने प्रत्येक आइटम के लिए स्वामित्व स्वीकार करने, और पहले या अत्यधिक उत्कीर्ण उत्तर का चयन करने की पूरी कोशिश की। मैंने अपने स्वयं के, और ध्वजांकित वस्तुओं को भी जोड़ा जो कि [R] पर्यावरण के लिए विशिष्ट हैं।

डाटा प्रबंधन

  • सभी चीजों को सही जगह पर रखने के लिए एक परियोजना संरचना बनाएं (डेटा, कोड, आंकड़े इत्यादि, giovanni / BS)
  • कच्चे डेटा फ़ाइलों को कभी भी संशोधित न करें (आदर्श रूप में, उन्हें केवल-पढ़ा जाना चाहिए), रूपांतरण करते समय, सफाई आदि के लिए नए लोगों की प्रतिलिपि बनाएँ / नाम बदलें।
  • डेटा संगति ( व्हीबर / एसई) की जाँच करें
  • एक निर्माण स्वचालन उपकरण के साथ स्क्रिप्ट निर्भरता और डेटा प्रवाह को प्रबंधित करें, जैसे GNU मेक ( कार्ल ब्रोमन / ज़ाचरी जोन्स )

कोडिंग

  • तार्किक इकाई या इमारत ब्लॉकों में स्रोत कोड का आयोजन ( जोश रैह / हैडली / आर्स / एसओ; Giovanni / खादर Shameer / बी एस)
  • संपादन सामग्री से अलग स्रोत कोड, विशेष रूप से बड़ी परियोजना के लिए - पिछले आइटम और रिपोर्टिंग के साथ आंशिक रूप से अतिव्यापी
  • दस्तावेज़ के साथ सब कुछ, जैसे कि [आर] ऑक्सीजन ( शेन / एसओ) या स्रोत फ़ाइल में लगातार आत्म-एनोटेशन - मेडस्टैट्स, दस्तावेज़ विश्लेषण और डेटा संपादन पर एक अच्छी चर्चा विकल्प
  • [आर] कस्टम कार्यों के लिए एक समर्पित फ़ाइल में रखा जा सकता है (उच्च-स्तरीय नाम स्थान, को आबाद करने से बचने के लिए के रूप में तो एक नए माहौल में (कि आवश्यकता होने sourced किया जा सकता है), ब्रेंडन OConnor / एसओ), या एक पैकेज ( एक प्रकार की कटार Eddelbuettel / शेन / एसओ)

विश्लेषण

  • RNG या स्टोकेस्टिक एल्गोरिदम (उदाहरण के-साधन) को कॉल करते समय आपके द्वारा उपयोग किए गए बीज को सेट / रिकॉर्ड करना न भूलें।
  • मोंटे कार्लो के अध्ययन के लिए, एक अलग फ़ाइल में चश्मा / पैरामीटर स्टोर करना दिलचस्प हो सकता है ( सारांश एक अच्छा उम्मीदवार, जियोवनी / बीएस हो सकता है )
  • प्रति चर में अपने आप को सीमित न करें, मल्टीवेरेट (ट्रेली) डिस्प्ले और इंटरेक्टिव विज़ुअलाइज़ेशन टूल (जैसे GGobi) का उपयोग करें

संस्करण

  • आसान ट्रैकिंग / निर्यात के लिए कुछ प्रकार के संशोधन नियंत्रण का उपयोग करें , जैसे Git ( Sharpie / VonC / JD लॉन्ग / SO) - यह @Jeromy और @Tal द्वारा पूछे गए अच्छे प्रश्नों से है।
  • बैकअप सब कुछ, एक नियमित आधार पर ( Sharpie / JD लॉन्ग / एसओ)
  • अपने विचारों का एक लॉग रखने, या एक समस्या ट्रैकर पर भरोसा करते हैं, जैसे ditz ( Giovanni / बी एस) - पिछले आइटम के साथ आंशिक रूप से बेमानी है, क्योंकि यह Git में उपलब्ध है

संपादन / रिपोर्टिंग

एक साइड नोट के रूप में, हेडली विकम आर परियोजना प्रबंधन का व्यापक अवलोकन प्रस्तुत करता है , जिसमें प्रजनन योग्य अनुकरण और डेटा का एकीकृत दर्शन शामिल है

अंत में, सांख्यिकीय डेटा विश्लेषण के अपने आर-उन्मुख वर्कफ़्लो में ओलिवर किर्ककैम्प एक बहुत ही विस्तृत अवलोकन प्रदान करता है कि क्यों एक विशिष्ट वर्कफ़्लो को अपनाना और उसका पालन करना सांख्यिकीविदों को डेटा की अखंडता और प्रतिलिपि प्रस्तुत करने की क्षमता सुनिश्चित करते हुए एक दूसरे के साथ सहयोग करने में मदद करेगा। इसमें एक बुनाई और संस्करण नियंत्रण प्रणाली का उपयोग करने की कुछ चर्चा शामिल है। Stata उपयोगकर्ताओं को जे। स्कॉट लॉन्ग का डेटा विश्लेषण का वर्कफ़्लो Stata का उपयोग करके भी उपयोगी हो सकता है।


बहुत बढ़िया काम! अगर मैं इसे अपने ब्लॉग पर प्रकाशित करूँ तो क्या यह आपके द्वारा ठीक होगा? (मेरा मतलब है, यह पाठ cc है, इसलिए मैं कर सकता था, लेकिन मैं चाहता था कि आप किसी भी तरह से अनुमति दें :)) चीयर्स, ताल
ताल गैली

@ ताल कोई समस्या नहीं है। यह एक संपूर्ण सूची होने से बहुत दूर है, लेकिन हो सकता है कि आप बाद में अन्य उपयोगी लिंक एकत्र कर सकें। इसके अलावा, बेहतर तरीके से अनुकूलन या पुनर्गठन करने के लिए स्वतंत्र महसूस करें।
chl

+1 यह एक अच्छी सूची है। आप "इसे स्वीकार करना" पर विचार कर सकते हैं ताकि यह हमेशा शीर्ष पर रहे; यह देखते हुए कि यह CW है, कोई भी इसे अद्यतन रख सकता है।
शेन

@Shane खैर, मैं बहुत उपयोगी लिंक के साथ पहला जवाब देने के लिए आपका ऋणी हूं। जिस तरह से आप चाहते हैं उसे जोड़ने / संशोधित करने के लिए स्वतंत्र महसूस करें।
chl

मैंने इसे यहाँ पुनः प्रकाशित किया। महान सूची! r-statistics.com/2010/09/…
ताल गलीली

21

लिंक के लिए धन्यवाद! प्रश्न किसी भी सांख्यिकीय सॉफ्टवेयर के लिए खुला है - मैं समय-समय पर पायथन और स्टाटा का उपयोग करता हूं, इसलिए मुझे आश्चर्य है कि अगर पुष्टि की गई उपयोगकर्ता वहां दिलचस्प सिफारिशें ला सकते हैं।
chl

पूर्ण रूप से; यद्यपि मैं यह जोड़ना चाहूंगा कि उपरोक्त लिंक में सिफारिशें वास्तव में किसी भी सांख्यिकीय परियोजना (भाषा की परवाह किए बिना) पर लागू हो सकती हैं।
शेन

निश्चित रूप से हाँ! मैंने उसी समय अपना प्रश्न अपडेट किया।
chl

8

यह शेन के जवाब के साथ ओवरलैप होता है, लेकिन मेरे विचार में दो मुख्य पृष्ठ हैं:

  • पुनरुत्पादकता ; न केवल इसलिए कि आप उन परिणामों के साथ समाप्त नहीं होंगे जो "किसी तरह" बने हैं, बल्कि विश्लेषण को तेज़ी से (अन्य डेटा पर या थोड़े बदले हुए मापदंडों के साथ) फिर से करने में सक्षम हैं और परिणामों के बारे में सोचने के लिए अधिक समय है। एक विशाल डेटा के लिए, आप पहले कुछ छोटे "playset" पर अपने विचारों का परीक्षण कर सकते हैं और फिर आसानी से पूरे डेटा पर विस्तार कर सकते हैं।
  • अच्छा प्रलेखन ; संस्करण नियंत्रण, कुछ शोध पत्रिका, यहां तक ​​कि अधिक जटिल परियोजनाओं के लिए टिकट प्रणाली के तहत लिपियों की टिप्पणी की। प्रतिलिपि प्रस्तुत करने योग्यता में सुधार करता है, त्रुटि ट्रैकिंग को आसान बनाता है और अंतिम रिपोर्ट को तुच्छ लिखता है।

+1 मुझे दूसरा बिंदु पसंद है (मैं roxygen + git का उपयोग करता हूं)। पहला बिंदु मुझे एक और सांख्यिकीविद् को अपना कोड देने की संभावना के बारे में भी सोचता है जो परियोजना के बाद के चरण में बिना किसी मदद के आपके परिणामों को पुन: पेश करने में सक्षम होगा।
सीएल

Reproducibility? डेटा में वैसे भी यादृच्छिक त्रुटि है, इसलिए कौन परवाह करता है। प्रलेखन? दो संभावित उत्तर: 1) हम बहुत व्यस्त हैं, हमारे पास दस्तावेज़ीकरण के लिए समय नहीं है या 2) हमारे पास केवल विश्लेषण करने या इसे दस्तावेज़ करने के लिए बजट था, इसलिए हमने विश्लेषण करने के लिए चुना। आपको लगता है कि मैं मजाक कर रहा हूं? मैंने कई अवसरों पर इन दृष्टिकोणों को देखा / सुना है - जिन परियोजनाओं पर जीवन लाइन पर सवार था।
मार्क एल। स्टोन


1

बस मेरे 2 सेंट। मैंने नोटपैड ++ को इसके लिए उपयोगी पाया है। मैं प्रत्येक प्रोजेक्ट के लिए अलग स्क्रिप्ट (प्रोग्राम कंट्रोल, डेटा फॉर्मेटिंग, आदि) और एक .pad फ़ाइल रख सकता हूं। .Pad फ़ाइल उस परियोजना से जुड़ी सभी लिपियों को कॉल करती है।


3
आपका मतलब है, नोटपैड ++ का उपयोग npptor के साथ :)
ताल गैलिली

1

जबकि अन्य उत्तर महान हैं, मैं एक और भावना जोड़ूंगा: एसपीएसएस का उपयोग करने से बचें। मैंने अपने मास्टर की थीसिस के लिए SPSS का उपयोग किया और अब बाजार अनुसंधान में अपनी नियमित नौकरी पर।

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


0

Jupyter Notebooks, जो R / Python / Matlab / etc के साथ काम करता है, यह याद रखने की परेशानी को दूर करता है कि कौन सी स्क्रिप्ट एक निश्चित आंकड़ा उत्पन्न करती है। इस पोस्ट में कोड और आंकड़ा को एक दूसरे के ठीक बगल में रखने का सही तरीका बताया गया है। एक ही नोटबुक में एक पेपर या थीसिस चैप्टर के लिए सभी आंकड़े रखने से असोकेटेड कोड को ढूंढना बहुत आसान हो जाता है।

इससे भी बेहतर, वास्तव में, क्योंकि आप स्क्रॉल कर सकते हैं, कह सकते हैं, एक दर्जन आंकड़े जो आप चाहते हैं उसे खोजने के लिए। कोड को तब तक छिपा कर रखा जाता है, जब तक उसकी आवश्यकता न हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.