我想对4d数据集进行内核密度估计(每个点由四个值表示)。据我所知,只有软件包kde()
中的函数ks
可以处理二维以上的数据。
但是,kde()
在点值总和为1时返回错误。一个简单的例子。
library(ks)
data=runif(2)
data=cbind(data,1-data) # Data is a 2x2 matrix, with column 2 equal to 1-column 1
kde(data)
Error in chol.default(S) :
the leading minor of order 2 is not positive definite
但是,据我所知,内核估计可以用于任何数据,包括跨维度求和的数据。 kde2d()
软件包中的MASS
加强了这一点,而数据没有问题。
library(MASS)
data=runif(2)
data=cbind(data,1-data)
kde2d(data[,1],data[,2]) #runs as expected.
有人可以建议使用另一种功能进行4d内核估计吗,或者使用kde()
处理总和为1的数据的可能解决方法?