डेटा से वितरण का अनुमान लगाना


12

मेरे पास डेटा का एक नमूना Rहै rnorm(50,0,1), जिससे डेटा स्पष्ट रूप से एक सामान्य वितरण पर ले जाता है। हालाँकि, Rडेटा के बारे में इस वितरण संबंधी जानकारी को "नहीं" जानता है।

क्या इसमें कोई विधि है Rजिससे यह अनुमान लगाया जा सकता है कि मेरा नमूना किस प्रकार के वितरण से आता है? यदि नहीं, तो मैं shapiro.testफ़ंक्शन का उपयोग करूंगा और इस तरह आगे बढ़ूंगा।


मुझे यकीन नहीं है कि मैं इस सवाल के जवाब को पहचान सकता हूं। यह सच है कि यदि आपके पास R में संख्याओं का वेक्टर है, तो इसके साथ बहुत अधिक मेटाडेटा संबद्ध नहीं है, लेकिन यह आपको परेशान क्यों करेगा? आपको इसकी आवश्यकता क्यों होगी / आप इसके साथ क्या करना चाहेंगे? मान लीजिए कि यह ऐसा था, यह केवल उस सीमा तक उपयोगी होगा, जब आप उस वेक्टर को एक फ़ंक्शन के साथ पास करने के लिए विशिष्ट तरीकों के साथ गाऊसी डेटा बनाम अन्य। मुझे किसी का भी पता नहीं है (हालाँकि मैं दुनिया का सबसे विशेषज्ञ आर उपयोगकर्ता हूँ)।
गूँज - मोनिका

यदि आप केवल यह परीक्षण करना चाहते हैं कि क्या कोई दिया गया नमूना सामान्य लगता है, तो शापिरो-विल्क परीक्षण एक सभ्य विकल्प है (हालांकि यह प्रश्न और वहां दिए गए उत्तर पढ़ने के लिए आपके लायक है )। मैं देख सकता हूं कि सिमुलेशन अध्ययन में यह कैसे हो सकता है, लेकिन अध्ययन के बारे में अधिक जानकारी के बिना, एक उपयोगी उत्तर देना मुश्किल है।
गूँज - मोनिका

आपको डेटा के लिए वितरण की पहचान करने की आवश्यकता क्यों है? स्वचालित वितरण विकल्प अक्सर एक आकर्षक विचार होता है, लेकिन यह इसे एक अच्छा विचार नहीं बनाता है।
Glen_b -Reinstate मोनिका

जवाबों:


21

नहीं है fitdistrमें समारोह मास पैकेज या में कार्यों में से कुछ fitdistrplus पैकेज । यहाँ कुछ उदाहरण बाद के हैं।

require(fitdistrplus)

set.seed(1)
dat <- rnorm(50,0,1)
f1 <- fitdist(dat,"norm")
f2 <- fitdist(dat,"logis")
f3 <- fitdist(dat,"cauchy")

उदाहरण के लिए

> f1
Fitting of the distribution ' norm ' by maximum likelihood 
Parameters:
      estimate Std. Error
mean 0.1004483 0.11639515
sd   0.8230380 0.08230325

और आप के साथ भूखंडों को देख सकते हैं

plotdist(dat,"norm",para=list(mean=f1$estimate[1],sd=f1$estimate[2]))
plotdist(dat,"logis",para=list(location=f2$estimate[1],scale=f2$estimate[2]))
plotdist(dat,"cauchy",para=list(location=f3$estimate[1],scale=f3$estimate[2]))

इसलिए यह सामान्य वितरण के रूप में प्रशंसनीय है

यहाँ छवि विवरण दर्ज करें

लेकिन शायद एक रसद वितरण के रूप में (आपको पूंछ में उन्हें अलग करने के लिए एक बड़े नमूने की आवश्यकता होगी)

यहाँ छवि विवरण दर्ज करें

हालांकि qqplot के साथ और CDF को देखकर आप बता सकते हैं कि यह शायद कॉची वितरण नहीं है

यहाँ छवि विवरण दर्ज करें


1
एक सुंदर अवलोकन के लिए धन्यवाद हेनरी। मुझसे पूछा गया है कि क्या कोई पैकेज है जो डेटा में लेता है और बाहर थूक देता है जो वितरण (और पैरामीटर) सबसे अच्छा थूकते हैं। क्या आप किसी भी पैकेज में ऐसी किसी भी कार्यक्षमता के बारे में जानते हैं?
रोमन लुसट्रिक

3
fitdistमापदंडों का अनुमान प्रदान करता है। कुछ संकेत ऐसे हैं जो वितरण कार्यों से हो सकते हैं जैसे कि descdist(dat, boot = 1000)लेकिन वे भी एक बड़े नमूने से लाभान्वित होंगे।
हेनरी

इनमें से कोई भी कार्य आपके अंतिम प्रश्न में आपके द्वारा प्रस्तुत की गई समस्या को हल नहीं करेगा जब नमूना प्रतिनिधि नहीं है।
जॉन

1
@ कोट कैसर: मुझे ऐसा नहीं लगता। fitdist()fitdistrplus पैकेज में एक फ़ंक्शन है, और यह वही है जो मैं उपयोग कर रहा था। इस बीच fitdistr()MASS पैकेज में एक फ़ंक्शन है, और इस रूप में यहां काम नहीं करेगा।
हेनरी

1
मेरे पास टिप्पणी के रूप में इसे जोड़ने के लिए पर्याप्त बिंदु नहीं हैं, लेकिन ऊपर दिए गए धागे में दी गई जानकारी के लिए एक अतिरिक्त नोट के रूप में, यह संभव है plot(f1)कि आप अधिक plotdist(dat,"norm",para=list(mean=f1$estimate[1],sd=f1$estimate[2]))
दृढ़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.