У меня есть два вектора различной длины, и я хочу вычислить DKL из оценок плотности, используя функцию density()
в R.
Уравнение DKL следующее.
![enter image description here](https://i.stack.imgur.com/iEBaB.png)
Я думаю, что я могу использовать числовое интегрирование, скажем
kde1 = density(x)
kde2 = density(y)
f1 = approxfun(kde1$x,kde1$y,rule=2)
f2 = approxfun(kde2$x,kde2$y,rule=2)
kde_f = function(f1,f2){
f1 * log2(f1/f2)
}
Затем интегрировать по kde_f
, например
integrate(f = kde_f,lower=0, upper=100)
Конечно, это не работает, но я написал это как основную идею того, что я хочу сделать.Я понятия не имею, как поступить, или даже если это имеет смысл.Любая помощь будет по достоинству оценена.