आवश्यक डेटा जाँच परीक्षण


93

अपनी नौकरी की भूमिका में, मैं अक्सर अन्य लोगों के डेटासेट के साथ काम करता हूं, गैर-विशेषज्ञ मुझे नैदानिक ​​डेटा लाते हैं और मैं उन्हें इसे सारांशित करने और सांख्यिकीय परीक्षण करने में मदद करता हूं।

मेरे पास जो समस्या है वह यह है कि जो डेटासेट मैं लाया जाता हूं, वह लगभग हमेशा टाइपोस, विसंगतियों और अन्य सभी प्रकार की समस्याओं से भरा होता है। मुझे यह जानने में दिलचस्पी है कि क्या अन्य लोगों के पास मानक परीक्षण हैं जो वे किसी भी डेटासेट की जांच करने की कोशिश करते हैं जो अंदर आते हैं।

मैं प्रत्येक वेरिएबल के हिस्टोग्राम को केवल देखने के लिए तैयार करता था, लेकिन मुझे अब महसूस होता है कि बहुत सारी भयानक त्रुटियां हैं जो इस परीक्षण से बच सकती हैं। उदाहरण के लिए, मेरे पास दूसरे दिन एक दोहराया माप डेटासेट था, जहां कुछ व्यक्तियों के लिए, दोहराया माप समय 2 पर समान था जैसा कि समय 1 पर था। यह बाद में गलत साबित हुआ था, जैसा कि आप उम्मीद करेंगे। एक अन्य डाटासेट में एक व्यक्ति था जो बोर्ड में 0 से दर्शाए गए समस्या-मुक्त होने के लिए बहुत अधिक अव्यवस्थित (एक उच्च स्कोर द्वारा प्रतिनिधित्व) होने से गया था। यह सिर्फ असंभव है, हालांकि मैं इसे निश्चित रूप से साबित नहीं कर सका।

इसलिए मैं यह सुनिश्चित करने के लिए प्रत्येक परीक्षण को चला सकता हूं कि उनके पास टाइपोस नहीं है और उनके पास असंभव मूल्य नहीं हैं?

अग्रिम में धन्यवाद!


3
बड़ा सवाल है। मुझे संदेह है कि सामान्य उत्तर देना मुश्किल होगा क्योंकि चेक डेटा सेट की बारीकियों पर निर्भर करेगा।
mark999

2
@ mark999 मैं सहमत हूं। मुझे इस प्रश्न के उत्तर पढ़ने में दिलचस्पी होगी। कुछ सामान्य रणनीतियाँ हैं, लेकिन मुझे लगता है कि बहुत सी जाँच डोमेन विशिष्ट अपेक्षाओं के निर्माण के बारे में है, दोनों के बारे में डेटा क्या दिखना चाहिए, और कुछ सामान्य त्रुटियां जो उत्पन्न हो सकती हैं।
जेरोमे एंग्लीम

जवाबों:


77

यह समझने में मदद करता है कि डेटा कैसे रिकॉर्ड किया गया था।

मुझे एक कहानी साझा करें । एक बार, बहुत पहले, कई डेटासेट केवल हार्डकॉपी लुप्त होती में संग्रहीत किए गए थे। उन अंधेरे दिनों में मैंने एक संगठन के साथ अनुबंध किया (महान वंशावली और आकार के; आपमें से कई लोग शायद इसके स्टॉक के मालिक हैं) अपने निर्माण संयंत्रों में से 10 ^ 5 पर्यावरण निगरानी डेटा के रिकॉर्ड को कम्प्यूटरीकृत करने के लिए। ऐसा करने के लिए, मैंने व्यक्तिगत रूप से प्रयोगशाला रिपोर्टों (जहां डेटा थे वहां दिखाने के लिए) की एक शेल्फ को चिह्नित किया, डेटा प्रविष्टि फॉर्म बनाए, और साक्षर के लिए एक अस्थायी एजेंसी के साथ अनुबंध किया।कार्यकर्ता प्रपत्रों में डेटा टाइप करने के लिए। (हां, आपको उन लोगों के लिए अतिरिक्त भुगतान करना होगा जो पढ़ सकते हैं।) डेटा के मूल्य और संवेदनशीलता के कारण, मैंने एक समय में दो श्रमिकों के साथ समानांतर में इस प्रक्रिया का संचालन किया (जो आमतौर पर दिन-प्रतिदिन बदल जाते हैं)। इसमें कुछ हफ़्ते लगे। मैंने प्रविष्टियों के दो सेटों की तुलना करने के लिए सॉफ्टवेयर लिखा, व्यवस्थित रूप से उन सभी त्रुटियों को पहचानने और सुधारने के लिए, जिन्होंने दिखाया।

