“傻瓜”学计量——核密度估计KDE

边缘概率:数据科学中被严重低估的基石概念 边缘概率是概率论与数据科学中最基础且不可替代的核心概念,指在忽略其他变量条件下单一事件发生的整体概率。其数学本质是联合分布的求和或积分降维,体现‘消去无关自由度’的统计思想。它构成条件概率的校准基准、模型评估的真实分母、分布漂移监控的关键指标,以及贝叶斯推断中连接先验与后验的桥梁。在用户流失率、退货率、疾病基线率等真实业务场景中,缺失边缘概率将导致准确率幻觉、解释失效与决策失焦。掌握其计算逻辑(SQL/Pandas/R/scipy)与常见陷阱(抽样偏差、时序漂移、混淆条件概率),是构建可信数据分析体系的第一 阅读详情
AI摘要

本文介绍了核密度估计(KDE)的基本概念,它是非参数估计方法,用于估计样本数据的概率密度函数。通过直方图的扩展和窗口宽度的选择讨论了其工作原理,并提供了R语言中的代码示例,展示了如何使用`twowaykdensity`函数进行可视化和调整参数。

提纲:

什么是核密度估计,是干什么的

代码

1 前言

参数估计vs非参数估计
参数估计是样本数据来自一个具有明确概率密度函数的总体。
非参数估计是样本数据的概率分布未知,这时,为了对样本数据进行建模,需要估计样本数据的概率密度函数。

核密度估计Kernel Density Estimation即是非参数估计的一种方式。即,核密度估计的目的:就是估测所给样本数据的概率密度函数。在论文中的应用就是解读演化趋势。


KDE的数学公式推导请看核密度估计(KDE)原理及实现-优快云博客


2 核密度估计是什么

用有限的样本推断总体数据的分布,因此,核密度估计的结果即为样本的概率密度函数估计。

1.1 从直方图理解核密度估计图

核密度估计其实是对直方图的一个自然拓展。

第一,我们看密度的时候会先画直方图,用以表示样本数据的分布,帮助分析样本数据的众数、中位数等性质,横轴表示变量的取值区间,纵轴表示在该区间内数据出现的频次与区间的长度的比例。

第二,一个很自然的想法是,如果我们想知道X=x处的密度函数值,可以像直方图一样,选一个x附近的小区间,数一下在这个区间里面的点的个数,除以总个数,应该是一个比较好的估计。用数学语言来描述,如果你还记得导数的定义,密度函数可以写为:

f(x)=\lim _{h\rightarrow 0}\frac{F\left ( x+h \right )-F\left ( x-h \right )}{2h}

那么一个很自然的问题来了,h该怎么选取呢?

这也就是非参数估计里面的bias-variance tradeoff:如果h太大,用于计算的点很多,可以减小方差,但是方法本质要求h→0,bias可能会比较大;如果h太小,bais小了,但是用于计算的点太少,方差又很大。

第三,所以理论上存在一个最小化mean square error的一个h。一般我们会把h叫做「窗宽(bandwidth)

此时的概率分布图将会比较光滑,如右:

2 核密度估计KDE代码

1 
ssc install kdens

安装指令

2twoway kdensity 变量名

画出这个变量的核密度曲线

twoway是一个二维坐标

kdensity是核密度函数图

3twoway kdensity 变量名 [aw=变量名2]

考虑权重

aw

4twoway kdensity 变量名1 [aw=变量名2] if 变量名1<=300000,bw(10000)

限制横坐标最大值

300000横坐标最大值300000

bw(10000)是设置带宽10000

5twoway kdensity 变量名1 [aw=变量名2] if 变量名1<=300000,bw(10000) lp(dash)

lp(dash) 线型是虚线

dash 虚线 

solid 实线

longdash 长虚线

longdash_dot 长虚线加点

shortdash 短虚线

