2015-09-25 34 views
0

我的問題涉及包flexmix的R函數KLdiv。據我瞭解,排列輸入樣本不應該改變計算,但它確實如此。以下代碼片段是對KLdiv幫助描述示例的適配。Kullback-Leibler KLdiv排列

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

回答

0

我認爲你在這裏錯過了理解的排列。 你應該置換的任一行或輸入對象的列:

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點排列是相同的。

+0

謝謝你的回答,但我的排版意圖是另一回事。我試着再次在這裏解釋。函數估計如下:** \ int f(x)(\ log f(x) - \ log g(x))dx **由於置換樣本不會改變它的分佈函數,也不會改變它的密度,所以我認爲結果應該保持不變。 – maxatSOflow