लड़का था त्रुटियां! क्या गलत हो सकता हैं? त्रुटियों का वर्णन करने और उन्हें मापने का एक अच्छा तरीका बुनियादी रिकॉर्ड के स्तर पर है , जो इस स्थिति में किसी विशेष निगरानी के लिए एक एकल विश्लेषणात्मक परिणाम (कुछ रसायन की एकाग्रता, अक्सर) का विवरण दिया गया था , जो किसी दिए गए निगरानी बिंदु पर प्राप्त किया गया था। दी गई तारीख। दो डेटासेट की तुलना में, मैंने पाया:

  • चूक की त्रुटियां : एक डेटासेट में एक रिकॉर्ड शामिल होगा, दूसरा नहीं। यह आमतौर पर इसलिए हुआ क्योंकि या तो (ए) एक पंक्ति या दो को पृष्ठ के नीचे अनदेखा किया जाएगा या (बी) एक पूरे पृष्ठ को छोड़ दिया जाएगा।

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

  • नकली नकल । एक ही परिणाम कई स्रोतों में दिखाई दे सकते हैं, कई बार स्थानांतरित किए जा सकते हैं, और जब वे नहीं होते हैं तो बार-बार सही होने लगते हैं। डुप्लिकेट का पता लगाने के लिए सीधे हैं, लेकिन यह तय करना कि क्या वे गलत हैं, यह जानने पर निर्भर करता है कि क्या डुप्लिकेट को भी डेटासेट में दिखाई देना चाहिए। कभी-कभी आप बस नहीं जान सकते।

  • फ्रैंक डेटा-एंट्री त्रुटियां । "अच्छे" लोगों को पकड़ना आसान होता है क्योंकि वे डेटम के प्रकार को बदलते हैं : अंक "0" के लिए "O" अक्षर का उपयोग करते हुए, उदाहरण के लिए, एक संख्या को गैर-संख्या में बदल देता है। अन्य अच्छी त्रुटियां मूल्य को बदल देती हैं, इसलिए यह सांख्यिकीय परीक्षणों से आसानी से पता लगाया जा सकता है। (एक मामले में, "1,000,010 mg / Kg" में अग्रणी अंक काट दिया गया था। 10. का मान छोड़ कर। यह बहुत बड़ा बदलाव है जब आप एक कीटनाशक एकाग्रता के बारे में बात कर रहे हैं!) खराब त्रुटियों को पकड़ना मुश्किल है क्योंकि वे बदल जाते हैं। एक मान जो कि बाकी डेटा के साथ फिट बैठता है (जैसे) "50" के लिए "80" टाइप करता है। (इस तरह की गलती OCR सॉफ्टवेयर के साथ हर समय होती है।)

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

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

