[0,1] में रेटिंग के एक सेट के लिए एक बीटा वितरण पर विचार करें। माध्य की गणना करने के बाद:
क्या इस माध्यम के आसपास एक विश्वास अंतराल प्रदान करने का एक तरीका है?
[0,1] में रेटिंग के एक सेट के लिए एक बीटा वितरण पर विचार करें। माध्य की गणना करने के बाद:
क्या इस माध्यम के आसपास एक विश्वास अंतराल प्रदान करने का एक तरीका है?
जवाबों:
जबकि बीटा वितरण में मापदंडों के लिए आत्मविश्वास अंतराल की गणना के लिए विशिष्ट तरीके हैं, मैं कुछ सामान्य तरीकों का वर्णन करूंगा, जिनका उपयोग बीटा वितरण सहित सभी प्रकार के वितरणों के लिए किया जा सकता है , और आसानी से आर में लागू किया जाता है। ।
आइए संगत प्रोफाइल संभावना अंतराल के साथ अधिकतम संभावना अनुमान के साथ शुरू करें। पहले हमें कुछ नमूना डेटा चाहिए:
# Sample size
n = 10
# Parameters of the beta distribution
alpha = 10
beta = 1.4
# Simulate some data
set.seed(1)
x = rbeta(n, alpha, beta)
# Note that the distribution is not symmetrical
curve(dbeta(x,alpha,beta))
वास्तविक / सैद्धांतिक मतलब है
> alpha/(alpha+beta)
0.877193
अब हमें मापदंडों में से एक के रूप में बीटा वितरण से एक नमूना के लिए नकारात्मक लॉग संभावना फ़ंक्शन की गणना करने के लिए एक फ़ंक्शन बनाना होगा। हम उपयोग कर सकते हैं dbeta()
समारोह है, लेकिन इस के बाद से मतलब से जुड़े एक parametrisation का उपयोग नहीं करता है, हम है है अपने मानकों (व्यक्त करने के लिए α और β मतलब के एक समारोह और कुछ अन्य पैरामीटर (मानक विचलन) की तरह के रूप में):
# Negative log likelihood for the beta distribution
nloglikbeta = function(mu, sig) {
alpha = mu^2*(1-mu)/sig^2-mu
beta = alpha*(1/mu-1)
-sum(dbeta(x, alpha, beta, log=TRUE))
}
अधिकतम संभावना अनुमान लगाने के लिए, हम लाइब्रेरी mle()
में फ़ंक्शन का उपयोग कर सकते हैं stats4
:
library(stats4)
est = mle(nloglikbeta, start=list(mu=mean(x), sig=sd(x)))
अभी के लिए चेतावनी को अनदेखा करें। वे ऑप्टिमाइज़ेशन एल्गोरिदम के कारण होते हैं जो मापदंडों के लिए अमान्य मानों की कोशिश करते हैं, α और / या β के लिए नकारात्मक मान देते हैं । (चेतावनी से बचने के लिए, आप एक lower
तर्क जोड़ सकते हैं और method
उपयोग किए गए अनुकूलन को बदल सकते हैं ।)
अब हमारे पास हमारे दो मापदंडों के लिए अनुमान और आत्मविश्वास अंतराल हैं:
> est
Call:
mle(minuslogl = nloglikbeta, start = list(mu = mean(x), sig = sd(x)))
Coefficients:
mu sig
0.87304148 0.07129112
> confint(est)
Profiling...
2.5 % 97.5 %
mu 0.81336555 0.9120350
sig 0.04679421 0.1276783
ध्यान दें कि, उम्मीद के मुताबिक, आत्मविश्वास अंतराल सममित नहीं हैं:
par(mfrow=c(1,2))
plot(profile(est)) # Profile likelihood plot
(दूसरी-बाहरी मैजेंटा लाइनें 95% विश्वास अंतराल दिखाती हैं।)
यह भी ध्यान दें कि केवल 10 टिप्पणियों के साथ, हमें बहुत अच्छे अनुमान (एक संकीर्ण आत्मविश्वास अंतराल) मिलते हैं।
के विकल्प के रूप में mle()
, आप पैकेज fitdistr()
से फ़ंक्शन का उपयोग कर सकते हैं MASS
। यह भी अधिकतम संभावना अनुमानक की गणना करता है, और इसका लाभ यह है कि आपको केवल घनत्व की आपूर्ति करने की आवश्यकता है, न कि नकारात्मक लॉग संभावना, लेकिन आपको प्रोफाइल संभावना आत्मविश्वास अंतराल नहीं देता है, केवल असममित (सममित) आत्मविश्वास अंतराल।
पैकेज mle2()
से एक बेहतर विकल्प (और संबंधित कार्य) है bbmle
, जो कुछ हद तक अधिक लचीला और शक्तिशाली है mle()
, और थोड़ा अच्छा प्लॉट देता है।
एक अन्य विकल्प बूटस्ट्रैप का उपयोग करना है। आर में उपयोग करना बेहद आसान है, और आपको घनत्व फ़ंक्शन की आपूर्ति भी नहीं करनी है:
> library(simpleboot)
> x.boot = one.boot(x, mean, R=10^4)
> hist(x.boot) # Looks good
> boot.ci(x.boot, type="bca") # Confidence interval
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 10000 bootstrap replicates
CALL :
boot.ci(boot.out = x.boot, type = "bca")
Intervals :
Level BCa
95% ( 0.8246, 0.9132 )
Calculations and Intervals on Original Scale
बूटस्ट्रैप में अतिरिक्त लाभ है कि यह तब भी काम करता है जब आपका डेटा बीटा वितरण से नहीं आता है।
मतलब पर विश्वास अंतराल के लिए, आइए केंद्रीय सीमा प्रमेय (और t -distribution) के आधार पर अच्छे पुराने स्पर्शोन्मुख आत्मविश्वास अंतराल को न भूलें । जब तक हमारे पास एक बड़ा नमूना आकार होता है (इसलिए सीएलटी लागू होता है और नमूना माध्य का वितरण लगभग सामान्य है) या α और β दोनों के बड़े मूल्य (ताकि बीटा वितरण स्वयं लगभग सामान्य हो), यह अच्छी तरह से काम करता है। यहां हमारे पास न तो है, लेकिन विश्वास अंतराल अभी भी बहुत बुरा नहीं है:
> t.test(x)$conf.int
[1] 0.8190565 0.9268349
N के थोड़े से लार्ज वैल्यू (और दो मापदंडों का बहुत अधिक मान नहीं) के लिए, एसिम्प्टोटिक विश्वास अंतराल बहुत अच्छी तरह से काम करता है।
बीटा प्रतिगमन की जाँच करें। R का उपयोग करके इसे करने का एक अच्छा परिचय यहां पाया जा सकता है:
http://cran.r-project.org/web/packages/betareg/vignettes/betareg.pdf
आत्मविश्वास अंतराल के निर्माण का एक और (वास्तव में आसान) तरीका गैर-पैरामीट्रिक बूस्टर दृष्टिकोण का उपयोग करना होगा। विकिपीडिया की अच्छी जानकारी है:
http://en.wikipedia.org/wiki/Bootstrapping_%28statistics%29
यहाँ भी अच्छा वीडियो: