从 R 中的 3D 核密度估计和提取点值
Estimate and extract point values from a 3D kernel density in R
根据 R 文档中的以下代码 link 我想弄清楚如何为数据框的每个原始点提取单个值 ("density")
这样我就可以将新列用于我想到的 3D "point" 密度 space 的进一步应用。
我查看了这个 SO 问题:link,但是该代码给出了一个 51 层的矩阵.. 而我不知道如何获得 150 个点值。
就我而言,我担心使用的三变量示例:
fhat <- kde(x=iris[,1:3])
这是代码,它提供了一个很好的情节,但我无法为鸢尾花数据集中的 150 个 rows/points 中的每一个都获取一个值
library(ks)
library(MASS)
data(iris)
## univariate example
fhat <- kde(x=iris[,2])
plot(fhat, cont=50, col.cont="blue", cont.lwd=2, xlab="Sepal length")
## bivariate example
fhat <- kde(x=iris[,2:3])
plot(fhat, display="filled.contour2", cont=seq(10,90,by=10))
plot(fhat, display="persp", thin=3, border=1, col="white")
## trivariate example
fhat <- kde(x=iris[,2:4])
plot(fhat, drawpoints=TRUE)
我假设您指的是 ks
包中的 kde()
?
如果是这样,使用参数 eval.points
来计算 vector/matrix 个点的密度,使用估计值:
## univariate example
library(ks)
fhat <- kde(x = iris[,2])
plot(fhat, cont=50, col.cont="blue", cont.lwd=2, xlab="Sepal length")
estimate <- kde(iris[,2], eval.points = iris[,2])$estimate
points(iris[,2], estimate)
类似地适用于更高的输入维度。
根据 R 文档中的以下代码 link 我想弄清楚如何为数据框的每个原始点提取单个值 ("density") 这样我就可以将新列用于我想到的 3D "point" 密度 space 的进一步应用。
我查看了这个 SO 问题:link,但是该代码给出了一个 51 层的矩阵.. 而我不知道如何获得 150 个点值。
就我而言,我担心使用的三变量示例:
fhat <- kde(x=iris[,1:3])
这是代码,它提供了一个很好的情节,但我无法为鸢尾花数据集中的 150 个 rows/points 中的每一个都获取一个值
library(ks)
library(MASS)
data(iris)
## univariate example
fhat <- kde(x=iris[,2])
plot(fhat, cont=50, col.cont="blue", cont.lwd=2, xlab="Sepal length")
## bivariate example
fhat <- kde(x=iris[,2:3])
plot(fhat, display="filled.contour2", cont=seq(10,90,by=10))
plot(fhat, display="persp", thin=3, border=1, col="white")
## trivariate example
fhat <- kde(x=iris[,2:4])
plot(fhat, drawpoints=TRUE)
我假设您指的是 ks
包中的 kde()
?
如果是这样,使用参数 eval.points
来计算 vector/matrix 个点的密度,使用估计值:
## univariate example
library(ks)
fhat <- kde(x = iris[,2])
plot(fhat, cont=50, col.cont="blue", cont.lwd=2, xlab="Sepal length")
estimate <- kde(iris[,2], eval.points = iris[,2])$estimate
points(iris[,2], estimate)
类似地适用于更高的输入维度。