6twoway kdensity 变量名1 [aw=变量名2] if 变量名1<=300000,bw(10000) lp(dash) color(black)color(black) 线是黑白色
7twoway kdensity 变量名1 [aw=变量名2] if 变量名1<=300000,bw(10000) lp(dash) color(black) xlabel(0(50000)300000) ylabel(0.0(0.00001)0.00002)

设置横纵坐标

xlabel(0(50000)300000)横坐标从1~300000,间隔50000

ylabel(0.0(0.00001)0.00002)纵坐标是从0-0.00002,间隔0.00001

8twoway kdensity 变量名1 [aw=变量名2] if 变量名1<=300000,bw(10000) lp(dash) color(black) xlabel(0(50000)300000) ylabel(0.0(0.00001)0.00002) xtitle() ytitle()

设置横纵坐标名称

xtitle()

ytitle()

9twoway kdensity 变量名1 [aw=变量名2] if 变量名1<=300000,bw(10000) lp(dash) color(black) xlabel(0(50000)300000) ylabel(0.0(0.00001)0.00002) xtitle() ytitle() graphregion(fcolor(white) lcolor(white))

底色变白,否则默认底色为蓝,打印出来就是灰色的

graphregion(fcolor(white) lcolor(white))

fcolor 底色/背景色

lcolor 外框线颜色

10twoway kdensity finc_20 [aw=fswt_20] if finc_20 <= 300000, bw(10000) lp(solid) color(black) || kdensity finc_18 [aw=fswt_18] if finc_18<= 300000, bw(10000) 1p(longdash) color(black) || kdensity finc_16 [aw=fswt_16] if finc_16 <= 300000, bw(10000) 1p(longdash_dot) color(black) ||  kdensity finc_14 [aw=fswt_14] if finc_14 <= 300000, bw(10000) 1p(dash) color(black) || kdensity finc_12 [aw=fswt_12] if finc_12 <= 300000, bw(10000) lp(shortdash) color(black) || kdensity finc_10 [aw=fswt_10] if finc_10 <= 300000, bw(10000) lp(dash_dot) color(black) xlabel(0(50000)300000)ylabel(0.0(0.00001)0.00002)xtitle(家庭收入(元))ytitle(核密度)graphregion(fcolor(white)
lcolor(white))

同一个图中画多条核密度曲线

|| 隔开

