डेटा सेट दिए गए संभावना वितरण को स्वचालित रूप से निर्धारित करें


12

एक डेटासेट दिया:

x <- c(4.9958942,5.9730174,9.8642732,11.5609671,10.1178216,6.6279774,9.2441754,9.9419299,13.4710469,6.0601435,8.2095239,7.9456672,12.7039825,7.4197810,9.5928275,8.2267352,2.8314614,11.5653497,6.0828073,11.3926117,10.5403929,14.9751607,11.7647580,8.2867261,10.0291522,7.7132033,6.3337642,14.6066222,11.3436587,11.2717791,10.8818323,8.0320657,6.7354041,9.1871676,13.4381778,7.4353197,8.9210043,10.2010750,11.9442048,11.0081195,4.3369520,13.2562675,15.9945674,8.7528248,14.4948086,14.3577443,6.7438382,9.1434984,15.4599419,13.1424011,7.0481925,7.4823108,10.5743730,6.4166006,11.8225244,8.9388744,10.3698150,10.3965596,13.5226492,16.0069239,6.1139247,11.0838351,9.1659242,7.9896031,10.7282936,14.2666492,13.6478802,10.6248561,15.3834373,11.5096033,14.5806570,10.7648690,5.3407430,7.7535042,7.1942866,9.8867927,12.7413156,10.8127809,8.1726772,8.3965665)

.. मैं मापदंडों के एक अनुमान के साथ सबसे उपयुक्त संभावना वितरण (गामा, बीटा, सामान्य, घातीय, पॉइसन, ची-स्क्वायर, आदि) निर्धारित करना चाहूंगा। मैं निम्नलिखित लिंक पर प्रश्न के बारे में पहले से ही जानता हूं, जहां R: /programming/2661402/given-a-set-of-random-nload-drawn-from-a- का उपयोग करके एक समाधान प्रदान किया गया है। निरंतर-अविभाज्य-वितरण-च सबसे अच्छा प्रस्तावित समाधान निम्नलिखित है:

> library(MASS)
> fitdistr(x, 't')$loglik                                                              #$
> fitdistr(x, 'normal')$loglik                                                         #$
> fitdistr(x, 'logistic')$loglik                                                       #$
> fitdistr(x, 'weibull')$loglik                                                        #$
> fitdistr(x, 'gamma')$loglik                                                          #$
> fitdistr(x, 'lognormal')$loglik                                                      #$
> fitdistr(x, 'exponential')$loglik                                                    #$

और सबसे छोटे लॉगलिक मान के साथ वितरण का चयन किया जाता है। हालांकि, बीटा डिस्ट्रीब्यूशन जैसे अन्य डिस्ट्रिब्यूशन के लिए फ़िडड्रेसर () फ़ंक्शन में कुछ अतिरिक्त मापदंडों के विनिर्देश की आवश्यकता होती है:

   fitdistr(x, 'beta', list(shape1 = some value, shape2= some value)).

यह देखते हुए कि मैं बिना किसी पूर्व सूचना के सर्वोत्तम वितरण का निर्धारण करने की कोशिश कर रहा हूं, मुझे नहीं पता कि प्रत्येक वितरण के लिए मापदंडों का मूल्य क्या हो सकता है। क्या कोई और उपाय है जो इस आवश्यकता को ध्यान में रखता है? यह R में होना जरूरी नहीं है।

जवाबों:


18

आप वितरण के अनंत के बारे में क्या करते हैं जो सूची में नहीं हैं?

जब आपकी सूची में कोई भी पर्याप्त रूप से फिट नहीं होता है तो आप क्या करते हैं ? उदाहरण के लिए यदि आपका वितरण जोरदार है

आप इस तथ्य से कैसे निपटेंगे कि घातांक गामा का एक विशेष मामला है, और इस तरह, गामा को हमेशा डेटा के किसी भी सेट को बेहतर ढंग से फिट करना चाहिए, क्योंकि इसमें एक अतिरिक्त पैरामीटर है, और इसलिए एक बेहतर संभावना होनी चाहिए। ?

आप इस तथ्य से कैसे निपटते हैं कि संभावना केवल एक गुणक स्थिरांक तक परिभाषित की जाती है और यह कि विभिन्न वितरणों की संभावना तब तक तुलनीय नहीं हो सकती जब तक कि लगातार परिभाषित न की जाए?

ऐसा नहीं है कि ये आवश्यक रूप से अघुलनशील हैं, लेकिन इस सामान को समझदार तरीके से करना अप्रभावी है; निश्चित रूप से एक MLE की गणना और संभावना की तुलना के माध्यम से सब कुछ बस करने की तुलना में अधिक विचार की आवश्यकता है।


