从最佳概率分布生成随机数?

数据挖掘 Python 统计数据 数据 分配 描述性统计
2022-03-03 02:19:05

我对真实世界的数据做了一些统计分布。分布拟合给了我以下结果(对数正态最适合基于卡方检验的数据):

Best Distribution fits with parameters:
---------------------------------------

Distribution: lognorm
Parameters: (0.5921510072108613, -0.006454418407435666, 0.021090953536473916)

Distribution: expon
Parameters: (2e-06, 0.018877666177431276)

Distribution: pareto
Parameters: (11.057961210885452, -0.20440106940633995, 0.20436985884797232)

在这里,我想实现两件事:

  • 使用最佳参数,如何生成代表我们原始数据的新合成数据?python中的rvs方法有用吗?

  • 比较实际和生成的数据分布拟合,如下图所示。

在此处输入图像描述

1个回答

好问题。很多选择。

大多数人会建议您使用 CDF 而不是直方图。因此,将您观察到的分布转换为经验 CDF(在 R 中它是 ecdf() - 我不知道 python)。然后,在 a 到 b 的范围内使用最佳拟合参数绘制另一条线,即理论 CDF,其中 a 到 b 至少为您提供与原始数据集限制相同的覆盖范围。

或者,您可以选择卡方选项,它可以为您提供观察到的与预测的对比,并且可以绘制为直方图,但我发现在大多数情况下并没有更好,尽管它可能使定量比较更容易获得