我正在寻找 Beta 分布的逆 CDF 的快速近似值。近似值不需要精确,但更多强调的是简单性(我在想前 1 或 2 项的泰勒展开)。有任何想法吗?
更多细节:在我的 Beta 发行版中,是整数。此外,我评估的倒数的值始终为 0.05。
我正在寻找 Beta 分布的逆 CDF 的快速近似值。近似值不需要精确,但更多强调的是简单性(我在想前 1 或 2 项的泰勒展开)。有任何想法吗?
更多细节:在我的 Beta 发行版中,是整数。此外,我评估的倒数的值始终为 0.05。
如果您想计算 beta 不等式(例如 beta 分布的 rv 超过另一个 beta 分布的 rv 的概率),whuber 的评论尤其正确。有关更多详细信息,请参见此处。
J. Cook 在他的博客中指出的另一种选择是使用Kumaraswamy分布来近似 Beta 分布。为了遵守交叉验证规则,我将在这里简要总结主要元素,但请阅读该帖子。的 CDF变量是:
此 CDF 很容易逆向和绘制,因此您可以通过在[0,1]上生成统一的u从K(a,b)轻松生成绘制,并且:
这个想法是您可以选择参数和以合理地匹配大多数并使用数值方法来找到最佳。同样,在原始帖子中提供了更多详细信息。或者,您可以使用预先计算的 Beta 和 Kumaraswamy 分布的等效参数集表(参见此处)或自己计算一个。
对于这样的应用程序,您必须仔细阅读文献,因为其他人的近似值可能无法重现您感兴趣的特征。
在简单近似(如正态近似)可能效果不佳的范围内,有一些基于预先计算值的简单解决方案。在这种情况下,您最担心的是偏度高的地方:那将是 Beta 参数非常不相等且相对较小的地方。
一种解决方案是基于此预计算创建插值函数或查找表。 要找到处的逆 CDF ,首先查找它的值。如果在表中找到该值,请使用该值;否则,使用通用近似值。鉴于可以轻松地预先计算和存储数百万个值,这是在 PC 上进行密集模拟的方法>
如果 RAM 真的很紧,或者出于某种原因,你真的想要一个公式,那么需要用一个公式来替换查找表。 为此目的拟合公式的一个很好的工具是Eureqa Formulize,免费下载。该软件可识别和拟合表格数据的功能(使用遗传算法)。它非常快速,易于学习,并且在实际操作中很有趣。
使用范围为的整数值分位数表并最小化最坏情况错误,我发现——通过在编写本段时运行软件——大量近似值。基本情况是正态近似本身,。它的最坏情况误差约为(这不是非常好)。我搜索的公式是根据,,,偏度(您可以在维基百科上查找和)和中心三次矩(通过将偏度乘以 SD 的立方而获得)。其中比较简单的公式是
最坏情况下的误差为非常好。这可以识别为正态近似加上对 (a) 使用最坏情况误差作为标准的校正,这往往会引入一个小的偏差 ( ) 和 (b) 偏度(如预期的那样)。和都 ,就会使用此公式;否则,您将恢复为正常近似值(本身)。
这是一个将我的列表值(点)与直接取自软件的公式进行比较的图:
(值会跳来跳去,因为这个表当然是二维的:它最初是由和组织的,但后来被扁平化成传统的电子表格格式进行分析。)
通过将此方法应用于您最感兴趣的一组列表值,您将获得不同的公式。选择一个最能平衡所需准确性与公式复杂性的方法。