首页 > 其他分享 >核密度估计及其最优带宽计算

核密度估计及其最优带宽计算

时间:2024-02-24 14:22:43浏览次数:27  
标签:密度估计 frac text 带宽 np 最优 hat

1.一维核密度

许多实际问题中,总体的分部类型事先并不知道。这就需要我们,首先根据实际情况对总体的分布类型提出某种假设,然后再根据样本提供的信息检验此假设是否合理。这种假设检验称为非参数假设检验分布拟合检验.

  • 皮尔逊卡方拟合检验法
  • 偏度-峰度检验法
  • 秩和检验
  • 科尔莫哥洛夫检验

以上方法可以实现当个曲线的检验。当涉及多个曲线检验时

  • 核密度估计(KDE)
    • 核密度估计(KDE)由Rosenblatt(1955)和Emanuel Parzen(1962)提出,又名Parzen窗(Parzen window)

2.核函数

设样本服从的分布概率函数为 \(F(x), x \in \mathbb{R}\) , 要求 \(F(x)\) 连续可导。当 \(n \rightarrow 0\) 时:

\[F(x)=P(X \leq x)=\frac{1}{n} \sum_{i=1}^n 1 \{x_i \leq x\} \]

概率密度函数 \(\hat{f}(x) = \frac{d F(x)}{d x} = \lim_{h \rightarrow 0^{+}} \frac{F(x+h) - F(x-h)}{2h}\) , 当 \(h\) 不大,且不小的时候:

\[\hat{f}(x) = \frac{F(x+h) - F(x-h)}{2h} = \frac{1}{nh} \sum_{i=1}^n 1 \{ \mid \frac{x-x_i}{h} \mid \leq 1\} \]

示性函数 \(1/2 \{\mid \frac{x-x_i}{h} \mid \leq 1\}\) 可以写为 \(K(\frac{x-x_i}{h})\) , 令 \(t = \frac{x-x_i}{h}\) , 称函数 \(K(t)\) 为核函数, \(\hat{f}(x)\) 为 \(f(x)\) 核密度估计.

对核函数 \(K(t)\) 作出如下规定:

  1. \(K(t) \geq 0\)
  2. \(K(-t) = K(t)\)
  3. \(\int_{\text{R}}K(t) dt = 1\)
  4. \(\int_{\text{R}}{t K(t) dt} = 0\)
  5. \(\text{A}_{\alpha \beta} = \int_{\text{R}} t^{\alpha} \left [ K(t) \right ] ^{\beta} dt\) 都存在, 其中 \(\alpha = 0,1,2, \dots; \beta = 1,2,3, \dots\)

一维核密度估计 \(\hat{f}(x)\) 的性质, 其中 \(h\) 为核密度估计的带宽, \(n\) 为样本个数

  1. 非负数 \(\hat{f}(x) \geq 0\)
  2. \(\int_{\text{R}}\hat{f}(x) dx = 1\)
  3. \(E(X) = \int_{\text{R}} x \hat{f}(x) dx = \overline{X}\) , 数学期望等于样本均值
  4. \(D(X) = A_{12} h^2 + S_n^2\) , \(S^2_n\) 为二阶中心矩
  5. \(\lim\limits_{h \rightarrow 0^+ \atop n \rightarrow +\infty } E[\hat{f}(x)] = f(x)\) 渐进无偏性

3.最优带宽的计算

image.png

随着带宽的增加, 峰值逐渐变平缓, 峰的数量变少, 数据的方差越大. 因此需要一个方法, 衡量带宽选择的优劣.

  • 迭代法
  • 拇指法
  • 交叉验证法

3.1 迭代法

第2步, 收敛慢!

image.png

3.2 拇指法

拇指法来源于 Silverman。若选用高斯核, 则最优带宽 \(h\) :

\[h = \hat{\sigma} \sqrt{\frac{4}{3n}}= \sqrt{\frac{\sum_{i=1}^n (x_i - \bar{x})^2}{n-1}} \times \sqrt{\frac{4}{3n}} \]

3.3 交叉验证

适用于一维和二维

from sklearn.neighbors import KernelDensity
from sklearn.model selection import LeaveOneOut,GridSearchCV

bandwidth = np.linspace(0,10,100)
grid = GridSearchCV(KernelDensity(kernel='exponential'),{'bandwidth':bandwidth},cv=LeaveOneOut()))

grid.fit(A)#A中存放的是原始数据,可以是一维或二维

h_good = grid.best_params_.get('bandwidth')

3.4 具体应用

计算步骤

  1. 计算最优带宽
    \(h = \hat{\sigma} \sqrt{4/{3n}}\)
  2. 构造高斯核函数
  3. 构造高斯核密度估计函数并绘制图像
  4. 计算对应的均值和方差
import numpy as np
from sklearn.metrics import auc
import matplotlib.pyplot as plt
import matplotlib

#样本
X=[93,75,83,93,91,85,84,82,77,76,77,95,94,89,91,88,84,83,96,81,
  79,97,78,75,67,69,68,84,83,81,75,66,85,70,94,84,83,82,80,78,
  74,73,76,70,86,76,89,90,71,66,86,73,80,94,79,78,77,63,53,55]

#计算最优带宽
h=np.std(X,ddof=1)*(4/(3*len(X)))**0.2

#计算数学期望
print('E(X)='+str('%.2f'%np.mean(X)))

#定义高斯核函数
def K(x,xi):return 1/(2*np.pi)**0.5*np.exp(-((x-xi)/h)**2/2)

#计算方差
print('D(X)='+str('%.2f'%(h**2+np.var(X,ddof=0))))
'''
#定义余弦核函数
def k(x,xi):
   if b-h<=a<=b+h:return np.pi/4*np.cos(np.pi/2*((x-xi)/h))
   else:return 0
#计算方差
print('D(X)='+str('%.2f'%((1-8/np.pi**2)*h**2+np.var(X,ddof=0))))
#定义均匀核函数
def k(x,xi):
   if xi-h<=x<=xi+h:return 0.5
   else:return 0
#计算方差
print('D(X)='+str('%.2f'%(h**2/3+np.var(X,ddof=0))))
'''

#定义高斯核密度估计函数
def f(x):return sum(K(x,xi) for xi in X)/(len(X)*h)

#计算样本属于区间[a,b]概率
def P(a,b):
  x=np.arange(a,b,0.01)
  y=[f(i) for i in x]
  return auc(x,y)
print('P(80≤X≤100)='+str('%.3f'%P(80,100)))

#绘制高斯核密度估计函数的图像
x=np.arange(40,120,0.1)
y=[f(i) for i in x]
plt.title('h='+str('%.3f'%h))
plt.fill(x,y,facecolor='green',alpha=0.5)
plt.plot(x,y,'r-')
plt.xlabel('x')
plt.ylabel('核密度估计函数f(x)')
plt.show() 

标签:密度估计,frac,text,带宽,np,最优,hat
From: https://www.cnblogs.com/AidanLee/p/18031032

相关文章

  • 【集训笔记】2024 寒假集训 第一天:最优化问题
    最优化问题二分许多最优化问题可以通过二分来转化为判定性问题。0-1分数规划0-1分数规划思想用于求解分式最优化问题。可以通过对分式二分判定,转化为某一式子大于/小于常数,然后求对应最值即可。动态规划动态规划算法的一大用处就是解决最优化问题。朴素的动态规划效率一般......
  • r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化|附代码数据
    原文链接:http://tecdat.cn/?p=23825最近我们被客户要求撰写关于有限正态混合模型EM算法的研究报告,包括一些图形和统计输出。简介本文介绍了基于有限正态混合模型在r软件中的实现,用于基于模型的聚类、分类和密度估计。提供了通过EM算法对具有各种协方差结构的正态混合模型进行参......
  • 地铁最优线路算法的求解(三)-深度优先搜索java实现
    多的不说,showmethecode,先上一段java代码1/*2*深度优先算法(DFS)算法生成所有可能路径3*startId:出发站4*endId:到达站5*graph:辅助邻接矩阵,若99站与35站相邻,6*则graph[35][99]=1,graph[99][35]=17*8*......
  • 接收机噪声系数 & 接收机带宽
    https://blog.csdn.net/weixin_45317919/article/details/131342203接收机噪声系数(ReceiverNoiseFigure, RNF)是衡量接收机内部噪声影响的一个关键指标,它反映了信号在接收机中经过放大、滤波等处理后,其信噪比降低的程度。具体来说,噪声系数是通过输入信噪比(SNRin)和输出信......
  • 3.4 概率密度估计的非参数方法
    参数估计和非参数估计的区别参数估计是已知分布类型和部分分布参数后,从指定的一类函数中选择一个用于估计未知函数。参数估计要求的样本数目很少,但是对密度函数需要有先验认识。非参数估计是在已知分布信息极其有限的情况下,从所有可能的函数中找出一个估计未知函数。非参数估计......
  • Java连接kubernates集群最优雅的两种方式
    创建maven工程,pom.xml中引入连接k8s的客户端jar包:<properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><fabric.io.version>6.10.0</fabric.io.version></properties......
  • 实现成本最优的一体化管理,新一代数据平台的建设方式
    导读1.当前,企业在大数据和数据中台建设上取得成果,但数据开发管理仍具挑战性(成本、效率、复杂度)。2.随数据平台领域成熟,厂商应结合自身需求,重新思考“基于开源自建数据平台”的重资产模式与“购买云上成熟数据产品”的轻资产模式。3.组装式数据架构逐渐老旧。建议企业采用一体化为特......
  • 内存带宽读写工具 Stream
    一.工具介绍前言stream测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值,具有如下特点:1.主要有四种数组运算,测试的内存带宽的性能分别是:数组的复制(Copy)、数组的尺度变换(Scale)、数组的矢量求和(Add)、数组的复合矢量求和(Triad)2.数组的值......
  • 神经网络优化篇:详解局部最优的问题(The problem of local optima)
    局部最优的问题在深度学习研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着深度学习理论不断发展,对局部最优的理解也发生了改变。向展示一下现在怎么看待局部最优以及深度学习中的优化问题。这是曾经人们在想到局部最优时脑海里会出现的图,也许想优化一些参数,把它们称......
  • 主流云平台上虚机的网络带宽限制
    比方说,你有一块100Gbps的物理网卡,那么这个100Gbps的指标意味着这块网卡最多可以每秒100Gbit/sec的速率传输数据,这个限制意味着进入和传出的数据加起来不能超过100Gbit/sec。在AWS平台上,其EC2的Instance(VM)的网络带宽的限制与上面描述的传统概念相一致,都是对进入和传出的数据的共......