【问题标题】:Integrating a Bayes probability distribution整合贝叶斯概率分布
【发布时间】:2012-06-02 01:04:20
【问题描述】:

假设我们有一个定义明确的概率分布,它以特定参数为条件:p(x|a)*p(a),就像在贝叶斯方法中一样。

现在,为了找到x,我可能想要整合a 的所有值。是否有使用 Java 解决此类数学问题的通用方法?

【问题讨论】:

  • 您能否澄清一下:是找到您的目标解决方案,还是编写代码?换句话说,你愿意使用合适的库吗?或者你想写一个库?
  • Is there a general approach to such mathematical problem using Java 有一个问题,与其他以数学为中心的语言相比,它的工作量有多大。
  • 我愿意使用代码、库以及任何可以让我得到结果的东西,并在很大程度上接近
  • 我会编辑这个问题:你正在寻找一个 x 的函数,给定一个先验函数来乘以它。对我来说听起来像贝叶斯。

标签: java math statistics integration


【解决方案1】:

是的,与 FORTRAN、C、Perl 等中存在的方法相同:coding up the math

为了不那么高兴:Java 不是从事数字计算的人的典型语言选择,而且它不是为迎合这些受众而编写的,因此内在语言支持不是很好,库支持也不是很好。我的建议:为您的问题明确选择一种语言 - 例如 R、Octave、Matlab、Mathematica、Maple - 或具有更多内置 + 持续社区支持的语言 - 例如 C/C++、FORTRAN、Perl。

也就是说,如果您致力于在 Java 中进行数字运算,那么有一些库; NIST 有 best gathering I've found,但该站点似乎维护不足,因此这只是一个起点。

【讨论】:

    【解决方案2】:

    有很多数值积分方案。谷歌搜索“java 数值积分”或“java 求积”。

    一种实现选择是JSci

    如果您阅读 Forman Acton 的“Numerical Methods That Work”,第 4 章“正交”,您会发现这可能不是一个小问题,具体取决于您的被积函数。

    您在进行贝叶斯分析吗?也许Monte Carlo Markov Chain 方法会更好。查看WinBUGS 并阅读John Krushke's excellent book.

    更新:如果您的被积函数是解析函数,您应该使用符号积分器来得出 x 的函数。如果不是,你能做的最好的就是 WinBUGS。您将进行蒙特卡罗模拟,以构建经过多次试验后的发行版外观。

    您没有找到问题的简单答案,因为这不是一个简单的问题。

    【讨论】:

    • 基本上,我将不得不执行以下集成(integrate(p(x|a,b)) d(b)) d(a)。有没有一种很好的方法可以使用库来做到这一点? Apache commons 有集成,但是他们似乎并没有真正需要集成的参数的概念。他们只是在 x... 上进行交互
    猜你喜欢
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 2014-01-13
    • 2013-08-06
    • 2021-03-05
    • 2015-10-09
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多