You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

histplot与plt.plot绘制的正态分布曲线差异原因及含义咨询

直方图KDE与理论正态PDF曲线的差异分析

问题背景

有一个名为Price的CSV文件,仅包含一列phil,共7412行。使用以下代码绘制相关曲线:

df4 = pd.read_csv(r'C:\Users\ThuyNT13\Desktop\price.csv')

sns.histplot(df4['phil'], color='red',kde= True, stat = 'density')


mean4 = statistics.mean(df4['phil'])
sd4 = statistics.stdev(df4['phil'])

pdf4 = norm.pdf(df4['phil'].sort_values(), mean4, sd4)
plt.plot(df4['phil'].sort_values(), pdf4, label = 'Philippines', color = 'blue')
plt.ticklabel_format(style= 'plain')
plt.show()

运行后发现两条曲线形态存在差异,疑问点:

  1. 两条曲线分别代表什么含义?
  2. 差异产生的原因是什么?

曲线含义说明

  • 红色KDE曲线(来自sns.histplot的kde=True):这是基于phil列真实数据生成的核密度估计曲线,属于非参数拟合结果,完全贴合你数据的实际分布特征,不会预设数据服从某类理论分布。
  • 蓝色曲线(手动绘制的norm.pdf):这是用你数据的均值、标准差作为参数生成的理论正态分布概率密度函数(PDF),它是假设数据严格服从正态分布时的理想形态,仅反映数据的整体均值和离散程度,和真实数据的分布细节无关。

差异产生的原因

  1. 拟合逻辑本质不同:KDE曲线是对每个数据点施加核函数后叠加得到的结果,完全依赖真实数据的分布情况;蓝色曲线是直接套用正态分布公式生成的理论曲线,不会考虑数据实际的偏态、多峰等特征。
  2. 数据本身不服从正态分布:如果你的phil列数据本身就不是正态分布(比如左偏/右偏、多峰分布),那基于真实数据的KDE曲线自然会和理论正态PDF曲线出现明显差异——后者是理想的正态形态,前者是真实数据的“写实画像”。
  3. KDE带宽参数的影响:sns.histplot的KDE曲线默认会自动选择带宽参数,这个参数决定了曲线的平滑程度。如果带宽和正态分布的标准差不匹配,也会导致两条曲线形态出现偏差。

内容的提问来源于stack exchange,提问作者Thuy Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:42:48