मेरा काम बीटा डिस्ट्रीब्यूशन से 100 रैंडम जेनरेटेड नंबर बनाना है और क्वांटाइल प्लॉट का उपयोग करके उस रैंडम वैरिएबल की बीटा डिस्ट्रीब्यूशन से तुलना करना है।
यह मेरा प्रयास है:

library(MASS)
library(qualityTools)
Random_Numbers_Beta <- rbeta(100, 1, 1)
qqPlot(Random_Numbers_Beta, "beta", list(shape = 1, rate = 1))

दुर्भाग्य से कुछ गलत है। यह एक त्रुटि है जो होती है:

Error in (function (x, densfun, start, ...)  : 
'start' must be a named list

क्या उस मुद्दे पर कुछ किया जा सकता है?

r
2
Hendrra 11 नवम्बर 2018, 01:09

1 उत्तर

सबसे बढ़िया उत्तर

सबसे पहले, आपको यह निर्दिष्ट करना होगा कि list(shape = 1, rate = 1) start पैरामीटर है; अभी इस सूची को confbounds पैरामीटर के मान के रूप में माना जा रहा है। दूसरा, यह वास्तव में shape और rate नहीं है, बल्कि shape1 और shape2 है, जैसे, ?dbeta

qqPlot(Random_Numbers_Beta, "beta", start = list(shape1 = 1, shape2 = 1))

enter image description here

फिर से ?qqPlot का निरीक्षण करने पर आप देख सकते हैं कि ... "आगे ग्राफिकल पैरामीटर्स के लिए है: (पैरा देखें)।" इसलिए, आप अपनी पसंद के अनुसार प्लॉट को संशोधित कर सकते हैं; जैसे, col = 'red' जोड़ना।

यह भी ध्यान दें कि बीटा (1,1) केवल [0,1] पर समान वितरण है और इसलिए, इसका मात्रात्मक कार्य पहचान कार्य है। अर्थात्, [0,1] में किसी भी x के लिए qbeta(x, 1, 1) == x। तो, आप सीधे के साथ भी काम कर सकते हैं

x <- seq(0, 1, length = 500)
plot(quantile(Random_Numbers_Beta, x), x)
abline(a = 0, b = 1, col = 'red')

enter image description here

यदि आपको विश्वास सीमा की आवश्यकता नहीं है।


हालाँकि, यह देखा जा सकता है कि दोनों भूखंड थोड़े अलग हैं। आपके कार्य को देखते हुए, ऐसा प्रतीत होगा कि आपको दूसरे की आवश्यकता है।

पहले वाले में, ऐसा लगता है कि qqPlot आपके डेटा के लिए बीटा वितरण में फिट बैठता है और इसकी मात्रा का उपयोग करता है, जो स्पष्ट रूप से पहचान फ़ंक्शन नहीं है। यही है, यह मापदंडों के बारे में सटीक ज्ञान का उपयोग नहीं करता है। दूसरा कथानक इस ज्ञान का उपयोग करता है।

3
Julius Vainora 10 नवम्बर 2018, 22:40