簡體   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