【发布时间】:2019-07-05 07:35:24
【问题描述】:
我在将定制内核插入 R 包时需要帮助,这可能吗?在 kdensity 包中,它声明“内核函数可以从内置内核列表中选择或定制。”
我在网上找到了一个关于如何使用 kdensity 包插入自定义内核的教程,但是我仍然不清楚它实际上是如何工作的。
这里是教程的链接: (https://cran.r-project.org/web/packages/kdensity/vignettes/tutorial.html)。
我想要做的是使用自定义内核 0.5e^(-|x|) 和模拟随机正态数据 (x=rnorm(100,6,2) 来绘制内核估计值。然后从那里,更改带宽以查看它对绘图的影响。
根据教程,给出了高斯核的例子,代码如下:
gaussian = list(
kernel = function(y, x, h) dnorm((y-x)/h),
sd = 1,
support = c(-Inf, Inf))
x 是数据,y 是要评估的点,h 是带宽。
因此,基于此,我创建了这个:
k1=list(
kernel=function(y,x,h){
inside=(y-x)/h
0.5*exp(-1*abs(inside))
},
suport=c(-Inf,Inf)
)
然后,我在 kdensity 包中运行它,得到了这个错误:
kde=kdensity(N,kernel = "k1",bw=0.5)
Error: The supplied kernel ('k1') is not implemented.
显然有些地方不对劲,我不知道如何解决。
感谢任何帮助!
【问题讨论】:
标签: r kernel-density