我遇到了一篇很酷的论文,它的想法对我来说很有意义。
马建,孙增其。“互信息是 copula 熵。” 清华科技16.1(2011):51-54。
要点是,copula是考虑了边际分布后的多元分布的“其余部分”,因此边际变量之间的关系,互信息也描述了边际变量之间的关系;因此,两者必须相关。
作者有一个 R 包 ,copent
它实现了这种基于 copula 的计算互信息的方法。我对我所做的模拟结果感到困惑。
#install.packages("copent")
library(copent)
set.seed(2021)
B <- 25 # number of simulations to do
v <- rep(NA, B) # blank vector to hold simulated copula entropy values
for (i in 1:B){
x <- runif(100) # marginal X variable
y <- runif(100) # marginal Y variable (independent from X)
v[i] <- copent::copent(data.frame(x, y)) # Save the copula entropy
}
summary(v)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-0.29278 -0.23628 -0.19173 -0.19102 -0.16434 0.03681
正熵值和负熵值?什么!?
(玩得更多,这些熵的负值似乎只在独立时发生x
。y
)
他们允许负熵的方法发生了什么?
(论文中关于互信息是负copula entropy 的说法也让我感到困惑,尽管这可能是一个单独问题的主题。如果熵和互信息都应该是非负量,那么这种说法意味着两者都是等于零,这仅适用于自变量。)