आर में स्केलिंग टी-वितरण: स्केलिंग पैरामीटर


17

मैं एक टी-वितरण के मापदंडों को कैसे फिट कर सकता हूं, अर्थात सामान्य वितरण के 'औसत' और 'मानक विचलन' के अनुरूप पैरामीटर। मुझे लगता है कि उन्हें टी-वितरण के लिए 'माध्य' और 'स्केलिंग / डिग्री ऑफ फ्रीडम' कहा जाता है?

निम्न कोड में अक्सर 'अनुकूलन विफल' त्रुटियों का परिणाम होता है।

library(MASS)
fitdistr(x, "t")

क्या मुझे पहले x को स्केल करना होगा या संभावनाओं में बदलना होगा? कैसे सबसे अच्छा है?


2
यह विफल रहता है क्योंकि आपको मापदंडों को स्केल करना पड़ता है, लेकिन क्योंकि ऑप्टिमाइज़र विफल हो जाता है। नीचे मेरा जवाब देखें।
सर्गेई बुशमैनोव

जवाबों:


16

fitdistrकिसी दिए गए वितरण के मापदंडों को खोजने के लिए अधिकतम संभावना और अनुकूलन तकनीकों का उपयोग करता है। कभी-कभी, विशेष रूप से टी-वितरण के लिए, जैसा कि @ user12719 ने देखा, फॉर्म में अनुकूलन:

fitdistr(x, "t")

एक त्रुटि के साथ विफल रहता है।

इस मामले में आपको ऑप्टिमाइज़र को शुरुआती बिंदु प्रदान करके एक हाथ देना चाहिए और इष्टतम मापदंडों की खोज शुरू करने के लिए कम बाध्य होना चाहिए:

fitdistr(x, "t", start = list(m=mean(x),s=sd(x), df=3), lower=c(-1, 0.001,1))

ध्यान दें, df=3क्या "इष्टतम" dfहो सकता है पर आपका सबसे अच्छा अनुमान है। यह अतिरिक्त जानकारी प्रदान करने के बाद आपकी त्रुटि दूर हो जाएगी।

बेहतर मैकेनिक को समझने में आपकी मदद करने के लिए कुछ अंश fitdistr:

नॉर्मल के लिए, लॉग-नॉर्मल, जियोमेट्रिक, एक्सपोनेंशियल और पॉइसन क्लोज-फॉर्म MLEs (और सटीक मानक त्रुटियों) का उपयोग करते हैं, और startआपूर्ति नहीं की जानी चाहिए।

...

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


1
दोनों उत्तर (फ्लोम और बुशमैनोव) मददगार हैं। मैं इसे चुन रहा हूं, क्योंकि यह अधिक स्पष्ट करता है कि सही प्रारंभिक मानों और बाधाओं के साथ 'फिटडिसर' अनुकूलन रूपांतरण करता है।
user12719

10

νt distribution अधिकतम संभावना (कुछ साहित्य संदर्भों के साथ: Lange et al।) (1989), "रोबोट सांख्यिकीय मॉडलिंग का उपयोग कर। टी डिस्ट्रीब्यूशन ", जेएएसए , 84 , 408 , और फर्नांडीज एंड स्टील (1999)," मल्टीवेरिएट स्टूडेंट- टी रिग्रेशन मॉडल: नुकसान और अनुमान ", बायोमेट्रिक , 86 , 1 )।

कारण यह है कि लिए संभावना समारोहνt

set.seed(1234)
n <- 10
x <- rt(n,  df=2.5)

make_loglik  <-  function(x)
    Vectorize( function(nu) sum(dt(x, df=nu,  log=TRUE)) )

loglik  <-  make_loglik(x)
plot(loglik,  from=1,  to=100,  main="loglikelihood function for df     parameter", xlab="degrees of freedom")
abline(v=2.5,  col="red2")

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

n

आइए हम कुछ सिमुलेशन की कोशिश करें:

t_nu_mle  <-  function(x) {
    loglik  <-  make_loglik(x)
    res  <-  optimize(loglik, interval=c(0.01, 200), maximum=TRUE)$maximum
    res   
}

nus  <-  replicate(1000, {x <- rt(10, df=2.5)
    t_nu_mle(x) }, simplify=TRUE)

> mean(nus)
[1] 45.20767
> sd(nus)
[1] 78.77813

अनुमान दिखाना बहुत अस्थिर है (हिस्टोग्राम को देखते हुए, अनुमानित मूल्यों का एक बड़ा हिस्सा 200 के अनुकूलन के लिए दी गई ऊपरी सीमा पर है)।

बड़े नमूने के आकार के साथ दोहराना:

nus  <-  replicate(1000, {x <- rt(50, df=2.5)
    t_nu_mle(x) }, simplify=TRUE)
> mean(nus)
[1] 4.342724
> sd(nus)
[1] 14.40137

जो बहुत बेहतर है, लेकिन माध्य अभी भी 2.5 के वास्तविक मूल्य से ऊपर है।

फिर याद रखें कि यह वास्तविक समस्या का एक सरलीकृत संस्करण है जहां स्थान और पैमाने के मापदंडों का भी अनुमान लगाया जाना है।

tν डेटा से मजबूती को नष्ट कर सकता है।


5
आपका निष्कर्ष कि df का अनुमान लगाने की समस्या वास्तव में पहली जगह (यानी मजबूती) में टी-वितरण का चयन करने के कारण के खिलाफ काम कर सकती है।
user12719 20

1
(+1) "ऊपर दिया गया" एक गलत उत्तर नहीं है और कुछ प्रयोजनों के लिए उपयोगी हो सकता है जब एक अंतराल अनुमान के साथ युग्मित किया जाता है। महत्वपूर्ण बात यह है कि वाल्ड विश्वास अंतराल बनाने के लिए मनाया गया फिशर जानकारी का आँख बंद करके उपयोग नहीं करना है।
स्कॉर्टी - मोनिका

8

फिटडिसर की मदद में यह उदाहरण है:

fitdistr(x2, "t", df = 9)

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

अधिक नियंत्रण के लिए, वे भी दिखाते हैं

mydt <- function(x, m, s, df) dt((x-m)/s, df)/s
fitdistr(x2, mydt, list(m = 0, s = 1), df = 9, lower = c(-Inf, 0))

जहां पैरामीटर एम = माध्य होगा, एस = मानक विचलन, डीएफ = स्वतंत्रता की डिग्री


1
मुझे लगता है कि मैं एक टी-वितरण के मापदंडों के बारे में उलझन में हूं। क्या इसके 2 (माध्य, df) या 3 (माध्य, मानक विचलन, df) पैरामीटर हैं? मैं सोच रहा था कि क्या कोई 'df' पैरामीटर फिट कर सकता है।
user12719

1
@ user12719 छात्र के वितरण में तीन पैरामीटर हैं: स्थान, पैमाने और स्वतंत्रता की डिग्री। उन्हें माध्य, मानक विचलन और df के रूप में संदर्भित नहीं किया जाता है क्योंकि इस वितरण का माध्य और विचरण तीन मापदंडों पर निर्भर करता है। इसके अलावा, वे कुछ मामलों में मौजूद नहीं हैं। पीटर फ्लोम डीएफ को ठीक कर रहा है लेकिन इसे एक अज्ञात पैरामीटर के रूप में भी माना जा सकता है।

1
@PeterFlom कॉची वितरण के मामले में यह स्पष्ट है कि मी और एस स्थान और पैमाने हैं। मैं इस बात से सहमत हूँ कि एम और एस सुझाव देते हैं कि वे क्रमशः औसत और मानक विचलन का प्रतिनिधित्व करते हैं। लेकिन यह सिर्फ \muऔर \sigmaसाथ ही एक सरलीकरण हो सकता है । +1 बहुत पहले, वैसे।

1
@PeterFlom R की मदद फ़ाइल से यह उद्धरण देता है कि df छात्रों के वितरण के लिए हमेशा 9 है? क्या आपको नहीं लगता कि df का भी अनुमान लगाया जाना चाहिए? दरअसल, अनुपस्थिति dfत्रुटि का कारण है, और सही उत्तर को खोजने के लिए कुछ नुस्खा प्रदान करना चाहिए।
सर्गेई बुशमैनोव

1
@PeterFlom BTW, यदि आप अपने उद्धरण के ऊपर लाइनों की मदद फ़ाइल को पढ़ते हैं, तो आप पाएंगे कि df=9उनके उदाहरण और अप्रासंगिक यहाँ क्यों अच्छे हैं।
सर्गेई बुशमैनोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.