গড় এবং প্রকরণটি ব্যবহার করে বিটা বিতরণের পরামিতিগুলি গণনা করা হচ্ছে


66

বিটা বিতরণের জন্য আমি কীভাবে এবং প্যারামিটারগুলি গণনা করতে পারি যদি আমি বিতরণটি করতে চান তার গড় এবং বৈচিত্রটি জানতে পারি? এটি করার জন্য কোনও আর কমান্ডের উদাহরণগুলি সবচেয়ে সহায়ক হবে।বিটাαβ


4
দ্রষ্টব্য যে আর-এর বেটেরেজ প্যাকেজটি বিকল্প প্যারামিটারাইজেশন ব্যবহার করে (এর সাথে, , এবং যথার্থতা, - এবং তাই পার্থক্যটি ) যা এই গণনার প্রয়োজন বোধ করে। ϕ = α + β μ ( 1 - μ ) / ( 1 + ϕ )μ=α/α+βϕ=α+βμ(1−μ)/(1+ϕ)
— গুং - মনিকা পুনরায়

উত্তর:


90

আমি এবং এবং সেট করেছি এবং সমাধান করা । আমার ফলাফলগুলি দেখায় যে এবং σ2=αβ β

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

বিটা বিতরণের প্যারামিটারগুলি প্রদত্ত গড়, মু এবং ভেরিয়েন্স, ভেরিয়া থেকে অনুমান করার জন্য আমি কিছু আর কোড লিখেছি:

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
@ এ এটি আপনাকে বিটা বিতরণ দেবে যা আপনার ডেটার মতোই গড় এবং বৈচিত্র্য রাখে। এটি আপনাকে বিতরণে ডেটা কীভাবে ফিট করে তা বলবে না। কোলমোগোরভ-স্মারনভ পরীক্ষার চেষ্টা করুন ।
— অনুমান

4
সঙ্গে যখন আমি এই ফাংশন কল estBetaParams(0.06657, 0.1)আমি পেতে alpha=-0.025, beta=-0.35। এটা কিভাবে সম্ভব?
— আমেলিও ওয়াজকেজ-রেইনা

1
এই গণনাগুলি কেবল তখনই কার্যকর হবে যদি তারতম্য গড় * (1-গড়) এর চেয়ে কম হয়।
— ড্যানো

2
@ ইন্দনো - এটি সর্বদা এমন হয় যে ig । এই দেখার জন্য, যেমন ভ্যারিয়েন্স পুনর্লিখন । যেহেতু , । σ2≤μ(1−μ)σ2=μ(1−μ)α+β+1α+β+1≥1σ2≤μ(1−μ)
— অনুমান

1
@ আমেলিওভাজ্কেজ-রেইনা আপনি যদি আপনার আসল তথ্য দেন তবে আমি আশা করি এটি দ্রুত স্পষ্ট হবে কেন একটি বিটা বিতরণ উপযুক্ত নয়।
— Glen_b

21

আর এর পরিবর্তে ম্যাপেল ব্যবহার করে এই ধরণের সমস্যাগুলি সমাধান করার একটি সাধারণ উপায় This এটি অন্যান্য বিতরণের ক্ষেত্রেও কাজ করে:

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

আর-তে, আপনি এটি দ্বারা গুণতে পারেন

ডিবিটা (এক্স, শেপ 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)


আমি বুঝতে পারি আমার উত্তরটি অন্যের সাথে খুব মিল। তবুও, আমি বিশ্বাস করি যে প্যারামিট্রেশন আর কী ব্যবহার করে তা প্রথমে যাচাই করা সর্বদা একটি ভাল পয়েন্ট ....
— অক্টোবর

2

উদাহরণস্বরূপ, উইকিপিডিয়ায় আপনি আলফা এবং বিটা প্রদত্ত বিটা বিতরণের গড় এবং বিভিন্নতার জন্য নিম্নলিখিত সূত্রগুলি পেতে পারেন: and these এগুলি উল্টানো ( নীচের সমীকরণের মধ্যে ) পূরণ করা উচিত) আপনি যে ফলাফল চান তা দিতে (যদিও এটি কিছুটা কাজ নিতে পারে)।

μ=αα+β
σ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

একজন ব্যবহারকারী নিম্নলিখিত মন্তব্যটি দেওয়ার চেষ্টা করেছেন: "এখানে কোথাও একটি ত্রুটি রয়েছে Current
— সিলভারফিশ

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.