आर

2009-09-14 10 views
6

के साथ एक घनत्व वस्तु से स्टोकेस्टिक यादृच्छिक भटक उत्पन्न मैं एक घनत्व वस्तु इस तरह बनाया dd है:आर

x1 <- rnorm(1000) 
x2 <- rnorm(1000, 3, 2) 
x <- rbind(x1, x2) 
dd <- density(x) 
plot(dd) 

कौन सा यह बहुत ही गैर गाऊसी वितरण का उत्पादन:

alt text http://www.cerebralmastication.com/wp-content/uploads/2009/09/nongaus.png

मैं करूंगा आखिरकार इस वितरण से यादृच्छिक विचलन प्राप्त करना पसंद है जैसे कि सामान्य वितरण से कैसे नाराज हो जाता है।

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

ऐसा लगता है कि मैं जो करने की कोशिश कर रहा हूं वह कुछ बुनियादी होना चाहिए जो दूसरों ने मेरे सामने किया है। क्या ऐसा करने का कोई आसान तरीका या सरल कार्य है? मैं पहिया reinventing से नफरत है।

FWIW मुझे this R Help article मिला लेकिन मैं जो भी कर रहा हूं उसे मैं नहीं समझ सकता और अंतिम आउटपुट जो मैं कर रहा हूं, वह प्रतीत नहीं होता है। लेकिन यह एक कदम हो सकता है जिस तरह से मैं समझ में नहीं आता।

मैंने अभी Johnson distribution from the suppdists package के साथ जाने पर विचार किया है लेकिन जॉनसन मुझे मेरे बिडोडल कूल्हे को नहीं दे पाएगा जो मेरे डेटा में है।

+0

अधिक मैं आँकड़े पता है। मैं किसी दिए गए भाषा में आंकड़े विधि को कार्यान्वित करना चाहता हूं। वह प्रोग्रामिंग है। –

+0

की

sample(x, n, replace = TRUE) 

उत्तर

2

यह सिर्फ मानकों का मिश्रण है। तो क्यों कुछ नहीं:

rmnorm <- function(n,mean, sd,prob) { 
    nmix <- length(mean) 
    if (length(sd)!=nmix) stop("lengths should be the same.") 
    y <- sample(1:nmix,n,prob=prob, replace=TRUE) 
    mean.mix <- mean[y] 
    sd.mix <- sd[y] 
    rnorm(n,mean.mix,sd.mix) 
} 
plot(density(rmnorm(10000,mean=c(0,3), sd=c(1,2), prob=c(.5,.5)))) 

यह ठीक होना चाहिए यदि आपको केवल इस मिश्रण वितरण से नमूने हैं।

+0

मुझे यह विचार पसंद है! लेकिन मेरा उदाहरण चित्रकारी उद्देश्यों के लिए अतिसंवेदनशील है। हकीकत में मुझे दो तरीकों को नहीं पता है और इसमें केवल एक मोड और एक लंबी गधे पूंछ हो सकती है (यानी लेप्टोकर्टोसिस)। लेकिन मुझे आपका उदाहरण पसंद है। मैं प्रोग्राम के रूप में संक्षेप में प्रोग्राम नहीं किया जा सका। बीटीडब्लू, मुझे विश्वास है कि एसी गायब हैं: साजिश (घनत्व (आरएमएनओआरएम (10000, माध्य = सी (0,3), एसडी = सी (1,2), प्रो = सी (.5, .5))) –

+0

@ जेडी लांग: टाइपो को स्पॉट करने के लिए धन्यवाद। –

+1

यही कारण है कि आप हैडली का जवाब चाहते हैं - इसे फिर से बदलना है। याद रखें कि आपकी घनत्व साजिश/अनुमान है/यह आपके स्मूथिंग पैरामीटर पर भी निर्भर करता है। –

9

वैकल्पिक दृष्टिकोण:

प्रोग्रामिंग की तुलना में एक आँकड़े सवाल ...
+1

बूटस्ट्रैपिंग ftw! –

+0

हाँ, मैं यह सोच रहा हूं। अगर मैं सामान्य से एक ड्रॉ नमूना करता हूं तो मुझे अपनी पूंछों को मोटा होना चाहिए उसी तरह कर्नेल, ठीक है? मान लीजिए कि मैं कर्नेलिंग विधि के समान ही सामान्य हूं। –

+2

हां, घनत्व अनुमान से शून्य माध्य और एसडी = बैंडविड्थ के साथ सामान्य आरवी जोड़ें: नमूना (x, n, replace = TRUE) + rnorm (n, 0, sd = 0.4214) इस तरह सिम्युलेटिंग पर सिल्वरमैन की 1 9 86 की पुस्तक पर चर्चा की गई है घनत्व अनुमान। –