根据随机变量的值样本,我使用核密度估计创建累积密度函数。
cdf = gaussian_kde(sample)
我需要生成其密度函数等于构造的cdf的随机变量的样本值。我知道逆转概率分布函数的方法,但是由于我无法通过分析来完成,因此需要非常复杂的准备工作。是否有集成的解决方案或完成任务的另一种方式?
如果您将内核密度估计器(KDE)与高斯内核一起使用,则您的密度估计就是高斯混合模型。这意味着密度函数是“混合物成分”的加权和,其中每个混合物成分都是高斯分布。在典型的KDE中,每个数据点上都有一个混合组件,每个组件都是内核的副本。不使用逆CDF方法就可以很容易地从这种分布中进行采样。该过程如下所示:
设置
mu
为向量,其中mu[i]
是混合成分的平均值i
。在KDE中,这只是原始数据点的位置sigma
是一个向量,其中sigma[i]
是混合分量的标准偏差i
。在典型的KDE中,这将是内核带宽,所有点都共享该带宽(但确实存在可变带宽的变体)。w
一个向量,其中w[i]
包含混合成分的权重i
。权重必须为正且总和为1。在典型的,未加权的KDE中,所有权重都是1/(number of data points)
(但确实存在加权变体)。选择要采样的随机点数, n_total
确定将从每个混合成分中提取多少个点。
n
是其中载体n[i]
包含的点的数量以从混合物组分样品i
。n
从“试验次数”多项分布等于n_total
和“成功概率”等于w
。这意味着将从每种混合物组分中抽取的点数将与组分的重量成比例地随机选择。绘制随机值
i
:n[i]
从均值的正态分布值mu[i]
和标准差sigma[i]
随机排列随机值列表,因此它们具有随机顺序。
此过程相对简单,因为用于多项式分布和正态分布的随机数生成器(RNG)广泛可用。如果您的内核不是高斯分布,而是其他概率分布,则可以复制此策略,将第4步中的常规RNG替换为该分布的RNG(如果可用)。通常,您还可以使用此过程从混合模型中采样,而不仅仅是KDE。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句