Kullback-Leibler KLdiv 排列

Kullback-Leibler KLdiv permutation

我的问题是指包 flexmix 的 R 函数 KLdiv。据我所知,排列输入样本不应该改变计算,但它确实如此。以下代码片段改编自 KLdiv 帮助说明的示例。

require(flexmix)
x1 <- seq(-3, 3, length=200)
x2 <- sample(x1, replace=FALSE)
y <- cbind(x1, x2)
KLdiv(y)

我认为您误解了这里的排列。 您应该排列输入对象的行或列:

lapply(list(y[sample(nrow(y)),],y[,sample(ncol(y))]),KLdiv)
[[1]]
         x1       x2
x1 0.000000 5.356882
x2 5.588135 0.000000

[[2]]
         x1       x2
x1 0.000000 5.356882
x2 5.588135 0.000000

2 个排列的结果相同。