繁体   English   中英

`python`中的加权高斯核密度估计

[英]Weighted Gaussian kernel density estimation in `python`

更新scipy.stats.gaussian_kde现在支持加权样本。 有关详细信息,请参阅此处此处

目前无法使用scipy.stats.gaussian_kde来估计基于加权样本的随机变量的密度。 有哪些方法可以根据加权样本估计连续随机变量的密度?

sklearn.neighbors.KernelDensitystatsmodels.nonparametric似乎都不支持加权样本。 我修改了scipy.stats.gaussian_kde以允许异构采样权重,并认为结果可能对其他人有用。 一个例子如下所示。

例子

可以在此处找到ipython笔记本: http : ipython

实施细则

加权算术平均值为

加权算术平均值

无偏数据协方差矩阵由下式给出无偏协方差矩阵

可以像scipy一样通过scottsilverman规则选择带宽。 但是,用于计算带宽的样本数是Kish 对有效样本大小的近似值

对于单变量分布,您可以使用KDEUnivariateKDEUnivariate 它没有很好的文档记录,但fit方法接受weights参数。 那么你不能使用FFT。 下面是一个例子:

import matplotlib.pyplot as plt
from statsmodels.nonparametric.kde import KDEUnivariate

kde1= KDEUnivariate(np.array([10.,10.,10.,5.]))
kde1.fit(bw=0.5)
plt.plot(kde1.support, [kde1.evaluate(xi) for xi in kde1.support],'x-')

kde1= KDEUnivariate(np.array([10.,5.]))
kde1.fit(weights=np.array([3.,1.]), 
         bw=0.5,
         fft=False)
plt.plot(kde1.support, [kde1.evaluate(xi) for xi in kde1.support], 'o-')

产生这个数字: 在此处输入图片说明

查看 Python 的 PyQT-Fit 和统计数据包。 他们似乎有加权观察的核密度估计。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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