问题标签 [beta-distribution]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2953 浏览

java - 需要一个快速的 Java beta 分发随机数生成器

我需要在某些速度关键代码中生成具有 beta 分布的随机数。目前我正在使用 numerics4j 库中的 BetaRandomVariable() 类 - 但目前代表了我代码 CPU 使用率的大约 95%!

谁能推荐一种更快的方法来生成这些随机数?

0 投票
3 回答
3822 浏览

c# - 我在哪里可以找到简单的 beta cdf 实现

我需要在我的项目中使用beta 分布和反向 beta 分布。

GSL 中有相当不错但复杂的实现,但我不想只使用这么大的库来获得一个功能。

我想要么自己实现它,要么链接一些简单的库。你知道任何可以帮助我的资源吗?我正在寻找有关 beta CDF及其逆的数值逼近的任何书籍/文章,以及可以实现它的库。任何其他建议也将不胜感激。
任何编程语言,但首选 C++/C#。

0 投票
3 回答
4282 浏览

c++ - 来自 Beta 分布的随机数,C++

我用 C++ 编写了一个模拟,它根据特定的概率分布生成 (1,000,000)^2 个数字,然后对它们进行处理。到目前为止,我使用了指数、正态、伽玛、均匀和泊松分布。这是其中之一的代码:

现在我需要为 Beta 发行版运行它。到目前为止,我所做的所有分发都需要 10-15 个小时。Beta 发行版不在 boost/random 包中,所以我不得不使用 boost/math/distributions 包。我在 StackOverflow 上找到了这个页面,它提出了一个解决方案。这是(复制粘贴):

我复制了它并且它起作用了。我的模拟的运行时间估计是线性且可准确预测的。他们说这将运行 25 天。我看到了两种可能性: 1. 提出的方法不如我之前用于其他分布的方法 2. Beta 分布更难从中生成随机数

请记住,我对 C++ 编码的了解很少,所以我问的问题可能很愚蠢。我迫不及待地要等一个月才能完成这个模拟,所以我能做些什么来改进它吗?也许使用我使用的初始方法并修改它以使用 boost/math/distributions 包?我什至不知道这是否可能。

另一条可能有用的信息是,对于我需要生成的所有 (1,000,000)^2 数字,参数都是相同的。我这么说是因为 Beta 发行版确实有一个讨厌的 PDF,也许参数固定的知识可以以某种方式用于简化流程?只是一个随机的猜测。

0 投票
2 回答
402 浏览

c++ - 任何为 C++ 提供 betainv 的库

有谁知道betainv在 c++ 中提供该功能的任何库?

计算带有参数的 beta 分布betainv(x,a,b)的分位数xtha,b

0 投票
1 回答
1303 浏览

r - 在“qbeta”中可能没有达到完全的精度

我在使用 Windows 7 Ultimate(Intel Core i5-2400 3GHz 处理器和 8.00GB 内存)的 PC 上运行 R 版本 2.14.0。让我知道是否需要其他规格。

我正在尝试模拟相关的 beta 分布式数据。我使用的方法是本文所写内容的扩展:

http://onlinelibrary.wiley.com/doi/10.1002/asmb.901/pdf

  1. 基本上,我首先模拟多元正态数据(使用mvrnorm()MASS 中的函数)。
  2. 然后我pnorm()将概率转换应用于这些数据,以便我的新数据向量位于 (0,1) 上。并且根据前面的说法仍然是相关的。
  3. 然后给定这些概率转换数据,我应用qbeta()具有特定 shape1 和 shape2 参数的函数,以获取具有特定均值和离散属性的相关 beta 数据。

我知道存在其他生成相关 beta 数据的方法。我对为什么qbeta()导致这种方法对某些“种子”失败感兴趣。以下是我收到的错误消息。

这是什么意思?如何避免?当它确实发生在更大的模拟环境中时,确保此问题不会终止整个源(使用 source())模拟代码的最佳方法是什么?

我从 1:1000 开始为整数种子运行以下代码。Seed=899 是唯一给我带来问题的值。虽然如果它在这里有问题,它也不可避免地会对其他种子产生问题。

上面的代码是一个更大的模拟项目的一个片段。但是 qbeta() 警告信息现在让我很头疼。

该小组可以提供的任何帮助将不胜感激。

干杯克里斯

0 投票
0 回答
374 浏览

php - php中beta分布的逆累积概率

我试图找到一个功能等同于inverse beta CDF的函数。

我搜索了该功能,但找不到可以执行此任务的任何东西。有没有可以做到这一点的库函数?或者有什么办法可以做到这一点?

0 投票
0 回答
161 浏览

r - 在 R 中使用 Beta 分布生成二进制数据

我是 R 的新用户。在我的工作中,我必须使用 beta 分发(rbeta 命令)生成二进制数据(0 或 1)。我必须创建一个此类数据的矩阵。在某些列中,我希望零多于一或零多于零。这应该通过整形参数 1 = 整形参数 2 = 0.5 来完成。我尝试了所有组合。但我无法做到这一点。请让我知道如何做同样的事情。我得到的提示是:取概率(0)=某个数字和概率(1)= 1-概率(0)。然后将这些参数提供给 rbeta 命令。但是我没有用 rbeta 命令找到这样的工具。如果有什么办法,请告诉我。

谢谢你,卡利亚尼

0 投票
2 回答
267 浏览

distribution - 如何确定 Beta 分布的形状?

假设我们抛硬币不公平。成功的概率是0.7。这足以决定它的 beta 分布的形状吗?那么它的形状是什么?

据我所知,这是我们在 X 轴上映射的成功概率。所以,它应该在 0 和 1 之间。但在我发现的一些文章和书籍中,x 轴有一些超出此范围的值。我很困惑。

请帮忙

0 投票
3 回答
20662 浏览

python - 如何在 python 中正确拟合 beta 分布?

我正在尝试找到适合 beta 分布的正确方法。这不是现实世界的问题,我只是在测试几种不同方法的效果,而这样做让我感到困惑。

这是我正在处理的 python 代码,我在其中测试了 3 种不同的方法: 1>:使用矩拟合(样本均值和方差)。2>:通过最小化负对数似然来拟合(通过使用 scipy.optimize.fmin())。3>:只需调用 scipy.stats.beta.fit()

我遇到的问题是关于标准化过程 ( z=(x-a)/(b-a)),其中ab分别是样本的最小值和最大值。

当我不进行归一化时,一切正常,不同拟合方法之间存在细微差异,相当不错。

但是当我进行标准化时,这是我得到的结果图。

阴谋

只有矩方法(绿线)看起来不错。

scipy.stats.beta.fit() 方法(红线)始终是统一的,无论我使用什么参数来生成随机数。

MLE(蓝线)失败。

所以看起来规范化正在造成这些问题。但我认为拥有x=0x=1在 beta 发行版中是合法的。如果给定一个现实世界的问题,这不是标准化样本观察以使其介于 [0,1] 之间的第一步吗?在那种情况下,我应该如何拟合曲线?

0 投票
1 回答
400 浏览

r - 查找 beta 和正态分布之间的交集

我有 2 个分布 - 1 个 beta 和 1 个正态分布,我需要找到它们的 pdf 的交集。我知道两者的参数并且能够直观地看到交叉点,但我正在寻找一种方法让 R 计算确切的点。有人知道如何做到这一点吗?