2012-07-19 10 views
6

के बीच अलग-अलग यादृच्छिक संख्या पीढ़ी क्या किसी को परिस्थितियों के साथ कोई अनुभव है जहां set.seed ऑपरेटिंग सिस्टम (ओएस) के आधार पर अलग-अलग परिणाम देता है। मुझे याद है कि आर पर एक कक्षा में इसी तरह की स्थिति में आ रहा है, जहां कुछ लोग शुरुआती बीज को उसी मूल्य पर सेट करने के बावजूद आरएनओआर का उपयोग करके विभिन्न यादृच्छिक अनुक्रम उत्पन्न कर रहे थे। अब, मैं खुद को एक कोर्स दे रहा हूं और rnorm के साथ एक ही मुद्दे में नहीं चला है; ओएस के बावजूद मेरे सभी छात्रों को एक ही अनुक्रम मिलता है। दिलचस्प बात यह है कि MASS पैकेज के mvrnorm फ़ंक्शन के साथ एक ही समस्या मौजूद है।ओएस

किसी भी अंतर्दृष्टि बहुत सराहना की जाएगी - मार्क

यह उदाहरण: मेरे विंडोज 7 ओएस 64-बिट आर 2.14.1 .:

> df 
      a  b 
1 8.318573 7.448164 
2 9.309468 5.719628 
3 14.676125 5.801543 
4 10.211525 5.221365 
5 10.387863 3.888318 
6 15.145195 8.573826 
7 11.382749 5.995701 
8 6.204816 1.066766 
9 7.939441 6.402712 
10 8.663014 4.054417 
> C 
     a  b 
a 8.187336 3.431373 
b 3.431373 4.310385 
> M 
       a  b 
[1,] 13.270535 6.158603 
[2,] 10.375011 5.737871 
[3,] 13.514105 5.476411 
[4,] 12.681956 5.020646 
[5,] 12.352333 4.927746 
[6,] 15.177508 6.810387 
[7,] 8.114377 2.925225 
[8,] 9.529744 4.834451 
[9,] 12.903550 7.232715 
[10,] 6.251907 3.481789 

के संस्करण के

require(MASS) 
set.seed(123) 
a <- rnorm(10, mean=10, sd=3) 
b <- rnorm(10, mean=5, sd=2) 
df <- data.frame(a,b) 
C <- cov(df) 
M <- mvrnorm(n=10, c(10,5), C) 

df 
C 
M 

पैदावार संपादित करें: यह जानना सहायक हो सकता है कि क्या कोई इन परिणामों को नहीं प्राप्त कर रहा है और आर के ओएस या संस्करणों का क्या उपयोग किया गया था।

+0

क्या आप सभी आर और/या एक ही आरएनजीकिंड के समान संस्करण का उपयोग कर रहे थे? – Dason

+0

@Dason - नहीं, मुझे ऐसा नहीं लगता है। कुछ मामलों में, उनके पास आर से नए संस्करण हो सकते हैं। लेकिन मुझे लगता है कि छात्रों के बीच भी, वे अलग-अलग परिणाम प्राप्त कर रहे थे और ओएस एक संभावित आम संप्रदाय की तरह लग रहा था। –

+1

नहीं, इसकी नहीं। आर स्वयं को आरएनजी उत्पन्न करता है, और एकमात्र संभावित अंतर शायद मैट्रिक्स अपघटन की आवश्यकता हो सकती है यदि आप 'mvrnorm' करते हैं - और यह LAPACK/BLAS पुस्तकालयों के कारण हो सकता है। यदि आप केवल अनुक्रमिक वैक्टर आकर्षित करते हैं, तो मुझे पूरा यकीन है कि आपको वही संख्या मिल जाएगी। आर इन चीजों पर ध्यान देता है। –

उत्तर

0

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

+3

संभवतया 'आरएम (सूची = एलएस (all.names = TRUE))' आर सत्र खोलने पर पहली बात 'चलाएं, अगर पहले से सहेजे गए वर्कस्पेस से 'Random.seed' झूठ बोल रहा है। –