Làm thế nào tôi có thể tính toán và β thông số cho một phân phối Beta nếu tôi biết giá trị trung bình và phương sai mà tôi muốn phân phối để có? Ví dụ về lệnh R để làm điều này sẽ hữu ích nhất.
Làm thế nào tôi có thể tính toán và β thông số cho một phân phối Beta nếu tôi biết giá trị trung bình và phương sai mà tôi muốn phân phối để có? Ví dụ về lệnh R để làm điều này sẽ hữu ích nhất.
Câu trả lời:
Tôi đặt vàσ2=αβ
Tôi đã viết một số mã R để ước tính các tham số của phân phối Beta từ giá trị trung bình, mu và phương sai đã cho, 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))
}
estBetaParams(0.06657, 0.1)
tôi nhận được alpha=-0.025
, beta=-0.35
. Sao có thể như thế được?
Đây là một cách chung để giải quyết các loại vấn đề này, sử dụng Maple thay vì R. Cách này cũng hiệu quả với các bản phân phối khác:
with(Statistics):
eq1 := mu = Mean(BetaDistribution(alpha, beta)):
eq2 := sigma^2 = Variance(BetaDistribution(alpha, beta)):
solve([eq1, eq2], [alpha, beta]);
dẫn đến giải pháp
Điều này tương đương với giải pháp của Max.
Tôi đang tìm con trăn, nhưng vấp phải điều này. Vì vậy, điều này sẽ hữu ích cho những người khác như tôi.
Dưới đây là mã python để ước tính các tham số beta (theo các phương trình đã cho ở trên):
# 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