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

提纲:

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

代码

1 前言

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

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


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


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

保存图片

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/565206.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式面试-回答UART

说明&#xff1a; 此文章是在阅读了一些列面试相关资料之后对于一些常见问题的整理&#xff0c;主要针对的是嵌入式软件面试中涉及到的问答&#xff0c;努力精准的抓住重点进行描述。若有不足非常欢迎指出&#xff0c;感谢&#xff01;在总结过程中有些答案没标记参考来源&…

leetcode每日一题第五十六天

今天心情不好&#xff0c;就做一道 class Solution { public:int countTarget(vector<int>& scores, int target) {return help(scores,target)-help(scores,target-1);}int help(vector<int>&scores,int target){int left 0;int right scores.size()-1;…

针对窗口数量多导致窗口大小显示受限制的问题,使用滚动条控制窗口

建议&#xff1a;首先观察结果展示&#xff0c;判断是否可以满足你的需求。 目录 1. 问题分析 2. 解决方案 2.1 界面设计 2.2 生成代码 2.3 源码实现 3. 结果展示 1. 问题分析 项目需要显示的窗口数量颇多&#xff0c;主界面中&#xff0c;如果一次性显示全部窗口&#x…

Spring AOP (一)

本篇主要介绍Spring AOP的基础概念和入门使用 一、AOP的基本概念 AOP是一种面向切面编程的思想&#xff0c;它与IOC并称为Spring 的两大核心思想。什么是面向切面编程呢&#xff0c;具体来说就是对一类事情进行集中统一处理。这听起来像不像前面篇章中所介绍的统一功能处理&am…

❤️新版Linux零基础快速入门到精通——第三部分❤️

❤️新版Linux零基础快速入门到精通——第三部分❤️ 非科班的我&#xff01;Ta&#xff01;还是来了~~~3. Linux权限管控3.1 认知root用户3.1.1 Switch User——su3.1.2 sudo命令3.1.3 为普通用户配置sudo认证 3.2 用户和用户组3.2.1 用户、用户组3.2.2 用户组管理3.2.3 用户管…

YOLOv8-PySide --- 基于 ultralytics 8.1.0 发行版优化 | 代码已开源

YOLOv8-PySide — 基于 ultralytics 8.1.0 发行版优化 Github 项目地址&#xff1a;https://github.com/WangQvQ/Ultralytics-PySide6 BiliBili视频地址&#xff1a;https://www.bilibili.com/video 页面效果 如何使用 pip install ultralytics8.1.0 or git clone --branch v…

mysql基础3——创建和修改数据表

创建数据表 创建一个表&#xff08;importtype有默认值1&#xff09;并插入一条数据&#xff08;importtype字段没有指定值&#xff09; 约束 默认约束&#xff08;把设置的默认值自动赋值给字段&#xff09; create table demo.importhead(listnum int,supplied int,stock…

Vue3+antd:表格中合并多行相同数据

注&#xff1a;本次以合并相同ID为示例 首先获取远程数据&#xff0c;获取完成之后对数据进行遍历 let customCellList []; // {start:0,length:2,id:xx} // 如果接口返回的数据相同ID之间不相邻&#xff0c;需要手动排序后才可以实现合并效果 res.data.forEach((item, inde…

VBA运行后,为什么excel的三个工作表结果一样?

运行完了excel的三个工作表的结果一样&#xff0c;问题在哪呢&#xff1f; 代码如下&#xff1a; Sub 计算成绩() 计算成绩 Macro i为工作表行号 Dim i, m, total As Integer Dim w1 As Worksheet For m 1 To Worksheets.count Set w1 Worksheets(m) i 2 total 0 …

【电机控制】滑模观测器PMSM无感控制波形图

【电机控制】滑模观测器PMSM无感控制波形图 文章目录 前言一、FOC控制1.三相电流2.Clark变换静止坐标系iαiβ3.park变换旋转坐标系idiq4.电流环PI控制输出UdUq5.UdUq 反park变换UαUβ 二、反电动势观测器BEMF1.静止坐标系iαiβ提取反电动势EaEb2.反电动势EaEb提取位置信息、…

