[英]How to generate samples from distribution function of data points by PyMC3
我有一个来自数据的密度分布函数,这意味着我无法表达它的解析形式。 如果我想通过这个分布函数生成1000个样本,我该怎么办。 PyMC3 似乎有能力做到这一点,但我不知道具体怎么做。
为了简化问题,我们可以从一维分布开始,但稍后我需要使用高维分布。
请注意,我没有任何分析模型。 我只有来自数据的分布函数。
我曾尝试使用 pm.Densityhist 和 pm.sample,但无法生成样本。
您可以使用的一个选项是执行核密度估计。 这不需要 PyMC3 或 MCMC 方法。 您可以使用 SciPy 中的gaussian_kde
函数(存在其他 KDE 方法,例如 scikit-learn 中的KernelDensity
类)从您的样本生成核密度估计,然后从该估计中提取新样本。 例如,如果您的示例位于名为x
的列表/NumPy 数组中,那么您可以执行以下操作:
from scipy.stats import gaussian_kde
kde = gaussian_kde(x) # generate the KDE
# draw 1000 samples from the KDE
newsamples = kde.resample(1000)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.