问题标签 [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.
tensorflow - 如何在张量流概率中批量转换(缩放和量化)Beta分布
我正在尝试将 beta 分布拟合到具有离散分数的调查结果中(1, 2, 3, 4, 5)
。为此,我需要一个 TensorFlow 概率中 Beta 的工作 log_prob。但是,在 Beta 中如何处理批处理存在问题。这是一个给我一个错误的最小示例:
InvalidArgumentError:a 和 x 的形状不一致:[3] 与 [1000,1] [Op:Betainc]
相同的代码似乎适用于正态分布......
我在这里做错了什么?
TensorFlow 2.0.0 tensorflow_probability 0.8.0
编辑:正如克里斯苏特所建议的那样。这是手动广播解决方案:
EDIT2:当我尝试将其应用于 MCMC 采样时,上述解决方案不起作用。新代码如下所示:
这最终会出现一条错误消息:
ValueError:遇到
None
渐变。fn_arg_list:[tf.Tensor 'init_alpha:0' shape=(50,) dtype=float32, tf.Tensor 'init_beta:0' shape=(50,) dtype=float32] 毕业生:[无,无]
r - R中Excel的BETADIST()等价函数
我正在寻找与 BETADIST() 等效的函数。我尝试了 dbeta 和 dbetadist,但它们给出的结果与 Excel 的 BETADIST 不同。
我错过了什么?感谢您的时间。
r - 有没有办法使用 R 中的 beta 分布参数找到中位数?
我正在使用名为 productQuality 的 CSV 数据集,其中每一行代表一个焊缝类型和该特定焊缝的 beta 分布参数(α 和 β)。我想知道是否有办法计算和列出每种焊接类型的中位数?这是我的数据集的一个输入:
python - Scipy 分布 - Scipy 中是否有一种方法可以在点处返回概率(而不是概率密度)?
似乎即使分布是连续的,我也只能访问该pdf
方法。但是,我需要概率本身,比如[2, 2.0001]
. 有什么方法可以要求点概率吗?根据文档https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.beta.html,似乎没有。
您如何以最经济的方式获得某一时刻的概率?
machine-learning - 使用越来越多的反馈更新 Beta 分布的 alpha 和 beta 参数
我正在根据客户对我的大学项目的反馈对在线内容进行排名。为此,我将每个内容与之前的 alpha 和 beta 参数相关联,并根据我得到的反馈更新它们。随着我模拟越来越多的试验,alpha 和 beta 参数的值不断增加。我希望我的模型对最近的客户行为更具反应性,因此在我的更新中,我将先验参数衰减 0.9 倍,并将最后一天的 alpha、beta 相加(作为一阶非齐次线性差分方程)。
由于衰减,模型忘记了某些内容是次优的,并试图再次探索它,从而导致一些循环行为。有没有更好的方法来解决这个问题?我试着只看上个月的数据来构建我的分布,但这似乎也很“健忘”。如何防止 alpha/beta 变得太大,同时确保模型是反应性的并且不会忘记次优策略?
r - 如何找到 beta 分布的 alpha 参数
我试图找到给定 beta = 1 的 beta 分布的 alpha 的 MLE 估计值。我尝试使用来自estimatetools 包的 maxlogL 但 g
对于正态分布,以下计算确实给了我对 sd 的估计。
有人可以指出第一段代码中的错误吗?
numpy - 如何获得 0 到 1 之间的 sigmoid 函数以获得正确答案的概率?
我正在尝试模拟一些数据,其中响应可能是正确的(1)或错误的(0)。因此,我试图找到一个有四个条件的分布(在这种情况下是圆的度数)。
因此,x 轴是 pi/2, pi, pi 1.5, 2 pi。我已将其从 0 标准化为 1,以使其更容易。在 y 轴上,我希望回答正确的概率是 0-1 或 0-100 等。我正在尝试生成/绘制一个 sigmoid 函数,以便当条件接近 1 时概率更高,而当条件接近 1 时概率更低条件更接近于 0。
我似乎无法生成 0 到 1 之间的 sigmoid,除非我设置 x = np.linspace (-10,10,10),否则它只会给我一条直线。我怎样才能做到这一点?我目前拥有的代码如下。谢谢!
我最初打算使用 beta 分布,因为它更适合(因为它是围绕一个圆的度数),但似乎无法将它变成我想要的形状。任何帮助将不胜感激!
arrays - 在 main() 中创建一个数组,而不是在 C 程序中的函数中
我从 C 中的数值配方中获得了以下代码,它使用连续分数和 Lentz 方法计算不完整的 beta 函数。
然后我写了一个主代码,我把 theta 作为输入,并得到一个不完整的 beta 函数的值。
现在我需要获得 theta = [0,1] 的分布。有没有办法以我不更改此代码中的任何内容的方式编写它。我的意思是在我的主函数中为 theta 添加一个 for 循环并获得不完整 beta 函数的输出。我试过这样做,但它抛出一个错误“不兼容的类型,预期的'double'但参数的类型是'double *'。我理解这个错误是因为我试图将输出作为一个数组但是在我的函数中它被定义了是一个单一的值。有没有一种解决方法,我不必在我的函数中将 theta 声明为数组。
主函数失败
谢谢
r - R:找到给出一定范围输出的函数的输入范围
我正在使用 R 中的累积概率分布函数 pbeta() 来查找输入值 (p) 从 0-1 的概率。我只对那些给出概率在 0.025 和 0.975 之间的输入值的子集感兴趣(这是我的数据的置信区间)。
我最初的方法是列出 0 到 1 之间的 99 个值并在它们上运行 pbeta(),然后提取那些输出在正确范围内的值:
但是,这是不精确的。相反,我想直接计算将在正确范围内产生 pbeta() 输出的输入值范围。
就像是:
有这样的功能吗?
r - 在 R 中用 0 拟合 beta 分布
我们有一个数据集 d3。
时间 | MV |
---|---|
1 | 0 |
2 | 0 |
3 | 0,3 |
等等。在 0 到 1 之间有更多的数据点。我们想要拟合 beta 分布,但我们发现我们应该尝试拟合零膨胀的 beta 分布,因为我们的数据包含零。
但我们真的不知道如何做到这一点。对于这种分布,如果可能,我们首先尝试在散点图中拟合一条线。有人可以在正确的方向上推动我们吗?我们已经找到了 gamlss 包,但不知道如何以正确的方式实现它谢谢你,2 个苦苦挣扎的学生