2010-10-26 20 views
8

यादृच्छिक रूप से जेनरेट किए गए डेटा की एक श्रृंखला को देखते हुए मैं यह कैसे समझ सकता हूं कि वास्तव में यह कितना यादृच्छिक है? आर-लैंग इस matlab के लिए एक अच्छा उपकरण है? इन उपकरणों को यादृच्छिक रूप से जेनरेट किए गए डेटा के बारे में अन्य प्रश्न क्या हो सकते हैं? क्या इसके लिए कोई और उपकरण बेहतर है?यादृच्छिक संख्या विश्लेषण

+7

Obligatory: http://www.random.org/analysis/dilbert.jpg –

+1

भागो --- एक पुस्तक के किनारे पर नहीं चलें --- नूथ की कला प्रोग्रामिंग की कला, वॉल्यूम II, सेमी-न्यूमेरिकल खरीदें एल्गोरिदम। जब तक आप इसे पढ़ नहीं लेते, आप सिर्फ अंधेरे उड़ रहे हैं। –

+3

अनिवार्य: http://xkcd.com/221/ – CanSpice

उत्तर

10

DieHarder test battery रॉबर्ट जी ब्राउन --- जो reimplements और Marsaglia एट अल द्वारा वर्ष कट्टर फैली द्वारा - आर पैकेज RDieHarder जो आप के साथ शुरू कर सकता है में लपेटा गया है।

ध्यान दें कि RDieHarder संस्करणों को उनके विशेष मिलान DieHarder रिलीज़ की आवश्यकता है - और हम अभी तक बाद के सबसे हाल के विकास संस्करण के लिए नहीं हैं।

संपादित इसके अलावा, cryptographioic परीक्षणों के उप समूह के लिए, NIST सूट (जो DieHarder में शामिल है) उपयुक्त होना चाहिए के रूप में है कि क्या इसके लिए डिजाइन किया गया था।

3

मैं Chapter 10Beautiful Testing पढ़ने की अनुशंसा करता हूं: एक यादृच्छिक संख्या जनरेटर का परीक्षण करना। यह विषय पर अधिकांश ग्रंथों की तुलना में थोड़ा अधिक पहुंच योग्य है। शायद, अगर हम अच्छे हैं, तो उस अध्याय के लेखक, जॉन कुक, रुक सकते हैं और अपना इनपुट दे सकते हैं।

+2

जेडी: मैंने उस अध्याय के लिए एक लिंक जोड़ा। –

4
विकिपीडिया के अनुसार

(Randomness):

केंद्रीय विचार है कि बिट्स की एक स्ट्रिंग यादृच्छिक है यदि और केवल यदि यह किसी भी कंप्यूटर प्रोग्राम है जो कि स्ट्रिंग उत्पादन कर सकते हैं की तुलना में कम है है (Kolmogorov यादृच्छिकता) - इसका मतलब है कि यादृच्छिक स्ट्रिंग वे हैं जो संपीड़ित नहीं हो सकते हैं।

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

1

सिद्धांत के लिए, नुथ द्वारा उपर्युक्त संदर्भ उपयोगी है और एमरो की प्रतिक्रिया को जोड़ने के लिए, ली & विटानई द्वारा काम किया गया है जो यहां से संबंधित है। link text

+0

Cilibrasi ने इन पंक्तियों पर विचारों को लागू करने से संबंधित कुछ काम किया, हालांकि कोड एक सीधा आर/MATLAB पैकेज/टूलबॉक्स नहीं है। –

5

सबसे पहले आपको यह तय करने की आवश्यकता है कि आप किस प्रकार की यादृच्छिकता का परीक्षण कर रहे हैं। क्या आपको कुछ सीमा के भीतर एक समान वितरण दिमाग है? आमतौर पर लोगों को दिमाग में क्या होता है, हालांकि आपके पास सामान्य वितरण जैसे यादृच्छिकता का कुछ और स्वाद हो सकता है।

एक बार आपके पास उम्मीदवार वितरण हो जाने के बाद, आप उस वितरण के लिए उपयुक्तता की भलाई का परीक्षण कर सकते हैं। कोल्मोगोरोव-स्मरनोव परीक्षण एक अच्छा सामान्य उद्देश्य परीक्षण है। मेरा मानना ​​है कि इसे आर में ks.test कहा जाता है लेकिन मुझे यह भी विश्वास है कि यह अलग-अलग मान मानता है, इसलिए यदि आप एक छोटी सी मानों से नमूना ले रहे हैं तो एक समस्या हो सकती है, जो एक ही मान एक से अधिक बार प्रकट होता है।

एस लॉट ने टिप्पणियों में Knuth के Seminumerical Algorithms का उल्लेख किया। उस पुस्तक में ची-स्क्वायर टेस्ट और फिटम की भलाई के लिए कोल्मोगोरोव-स्मरनोव परीक्षणों के लिए एक अच्छा परिचय है।

यदि आपको संदेह है कि आपके पास समान यादृच्छिक मूल्य हैं, तो डिशर्ड परीक्षण जो कि डिर्क एडडेलबेटेल का उल्लेख है, एक मानक परीक्षण है।

+0

वैसे मैंने उल्लेख किया है * डाइहार्डर * जो डायहार्ड से अलग है, जो इसे डीआईएचएआरएड में नहीं मिले परीक्षणों के गुच्छा के साथ बढ़ाता है और विस्तार करता है, जिनमें से कुछ एनआईएसटी और कुछ रॉबर्ट और सहयोगियों ने काम किया है। –

+0

क्षमा करें, मुझे याद आया। मुझे ब्रूस विलिस फिल्म एल्यूशन पसंद है। :) –

+0

यूप। रॉबर्ट एक मजेदार आदमी है। –

संबंधित मुद्दे