खुला, कठोर और पुनरुत्पादनीय शोध: प्रैक्टिशनरों के लिए हैंडबुक (2021)
(stanforddatascience.github.io)- शोध को खुला, पारदर्शी और पुनरुत्पादनीय तरीके से डिज़ाइन और साझा करने पर परिणामों की पहुंच, सत्यापन-योग्यता और पुनर्विश्लेषण-योग्यता बढ़ती है
- paywalled papers, निजी code, पहुंच से बाहर data, और बंद हो चुका software दूसरे शोधकर्ताओं के लिए वास्तविक analysis process की पुष्टि करना कठिन बना देते हैं
- कमजोर experimental design और analysis से साहित्य में त्रुटिपूर्ण निष्कर्ष जमा होते जाते हैं, और नए शोधकर्ताओं के लिए भरोसेमंद परिणामों की पहचान की लागत बढ़ जाती है
- openness और reproducibility में अतिरिक्त काम और reward structure की सीमाएँ हैं, लेकिन ये गलतियों को जल्दी पकड़ने और शोध की विश्वसनीयता बढ़ाने में मदद करती हैं
- यह हैंडबुक research design, data analysis·reporting, और research materials को public करने को modular practices में बाँटती है ताकि ज़रूरत के हिस्से से शुरुआत की जा सके
खुलापन और पुनरुत्पादनीयता क्यों ज़रूरी हैं
- यदि शोध खुले, पारदर्शी और पुनरुत्पादनीय तरीके से किया और साझा नहीं किया जाता, तो शोध के लाभ कम हो जाते हैं
- यदि paper केवल paid access वाले publication path में छपता है, तो शोध परिणाम देखने वाले लोगों की संख्या सीमित हो जाती है और output की संभावित reach भी घट जाती है
- कई analyses इतने जटिल होते हैं कि केवल मुख्य paper में सभी choices और procedures समझाना लगभग असंभव होता है
- साथ में code न हो तो दूसरे लोगों के लिए यह निश्चित करना कठिन होता है कि ठीक-ठीक क्या किया गया था
- code public होने पर भी data access न होना या बंद हो चुका software पुरानी research को reproduce या reanalyze करना कठिन बना सकता है
- यदि पुरानी research को आसानी से reanalyze नहीं किया जा सकता, तो community के लिए वैकल्पिक analysis paths तलाशना, datasets को जोड़ना, या experiments को नए environments में generalize करना कठिन हो जाता है
गलत शोध प्रथाओं की लागत
- यदि experimental design और analysis पर पर्याप्त ध्यान न दिया जाए, तो साहित्य में त्रुटिपूर्ण निष्कर्षों के जमा होने की संभावना बढ़ जाती है
- जितने अधिक अविश्वसनीय परिणाम होंगे, उतना ही नए शोधकर्ताओं को शोध विषय समझने और वास्तविक प्रगति करने में अधिक समय लगाना पड़ेगा
शोधकर्ता openness और reproducibility को अपनाने में हिचकिचाते क्यों हैं
- खुले, पारदर्शी और पुनरुत्पादनीय शोध में अतिरिक्त काम लगता है, और मौजूदा reward structure हमेशा ऐसे प्रयासों को पुरस्कृत नहीं करती
- फिर भी कई क्षेत्रों में बदलाव हो रहे हैं, और कुछ communities ऐसे प्रयासों को ऊँचा महत्व देती हैं
- गलतियों की लागत बड़ी हो सकती है, और openness उन्हें टालने में मदद करती है
- कुछ data को privacy, copyright, या अन्य कारणों से कानूनी रूप से साझा नहीं किया जा सकता
- ऐसे data का उपयोग करने वाला शोध, अधिक खुले data वाले शोध की तुलना में आम तौर पर दुनिया के लिए कम उपयोगी हो सकता है
- फिर भी किए गए analysis, data collection protocols, और preregistration जैसी चीज़ों को पारदर्शी रूप से public करने से शोध पर भरोसा बढ़ सकता है
- कुछ लोग data और code public करने से इसलिए चिंतित रहते हैं कि कहीं उनकी गलतियाँ या कमज़ोर coding quality उजागर न हो जाए
- यह चिंता समझ में आती है, लेकिन आम तौर पर यह गलत दिशा में होती है
- गलतियाँ जल्दी पकड़ लेना बेहतर है, और ज़्यादातर लोग code quality से अलग public sharing को सकारात्मक रूप में देखते हैं
- शुरू से ही अंतिम public release को ध्यान में रखकर code साझा करने से सुधार में भी मदद मिलती है
- बहुत से लोग यह भी नहीं जानते कि शुरुआत कहाँ से करें
- मौजूदा open science और reproducibility guides अक्सर पूरी किताबों या बहुत बड़े resource collections के रूप में होती हैं, जिससे पूरी philosophy और व्यापक research approach सीखने का बोझ महसूस हो सकता है
हैंडबुक का approach
- यह हैंडबुक शोध को एक बार में पूरी तरह बदलने के बजाय, कई तरीकों से उसे थोड़ा-थोड़ा अधिक खुला, पारदर्शी और पुनरुत्पादनीय बनाने के तरीकों पर केंद्रित है
- हर step अपने आप में कुछ न कुछ लाभ दे सकता है
- अलग-अलग क्षेत्रों की nuances और requirements मौजूद हैं, लेकिन data और statistical analysis से जुड़े अधिकांश क्षेत्रों में एक-दूसरे से सीखने के लिए बहुत कुछ है
- इसका format निम्न बातों को लक्ष्य बनाता है
- Modular: अलग-अलग ideas को स्वतंत्र रूप से या मिलाकर इस्तेमाल किया जा सकता है
- Practical: ऐसी practices पर फोकस जो लागू की जा सकें और जिनका असर बड़ा हो
- General: data और statistical analysis से जुड़े किसी भी क्षेत्र पर लागू
- Concise: उन व्यस्त वैज्ञानिकों के लिए जिनके पास अभी पूरा lecture सुनने का समय नहीं है
तीन मुख्य section
- पहला section सावधानीपूर्ण research design पर केंद्रित है, ताकि यह सुनिश्चित किया जा सके और दिखाया जा सके कि परिणाम और निष्कर्ष वैध और उपयोगी हैं
- power analysis का उपयोग कर उपयुक्त sample size का अनुमान लगाना जैसे experimental parameters को सावधानी से तय करना
- exploratory research और confirmatory research में अंतर करना
- statistical analysis की पहले से योजना बनाना
- पुरानी research से तुलना संभव हो, इसके लिए सभी relevant data एकत्र करना
- preregistration, संभावित समस्याओं की तैयारी, और ethical implications पर विचार जैसे अतिरिक्त तत्व शामिल करना
- दूसरा section data analysis और result reporting की best practices पर केंद्रित है
- data को संभालने से पहले ज़रूरी decisions और considerations
- pre statistical analysis plan
- उपयुक्त data generation
- पारदर्शी data preparation
- जानकारी-समृद्ध data visualization
- उपयुक्त statistics का उपयोग कर data summary
- सामान्य गलतियों से बचने वाला data analysis
- medical research के लिए अतिरिक्त considerations
- पारदर्शी और comprehensive statistical analysis reporting
- manual principles को दिखाने वाले published literature examples
- तीसरा section सभी relevant research materials को सबके लिए public करने के तरीकों पर केंद्रित है
- Open Data: अतिरिक्त research और replication के लिए raw data public करना
- Open Source Code: analysis pipeline को पारदर्शी बनाना, ताकि दूसरे लोग उसे reuse या verify कर सकें
- Reproducible Environments: केवल data और code ही नहीं, बल्कि analysis को आसानी से फिर से चलाने योग्य environment भी देना
- Open Publication Models: शोध से जुड़े academic outputs को सभी के लिए देखने योग्य बनाना
- Documenting Processes and Decisions: क्या और कैसे किया गया, इसके साथ-साथ क्यों किया गया, यह भी open lab notes जैसे mechanisms के जरिए स्पष्ट करना
परिशिष्ट का दायरा
- परिशिष्ट में frequently asked questions, क्षेत्र-विशिष्ट considerations, और अतिरिक्त resources के links जैसे सहायक resources शामिल हैं
1 टिप्पणियां
Hacker News की टिप्पणियां
इस्तेमाल किए गए package versions को रिकॉर्ड करना भी अच्छा है, लेकिन बेहतर तरीका यह है कि code के साथ Guix channel या Nix flake जैसी environment description दी जाए, जिसमें dependency chain पूरी तरह pinned हो
Docker भी fixed versions enforce कर सकता है, लेकिन एक बार
apt updateकरने से सब कुछ पूरी तरह टूट सकता हैNix और Guix न सिर्फ उसी tools और versions के साथ code चलाने का environment देते हैं, बल्कि share करने योग्य container image बनाना भी संभव बनाते हैं
Stanford जैसी आम तौर पर महंगी university का learning material मुफ्त देना बहुत अच्छी बात है
किसी ने इस्तेमाल किया है? ठीक है?
हमारी team फिलहाल software side से data science की ओर शिफ्ट हो रही है, और यह material उस gap को bridge करने लायक लगता है
Page में https://stanforddatascience.github.io/best-practices/index.h... embedded है
इस handbook को best practices पेश करने वाली guide के रूप में summarize किया जा सकता है, जो science को अधिक open, transparent और reproducible बनाती है