直方图是一种常用的统计图形表达方式,用于分析样本的分布规律。与直方图不同,核密度估计(Kernel Density Estimation,KDE)方法得到的是一个连续的概率分布函数,而不是离散的统计分布。KDE方法在蒙特卡洛方法以及分子动力学模拟等领域有着广泛的应用。本文将用Python实现一个简单的KDE函数,并介绍Numpy和Matplotlib中关于直方图的使用方法。
在使用直方图和KDE前,我们需要先制备一些样本。可以利用Numpy生成一些随机数,例如均匀分布、高斯分布和指数分布。对于均匀分布,可以使用np.random.uniform(-3, 3, (10000, ))生成-3到3范围内的均匀随机采样,采样10000个样本点。高斯分布采样则可通过np.random.normal(0, 1, (10000, ))生成,而指数分布采样可借助np.random.power(5, 10000)实现。这些样本将作为后续分析和绘图的基础。
核密度估计函数的形式可表示为一系列核函数的叠加。其中,\(K(x-x_t,\sigma)\)表示带宽为\(\sigma\)的核函数,常用高斯函数作为核函数。KDE的算法原理涉及对多个核函数的叠加,理论上需要使用for循环实现。但由于Numpy支持自动广播机制,可以用一行代码实现整个计算过程,如:grids = gaussian(z[None] – x[:, None], sigma=sigma).sum(axis=0)。
接下来,我们将用一个小样本示例来展示核密度估计函数的作用。通过绘制正态分布采样、有偏正态分布、指数分布以及均匀分布的核密度估计函数图像,展示不同带宽\(\sigma\)对估计结果的影响。
在示例中,直方图显示了稀疏采样的情况,而核密度估计函数则以波包的形式将采样概率密度辐射到整个采样空间上,实现了连续化。增加采样密度后,我们可以看到结果更加准确地复原了采样的分布函数,这与样本数量的大小以及边界条件的连续性有着密切的关系。
核密度估计(KDE)方法是一种重要的概率分布近似手段,通过多个波包的组合来近似真实概率密度,获得一个连续可微分的概率密度函数。本文通过简单的概率分布示例,演示了KDE的使用方法。KDE的思想在许多领域都会以不同的形式出现,是一种基础的概率分布近似手段。
本文首发链接为:
https://www.cnblogs.com/dechinphy/p/kde.html
作者ID:DechinPhy
更多原著文章:
https://www.cnblogs.com/dechinphy/
请博主喝咖啡:
https://www.cnblogs.com/dechinphy/gallery/image/379634.html