11twoway kdensity finc_20 [aw=fswt_20] if finc_20 <= 300000, bw(10000) 1p(solid) color(black) || kdensity finc_18 [aw=fswt_18] if finc_18<= 300000, bw(10000) lp(longdash) color(black) || kdensity finc_16 [aw=fswt_16] if finc_16 <= 300000, bw(10000) lp(longdash_dot) color(black) || kdensity finc_14 [aw=fswt_14] if finc_14 <= 300000, bw(10000) lp(dash) color(black) || kdensity finc_12 [aw=fswt_12] if
finc_12 <= 300000, bw(10000) 1p(shortdash) color(black) || kdensity finc_10 [aw=fswt_10] if finc_10 <= 300000, bw(10000) lp(dash_dot) color(black) xlabel(0(50000)300000) ylabel(0.0(0.00001)0.00002) legend(label(1 "202@)label(2 "2018")label(3 "2016")label(4 "2014") label(5"2012")label(6"2010"))xtitle(家庭收入(元))ytitle(核密度)graphregion(fcolor(white)lcolor(white))

设置图例

legend

12

twoway kdensity finc_20 [aw=fswt_20] if finc_20 <= 300000, bw(10000) 1p(solid) color(black) || kdensity finc_18 [aw=fswt_18] if finc_18<= 300000, bw(10000) lp(longdash) color(black) || kdensity finc_16 [aw=fswt_16] if finc_16 <= 300000, bw(10000) lp(longdash_dot) color(black) || kdensity finc_14 [aw=fswt_14] if finc_14 <= 300000, bw(10000) 1p(dash) color(black) | | kdensity finc_12 [aw=fswt_12] if
finc_12 <= 300000, bw(10000) lp(shortdash) color(black) || kdensity finc_10 [aw=fswt_10] if finc_10 <= 300000, bw(10000) lp(dash_dot) color(black)

xlabel(0(50000)300000) ylabel(0.0(0.00001)0.00002) legend(label(1 "2020")label(2 "2018")label(3 "2016")label(4 "2014") label(5"2012")1abel(6"2010")row(2))xtitle(家庭收入(元))ytitle(核密度)graphregion(fcolor(white)lcolor(white))

设置图例的行数

row(2)行数为2

13graph save 保存路径,replace

保存图片

上表中的代码有些空格没有敲到,大家注意改一下


什么是核密度估计?如何感性认识? - 知乎

机器学习算法(二十一):核密度估计 Kernel Density Estimation(KDE) 1 分布密度函数 给定一个样本集,怎么得到该样本集的分布密度函数,解决这一问题有两个方法: 1.1 参数估计方法 简单来讲,即假定样本集符合某一概率分布,然后根据样本集拟合该分布中的参数,例如:似然估计,混合高斯等,由于参数估计方法中需要加入主观的先验知识,往往很难拟合出与真实分布的模型; 1.2 非参数估计 和参数估计不同,非参数估计并不加入任何先验知识,而是根据数据本身的特点、性质来拟合分布,这样能比参数估计方法得出更好的模型。核密度估计就是非参数估计中的一种,由... 阅读详情

相关推荐

核密度估计法(KDE)的概念,应用,优点,缺点,以及与正态分布(高斯分布)的区别,以及与概率分布的区别联系。看完你就真正捋清这些概念了

核密度估计法(KDE)的发展起源可以追溯到1950年代和1960年代。在概率论中,人们经常需要估计未知的密度函数,以便更好地理解数据的分布特征。在早期,直方图被广泛用于一维数据的密度估计。直方图将数据分成若干区间,并统计落入每个区间内的点的数量,然后用直观的方式将结果可视化。然而,直方图存在一些局限性,例如无法处理多维数据,以及对于边界效应的处理不够理想。为了克服这些局限性,Rosenblatt (1955)和Emanuel Parzen(1962)提出了一种名为核密度估计的非参数方法。

qlkaicx的博客 1万+

核密度估计(KDE)原理及实现

统计学中,核密度估计,即Kernel Density Estimation,用以基于有限的样本推断总体数据的分布,本文对核密度估计的原理进行探讨,在此基础上进行实现

Civitasv 8万+

KL散度本质:信息代价的量化尺,不是距离

KL散度是信息论中衡量两个概率分布差异的基础概念,其核心原理源于香农熵与编码效率损失——当用近似分布Q描述真实分布P时,平均需额外付出的信息量(单位:比特)。它不具备对称性与三角不等式,因此严格意义上并非数学距离,而是一种单向‘信息翻译税’或‘分布坍缩损耗’。这一特性使其在模型校准、生成式AI评估、异常检测等工程场景中具备不可替代的技术价值:既能敏感捕捉微小分布偏移(如灌铅骰子、预报偏差),又能揭示生成质量的深层失配(如品牌偏好偏移)。本文聚焦KL散度的物理意义、非对称设计逻辑与连续/离散计算实践,帮助读者

weixin_34315485的博客 355

核密度估计

核密度估计 核密度估计属于非参数估计方法。概率分布是统计推断的核心问题,一旦给出联合概率密度,就能够回答变量子集之间的所有问题。可以说,参数统计的核心内容就是对密度的估计。通常在实际问题中,很多数据的分布无从得知,只能通过假设确定,而核密度估计正是为了适应这一问题而产生的。 直方图密度估计 基本概念 要说核密度估计就不得不提到直方图估计,直方图通常用来描述数据的频率,可以使我们对数据的分布有一个基...

qq_44638724的博客 9356

Seaborn十大核心图:数据分析师必须掌握的统计可视化基本功

统计可视化是探索性数据分析(EDA)的核心能力,其本质是将数据分布、变量关系与分组差异等统计结构,转化为人眼可识别的图形信号。Seaborn作为基于matplotlib的高级可视化库,通过10个高度封装、参数严谨、默认专业化的绘图函数,覆盖单变量分布、双变量关系、多类别比较和多维关联四大基础分析场景。这些图不仅体现核密度估计、置信区间、四分位距等统计原理,更在默认设置中嵌入业务敏感设计——如色盲安全配色、95%置信误差线、抗过绘制透明度等。广泛应用于电商用户行为分析、金融风控建模与医疗指标追踪等真实场景,是

图灵教育官方博客 448

深入探讨核密度估计(KDE):从原理到应用

核密度估计是一种用于估计随机变量的概率密度函数的非参数方法。与直方图不同,KDE 不依赖于固定的 bin,而是通过每个数据点的“核”函数来平滑地估计整个数据的分布。简单来说,KDE 是通过对每个数据点施加一个光滑的函数,然后将所有这些函数叠加来估计数据的密度。1.1 核函数在KDE中,核函数是一个对称的、面积为1的光滑函数。常用的核函数包括高斯核、三角核和均匀核等。高斯核函数最为常见,其定义如下:这种核函数的形状类似于正态分布,能够平滑地处理数据,避免了直方图的阶梯效应。

weixin_52734695的博客 5165

核密度估计 Kernel Density Estimation(KDE)

写在前面给定一个样本集,怎么得到该样本集的分布密度函数,解决这一问题有两个方法: 1.参数估计方法 简单来讲,即假定样本集符合某一概率分布,然后根据样本集拟合该分布中的参数,例如:似然估计,混合高斯等,由于参数估计方法中需要加入主观的先验知识,往往很难拟合出与真实分布的模型; 2.非参数估计 和参数估计不同,非参数估计并不加入任何先验知识,而是根据数据本身的特点、性质来拟合分布

南极企鹅 16万+

核方法是什么?核密度估计是什么?核函数是什么?他们之间有什么关系?有多少种核函数?

一切从好的问题开始 SVM中为什么需要核函数? 核密度估计的核又是什么? KPCA中的核的作用是什么? 深度学习CNN中的卷积核?核和过滤有又什么关系? 核密度估计又是什么? 核函数和激活函数什么关系? Linux内核叫Kernel? Jupyter Notebook的运行内核也叫Kernel? 从原理上说,把高维向量映射到无穷维的hilbert空间以后基本线性可分了(也有线性不可分的情况!升维后不一定线性可分,我们也不需要它线性可分。不过一般情况下升维后会更接近线性可分,这就...

data+scenario+science+insight 1822

【思维导图】什么是核密度估计?知乎大神的回答整合

核密度估计(kernel density estimation) 定义 是在概率论中用来估计未知的密度函数,属于非参数检验方法之一 非参数检验方法 核密度估计其实是对直方图的一个自然拓展。 直观理解 核密度估计=用固定积木照样本生凑一个分布 平滑密度函数 不知道你有没有画过颜色带透明度的散点图比如 aes_colour_fill_alpha. ggplot2 2.1.0 的 h + geom_point(alpha = 1/10)颜色越深密度越大恩,这就是...

神经美学_茂森的博客 1万+

UE4 - 河流流体插件Fluid Flux

Fluid Flux可以模拟一定区域内的流体效果,由于使用顶视图所Capture的Heightfield信息,所以只支持室外开阔场景,不支持洞穴等室内场景;

GT的虚幻引擎文档 6666

以太网以及车载以太网概述

千兆网线和百兆网线区别 1、所谓的百兆网线其实就是 五类线 和超五类线 ,而千兆网线主要是指六类线 和超六类线 ,另外还有古老的十兆网线也就是指 四类线 和 三类线 等。 2、在使用上,其实千兆网线和百兆网线是没什么区别的,千兆网线完全兼容百兆网络。 3、百兆网线的线芯是8芯,但上传和下载只用到了其中的4根,而千兆网线需要完全用到8根。 4、另外在线芯的排布上,千兆网线的线芯中间有个十字形的塑料架,用来把四组8芯的线分开,这个百兆网线是没有的, 5、所有的网线在外皮上都有种类标识,CAT5 CAT

$好记性还是要多记录$ 4074

核密度分析

核密度估计(Kernel Density Estimation)是一种用于估计数据分布的非参数统计方法。数据可视化:核密度估计可以用来绘制平滑的密度曲线或热力图,从而直观地表示数据的分布情况。它可以帮助我们观察数据集中的高密度区域、低密度区域以及变化趋势。异常检测:通过核密度估计,我们可以识别数据中的异常点或离群值。异常点通常表现为低密度区域或与其他数据点明显不同的区域。概率密度计算:核密度估计可以用于计算给定数值的概率密度。通过将新数据点带入核密度估计函数,可以估计出该点在数据分布中的密度。

纯洁的小魔鬼 1万+

从INCA到Excel:手把手教你移植汽车标定数据的查表插值算法(附源码)

本文详细介绍了如何将汽车标定数据从INCA平台移植到Excel,实现查表插值算法的完整迁移。通过解析INCA MAP数据结构,设计Excel环境下的双线性插值算法,并提供VBA和C#两种实现方案,帮助工程师高效处理标定数据。文章包含实用代码示例和性能优化技巧,适用于ECU开发与标定场景。

weixin_29313239的博客 409

核密度估计Kernel Density Estimation(KDE)

备:密度估计相关知识 密度估计经常在统计学中作为一种基于有限的样本来估计其概率密度函数的方法。 在研究随机变量的过程中,随机变量的概率密度函数的作用是描述随机变量的特性。但是在实际应用中,总体概率密度函数通常是未知的,那么如何来估计总体概率密度呢?一般,我们通过抽样或者采集一定的样本,可以根据统计学知识从样本集合中推断总体概率密度。这种方法统称为概率密度估计,即根据训练样本来确定随机变量的概率分布...

kwame211的博客 1万+

OpenCompass实战:从零部署大模型评测平台,量化模型能力选型

在大模型技术选型与评估中,客观、可量化的评测体系是工程实践的关键。其核心原理在于通过标准化的数据集、统一的评测方法与自动化流程,将主观的模型体验转化为可比较的指标数据。这种评测框架的技术价值在于解决了模型能力评估的模糊性问题,为开发者提供了模型选型、效果对比与迭代优化的科学依据。典型的应用场景包括对比不同开源模型在代码生成、逻辑推理等特定任务上的性能,或是评估微调后模型在业务数据集上的提升效果。OpenCompass作为开源的大模型全能力评测平台,正是这一理念的工程化实现。它通过模块化的四层流水线架构和配置

weixin_28725037的博客 626

半导体AMHS系统振动控制技术演进:从0.5G到超低振动的工艺革命

在半导体制造进入埃米级时代后,AMHS的振动控制能力将成为区分厂商技术等级的标尺。国内企业通过“弹性机械设计-混合主动控制-智能调度”的三重创新,正逐步突破0.2G阈值,支撑12英寸晶圆厂向3nm/2nm制程升级。未来,振动抑制不再仅是物流系统的性能参数,而是与光刻、刻蚀等核心工艺深度耦合的基础能力,这将重塑半导体设备产业的竞争格局。

m0_60674045的博客 1584

核密度估计(Kernel density estimation)

核密度估计(Kernel density estimation)简析

Starworks的专栏 13万+

MIKE水动力笔记13_数字化海图2之克里金插值

在进行MIKE水动力建模之初,需要准备好水深数据,本专题系列博文主要讲解如何将扫描版JPG格式海图数据在ArcGIS中进行数字化并制作成xyz水深地形数据,用的克里金插值方法,仅供参考。

晏长街的博客 2879

非参数估计—核密度估计(Kernel Density Estimation)

什么是核密度估计?

老哥的博客 3521

DCNv4+YOLOv8:2024最新可变形卷积赋能目标检测,从原理到实战的科研级优化指南

从理解DCNv4“自适应变形卷积核”的核心思想,到亲手将其嵌入YOLOv8并验证在复杂场景的检测效果,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解目标检测中“特征自适应提取”的核心价值。现在就开始行动,相信你会在目标检测的“自适应特征提取”之路上,走出一条属于自己的技术路径。实验通常会证明:嵌入DCNv4后,YOLOv8在复杂场景下的检测精度提升3-5个百分点,尤其是小目标和遮挡目标的AP提升更为明显,而推理速度仅下降5%-10%(可通过模型量化进一步优化)。2024年最新推出的。

m0_64661770的博客 267

【HALCON工业视觉应用探索】02. C# + Halcon铸件毛刺机器人打磨引导:点云处理从实验室到工业现场的全流程落地

摘要:铸件毛刺的自动化打磨是机械制造领域的重要难题,其随机性(高度0.1-3mm)和复杂工况导致人工打磨效率低(3分钟/件)、工伤率高。本文基于Halcon 24.11与.NET 6,构建了一套点云处理方案:通过线激光扫描仪获取三维点云,经预处理、毛刺检测、路径规划三大模块,引导机器人完成打磨。虚拟实验测试显示,对高度>1mm的毛刺检出率达100%,定位误差±0.08mm,但工业现场受油污、粉尘影响,性能降至检出率68-75%、处理时间>45秒。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1127

核密度估计(KDE)

对于大量数据的可视化,在一维数据中,直方图(histogram)是一种普遍的方式,另外还有一种方式:核密度估计(kernel density estimation)。除了在可视化方面的用处以外,核密度估计有利与进行聚类算法的构造。 基本概念 核密度估计方法从直观上来...

sdf57的博客 6239

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

核密度估计-KDE

核密度估计(Kernel Density Estimation) 密度评估器是一种利用D维数据集生成D维概率分布估计的算法,GMM使用不同的高斯分布的加权汇总来表示概率分布估计。 核密度估计算法将高斯混合理念扩展到了逻辑极限,它通过对每一个点生成高斯分布的混合成分,获得本实质上是无参数的密度评估器。 核密度估计的自由参数是核类型和核带宽,前者指定每个点核密度分布的形状,后者指定每个点核的大小。 一维数据的密度估计——直方图,是一个简单的密度评估器,直方图将数据分成若干区间,统计落入每个区间内的点的数量

Rnan_prince的博客 5359

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

核密度估计——从直方图到核密度(核函数)估计_带宽选择

通过积分来验证密度估计的方法。我们可以使用插值函数approxfun来对频率多边形的估计进行插值,然后使用integrate函数对其进行积分,计算其在整个定义域内的总和是否等于1。上方的代码展示了这一过程:首先通过approxfun函数创建了插值函数fpoly,然后使用integrate函数对其进行积分。在输出中我们可以看到积分的结果非常接近1,并且误差极小这就验证了这个频率多边形密度估计符合概率密度的基本性质。

weixin_43213559的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【机器学习】机器学习的基本分类-无监督学习-核密度估计(Kernel Density Estimation, KDE)

核密度估计(KDE)是一种非参数化方法,用于估计数据的概率密度函数(PDF)。与直方图相比,KDE 能够生成平滑的概率密度曲线,是统计数据分析中的重要工具。核密度估计(KDE)是统计分析和机器学习中的重要工具,其平滑、高灵活性的特点,使其成为直方图的强大替代方案。熟悉 KDE 的实现和参数选择,有助于更好地理解数据的分布特征并应用于实际问题。

IT古董 3190
上一篇: “傻瓜”学计量——数据统计分析(变异系数)
下一篇: 中介变量VS调节变量VS控制变量VS工具变量
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值