उस समय से मैंने डेटा गुणवत्ता के मुद्दों पर ध्यान दिया है और बड़े सांख्यिकीय डेटासेट की व्यापक जांच करने के कई और अवसर दिए हैं। कोई भी पूर्ण नहीं है; वे सभी गुणवत्ता जांच से लाभान्वित होते हैं। कुछ सिद्धांतों को मैंने ऐसा करने के लिए वर्षों में विकसित किया है

  1. जब भी संभव हो, डेटा प्रविष्टि और डेटा ट्रांसक्रिप्शन प्रक्रियाओं में अतिरेक बनाएं : चेकसम, योग, दोहराया प्रविष्टियां: संगति के स्वचालित आंतरिक चेक का समर्थन करने के लिए कुछ भी।

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

  3. हमेशा अपने डेटा को सामान्य करें (विशेष रूप से, उन्हें कम से कम चौथे सामान्य रूप में प्राप्त करें ), इस बात की परवाह किए बिना कि आप विश्लेषण के लिए डेटासेट कैसे प्रारूपित करते हैं। यह आपको हर वैचारिक विशिष्ट इकाई की तालिकाएँ बनाने के लिए मजबूर करता है, जो आप मॉडलिंग कर रहे हैं। (पर्यावरण के मामले में, इसमें निगरानी स्थानों, नमूनों, रसायनों (गुण, विशिष्ट श्रेणियां, आदि) के टेबल शामिल होंगे, उन नमूनों के परीक्षण (एक परीक्षण आमतौर पर रसायनों के एक सूट को कवर करता है), और उन परीक्षणों के व्यक्तिगत परिणाम। ऐसा करने में आप डेटा गुणवत्ता और स्थिरता के कई प्रभावी चेक बनाते हैं और कई संभावित लापता या डुप्लिकेट या असंगत मूल्यों की पहचान करते हैं।

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

  4. हमेशा जितना संभव हो उतना "बेवकूफ" चेक करें । ये स्पष्ट चीजों का स्वचालित सत्यापन हैं जैसे कि तारीखें उनके अपेक्षित अवधियों में आती हैं, रोगियों की गिनती (या रसायन या जो भी) हमेशा सही ढंग से जोड़ते हैं, वे मूल्य हमेशा उचित होते हैं (उदाहरण के लिए, एक पीएच 0 और 14 के बीच होना चाहिए और शायद में के लिए एक बहुत ही संकीर्ण सीमा, कहते हैं, रक्त पीएच रीडिंग), आदि। यह वह जगह है जहां डोमेन विशेषज्ञता सबसे अधिक मदद कर सकती है: सांख्यिकीविद् निडर होकर विशेषज्ञों के बेवकूफ सवाल पूछ सकते हैं और डेटा की जांच करने के लिए उत्तर का शोषण कर सकते हैं।

बहुत अधिक निश्चित रूप से कहा जा सकता है - विषय एक पुस्तक के लायक है - लेकिन यह विचारों को उत्तेजित करने के लिए पर्याप्त होना चाहिए।



2
एक अनुवर्ती प्रश्न- विषय एक पुस्तक के लायक है- क्या कोई पुस्तक है?
क्रिस बीली

5
+1 - अद्भुत जवाब देने वाला। काश आपके पास एक ब्लॉग होता :) :) (मुझे अपने लेखन को r-bloggers.com पर जोड़ना अच्छा लगता)
ताल

2
आपको उस पुस्तक को लिखना चाहिए जो विषय के लायक है!
Zach

1
यह इतना जटिल है कि कई कंसल्टेंसी फर्म "डेटा रिट्रीवल / क्लीनिंग / स्टोरेज" में विशेषज्ञ हैं।
लुकास रीस

25

@ शुभंकर महान सुझाव देता है; मैं केवल इसे जोड़ूंगा: भूखंड, भूखंड, भूखंड, भूखंड। स्कैटरप्लॉट्स, हिस्टोग्राम्स, बॉक्सप्लाट्स, लाइनप्लाट्स, हीटमैप्स और कुछ भी जो आप सोच सकते हैं। बेशक, जैसा कि आपने पाया है कि ऐसी त्रुटियां हैं जो किसी भी भूखंड पर स्पष्ट नहीं होंगी, लेकिन वे शुरू करने के लिए एक अच्छी जगह हैं। बस सुनिश्चित करें कि आप स्पष्ट हैं कि आपका सॉफ़्टवेयर लापता डेटा को कैसे संभालता है, आदि।

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


5
+1 प्लॉटिंग आंकड़ों के लिए है कि शिकागो के लिए मतदान क्या है: हर कोई कुछ जल्दी और अक्सर करता है। ;-)
whuber

15

