问题标签 [fitdistrplus]

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 回答
377 浏览

r - 使用 fitdistplus 包拟合任意分布的问题

我正在尝试使用fitdist()R 中 fitdistrplus 包中的函数来拟合我的数据。我通过关键字成功使用了正态分布和对数正态分布'norm',并且'lnorm'通过在线搜索找到了这些分布。

我无法让其他发行版正常工作;的帮助fitdist()说:

distr:一个字符串“name”,命名一个分布,必须定义对应的密度函数dname、对应的分布函数pname和对应的分位数函数qname,或者直接定义密度函数。

我检查并在进入?norm?norm进入 R 命令行时,既没有功能norm()也没有lnorm()找到。这让我完全困惑。

例如fitdist(data, 'poisson'),当我尝试时,我收到以下错误消息:

Error in fitdist(data$time, "poisson") : The dpoisson function must be defined

我在R中有点菜鸟,有人可以提示吗?

0 投票
1 回答
115 浏览

r - 查找具有最低分量值的变量名称的快速方法

我有一个函数拟合分布并返回一个由分布名称、均值、sd 等组成的向量。我正在测试几个分布但我不能依赖 gofstat() 因为当有太多零要考虑时它会发疯.

因此,我必须手动比较几个变量的 AIC,确定哪些实际上属于“fitdist”类,并返回具有最低 AIC 的变量的名称。一旦我有了它,我计算平均值、标准差等并返回。

目前的代码如下所示:

它可以工作,但是要考虑数千个样本非常慢。我欢迎任何建议如何优化它并使其“更清洁”和更快。

顺便说一句,这就是我之前所拥有的,但是就像我提到的那样 - 样本包含太多的零,它很合适(双关语无意!)

