माध्य और विचरण का उपयोग करके एक बीटा वितरण के मापदंडों की गणना करना


66

यदि मैं माध्य और विचरण के बारे में जानना चाहता हूं तो मैं बीटा वितरण के लिए और मापदंडों की गणना कैसे कर सकता हूं ? ऐसा करने के लिए एक R कमांड के उदाहरण सबसे अधिक सहायक होंगे।βαβ


4
ध्यान दें कि R में betareg पैकेज एक वैकल्पिक पैरामीटराइज़ेशन (माध्य, Alpha , और परिशुद्धता, - और के साथ) का उपयोग करता है इसलिए विचरण ) जो इन गणनाओं की आवश्यकता को पूरा करता है। φ = α + बीटा μ ( 1 - μ ) / ( 1 + φ )μ=α/α+βϕ=α+βμ(1−μ)/(1+ϕ)
— गंग -

जवाबों:


90

मैंने और को सेट किया और लिए हल किया गया । मेरे परिणाम दिखाते हैं कि और σ2=αβ

μ=αα+β
अल्फाबीटाअल्फा=(1-μ
σ2=αβ(α+β)2(α+β+1)
αββ=α(1
α=(1−μσ2−1μ)μ2
β=α(1μ−1)

मैंने दिए गए माध्य, म्यू और विचरण से बीटा वितरण के मापदंडों का अनुमान लगाने के लिए कुछ R कोड लिखे हैं, var:

estBetaParams <- function(mu, var) {
  alpha <- ((1 - mu) / var - 1 / mu) * mu ^ 2
  beta <- alpha * (1 / mu - 1)
  return(params = list(alpha = alpha, beta = beta))
}

किसी भी बीटा वितरण के लिए और की सीमा के आसपास कुछ भ्रम है , तो चलो यहाँ स्पष्ट करें।σ 2μσ2

  1. μ=αα+β∈(0,1)
  2. σ2=αβ(α+β)2(α+β+1)=μ(1−μ)α+β+1<μ(1−μ)1=μ(1−μ)∈(0,0.52)

2
@ यह आपको बीटा वितरण देगा जो आपके डेटा के समान माध्य और विचरण करता है। यह आपको यह नहीं बताएगा कि वितरण डेटा को कितनी अच्छी तरह फिट करता है। कोलमोगोरोव-स्मिरनोव टेस्ट की कोशिश करें ।
— assumednormal

4
जब मैं इस फ़ंक्शन को कॉल करता estBetaParams(0.06657, 0.1)हूं alpha=-0.025, तो मुझे मिलता है beta=-0.35। यह कैसे हो सकता है?
— एमेलियो वाज़केज़-रीना

1
ये गणना केवल तभी काम करेगी जब विचरण माध्य * (1-माध्य) से कम हो।
— danno

2
@ डन्नो - यह हमेशा ऐसा होता है कि । इसे देखने के लिए, विचरण को । चूंकि , । σ2≤μ(1−μ)σ2=μ(1−μ)α+β+1α+β+1≥1σ2≤μ(1−μ)
— 3

1
@ AmelioVazquez-Reina यदि आप अपना मूल डेटा देते हैं तो मुझे उम्मीद है कि यह जल्दी से स्पष्ट होगा कि बीटा वितरण उपयुक्त क्यों नहीं है।
— Glen_b

21

इस प्रकार की समस्याओं को हल करने के लिए जेनेरिक तरीका है, आर के बजाय मेपल का उपयोग करना। यह अन्य वितरणों के लिए भी काम करता है:

with(Statistics):
eq1 := mu = Mean(BetaDistribution(alpha, beta)):
eq2 := sigma^2 = Variance(BetaDistribution(alpha, beta)):
solve([eq1, eq2], [alpha, beta]);

जो समाधान की ओर ले जाता है

α=−μ(σ2+μ2−μ)σ2β=(σ2+μ2−μ)(μ−1)σ2.

यह मैक्स के समाधान के बराबर है।


5

आर में, पैरामीटर और साथ बीटा वितरण में घनत्व हैshape1=ashape2=b

f(x)=Γ(a+b)Γ(a)Γ(b)xa−1(1−x)b−1 ,

के लिए , , और ।a>0b>00<x<1

आर में, आप इसके द्वारा गणना कर सकते हैं

dbeta (x, आकार 1 = ए, आकार 2 = बी)

उस परिमाण में, माध्य और विचरण । तो, अब आप निक सब्बे के जवाब का पालन कर सकते हैं।E(X)=aa+bV(X)=ab(a+b)2(a+b+1)

अच्छा कार्य!

संपादित करें

मुझे लगता है:

a=(1−μV−1μ)μ2 ;

तथा

b=(1−μV−1μ)μ(1−μ) ;

कहाँ और ।μ=E(X)V=V(X)


मुझे एहसास है कि मेरा जवाब दूसरों के समान है। बहरहाल, मेरा मानना ​​है कि यह हमेशा एक अच्छा बिंदु है कि पहले यह जांच लें कि पैरामीट्रेशन R
— किसका

2

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

μ=αα+β
σ2=αβ(α+β)2(α+β+1)
β=α(1μ−1)

1
विकिपीडिया में पैरामीटर आकलन पर एक खंड है जो आपको बहुत अधिक काम से बचने की अनुमति देता है :)
— rm999

1

अंतराल पर परिभाषित एक सामान्यीकृत बीटा वितरण के लिए , आपके संबंध हैं:[a,b]

μ=aβ+bαα+β,σ2=αβ(b−a)2(α+β)2(1+α+β)

जो देने के लिए उलटा किया जा सकता है:

α=λμ−ab−a,β=λb−μb−a

कहाँ पे

λ=(μ−a)(b−μ)σ2−1

एक उपयोगकर्ता ने निम्नलिखित टिप्पणी छोड़ने का प्रयास किया है: "यहां कहीं एक त्रुटि है। वर्तमान सूत्रीकरण सही विचरण नहीं लौटाता है।"
— रजत

1

का समाधान या तो के लिए समीकरण या , के लिए सुलझाने , आप प्राप्त फिर दूसरे समीकरण में इस प्लग, और के लिए हल । तो आप जो को सरल करता है तब के लिए सुलझाने खत्म ।μαββ

β=α(1−μ)μ
α
σ2=α2(1−μ)μ(α+α(1−μ)μ)2(α+α(1−μ)μ+1)
σ2=α2(1−μ)μ(αμ)2α+μμ
σ2=(1−μ)μ2α+μ
α


0

मैं अजगर की तलाश में था, लेकिन इस पर लड़खड़ा गया। तो यह मेरे जैसे दूसरों के लिए उपयोगी होगा।

यहाँ बीटा मापदंडों का अनुमान लगाने के लिए एक अजगर कोड है (ऊपर दिए गए समीकरणों के अनुसार):

# estimate parameters of beta dist.
def getAlphaBeta(mu, sigma):
    alpha = mu**2 * ((1 - mu) / sigma**2 - 1 / mu)

    beta = alpha * (1 / mu - 1)

    return {"alpha": 0.5, "beta": 0.1}


print(getAlphaBeta(0.5, 0.1)  # {alpha: 12, beta: 12}

आप पैकेज आयात करके पैरामीटर और को सत्यापित कर सकते हैं ।αβscipy.stats.beta

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.