R语言与核密度估计 (非参数统计)
R语言非参数方法:使用核回归平滑估计和K-NN(K近邻算法)分类预测心脏病数据

R语言非参数方法:使用核回归平滑估计和K-NN(K近邻算法)分类预测心脏病数据原文链接:/?p=22181本文考虑一下基于核方法进行分类预测。
注意,在这里,我们不使用标准逻辑回归,它是参数模型。
非参数方法用于函数估计的非参数方法大致上有三种:核方法、局部多项式方法、样条方法。
非参的函数估计的优点在于稳健,对模型没有什么特定的假设,只是认为函数光滑,避免了模型选择带来的风险;但是,表达式复杂,难以解释,计算量大是非参的一个很大的毛病。
所以说使用非参有风险,选择需谨慎。
非参的想法很简单:函数在观测到的点取观测值的概率较大,用x 附近的值通过加权平均的办法估计函数f(x)的值。
核方法当加权的权重是某一函数的核,这种方法就是核方法,常见的有Nadaraya-Watson核估计与Gasser-Muller核估计方法,也就是很多教材里谈到的NW核估计与GM核估计,这里我们还是不谈核的选择,将一切的核估计都默认用Gauss核处理。
NW核估计形式为:GM核估计形式为:式中数据使用心脏病数据,预测急诊病人的心肌梗死,包含变量:心脏指数心搏量指数舒张压肺动脉压心室压力肺阻力是否存活既然我们知道核估计是什么,我们假设k是N(0,1)分布的密度。
在x点,使用带宽h,我们得到以下代码dnorm(( 心搏量指数-x)/bw, mean=0,sd=1)weighted.mean( 存活,w)}plot(u,v,ylim=0:1,当然,我们可以改变带宽。
Vectorize( mean_x(x,2))(u)我们观察到:带宽越小,我们得到的方差越大,偏差越小。
“越大的方差”在这里意味着越大的可变性(因为邻域越小,计算平均值的点就越少,估计值也就越不稳定),以及“偏差越小”,即期望值应该在x点计算,所以邻域越小越好。
使用光滑函数用R函数来计算这个核回归。
smooth( 心搏量指数, 存活, ban = 2*exp(1)我们可以复制之前的估计。
非参数估计——核密度估计(Parzen窗)

⾮参数估计——核密度估计(Parzen窗) 核密度估计,或Parzen窗,是⾮参数估计概率密度的⼀种。
⽐如机器学习中还有K近邻法也是⾮参估计的⼀种,不过K近邻通常是⽤来判别样本类别的,就是把样本空间每个点划分为与其最接近的K个训练抽样中,占⽐最⾼的类别。
直⽅图 ⾸先从直⽅图切⼊。
对于随机变量X的⼀组抽样,即使X的值是连续的,我们也可以划分出若⼲宽度相同的区间,统计这组样本在各个区间的频率,并画出直⽅图。
下图是均值为0,⽅差为2.5的正态分布。
从分布中分别抽样了100000和10000个样本: 这⾥的直⽅图离散地取了21个相互⽆交集的区间:[x−0.5,x+0.5),x=−10,−9,...,10,单边间隔h=0.5。
h>0在核函数估计中通常称作带宽,或窗⼝。
每个长条的⾯积就是样本在这个区间内的频率。
如果⽤频率当做概率,则⾯积除以区间宽度后的⾼,就是拟合出的在这个区间内的平均概率密度。
因为这⾥取的区间宽度是1,所以⾼与⾯积在数值上相同,使得长条的顶端正好与密度函数曲线相契合。
如果将区间中的x取成任意值,就可以拟合出实数域内的概率密度(其中N x为样本x i∈[x−h,x+h),i=1,...,N的样本数):ˆf(x)=N xN⋅12h 这就已经是核函数估计的⼀种了。
显然,抽样越多,这个平均概率密度能拟合得越好,正如蓝条中上⽅⼏乎都与曲线契合,⽽橙⾊则稂莠不齐。
另外,如果抽样数N→∞,对h取极限h→0,拟合出的概率密度应该会更接近真实概率密度。
但是,由于抽样的数量总是有限的,⽆限⼩的h将导致只有在抽样点处,才有频率1/N,⽽其它地⽅频率全为0,所以h不能⽆限⼩。
相反,h太⼤的话⼜不能有效地将抽样量⽤起来。
所以这两者之间应该有⼀个最优的h,能充分利⽤抽样来拟合概率密度曲线。
容易推理出,h应该和抽样量N有关,⽽且应该与N成反⽐。
核函数估计 为了便于拓展,将拟合概率密度的式⼦进⾏变换:ˆf(x)=N x2hN=1hNN∑i=11/2x−h≤x i<x+h0else=1hNN∑i=11/2,−1≤x i−xh<10,else=1hNN∑i=1K(x i−xh),where K(x)=1/2,−1≤x<10,else 得到的K(x)就是uniform核函数(也⼜叫⽅形窗⼝函数),这是最简单最常⽤的核函数。
非参数估计:核密度估计KDE

⾮参数估计:核密度估计KDE⾮参数估计:核密度估计KDEfrom:http://核密度估计Kernel Density Estimation(KDE)概述密度估计的问题由给定样本集合求解随机变量的分布密度函数问题是概率统计学的基本问题之⼀。
解决这⼀问题的⽅法包括参数估计和⾮参数估计。
参数估计参数估计⼜可分为参数回归分析和参数判别分析。
在参数回归分析中,⼈们假定数据分布符合某种特定的性态,如线性、可化线性或指数性态等,然后在⽬标函数族中寻找特定的解,即确定回归模型中的未知参数。
在参数判别分析中,⼈们需要假定作为判别依据的、随机取值的数据样本在各个可能的类别中都服从特定的分布。
经验和理论说明,参数模型的这种基本假定与实际的物理模型之间常常存在较⼤的差距,这些⽅法并⾮总能取得令⼈满意的结果。
[][]⾮参数估计⽅法由于上述缺陷,Rosenblatt和Parzen提出了⾮参数估计⽅法,即核密度估计⽅法。
由于核密度估计⽅法不利⽤有关数据分布的先验知识,对数据分布不附加任何假定,是⼀种从数据样本本⾝出发研究数据分布特征的⽅法,因⽽,在统计学理论和应⽤领域均受到⾼度的重视。
核密度估计(kernel density estimation)是在概率论中⽤来估计未知的密度函数,属于⾮参数检验⽅法之⼀,由Rosenblatt (1955)和Emanuel Parzen(1962)提出,⼜名Parzen窗(Parzen window)。
Ruppert和Cline基于数据集密度函数聚类算法提出修订的核密度估计⽅法。
核密度估计在估计边界区域的时候会出现边界效应。
[https:///zh-hans/核密度估计]因此,⼀句话概括,核密度估计Kernel Density Estimation(KDE)是在概率论中⽤来估计未知的密度函数,属于⾮参数检验⽅法之⼀。
在密度函数估计中有⼀种⽅法是被⼴泛应⽤的——直⽅图。
如下图中的第⼀和第⼆幅图(名为Histogram和Histogram, bins shifted)。
kernel密度估计法

kernel密度估计法Kernel密度估计法是一种常用的非参数统计方法,用于估计随机变量的概率密度函数。
在统计学中,概率密度函数描述了随机变量在每个可能取值处的概率分布情况。
Kernel密度估计法通过将一组核函数在每个数据点上进行加权平均来估计概率密度函数。
这种方法的优势在于不需要对数据进行任何分布假设,并且可以适用于任意维度的数据。
Kernel密度估计法的核心思想是将每个数据点周围的一小段区域视为一个核函数的支持区间,将这些核函数加权平均后得到概率密度函数的估计。
核函数通常是一个关于原点对称的函数,且满足积分为1的条件。
常用的核函数有高斯核函数、矩形核函数和三角核函数等。
在进行Kernel密度估计时,首先需要选择合适的核函数和带宽参数。
核函数的选择和带宽参数的确定会直接影响到估计结果的准确性。
常用的带宽选择方法有最小二乘交叉验证和正态分布近似等。
一旦确定了核函数和带宽参数,就可以利用Kernel密度估计法来估计概率密度函数。
对于一个给定的数据点,首先将该点周围的一小段区域视为一个核函数的支持区间,然后计算该点在该区域内的核函数值。
再将所有数据点的核函数值加权平均,得到该数据点处的概率密度估计值。
重复这个过程,可以得到整个数据集的概率密度估计函数。
Kernel密度估计法的优点在于其灵活性和无偏性。
由于不需要对数据进行任何分布假设,因此可以适用于各种类型的数据。
另外,由于采用了加权平均的方法,所以估计结果相对较为平滑,不容易受到离群值的干扰。
然而,Kernel密度估计法也存在一些缺点。
首先,带宽参数的选择对估计结果有较大的影响,但如何选择合适的带宽参数并没有一个统一的标准。
其次,当数据维度较高时,由于样本点的稀疏性,估计结果可能会变得不准确。
此外,当样本量较大时,计算复杂度较高,运算速度较慢。
为了解决上述问题,研究人员提出了一些改进的Kernel密度估计方法。
例如,可以采用自适应带宽参数,根据数据的局部特征来确定带宽参数的取值。
通俗解释核密度估计

核密度估计什么是核密度估计?核密度估计(Kernel Density Estimation,简称KDE)是一种非参数统计方法,用于估计随机变量的概率密度函数(Probability Density Function,简称PDF)。
它通过在每个数据点周围放置一个核函数,并将所有核函数的贡献叠加起来,来估计数据的概率密度分布。
核密度估计的主要思想是将数据点视为一系列的小区间,通过对每个小区间内的数据点进行加权,得到该区间的概率密度估计。
这种方法可以有效地克服传统直方图方法中区间宽度选择的问题,从而更准确地估计数据的概率密度。
核密度估计的步骤核密度估计的步骤如下:1.选择核函数:核函数是用来衡量每个数据点对估计结果的贡献的函数。
常用的核函数有高斯核函数、矩形核函数和三角核函数等。
高斯核函数是最常用的核函数,其形式为:K(x)=√2π−x2 2。
2.选择带宽:带宽是核密度估计中的一个重要参数,它决定了核函数的宽度。
带宽越小,估计结果越尖锐;带宽越大,估计结果越平滑。
带宽的选择对估计结果的精度有重要影响,通常需要通过交叉验证等方法来确定最佳的带宽值。
3.计算核密度估计:对于每个数据点,计算其周围核函数的加权和,得到该点处的概率密度估计。
可以使用公式P(x)=1n ∑Kni=1(x−x iℎ)来计算核密度估计,其中n是数据点的个数,x i是第i个数据点的值,ℎ是带宽。
4.可视化结果:将计算得到的核密度估计结果绘制成曲线图,可以更直观地理解数据的概率密度分布。
核密度估计的优点和应用核密度估计具有以下优点:1.非参数性:核密度估计不对数据的分布做出任何假设,适用于各种类型的数据。
2.相对平滑:核密度估计可以通过调整带宽来控制估计结果的平滑程度,从而更好地适应数据的特征。
3.无偏性:在理论上,核密度估计可以无偏地估计概率密度函数。
核密度估计在许多领域有广泛的应用,包括:1.数据可视化:通过绘制核密度估计曲线,可以直观地展示数据的概率密度分布,帮助我们理解数据的特征和分布情况。
非参数回归 r语言-概述说明以及解释

非参数回归r语言-概述说明以及解释1.引言1.1 概述非参数回归是一种不依赖于特定函数形式的回归分析方法,它不需要对数据的分布做出假设。
相比于传统的参数回归方法,非参数回归更加灵活,能够更好地拟合复杂的数据模式。
在实际应用中,非参数回归可以有效地处理非线性关系、异常值和数据噪音等问题,因此受到越来越多研究者和数据分析师的青睐。
本文将重点介绍在R语言中如何进行非参数回归分析,包括常用的非参数回归方法、分析步骤以及如何利用R语言中的工具进行非参数回归分析。
同时,我们将讨论非参数回归的优缺点,以及对R语言在非参数回归中的意义和展望非参数回归的发展。
希望本文能够帮助读者更加深入地了解非参数回归方法,并在实践中灵活运用。
1.2 文章结构本文分为引言、正文和结论三部分。
在引言部分,将包括概述、文章结构和目的等内容,为读者提供对非参数回归和R语言的整体了解。
在正文部分,将介绍什么是非参数回归、在R语言中如何进行非参数回归分析以及非参数回归的优缺点。
最后,在结论部分将对非参数回归的应用进行总结,探讨R语言在非参数回归中的意义,以及展望非参数回归的发展前景。
通过以上结构,读者将逐步深入了解非参数回归和R语言在该领域的应用和发展。
1.3 目的本文旨在探讨非参数回归在数据分析中的应用,特别是在R语言环境下的实现方法。
通过深入了解非参数回归的概念、原理和优缺点,读者可以更全面地了解这一方法在处理不确定性较大、数据分布不规律的情况下的优势和局限性。
此外,本文还旨在介绍R语言中如何进行非参数回归分析,帮助读者学习如何利用这一工具进行数据建模和预测分析。
最终,通过对非参数回归的应用和发展的展望,希望能够激发更多的研究者和数据分析师对于这一领域的兴趣,推动非参数回归方法在实际应用中的进一步发展和创新。
2.正文2.1 什么是非参数回归非参数回归是一种用于建立数据之间关系的统计方法,它不对数据的分布做出任何假设。
在传统的参数回归中,我们通常会假设数据服从某种特定的分布,比如正态分布,然后通过参数估计来拟合模型。
r三维核密度

r三维核密度三维核密度估计(Three-dimensional kernel density estimation)是一种用于估计多维数据分布的非参数方法。
它可用于分析空间数据中的聚集模式、热点区域和密度分布,并通过生成连续的平滑曲面来表示数据的密度分布情况。
核密度估计是基于核函数的一种方法,它是通过在每个数据点周围的邻域内放置一个核函数,并将它们加权求和,得到对数据分布的估计。
核函数可以是任何满足非负和积分为1的函数,常用的核函数有高斯核函数和Epanechnikov核函数等。
在二维核密度估计中,我们可以通过对二维数据集中每个数据点的邻域进行核函数加权求和,来估计数据的密度分布。
而在三维核密度估计中,我们会再加入一个维度,即通过在三维数据集中每个数据点的邻域进行核函数加权求和,来估计数据的密度分布。
三维核密度估计可以帮助我们发现空间数据集中的聚集模式和热点区域。
例如,在城市规划中,可以使用三维核密度估计来分析人口分布、交通拥堵情况等,从而为城市规划者提供决策支持。
在环境科学中,可以使用三维核密度估计来分析气象数据、海洋数据等,以便更好地理解数据的空间分布特征。
三维核密度估计的基本思想是在三维空间中对每个数据点的邻域进行核函数加权求和。
核函数的具体形式可以根据实际需求选择,但一般情况下,高斯核函数被广泛应用。
高斯核函数的形式为:K(x) = (1 / (2πσ²)^(3/2)) * exp(-(x_1 - x_0)²/2σ²) * exp(-(y_1 - y_0)²/2σ²) * exp(-(z_1 - z_0)²/2σ²)其中,K(x)表示核函数的值,(x_1, y_1, z_1)表示数据点的坐标,(x_0, y_0, z_0)表示核函数中心的坐标,σ为高斯核函数的标准差。
对于每个数据点,我们可以选择一个合适的核函数中心和标准差,然后对整个数据集中的所有数据点进行核函数加权求和,从而得到一个表示数据密度分布的三维曲面。
核密度图详解

R语言与非参数统计(核密度估计)背景核密度估计是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,由Rosenblatt (1955)和Emanuel Parzen(1962)提出,又名Parzen窗(Parzen window)。
原理假设我们有n个数X1-Xn,我们要计算某一个数X的概率密度有多大。
核密度估计的方法是这样的:其中K为核密度函数,h为设定的窗宽。
核密度估计的原理其实是很简单的。
在我们对某一事物的概率分布的情况下。
如果某一个数在观察中出现了,我们可以认为这个数的概率密度很大,和这个数比较近的数的概率密度也会比较大,而那些离这个数远的数的概率密度会比较小。
基于这种想法,针对观察中的第一个数,我们都可以f(x-xi)去拟合我们想象中的那个远小近大概率密度。
当然其实也可以用其他对称的函数。
针对每一个观察中出现的数拟合出多个概率密度分布函数之后,取平均。
如果某些数是比较重要,某些数反之,则可以取加权平均。
但是核密度的估计并不是,也不能够找到真正的分布函数。
代码作图示例我们可以举一个极端的例子:在R中输入:●[plain]view plaincopyprint?1.plot(density(rep(0, 1000)))可以看到它得到了正态分布的曲线,但实际上呢?从数据上判断,它更有可能是一个退化的单点分布。
但是这并不意味着核密度估计是不可取的,至少他可以解决许多模拟中存在的异方差问题。
比如说我们要估计一下下面的一组数据:●[plain]view plaincopyprint?1.set.seed(10)2.dat<-c(rgamma(300,shape=2,scale=2),rgamma(100,shape=10,scale=2))可以看出它是由300个服从gamma(2,2)与100个gamma(10,2)的随机数构成的,他用参数统计的办法是没有办法得到一个好的估计的。
那么我们尝试使用核密度估计:[plain]view plaincopyprint?1.plot(density(dat),ylim=c(0,0.2))将利用正态核密度与标准密度函数作对比[plain]view plaincopyprint?1.dfn<-function(x,a,alpha1,alpha2,theta){2.a*dgamma(x,shape=alpha1,scale=theta)+(1-a)*dgamma(x,shape=alpha2,scale=theta)}3.pfn<-function(x,a,alpha1,alpha2,theta){4.a*pgamma(x,shape=alpha1,scale=theta)+(1-a)*pgamma(x,shape=alpha2,scale=theta)}5.curve(dfn(x,0.75,2,10,2),add=T,col="red")得到下图:(红色的曲线为真实密度曲线)可以看出核密度与真实密度相比,得到大致的估计是不成问题的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对重要参数做出较为详细的说明: X:我们要进行核密度估计的数据 Bw:窗宽,这里可以由我们自己制定,也可以使用 默认的办法nrd0: Bandwidth selectors for Gaussian kernels。我们还可以使用bw.SJ(x,nb = 1000, lower = 0.1 * hmax, upper = hmax, method = c("ste","dpi"), tol = 0.1 * lower),这里的method =”dpi”就是前面提到过的插入法,”ste”代表solvethe-equationplug-in,也是插入法的改进 Kernel:核的选择 Weights:对比较重要的数据采取加权处理
得到下图:
(红色的曲线为真实密度曲线)
可以看出核密度与真实密度相比,得到大致的估计 是不成问题的。至少趋势是得到了的。如果换用 gamma分布的核效果无疑会更好,但是遗憾的是r 中并没有提供那么多的核供我们挑选(其实我们知 道核的选择远没有窗宽的选择来得重要),所以也 无需介怀。 R中提供的核:kernel = c("gaussian", "epanechnikov", "rectangular", "triangular", "biweight","cosine", "optcosine")。
将利用正态核密度与标准密度函数作对比 dfn<-function(x,a,alpha1,alpha2,theta){ a*dgamma(x,shape=alpha1,scale=theta)+(1a)*dgamma(x,shape=alpha2,scale=theta)} pfn<-function(x,a,alpha1,alpha2,theta){ a*pgamma(x,shape=alpha1,scale=theta)+(1a)*pgamma(x,shape=alpha2,scale=theta)} curve(dfn(x,0.75,2,10,2),add=T,col="red")
知道带宽:h=0.8229(采取正态密度核)那
么带入密度估计式就可以写出密度估计函数。 最后以faithful数据集为例说明density的用法: R数据集faithful是old faithful火山爆发的数据, 其中“eruption”是火山爆发的持续时间, waiting是时间间隔 对数据“eruption”做核密度估计
得到下图,我们可以清楚的看到带宽为0.8恰
好合适,其余的不是拟合不足便是过拟合。
窗宽究竟该如何选择呢?
我们这里不加证明的给出最佳窗宽选择公式:
(这个基于积分均方误差最小的角度得到的) 这里介绍两个可操作的窗宽估计办法:(这两种方法都比较 容易导致过分光滑) 1、 Silverman大拇指法则 这里使用R(phi’’)/sigma^5估计R(f’’),phi代表标准正态密 度函数,得到h的表达式: h=(4/(3n))^(*1/5)*sigma 2、 极大光滑原则 h=3*(R(K)/(35n))^(1/5)*sigma当然也有比较麻烦的窗宽估计 办法,比如缺一交叉验证,插入法等,可以参阅 《computational statistics》一书
ker.density=function(x,h){ x=sort(x) n=length(x);s=0;t=0;y=0 for(i in 2:n) s[i]=0 for(i in 1:n){ for(j in 1:n) s[i]=s[i]+exp(-((x[i]-x[j])^2)/(2*h*h)) t[i]=s[i] } for(i in 1:n) y[i]=t[i]/(n*h*sqrt(2*pi)) z=complex(re=x,im=y) hist(x,freq=FALSE) lines(z) } ker.density(data,0.8)
我们用上面的两种办法得到的窗宽是多少,他的核 密度估计效果好吗? 我们还是以上面的混合正态数据为例来看看效果。 使用大拇指法则,将数据n=400,sigma=3.030658, 带入公式,h=0.9685291 使用极大光滑原则,假设K为正态核, R(K)=1/(sqrt(2*pi)),h=1.121023 可以看出他们都比我们认为的h=0.8要大一些,作图 如下:
R程序: data(faithful) A<-faithful x<-A[,"eruptions"] density(x) plot(density(x)) 知道h= 0.3348 作图:
于核密度估计R中还有不少函数包提供了大量的支持: 可以研读一下如下几个包,也可以自己编程去实 现 ks Kernel smoothing Kendall Kendall rank correlation and Mann-Kendall trend test KernSmooth Functions for kernel smoothing for Wand & Jones (1995) Kappalab Non-additive measure and integral manipulation functions Kerfdr semi-parametric kernel-based approach to local fdr estimations Kernlab Kernel Methods Lab
plot(density(data,bw=0.9685)) plot(density(data,bw=1.1210))
由我们给出的
以Gauss核为例做核密度估计
用Gauss核做核密度估计的R程序如下(还是
使用我们的混合正态密度的例子):
至少他可以解决许多模拟中存在的异方差问 题。比如说我们要估计一下下面的一组数据: set.seed(10) dat<c(rgamma(300,shape=2,scale=2),rgam ma(100,shape=10,scale=2))
可以看出它是由300个服从gamma(2,2) 与100个gamma(10,2)的随机数构成的, 他用参数统计的办法是没有办法得到一个好 的估计的。那么我们尝试使用核密度估计: plot(density(dat),ylim=c(0,0.2))
R语言与非参数统计(核密度估计)
核密度估计是在概率论中用来估计未知的密度函数,属于 非参数检验方法之一,由Rosenblatt (1955)和Emanuel Parzen(1962)提出,又名Parzen窗(Parzen window)。 假设我们有n个数X1-Xn,我们要计算某一个数X的概率密度 有多大。核密度估计的方法是这样的:
其中K为核密度函数, h为设定的窗 宽。
核密度估计的原理其实是很简单的。在我们对某一事物的
概率分布的情况下。 如果某一个数在观察中出现了,我们可以认为这个数的概率 密度很大,和这个数比较近的数的概率密度也会比较大,而 那些离这个数远的数的概率密度会比较小。 基于这种想法,针对观察中的第一个数,我们都可以f(x-xi) 去拟合我们想象中的那个远小近大概率密度。 当然其实也可以用其他对称的函数。针对每一个观察中出现 的数拟合出多个概率密度分布函数之后,取平均。 如果某些数是比较重要,某些数反之,则可以取加权平均。
对于上述混合正态数据data,有
> Call:
density(data)
density.default(x = data)
Data: data (400 obs.); Bandwidth 'bw' = 0.8229
x y Min. :-7.5040 Min. :0.0000191 1stQu.:-3.5076 1st Qu.:0.0064919 Median : 0.4889 Median :0.0438924 Mean :0.4889 Mean :0.0624940 3rdQu.: 4.4853 3rd Qu.:0.1172919 Max. :8.4817 Max. :0.1615015
但是核密度的估计并不是,也不能够找到真 正的分布函数。我们可以举一个极端的例子: 在R中输入: plot(density(rep(0, 1000))) 可以看到它得到了正态分布的曲线,但实际 上呢?从数据上判断,它更有可能是一个退 化的单点分布。
但是这并不意味着核密度估计是不可取的,
作图如下:
最后说一个R的内置函数density()。其实
我觉得如果不是为了简要介绍核密度估计的 一些常识我们完全可以只学会这个函数 先看看函数的基本用法: density(x, ...)## Default S3d0", adjust = 1, kernel = c("gaussian", "epanechnikov", "rectangular", "triangular", "biweight", "cosine", "optcosine"), weights = NULL, window = kernel, width, give.Rkern = FALSE, n= 512, from, to, cut = 3, na.rm = FALSE, ...)