평균 및 분산을 사용하여 베타 분포의 모수 계산


66

분포의 평균과 분산을 알고있는 경우 베타 분포 의 α 및 β 모수를 어떻게 계산할 수 있습니까? 이를 수행하는 R 명령의 예가 가장 유용합니다.


4
점을 유의 betareg의 R의 패키지가 평균으로 (다른 파라미터를 사용하여 μ=α/α+β , 정밀도, ϕ=α+β - 그리고 따라서 차이가 μ(1−μ)/(1+ϕ) ) 이러한 계산에 대한 필요성을 제거한다.
— gung-Monica Monica 복원

답변:


90

나는 μ = α로 설정

μ=αα+β
및
σ2=αβ(α+β)2(α+β+1)
이고α및대해 해결되었습니다β. 내 결과는
α=(1−μσ2−1μ)μ2
및
β=α(1μ−1)

주어진 평균, mu 및 분산 var에서 베타 분포의 매개 변수를 추정하기 위해 R 코드를 작성했습니다.

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
@stan 데이터와 동일한 평균 및 분산을 갖는 베타 분포를 제공합니다. 분포가 데이터에 얼마나 적합한 지 알려주지 않습니다. Kolmogorov-Smirnov Test를 시도하십시오 .
— 가정 정상

4
와 나는이 함수를 호출 할 때 estBetaParams(0.06657, 0.1)내가 얻을 alpha=-0.025, beta=-0.35. 이것이 어떻게 가능한지?
— Amelio Vazquez-Reina

1
이 계산은 분산이 평균 * (1- 평균)보다 작은 경우에만 작동합니다.
— danno

2
@danno-항상 입니다. 이를 보려면 분산을 σ 2 = μ ( 1 − μ ) 로 다시 씁니다.σ2≤μ(1−μ) . 사람α+β+1≥1,σ2≤μ(1-μ). σ2=μ(1−μ)α+β+1α+β+1≥1σ2≤μ(1−μ)
— 정상적인 것으로 가정

1
@ AmelioVazquez-Reina 원본 데이터를 제공하면 베타 배포판이 적합하지 않은 이유를 빨리 알 수있을 것으로 기대합니다.
— Glen_b

21

R 대신 Maple을 사용하여 이러한 유형의 문제를 해결하는 일반적인 방법은 다음과 같습니다. 이는 다른 배포에도 적용됩니다.

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=에이shape2=비

에프(엑스)=Γ(에이+비)Γ(에이)Γ(비)엑스에이−1(1−엑스)비−1

에이>0비>00<엑스<1

R에서는 다음과 같이 계산할 수 있습니다.

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

이자형(엑스)=에이에이+비V(엑스)=에이비(에이+비)2(에이+비+1)

잘 했어!

편집하다

나는 찾는다 :

에이=(1−μV−1μ)μ2

과

비=(1−μV−1μ)μ(1−μ)

μ=이자형(엑스)V=V(엑스)


내 답변이 다른 답변과 매우 유사하다는 것을 알고 있습니다. 그럼에도 불구하고, 나는 항상 매개 변수 R이 무엇을 사용하는지 먼저 확인하는 것이 좋다고 생각한다 ....
— ocram

2

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

1
위키 백과에는 매개 변수 추정 섹션이있어 너무 많은 작업을 피할 수 있습니다. :)
— rm999

1

[에이,비]

μ=에이β+비αα+β,σ2=αβ(비−에이)2(α+β)2(1+α+β)

다음과 같이 뒤집을 수 있습니다.

α=λμ−에이비−에이,β=λ비−μ비−에이

어디

λ=(μ−에이)(비−μ)σ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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.