HarmonyOS开发案例:【视频播放器】

介绍 基于video、swiper和slider组件&#xff0c;实现简单的视频播放器&#xff0c;可支持海报轮播、视频播放等功能。 相关概念 [video组件]&#xff1a;视频播放组件。[swiper组件]&#xff1a;滑动容器&#xff0c;提供切换子组件显示的能力。[slider组件]&#xff1a;滑…

【Linux】破解工具John the Ripper和端口扫描工具NMAP

一、弱口令检测---John the Ripper 1.了解 John the Ripper John the Ripper 是一款开源的密码破解工具&#xff0c;可使用密码字典&#xff08;包含各种密码组合的列表文件&#xff09;来进行暴力破解。 一款密码分析工具&#xff0c;支持字典式的暴力破解通过对shadow文件…

什么是区块链?什么是X314协议?

X314协议是一种基于区块链技术的分布式账本协议&#xff0c;具有去中心化、安全性高和可扩展性强的特点。本文将从多个角度对X314协议进行通俗解释&#xff0c;带您了解这一前沿技术。 一、什么是区块链和分布式账本&#xff1f; 首先&#xff0c;我们需要了解什么是区块链和分…

使用JavaScript创建数组,并对其进行冒泡排序

JavaScript创建数组方式 字面量方式&#xff1a;使用方括号 [] 来创建数组&#xff0c;并在方括号内按顺序列出数组元素。 let arr [1, 2, 3, 4, 5]; Array() 构造函数方式&#xff1a;使用 new Array() 构造函数来创建数组&#xff0c;并传入数组元素作为参数。 let arr ne…

论文笔记:Large Language Models Are Zero-Shot Time Series Forecasters

2023 neurips 完全是零样本&#xff08;zero-shot&#xff09;的&#xff0c;不需要微调 1 方法 1.1 Tokenization&#xff08;分词和编码&#xff09; 现有的LLM&#xff08;比如GPT3&#xff09;的tokenizer不能直接用来编码时间序列的句子 比如对数字42235630&#xff0…

网络工程师----第九天

路由表解析 路由表&#xff1a;简单点说路由表就是路由器用于指导数据包如何转发的表项&#xff0c;记录了去往目的IP的下一跳去哪里。 路由&#xff1a;路由是网络中的基本概念&#xff0c;网络的基本功能就是使得处于网络中两个IP地址能够互相通信。 路由表作用&#xff1a…

【Java】变量零基础教程

目录 一、引言 二、基本组成单位 三、变量的基本原理 四、变量的基本使用步骤 五、变量快速入门 六、变量使用的注意事项 一、引言 为什么需要变量&#xff1f; ​​​​​​一个程序就是一个世界。 大家看下图&#xff0c;是我们现实中的一张生活照&#xff0c;图里有树…

sc2024项目consul

1. 什么是consul HashiCorp Consul是一款服务网络解决方案&#xff0c;可让团队管理服务之间以及内部部署和多云环境及运行时的安全网络连接。consul提供服务发现、服务治理、流量管理和对网络基础设施设备的自动更新。(添加链接描述)Consul使用Go语言开发 2. 功能 多数据中…

【ARM 裸机】模仿 STM32 驱动开发

1、修改驱动 对于 STM32 来说&#xff0c;使用了一个结构体将一个外设的所有寄存器都放在一起&#xff0c;在上一节的基础上进行修改&#xff1b; 1.1、添加清除 bss 段代码&#xff0c; 1.2、添加寄存器结构体 新建一个文件&#xff0c;命名imx6u.h&#xff0c;注意地址的连…

PLC_博图系列☞N=:在信号下降沿置位操作数

、 PLC_博图系列☞N&#xff1a;在信号下降沿置位操作数 文章目录 PLC_博图系列☞N&#xff1a;在信号下降沿置位操作数背景介绍N&#xff1a; 在信号下降沿置位操作数说明参数示例 关键字&#xff1a; PLC、 西门子、 博图、 Siemens 、 N 背景介绍 这是一篇关于PLC编程的…