使用均值和方差计算Beta分布的参数


66

如果知道我希望分布具有的均值和方差,如何计算Beta分布的β参数?使用R命令执行此操作的示例将非常有帮助。αβ


4
注意,betareg包中的R使用一种替代的参数(与平均,,&精度,φ = α + β -并且因此方差是μ 1 - μ /1 + ϕ ),从而无需进行这些计算。μ=α/α+βϕ=α+βμ(1μ)/(1+ϕ)
gung

Answers:


90

我设定σ2=αβ

μ=αα+β
并求解αβ。我的结果表明,α=1-μ
σ2=αβ(α+β)2(α+β+1)
αββ=α1
α=(1μσ21μ)μ2
β=α(1μ1)

我编写了一些R代码,从给定的均值mu和方差var估计Beta分布的参数:

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

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

2
@stan这将为您提供Beta分布,其均值和方差与您的数据相同。它不会告诉您分布对数据的拟合程度。尝试进行Kolmogorov-Smirnov检验
假设正常时间2012年

4
当我把这个功能与estBetaParams(0.06657, 0.1)我得到的alpha=-0.025beta=-0.35。这怎么可能?
Amelio Vazquez-Reina

1
仅当方差小于均值*(1-均值)时,这些计算才有效。
丹诺2015年

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

1
@ AmelioVazquez-Reina如果您提供原始数据,我希望它很快就会很清楚为什么beta发行版不适合。
Glen_b 2015年

21

这是使用Maple而不是R解决此类问题的通用方法。这也适用于其他发行版:

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.

这等效于Max的解决方案。


5

shape1=ashape2=b

f(x)=Γ(a+b)Γ(a)Γ(b)xa1(1x)b1

a>0b>00<x<1

在R中,您可以通过

dbeta(x,shape1 = a,shape2 = b)

E(X)=aa+bV(X)=ab(a+b)2(a+b+1)

干得好!

编辑

我发现:

a=(1μV1μ)μ2

b=(1μV1μ)μ(1μ)

μ=E(X)V=V(X)


我意识到我的答案与其他人非常相似。尽管如此,我相信它始终是一个很好的点,首先检查什么参数化R使用....
ocram

2

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

1
维基百科上有一节有关参数估计的部分,可让您避免过多的工作:)
rm999 2011年

1

[a,b]

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

可以反转为:

α=λμaba,β=λbμba

哪里

λ=(μa)(bμ)σ21

用户试图留下以下评论:“此处存在错误。当前公式不能返回正确的方差。”
Silverfish

1

μαββ

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


0

我一直在寻找python,但偶然发现了这一点。因此,这对像我这样的其他人很有用。

这是一个Python代码,用于估算beta参数(根据上面给出的方程式):

# 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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.