3
मैं केवल सूची में वितरण के लिए परवाह करता हूं, और यदि वितरण में से कोई भी फिट नहीं होता है, तो मैं अगले उस समस्या से निपटूंगा। लेकिन अब उस मुकाम तक पहुंचना मेरे लिए काफी अच्छा है। गामा वितरण के संबंध में अंतिम प्रश्न के लिए, हां यह कुछ पैरामीटर के साथ बेहतर रूप से फिट हो सकता है, मेरा प्रश्न इस बारे में बिल्कुल है, क्या कोई एल्गोरिथ्म है जो मुझे सूची में अलग-अलग वितरणों के लिए अलग-अलग पैरामीटर मानों के माध्यम से लूप करने की अनुमति देता है? और उपयुक्त पैरामेटर्स के साथ सबसे उपयुक्त वितरण लौटाएं?

1
खैर, हाँ और नहीं। आप गणना करने के लिए "योग्यता का आंकड़ा" के साथ आ सकते हैं कि कौन सा पैरामीटर सेट आपको सबसे अच्छा फिट देता है, और योग्यता के आंकड़े के मूल्य को अनुकूलित करने के लिए "हिल-क्लाइम्ब" लूप लिखता है। एफओएम का एक उदाहरण प्रतिगमन फिट के लिए आर-मूल्य है।
कार्ल विटथॉफ्ट

मैं इस +1 की सदस्यता लेता हूं।

4
@shachem आप गामा के बारे में बात करने से चूक गए। अतिरिक्त मापदंडों के साथ वितरण में हमेशा बेहतर संभावना होगी, तब भी जब डेटा कम मापदंडों के साथ वितरण से आता है । आपको इस पर विचार करने की आवश्यकता है। फिट के कुछ उपाय इस प्रभाव के लिए समायोजित करते हैं। सच कहूं तो, मुझे लगता है कि आप जिस चीज़ को करने की कोशिश कर रहे हैं, वह संभवत: 'गलत सवाल का जवाब दे रही है', कुछ इस तरह पूछना 'मैं कैसे पता
लगाऊं कि इनमें से कौन सा हथौडा

1
यदि "संभावना केवल एक गुणक स्थिरांक तक परिभाषित की गई है," ग्लेन, तो कोई आपके कथन को कैसे समझ सकता है कि "अतिरिक्त मापदंडों के साथ वितरण में हमेशा एक बेहतर संभावना होगी"? वास्तव में, कोई संभावित रूप से तुलना कैसे कर सकता है जो इतने बीमार हैं? मैं कुछ महत्वपूर्ण विचार अनकहा छोड़ दिया गया है पर शक ...
whuber

3

मुझे एक फंक्शन मिला है, जो मैटलैब का उपयोग करके मेरे प्रश्न का उत्तर देता है। यह इस लिंक पर पाया जा सकता है: http://www.mathworks.com/matlabcentral/fileexchange/34943

मैं इनपुट के रूप में एक डेटा वेक्टर लेता हूं

   allfitdist(data)

और सबसे अच्छी फिटिंग वितरण के लिए निम्नलिखित जानकारी देता है:

   DistName- the name of the distribution
   NLogL - Negative of the log likelihood
   BIC - Bayesian information criterion (default)
   AIC - Akaike information criterion
   AICc - AIC with a correction for finite sample sizes 
   ParamNames
   ParamDescription
   Params
   etc.

1
ठीक है, अब आपको केवल एम-फाइल को आर-फाइल में पोर्ट करना है। :-)
कार्ल विट्ठॉफ्ट

भी नहीं! जैसा कि मैंने उल्लेख किया था कि इसे एक आर-फाइल होने की आवश्यकता नहीं है, इसलिए matlab फ़ंक्शन पूरी तरह से मेरी समस्या का हल करता है :-)

AIC, BIC, AICc, आदि निर्णय लेने का एक तरीका हो सकता है, लेकिन क्या यह समझ में आता है कि आप क्या करने की कोशिश कर रहे हैं। उदाहरण के लिए, यदि कोई वितरण लॉग L के संदर्भ में वास्तव में दूसरों के करीब है तो आप क्या करते हैं? यदि आप जो करने की कोशिश कर रहे हैं वह भविष्यवाणी करना है, तो आमतौर पर उन मॉडलों की अनदेखी करना जो आपकी कसौटी के करीब हैं, केवल त्याग नहीं किया जाना चाहिए। ईजी मॉडल-औसत उन्हें खाते में लेने का एक तरीका है।
ब्योर्न
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.