【发布时间】:2015-10-07 19:10:01
【问题描述】:
我意识到 MPLus 和 poLCA(R 包)对潜在类的熵度量指的是不同的值范围。
在 MPLUS 中,值介于 0 和 1 之间。他们提到熵度量表示类重叠,如果数字接近 1,则类分离良好,反之亦然。
在R中,熵度量高于1,如5、12。
您知道这两种措施之间是否可以进行任何转换?如何计算 R 中 0 到 1 之间的熵度量?
【问题讨论】:
我意识到 MPLus 和 poLCA(R 包)对潜在类的熵度量指的是不同的值范围。
在 MPLUS 中,值介于 0 和 1 之间。他们提到熵度量表示类重叠,如果数字接近 1,则类分离良好,反之亦然。
在R中,熵度量高于1,如5、12。
您知道这两种措施之间是否可以进行任何转换?如何计算 R 中 0 到 1 之间的熵度量?
【问题讨论】:
Mplus 计算 相对熵(Celeux, G. 和 Soromenho, G. (1996) An Entropy Criterion for Assessing the Number of Clusters in a Mixture Model. Journal of Classification, 13, 195-212 .http://dx.doi.org/10.1007/BF01246098).
为此,我在 R 中使用
data(carcinoma)
f <- cbind(A,B,C,D,E,F,G)~1
lca2 <- poLCA(f,carcinoma,nclass=2)
##RELATIVE ENTROPY
##Numerator:
nume.E <- -sum(lca2$posterior * log(lca2$posterior))
##Denominator (n*log(K)): ## n is a sample size, and K is a number of class
deno.E <- 118*log(2)
##Relative Entropy
Entro <- 1-(nume.E/deno.E)
Entro
另一种方法 (an course by Daniel Oberski)
entropy<-function (p) sum(-p*log(p))
error_prior <- entropy(lca2$P) # Class proportions
error_post <- mean(apply(lca2$posterior, 1, entropy))
R2_entropy <- (error_prior - error_post) / error_prior
R2_entropy
【讨论】:
我也在尝试解决这个问题。您是否使用 poLCA 包中的 poLCA.entropy 函数?该手册指出,它“使用潜在类模型计算作为密度估计生成的交叉分类表的熵”。我想知道是否可以使用 R 计算的范围内的最大值(拟合的交叉分类表中单元格总数的对数)将该值标准化为 0-1 范围,但我一直无法找到对此的指导。
【讨论】: