繁体   English   中英

最大似然估计适用于beta二项式分布,但不适用于同一数据集上的beta分布

[英]Maximum likelihood estimation works with beta-binomial distribution but fails with beta distribution on same dataset

我有一个棒球统计数据集。 at-bats有1列, hits有1列。

我的目标是使用mle方法(最大似然估计)来计算beta分布的alphabeta参数。

mlf1 = function (alpha, beta) {
    -sum(dbetabinom.ab(data$hits, data$atbats, alpha, beta, log=T))
}

mlf2 = function (alpha, beta) {
    -sum(dbeta(data$hits/data$atbats, alpha, beta, log=T))
}

因此, mlfX是用于计算负对数可能性的函数。 mlf1使用beta二项式分布,这意味着您需要传递成功( data$hits )和总观测值( data$atbat )进行计算。 mlf2使用 beta分布,它按上述列的比例运行。 它们基本上应该产生相同的结果。

我可以执行以下操作而不会出现问题:

mle(mlf1, start=list(alpha=1, beta=10) method="L-BFGS-B")

它产生alpha 〜74和beta 〜222

如果我使用第二个负对数可能性方法执行mle

mle(mlf2, start=list(alpha=1, beta=10) method="L-BFGS-B")

它给了我这个:

Error in optim(start, f, method = method, hessian = TRUE, ...) : 
  L-BFGS-B needs finite values of 'fn'

如果我修改mlf2来过滤掉30个以上at-bats它将开始起作用。

mlf2modified = function (alpha, beta) {
    data = filter(data, atbats > 30)
    -sum(dbeta(data$hits/data$atbats, alpha, beta, log=T))
}

我的问题是,为什么这两种基本相同的方法会使优化器的行为完全不同? 如果您只有比例并且不希望由于优化程序起作用而浪费数据点,该怎么办才能避免这种情况?

更新:

dbetabinom.ab来自VGAM包, mle来自stats4dbeta来自stats

正如其他人所述,您正在比较两种不同的方法来估计费率。 当直接在y / n上使用beta分布时,您将每种汇率都视为提供了与其他汇率一样多的信息。 当您使用beta二项式时,您同时使用y和n的信息,即2中的1提供的有关基础利率等于50%的信息少于200中的100。

估计速率的最简单方法是使用二项式分布,但是由于您是贝叶斯分布,或者因为您认为观测值比二项式具有更大的方差(证明对色散参数的额外使用是合理的),最终与β-二项分布。 因此,如果n不都相等,那么得到不同的结果也就不足为奇了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM