我从ks::kde
函数获取密度数据,这是一个3D模型。
然后我收到3个维度中第一个的值,这样我就可以得到一个平坦的数据片段,然后对2d切片的3d数据进行操作。
直到现在,当我需要1D线时,我会做
splinefun(predict(my_kde_3d_result, x=rep(0, 10, 0.1))
但是对于predict
来说非常慢的n ^ 2挑战的2D切片,以及splinefun
,我甚至找不到2D功能的版本。
我还剩下什么?
答案 0 :(得分:1)
设置示例:
library(ks)
set.seed(101)
d <- data.frame(x=rnorm(1000),y=rnorm(1000),z=rnorm(1000))
k1 <- kde(as.matrix(d))
现在抓取与x==-2
target.x <- -2
w <- which.min(abs(k1$eval.points[[1]]-target.x))
contour(k1$estimate[w,,])
显然,您可以针对任何特定x
,y
或z
值执行此操作:如果您希望切片与xyz
平面不平行,则会变得更难...如果您事先知道要预测(例如)x==-2
,您可以相应地将eval.points
参数设置为kde
。