繁体   English   中英

如何通过PyMC3从数据点的分布函数生成样本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM