【发布时间】:2020-10-05 16:57:15
【问题描述】:
我正在尝试基于其他一些示例创建一个新示例,但我做错了/理解错误。我有 34 个样本,我认为它们是相对 lognorm 分布的。基于这个样本,我想生成 2000 个新样本。这是我正在运行的代码:
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
samples = [480, 900, 1140, 1260, 1260, 1440, 1800, 1860, 1980, 2220, 2640, 2700,
2880, 3420, 3480, 3600, 3840, 4020, 4200, 4320, 4380, 4920, 5160,
5280, 6900, 7680, 9000, 10320, 10500, 10800, 15000, 21600, 25200,
39000]
plt.plot(samples, 1 - np.linspace(0, 1, len(samples)))
std, loc, scale = stats.lognorm.fit(samples)
new_samples = stats.lognorm(std, loc=loc, scale=scale).rvs(size=2000)
a = plt.hist(new_samples, bins=range(100, 40000, 200),
weights=np.ones(len(new_samples)) / len(new_samples))
plt.show()
这是情节,正如您所见,实际上很少有超过 1000 的样本,尽管样本包含相当多的超过 1000 的样本。
如何最好地生成更能代表预期值的样本?
【问题讨论】:
标签: python matplotlib scipy distribution