问题标签 [apache-commons-math]

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 投票
1 回答
335 浏览

java - 在 Scala 中构造 EnumeratedDistribution 的实例

我在做一些琐碎的事情时遇到了可怕的事情:在 Scala 中创建org.apache.commons.math3.distribution.EnumeratedDistribution的新实例。最好我能做出以下应该工作......

...这失败并在 REPL 中出现以下错误...

我的印象java.util.List是抽象的,因此必须使用类似的东西ArrayList。我确信这是微不足道的。想法?

0 投票
1 回答
125 浏览

apache - 为什么 Apache 数学中的尾部概率在 1E-16 之后下降到零?

Apache Math 3.4(和 3.3),java 1.8.0_25

为什么 Apache Math 在第二次调用中返回 0.0?一些统计库(Excel,但不是 R)确实返回的值远小于 1E-16 的尾部概率。

附加编辑:在下面的评论中,Robert 提供了一种直接计算卡方尾概率的方法,该方法使用 Apache 数学库 (regularizedGammaQ) 中不存在此精度问题的另一个函数。

卡方分布 Javadoc

0 投票
1 回答
331 浏览

java - `org.apache.commons.math3.distribution.BinomialDistribution(1,p)` 会带来很多性能开销吗?

伯努利分布等价于只有 1 次试验的二项分布,即BinomialDistribution(1,p)来自 Apache Commons Math 库。伯努利分布显然比一般的二项分布要简单得多。

BernoulliDistribution(p)如果性能很重要,我应该通过子类化自己来AbstractIntegerDistribution实现,还是仅仅通过使用就可以获得几乎相同的性能BinomialDistribution(1,p)

0 投票
2 回答
1199 浏览

java - Java上的插值和导数

我正在尝试制作一个项目,其中涉及从原始数据及其导数计算插值。我有两个看起来像这样的数组:

我想要一个函数来描述以下数组,所以我使用 apache-common-math 库来插入将描述函数的多项式,其中:F(A[i]) = B[i]。之后,我希望计算这个函数的导数,以便能够找到极值(最大值/最小值)。

出于某种原因,我在衍生部分遇到了麻烦。

目前使用:

现在我有了多项式,它是代表我以前的数组的函数。我应该如何计算它的导数..?

谢谢。

0 投票
1 回答
1630 浏览

java - 学生 t 分布不同的值

当我在 中运行学生 t-distribution 时R,我得到以下信息:

当我使用Apache Commons Math库运行时,我得到以下信息:

价值观完全不同。这是预期的行为(或)我错过了什么吗?

编辑: 当我使用时cumulativeProbability,我得到了以下输出,这也与 R 值有很大不同。

0 投票
2 回答
652 浏览

java - Apache DBSCANClusterer 总是在集群中返回一个点

我正在尝试使用 apache.commons.math3.ml.clustering 包中的 DBSCANClusterer,但没有成功。我正在使用 Apache Common Math 3.4.1

当我运行 DBSCANClusterer.cluster() 方法时,我总是得到一个带有一个点的集群,它始终对应于我的点列表中的第一个点。

我的输出总是: [1009.0, 1019.0] 。我在这里做错了什么?

0 投票
0 回答
953 浏览

java - 检查离散数据集的正态分布假设

我是统计主题的新手,所以我想我在这里遗漏的东西可能很明显。

基本上,我想根据Apache Commons Math的统计测试double来检查某些整数值数组(直方图)是否符合具有一定显着性水平的正态分布(指定平均值和标准差) 。

我已经了解的是,常见的方法是计算p 值,然后确定零假设是否为真。

我的第一个“婴儿”步骤是使用单向方差分析测试检查两个数组是否来自同一分布(第二部分取自文档中的示例):

结果是:

假设显着性水平为 0.05,我可以推断假设为真(即两个数组来自相同的分布)p > 0.05

现在让我们进行 Kolmogorov-Smirnov 检验。文档中的示例代码显示了如何针对某个NormalDistribution对象检查单个数组(这是我的目标)。然而,它也允许检查两个数组。在这两种情况下我都无法得到正确的结果。例如,让我们将上面的例子改编成 KS:

结果是:

我的问题是为什么本质上相同数据的 p 值现在这么小?这是否意味着该测试不适合此类数据?

我是不是该:

  • 生成参考数组NormalDistribution(即具有指定的平均值和标准差),然后使用单向方差分析测试(或其他)将其与我的数组进行比较
  • 以某种方式调整我的数据,然后使用 KS 将单个数组与NormalDistribution对象进行比较

?

0 投票
1 回答
112 浏览

java - 在 Apache Commons Math 中的程序流期间更改分布参数

我需要在我的代码中生成随机数,但我想根据当前场景更改分布的参数。该应用程序可以作为单线程或多线程应用程序运行。

我的问题是,我应该RandomGenerator在我的类的构造函数中初始化对象,然后使用该RandomGenerator对象来(重新)初始化NormalDistributionBetaDistribution或任何其他AbstractRealDistribution重复对象,还是在我需要更新参数后初始化我的分布对象。

就生成良好的随机数和最优性而言,哪个是更好的选择?

情况1:

案例二:

0 投票
1 回答
800 浏览

java - 用于提取密度可达点的 DBSCAN 库

我正在使用 DBSCAN 库从一组数据中提取集群。到目前为止,我已经使用 Apache Common Math 和 WEKA 库测试了 DBSCAN。(我的问题不在于哪些库可用于 DBSCAN 的实现)

到目前为止,我已经了解到在 DBSCAN 中有 3 种类型的点(根据维基百科):核心点、(密度)可达点和异常值。我的问题是我需要提取集群及其边界点或其密度可达点。

你知道任何允许我提取每个集群的密度可达点的 DBSCAN 库吗?

0 投票
2 回答
1918 浏览

java - Apache Commons Math 正态累积概率

维基百科列出了多种计算正态分布累积概率的数值方法。但是,使用 Apache Commons Math,您不需要了解它们中的任何一个,因为该库只是为您完成了这项工作:

对于一些研究项目,我很想知道他们使用什么方法。有谁知道 Apache Commons Math 使用什么方法来近似正常累积值?是来自维基百科中列出的方法还是他们实现了不同的东西?