seaborn.objects.KDE#
- class seaborn.objects.KDE(bw_adjust=1, bw_method='scott', common_norm=True, common_grid=True, gridsize=200, cut=3, cumulative=False)[源代码]#
计算单变量核密度估计。
- 参数:
- bw_adjust浮动
通过
bw_method选择的值乘以该因子进行乘法缩放。增加将使曲线更平滑。参见注释。- bw_method字符串、标量或可调用对象
用于确定平滑带宽的方法。直接传递给
scipy.stats.gaussian_kde;有关选项,请参见那里。- common_norm布尔值或变量列表
如果
True,则归一化使得所有曲线的面积总和为 1。如果False,则独立归一化每条曲线。如果是一个列表,则定义要分组并归一化的变量。- common_grid布尔值或变量列表
如果
True,所有曲线将共享相同的评估网格。如果False,每个评估网格是独立的。如果是一个列表,定义了要分组并共享网格的变量。- 网格大小整数或无
评估网格中的点数。如果为 None,则在原始数据点处评估密度。
- 剪切浮动
因子,乘以核带宽,决定评估网格在极端数据点之外延伸多远。当设置为0时,曲线在数据极限处被截断。
- 累积布尔
如果为 True,则估计累积分布函数。需要 scipy。
注释
带宽(bandwidth),即平滑核的标准差,是一个重要参数。与直方图的箱宽类似,使用错误的带宽会产生失真的表示。过度平滑会抹去真实特征,而平滑不足则会创造虚假特征。默认使用一种经验法则,最适合近似钟形分布。通过调整
bw_adjust来检查默认值是一个好主意。由于平滑处理是使用高斯核进行的,估计的密度曲线可能会延伸到不合理值的范围。例如,当数据本身为正时,曲线可能会绘制在负值上。可以使用
cut参数来控制评估范围,但对于在自然边界附近有许多观测值的数据集,使用不同的方法可能会更好。当数据集自然离散或“尖锐”(包含许多重复的相同值观测)时,可能会出现类似的失真。核密度估计(KDE)总是会产生一条平滑的曲线,这可能会产生误导。
密度轴上的单位是常见的混淆来源。虽然核密度估计产生的是概率分布,但曲线在每一点的高度给出的是密度,而不是概率。只有通过对某一范围内的密度进行积分才能得到概率。曲线被归一化,使得所有可能值的积分是1,这意味着密度轴的刻度取决于数据值。
如果安装了 scipy,将使用其 cython 加速的实现。
示例