वास्तविक डेटा से "डेमो" डेटा बनाना: बिना किसी गड़बड़ी के भेस


9

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

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

यहाँ उद्देश्य उनके डेटा के सेट को लेना है, और इसे "फ़ज़" लागू करना है ताकि इसे विशेष रूप से उनके रूप में पहचाना न जा सके। सांख्यिकीय सिद्धांत की मेरी स्मृति अपने आप में थोड़ी फजी है, इसलिए मैं इसे आप लोगों द्वारा चलाना चाहूंगा:

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

संदर्भ के लिए, जहां तक ​​हम जानते हैं कि हमारे पास आमतौर पर मौजूद डेटा सामान्य (गॉसियन) वितरणों का अनुसरण करता है।

मूल डाटासेट व्यापक रूप से उपलब्ध नहीं है, लेकिन सैद्धांतिक रूप से कुछ क्षेत्रीय विशिष्ट विशेषताओं से पहचाना जा सकता है (हम नहीं जानते कि वे विशेषताएँ क्या हैं, और यह संदिग्ध है कि क्या कोई पर्याप्त स्तर पर करता है, लेकिन हम जानते हैं कि भिन्नताएं जगह से मौजूद हैं रखना)। वैसे भी, मैं अभ्यास के बजाय इस के सिद्धांत में अधिक रुचि रखता हूं - मैं जानना चाहता हूं कि क्या कोई ऑपरेशन असंभव है (या कम से कम मुश्किल है) पैरामीटर X द्वारा स्रोत डेटासेट की पहचान करना, किसी के पास है या नहीं या बाहर काम कर सकता है। पैरामीटर X पहली जगह में।

जिस दृष्टिकोण के साथ मैं आया हूं, वह रीडिंग को विभिन्न प्रकारों में अलग करना है, (बहुत दूर दिए बिना, मान लें कि एक समूह "लंबाई" या "एक्स करने के लिए लिया गया समय" हो सकता है।) उनमें से प्रत्येक के लिए, गणना करें। मानक विचलन। फिर, प्रत्येक मान के लिए, (n * stddev) के सकारात्मक और नकारात्मक मूल्यों के बीच एक यादृच्छिक मान जोड़ें जहां n कुछ अंश है जिसका उपयोग मैं परिणाम को ट्यून करने के लिए कर सकता हूं जब तक कि डेटा पर्याप्त रूप से "फ़ज़ी" न हो। मैं केवल एक स्थिर रेंज (मूल मान के 90% और 110% के बीच यादृच्छिक कहना) लागू नहीं करना चाहता था, क्योंकि कुछ मान दूसरों की तुलना में बहुत अधिक या कम भिन्न होते हैं - कुछ मापों में, औसत से 10% अधिक मुश्किल से ध्यान देने योग्य है , लेकिन दूसरों में यह आपको एक गंभीर परिणाम बनाता है।

क्या यह मूल डेटा के स्रोत को मास्क करने के लिए पर्याप्त है? यदि नहीं, तो कौन से सांख्यिकीय उपायों से डेटा अभी भी पहचाना जा सकेगा, और परिणामी डेटा को यथार्थवादी रखते हुए मैं उन्हें कैसे मास्क करूंगा?


3
संबंधित प्रश्न के हालिया टिप्पणी में , मैंने इस विषय पर कुछ सर्वेक्षण पत्रों के लिंक प्रदान किए जो ऑनलाइन उपलब्ध हैं। लिंक जनगणना डेटा को छिपाने पर ध्यान केंद्रित करते हैं, लेकिन उनमें से कई सामान्य रूप से डेटा को छिपाने के सवालों को संबोधित करते हैं।
whuber

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

2
मैं एक सांख्यिकीविद को काम पर रखने का सुझाव दूंगा जिसने पहले भी ऐसा किया है। इसे अपना पहला रोडियो न बनाएं। आप इस पर एक भयानक काम करने के लिए हुक पर नहीं होना चाहते हैं, क्या आप? देखें arstechnica.com/tech-policy/2009/09/…
डेविड जे।

जवाबों:


2

कुछ सुझाव हैं:

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

1

मैं एक दो कदम दृष्टिकोण का सुझाव दूंगा। पहला कदम प्रतिस्थापन के साथ नमूनाकरण होगा - बूटस्ट्रैपिंग में प्रयुक्त विधि के समान। में R, आप उपयोग कर सकते हैं

 newdata = sample(olddata, replace = TRUE)

अब आपके पास मूल के समान गुणों के साथ एक अलग डेटा सेट है। दूसरा कदम शून्य के आसपास केंद्रित एक यादृच्छिक चर जोड़ना होगा:

 newdata = newdata + runif(1, min = -10, max = 10)

कोई भी यादृच्छिक चर जो शून्य के आसपास सममित है, काम करेगा और वितरण की सीमा महत्वपूर्ण नहीं है।

अंत में, आपके पास पुराने डेटा सेट के समान गुणों के साथ डेटा का पूरी तरह से अलग सेट होना चाहिए।


1
आपका क्या मतलब है "समान गुणों के साथ"? बहुत कम से कम, variances और covariances अलग-अलग होंगे। यदि आप चर के बीच संबंधों में रुचि रखते हैं, तो यह वास्तव में महत्वपूर्ण है।
चार्ली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.