Comment puis-je calculer les paramètres et pour une distribution bêta si je connais la moyenne et la variance que je souhaite que la distribution ait? Des exemples d'une commande R pour ce faire seraient très utiles.β
Comment puis-je calculer les paramètres et pour une distribution bêta si je connais la moyenne et la variance que je souhaite que la distribution ait? Des exemples d'une commande R pour ce faire seraient très utiles.β
Réponses:
Je mets et et résolu pour et . Mes résultats montrent que et σ2=αβ
J'ai écrit du code R pour estimer les paramètres de la distribution bêta à partir d'une moyenne donnée, mu, et de la variance, 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))
}
Il y a eu une certaine confusion autour des limites de et de pour une distribution bêta donnée, alors clarifions cela ici.σ 2
estBetaParams(0.06657, 0.1)
je reçois alpha=-0.025
, beta=-0.35
. Comment est-ce possible?
Voici un moyen générique de résoudre ces types de problèmes, en utilisant Maple au lieu de R. Cela fonctionne également pour d'autres distributions:
with(Statistics):
eq1 := mu = Mean(BetaDistribution(alpha, beta)):
eq2 := sigma^2 = Variance(BetaDistribution(alpha, beta)):
solve([eq1, eq2], [alpha, beta]);
ce qui conduit à la solution
Ceci est équivalent à la solution de Max.
En R, vous pouvez le calculer par
dbeta (x, shape1 = a, shape2 = b)
Bon travail!
Modifier
Je trouve:
et
qui peut être inversé pour donner:
où
Je cherchais du python, mais je suis tombé sur ça. Donc, cela serait utile pour d'autres comme moi.
Voici un code python pour estimer les paramètres bêta (selon les équations données ci-dessus):
# 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