问题标签 [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.
java - 需要一个快速的 Java beta 分发随机数生成器
我需要在某些速度关键代码中生成具有 beta 分布的随机数。目前我正在使用 numerics4j 库中的 BetaRandomVariable() 类 - 但目前代表了我代码 CPU 使用率的大约 95%!
谁能推荐一种更快的方法来生成这些随机数?
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,也许参数固定的知识可以以某种方式用于简化流程?只是一个随机的猜测。
c++ - 任何为 C++ 提供 betainv 的库
有谁知道betainv
在 c++ 中提供该功能的任何库?
计算带有参数的 beta 分布betainv(x,a,b)
的分位数xth
a,b
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
- 基本上,我首先模拟多元正态数据(使用
mvrnorm()
MASS 中的函数)。 - 然后我
pnorm()
将概率转换应用于这些数据,以便我的新数据向量位于 (0,1) 上。并且根据前面的说法仍然是相关的。 - 然后给定这些概率转换数据,我应用
qbeta()
具有特定 shape1 和 shape2 参数的函数,以获取具有特定均值和离散属性的相关 beta 数据。
我知道存在其他生成相关 beta 数据的方法。我对为什么qbeta()
导致这种方法对某些“种子”失败感兴趣。以下是我收到的错误消息。
这是什么意思?如何避免?当它确实发生在更大的模拟环境中时,确保此问题不会终止整个源(使用 source())模拟代码的最佳方法是什么?
我从 1:1000 开始为整数种子运行以下代码。Seed=899 是唯一给我带来问题的值。虽然如果它在这里有问题,它也不可避免地会对其他种子产生问题。
上面的代码是一个更大的模拟项目的一个片段。但是 qbeta() 警告信息现在让我很头疼。
该小组可以提供的任何帮助将不胜感激。
干杯克里斯
php - php中beta分布的逆累积概率
我试图找到一个功能等同于inverse beta CDF的函数。
我搜索了该功能,但找不到可以执行此任务的任何东西。有没有可以做到这一点的库函数?或者有什么办法可以做到这一点?
r - 在 R 中使用 Beta 分布生成二进制数据
我是 R 的新用户。在我的工作中,我必须使用 beta 分发(rbeta 命令)生成二进制数据(0 或 1)。我必须创建一个此类数据的矩阵。在某些列中,我希望零多于一或零多于零。这应该通过整形参数 1 = 整形参数 2 = 0.5 来完成。我尝试了所有组合。但我无法做到这一点。请让我知道如何做同样的事情。我得到的提示是:取概率(0)=某个数字和概率(1)= 1-概率(0)。然后将这些参数提供给 rbeta 命令。但是我没有用 rbeta 命令找到这样的工具。如果有什么办法,请告诉我。
谢谢你,卡利亚尼
distribution - 如何确定 Beta 分布的形状?
假设我们抛硬币不公平。成功的概率是0.7。这足以决定它的 beta 分布的形状吗?那么它的形状是什么?
据我所知,这是我们在 X 轴上映射的成功概率。所以,它应该在 0 和 1 之间。但在我发现的一些文章和书籍中,x 轴有一些超出此范围的值。我很困惑。
请帮忙
python - 如何在 python 中正确拟合 beta 分布?
我正在尝试找到适合 beta 分布的正确方法。这不是现实世界的问题,我只是在测试几种不同方法的效果,而这样做让我感到困惑。
这是我正在处理的 python 代码,我在其中测试了 3 种不同的方法: 1>:使用矩拟合(样本均值和方差)。2>:通过最小化负对数似然来拟合(通过使用 scipy.optimize.fmin())。3>:只需调用 scipy.stats.beta.fit()
我遇到的问题是关于标准化过程 ( z=(x-a)/(b-a)
),其中a
和b
分别是样本的最小值和最大值。
当我不进行归一化时,一切正常,不同拟合方法之间存在细微差异,相当不错。
但是当我进行标准化时,这是我得到的结果图。
只有矩方法(绿线)看起来不错。
scipy.stats.beta.fit() 方法(红线)始终是统一的,无论我使用什么参数来生成随机数。
MLE(蓝线)失败。
所以看起来规范化正在造成这些问题。但我认为拥有x=0
并x=1
在 beta 发行版中是合法的。如果给定一个现实世界的问题,这不是标准化样本观察以使其介于 [0,1] 之间的第一步吗?在那种情况下,我应该如何拟合曲线?
r - 查找 beta 和正态分布之间的交集
我有 2 个分布 - 1 个 beta 和 1 个正态分布,我需要找到它们的 pdf 的交集。我知道两者的参数并且能够直观地看到交叉点,但我正在寻找一种方法让 R 计算确切的点。有人知道如何做到这一点吗?