बड़ी चीजें जो मैं जांचता हूं:

  1. परिवर्तनीय प्रकार - यह देखने के लिए कि एक संख्या संख्यात्मक है, और कारक / चरित्र नहीं है (दर्ज किए गए डेटा के साथ कुछ समस्या का संकेत हो सकता है)
  2. लगातार मूल्य स्तर - यह देखने के लिए कि "t1" नाम वाला एक चर "t1" या "t 1" नाम के साथ फिर से स्वयं नहीं मिला।
  3. आउटलेयर - देखते हैं कि मूल्य की श्रेणियाँ समझ में आती हैं। (क्या आपको 0 या रक्तचाप का रक्तचाप मान मिला है?) यहां हमें कभी-कभी पता चलता है कि किसी ने -5 को लापता मान के रूप में एन्कोड किया, या ऐसा कुछ।
  4. रैखिक प्रतिबंध। मैं उस का उपयोग नहीं करता, लेकिन कुछ लोग पाते हैं कि वे कुछ स्तंभों की निर्भरता (कॉलम ए, बी को सी, या ऐसा ही कुछ) के लिए पुनर्गठन करना चाहते हैं। इसके लिए आप डिडक्योर करेक्ट पैकेज पर एक नज़र डाल सकते हैं (मैं पिछले उपयोगर सम्मेलन में स्पीकर, मार्क वैन डेर लू से मिला था - और उनके पैकेज से बहुत प्रभावित हुआ था)
  5. बहुत कम यादृच्छिकता। कभी-कभी मूल्यों को कुछ मूल्यों के लिए गोल किया जाता है, या किसी बिंदु पर काट दिया जाता है। तितर बितर भूखंडों में इस तरह की चीजें अक्सर अधिक स्पष्ट होती हैं।
  6. लापता मान - यह सुनिश्चित करना कि लापता किसी अन्य चर से संबंधित नहीं है (यादृच्छिक पर लापता)। लेकिन मेरे पास यहां देने के लिए अंगूठे का नियम नहीं है।
  7. खाली पंक्तियाँ या पंक्तियाँ जिनमें अधिकतर मूल्य नहीं हैं। ये (आमतौर पर) पाया और छोड़ा जाना चाहिए।

महान प्रश्न बीटीडब्ल्यू - मुझे इस मामले पर अन्य लोगों के अनुभव को पढ़ने की उम्मीद है।


10

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


7

कुछ मैं हमेशा के माध्यम से जाना:

  1. क्या वहाँ रिकॉर्ड की संख्या माना जाता है? उदाहरण के लिए, यदि आपने अपने डेटा को किसी अन्य स्रोत से खींचा है, या किसी व्यक्ति का उप-सेट डेटा समाप्त करता है, तो क्या आपके नंबर उचित लगते हैं। आपको लगता है कि यह कवर किया जाएगा, लेकिन आप आश्चर्यचकित होंगे।
  2. क्या आपके सभी चर वहां हैं? क्या उन चरों के मूल्य समझ में आते हैं? उदाहरण के लिए, यदि हां / नहीं / अनुपस्थित चर "1,2,3" कोडित है - तो इसका क्या मतलब है?
  3. आपके लापता मूल्य कहां हैं? क्या कुछ चर ऐसे हैं जो गुम सूचनाओं से अधिक प्रभावित लगते हैं? क्या कुछ ऐसे विषय हैं जिनमें भारी संख्या में लापता मूल्य हैं।

वे पहले चरण हैं जिनके माध्यम से मैं यह सुनिश्चित करने के लिए जाता हूं कि डेटासेट खोजपूर्ण डेटा विश्लेषण जैसी किसी चीज़ के लिए भी तैयार है। बस नीचे बैठे, डेटा के बारे में घूमते हुए कुछ "क्या वह सही लगता है?"


1

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


3
यह एक जवाब के रूप में एक टिप्पणी के रूप में बेहतर होगा क्योंकि यह वर्तमान में खड़ा है। कृपया थोड़ा विस्तार करें, संसाधनों या संदर्भों के लिंक प्रदान करें, आदि
Antoine

1
ऐसी कई परिस्थितियों को देखना मुश्किल है, जिनमें से कई के लिए यह प्रभावी और आसान होगा, जिसके लिए यह या तो बिल्कुल भी काम नहीं करता है (जैसे कि तार या अन्य नाममात्र डेटा) या भयानक है (क्योंकि यह पूरी तरह से सभी बहुभिन्नरूपी संबंधों की उपेक्षा करता है)। यह भी मनमाना लगता है, क्योंकि समय श्रृंखला (और कुछ संबंधित डेटा) को छोड़कर, डेटा टेबल के रिकॉर्ड में कोई अंतर्निहित आदेश नहीं है, जबकि कई (यदि सभी नहीं) स्वीकृति के नमूने के तरीके अनुक्रम पर निर्भर करते हैं।
व्हिबर

ठीक है, यहाँ उपयोग करने के लिए कैलकुलेटर है: sqconline.com/… जब तक आप यादृच्छिकता का उपयोग करते हैं स्वीकृति नमूना का उपयोग किया जा सकता है। यदि आप इसे जटिल करना चाहते हैं, तो आप व्यवस्थित नमूना तकनीक का उपयोग कर सकते हैं, और फिर प्रत्येक खंड पर स्वीकृति नमूने का उपयोग कर सकते हैं
तारेक शाहवान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.