Как я могу рассчитать параметры и для бета-распределения, если я знаю среднее значение и дисперсию, которые я хочу иметь в распределении? Примеры команды R для этого были бы наиболее полезны.β
Как я могу рассчитать параметры и для бета-распределения, если я знаю среднее значение и дисперсию, которые я хочу иметь в распределении? Примеры команды R для этого были бы наиболее полезны.β
Ответы:
Я устанавливаю и и решено для и . Мои результаты показывают, что и σ2=αβ
Я написал некоторый R-код для оценки параметров распределения Beta по заданному среднему значению mu и дисперсии 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))
}
Там было некоторое замешательство вокруг границ и для любого данного бета-дистрибутива, поэтому давайте проясним это здесь.σ 2
estBetaParams(0.06657, 0.1)
я alpha=-0.025
, beta=-0.35
. Как это возможно?
Вот общий способ решения этих типов проблем, используя Maple вместо R. Это работает и для других дистрибутивов:
with(Statistics):
eq1 := mu = Mean(BetaDistribution(alpha, beta)):
eq2 := sigma^2 = Variance(BetaDistribution(alpha, beta)):
solve([eq1, eq2], [alpha, beta]);
что приводит к решению
Это эквивалентно решению Макса.
В R бета-распределение с параметрами и имеет плотность
,
для , и .
В R вы можете вычислить это
дбета (x, shape1 = a, shape2 = b)
В этой параметризации среднее значение а дисперсия . Итак, теперь вы можете следить за ответом Ника Сабби.
Хорошая работа!
редактировать
Я нахожу:
,
а также
,
где и .V = V ( X )
Например, в Википедии вы можете найти следующие формулы для среднего значения и дисперсии бета-распределения с учетом альфа и бета: и Обращение этих (заполните в нижнем уравнении) должно дать вам результат, который вы хотите (хотя это может занять некоторую работу).
Для обобщенного бета-распределения, определенного на интервале , у вас есть отношения:
который можно перевернуть, чтобы получить:
где
Решите уравнение для или , решив для , вы получите Затем вставьте это во второе уравнение и решите для . Таким образом, вы получаете что упрощает до Тогда закончите решение для .
Я искал питона, но наткнулся на это. Так что это было бы полезно для таких, как я.
Вот код Python для оценки бета-параметров (согласно приведенным выше уравнениям):
# 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