R:内核密度的带宽选择问题

R: Problem with bandwith selection of kernel density

我想为我的核密度估计计算最佳带宽值。我有一个包含两列(经度和纬度)的 .csv。我尝试了几种不同的功能,但总是得到不同的错误。到目前为止我试过:

h.amise(x, deriv.order = 0)

给出以下错误:参数 'x' 必须是数字并且需要至少 3 个数据点 但是,我检查了我的数据框,它是数字。

然后我尝试了:

dpik(x)

这给我以下错误:'list' object cannot be coerced to type 'double'

将 .csv 用作具有两列的数据框是错误的还是可能是什么问题?

根据您的示例数据:

library(kedd)
library(KernSmooth)

h.amise(x$long)
# 
# Call:     Aymptotic Mean Integrated Squared Error
# 
# Derivative order = 0
# Data: x$long (10 obs.);   Kernel: gaussian
# AMISE = 0.02761525;   Bandwidth 'h' = 1.57264

h.amise(x$lat)
# 
# Call:     Aymptotic Mean Integrated Squared Error
# 
# Derivative order = 0
# Data: x$lat (10 obs.);    Kernel: gaussian
# AMISE = 0.01352194;   Bandwidth 'h' = 3.37266

dpik(x$long)
# [1] 0.4912055
dpik(x$lat)
# [1] 1.079109

阅读手册页 ?h.amise?dpik 了解详细信息。这些函数将单个数值向量作为输入。