我正在使用来自np包的npcdens
来在协变量x上构造y的条件密度。但是,我需要相对于y的这个密度的对数的导数。在R中有一些方法来获得这个吗?
bw <- npcdensbw(formula=y ~ x1+x2+x3)
fhat <- npcdens(bws=bw,gradients=TRUE)
grad.fhat <- gradients(npcdens(bws=bw,gradients=TRUE))
返回相对于x1
,x2
和x3
答案 0 :(得分:1)
我们可以使用这个示例数据集吗?
dta = data.frame(expand.grid(x1=1:5,x2=2:6,x3=5:10))
dta$y = with(dta,x1+2*x2 + 3*x3^2)
head(dta)
x1 x2 x3 y
1 1 2 5 80
2 2 2 5 81
3 3 2 5 82
4 4 2 5 83
5 5 2 5 84
6 1 3 5 82
y是“密度”的值。估计条件带宽对象
bw <- npcdensbw(formula = y ~ x1+x2+x3,data=dta)
并查看渐变
head(gradients(npcdens(bws=bw,gradients=TRUE)))
[,1] [,2] [,3]
[1,] -2.024422e-15 -2.048994e-50 -1.227563e-294
[2,] -1.444541e-15 -1.994174e-50 -1.604693e-294
[3,] -1.017979e-31 -1.201719e-50 -1.743784e-294
[4,] 1.444541e-15 -6.753912e-64 -1.604693e-294
[5,] 2.024422e-15 1.201719e-50 -1.227563e-294
[6,] -2.024422e-15 -3.250713e-50 -1.227563e-294
你对“与y有关的衍生物”是什么意思?这是一个函数g(x1,x2,x3),所以你只能得到衍生物w.r.t.这三个方面。关于问题的“日志记录”部分,这可能是吗?
bw <- npcdensbw(formula = log(y) ~ x1 + x2 + x3,data=dta)
我从未使用过这个包,所以这些都是非实践者的想法。我想你看过help(npcdensbw)
中的例子?