当我使用circular
包绘制风向密度时,出现错误。错误如下所示。有人可以解释我需要的数据量的bw(带宽)吗?
plot(density(dirCir))
Error in density.circular(dirCir) :
argument "bw" is missing, with no default
这是我的实际代码。
library (circular)
dir <-c(308,351,330,16,3,346,345,345,287,359,345,358,336,335,346,16,325,354,5,354,322,340,6,278,354,343,261,353,288,8)
dirCir <- circular(dir, units ="degrees", template = "geographics")
mean(dirCir)
var(dirCir)
summary(dirCir)
plot(dirCir)
plot(density(dirCir))
rose.diag(dirCir, main = 'dir Data')
points(dirCir)
答案 0 :(得分:1)
当您在类density
的对象上运行circular
时,您似乎必须明确包含bw
(带宽)的值(如错误消息所示)。试试这个:
plot(density(dirCir, kernel="wrappednormal", bw=0.02), ylim=c(-1,5))
见下图。 ylim
范围是为了使绘图适合绘图区域而不进行裁剪。有关在density.circular
对象上运行density
函数的详细信息,请参阅circular
的帮助。
答案 1 :(得分:1)
正如@ eipi10所说,必须明确选择bw
。根据您选择的内核,此带宽参数的大小值可能会产生尖峰密度估计值以及非常平滑的密度估计值。
通常的做法是尝试多个值并选择似乎最能描述数据的值。但请注意,以下功能提供了更客观的方法来选择bw
:
# bw.cv.mse.circular(dirCir)
[1] 21.32236
# bw.cv.mse.circular(dirCir, kernel = "wrappednormal")
[1] 16.97266
# bw.cv.ml.circular(dirCir)
[1] 19.71197
# bw.cv.ml.circular(dirCir, kernel = "wrappednormal")
[1] 0.2280636
# bw.nrd.circular(dirCir)
[1] 14.63382