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
了解详细信息。这些函数将单个数值向量作为输入。
我想为我的核密度估计计算最佳带宽值。我有一个包含两列(经度和纬度)的 .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
了解详细信息。这些函数将单个数值向量作为输入。