ans[!test & ok] <- rep(no, length.out = length(ans))[!test & 中的错误:替换的长度为零

0 投票
0 回答
470 浏览

r - 使用 fitdist() 拟合负二项分布时的估计标准误差和大小“NA”(不是 NaN)

这是我的第一篇文章,所以如果有任何改进或我可以提供的更多信息,请告诉我。

我在运行 10.11.6 的 Mac 上使用 R 3.4.3。

我正在处理计数数据。我对负二项分布的 theta/色散/尺寸参数 (k) 感兴趣(我的理解是这些术语可以互换使用)。我正在将 NB 分布拟合到这些数据中,通过使用该fitdistrplus包的最大似然fitdist函数来估计参数。如果我的不同数据组使用不同的分布更好地建模,我很感兴趣。因此,我将分布拟合到所有数据。然后根据一个 2 水平因子拆分数据,并将分布拟合到这两个单独的组。

当我将分布拟合到整个数据集时,我得到了带有标准误差的 mu 和大小的估计值。然后我拆分数据。同样的方法适用于一半的数据(A 组),但不适用于另一半(B 组),理论上应该在结构上相同。相反,我得到了 mu 和 size 的估计值,但标准误差为 NA。

optim对后面的函数施加 lower = c(0,0) 和 upper = c(inf, inf)fitdist也没有实现任何效果,并且由于输出是 NA 而不是 NaN 我认为它与试图无论如何估计负数(经常讨论的错误100)。

只是出于兴趣,我删除了所有的零,以防它与此有关,而那也没有任何作用。

所以我的问题是为什么要产生 NA(以及最终我如何获得估计的标准误差)?

这是我的数据和代码:

这是我的代码

0 投票
1 回答
1177 浏览

r - 从 R 中的分布确定 FWHM

我有一个数据集:

我知道数据遵循以下分布,即具有柯西峰的二次背景:

我正在尝试确定适合此数据的最佳参数,以便找到“伽玛”参数。这将告诉我分布的 FWHM。我只知道'pos'参数。这是山顶的位置。

这是此分布的图:

数据值图

我已经使用 lmfit 包在 python 中实现了这一点,但还没有找到在 R 中执行此操作的方法。我相信它需要 fitdistrplus 包,但我没有运气。有任何想法吗?

0 投票
1 回答
1660 浏览

r - `fitdist` 错误信息:函数 mle 无法估计参数,错误代码为 1

我正在尝试使用包中的fitdist函数fitdistrplus来使我的数据适合 Burr 分布。

然后出现错误: 在此处输入图像描述

此处发布的问题的启发,我注意到错误可能是我的数据包含 0 值,因此我将 0.1 添加到所有 0 值。

但是,会发生不同的错误: 在此处输入图像描述

这个问题有什么解决办法吗?谢谢你的帮助。

0 投票
0 回答
335 浏览

r - R optim() L-BFGS-B 需要 'fn' 的有限值

我正在使用 MLE 和 l 矩方法进行伽马分布、指数分布和威布尔分布。

我在伽玛分布中使用了 fitdistr() 。

我有一个错误消息说 L-BFGS-B 需要有限的“fn”值我想知道我是否可以通过将优化方法从 L-BFGS-B 更改为 BFGS 来解决这个问题。

stats::optim(x = c(36.576, 1.778, 30.48, 1.524, 21.336, 3.302, : L-BFGS-B 需要有限的 'fn' 值

这是我的代码。

样本数据:

0 1972 4 4 4.318 2

1 1972 4 4 6.604 4

2 1972 4 4 3.302 6

3 1972 4 4 0.762 8

4 1972 5 5 0.254 10

5 1972 5 5 3.048 12

6 1972 5 5 0.254 14

7 1972 5 5 1.778 16

8 1972 5 5 0.254 18

9 1972 5 5 1.778 20

10 1972 5 5 0.762 22

在我的主文件中,请参见下面的代码:

0 投票
1 回答
1021 浏览

r - 使用 fitdistrplus 包中的 fitdist() 时抑制错误消息

我正在使用包中的某些功能fitdistrplus作为我正在创建的包的一部分。

我试图防止在运行函数时在控制台中显示任何错误消息,而是希望将错误消息记录在我正在创建的错误日志中。

在大多数情况下,使用tryCatch()使我能够做到这一点。

但特别是对于该fitdist()函数,即使正在将消息写入错误日志(意味着tryCatch()表达式正在运行),我也无法抑制在控制台中打印的错误消息。

我在下面的代码中复制了我的问题。

我想禁止打印此错误消息func_fit()

我已经尝试过以下替代方案:

  1. try()silent = TRUE. 仍然会打印错误消息。
  2. conditionMessage()给出相同的结果。
  3. withCallingHandlers()在某些帖子和线程中已提出建议,但我不确定如何正确实施。
  4. 与函数一起使用invisible()仍然会打印错误。
0 投票
0 回答
37 浏览

r - 创建函数以整合关于 x 的 2 个分布

我想创建一个函数,以便针对 x 集成 2 个分布(PDF 和 CDF)的乘积。这是为了进行概率风险评估并确定“预期总风险”。

到目前为止,我的代码不起作用,是......

我在哪里做错了什么?

此外,我使用“fitdist”函数拟合了我的分布,现在我正在对分布参数进行硬编码,以尝试使上述集成正常工作。但是,我将如何直接从拟合分布中获取形状/速率/均值对数等 - 下面示例代码中的“拟合”对象?

0 投票
2 回答
4303 浏览

r - 伽马分布的 fitdist 错误

以下是我的代码:


错误说:

fitdist(s, "gamma", method = "mle") 中的错误:函数 mle 无法估计参数,错误代码为 100

0 投票
2 回答
83 浏览

r - 如何从图形中获取值?

我做了一个分布拟合,正在查看 QQ-Plot,想知道是否有一种简单的方法可以从图形中获取相应的值。

使用最后一行代码,我收到 QQ-Plot 而不计算值。但我也对这些价值观感兴趣。我怎样才能获得它们?

最好的问候诺比