我正在R中运行LCA并使用熵函数。在输出中,它为2-5类的模型生成结果,然后为6类的模型生成NaN。
我是该软件的初学者,所以任何帮助都将有用
作为参考,代码和输出如下:
entropy<-function (p) sum(-p*log(p))
error_prior<-entropy(LCA_2class$P)
error_post<-mean(apply(LCA_2class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] 0.8631432
error_prior<-entropy(LCA_3class$P)
error_post<-mean(apply(LCA_3class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] 0.9445734
error_prior<-entropy(LCA_4class$P)
error_post<-mean(apply(LCA_4class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] 0.9413201
error_prior<-entropy(LCA_5class$P)
error_post<-mean(apply(LCA_5class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] 0.8849031
error_prior<-entropy(LCA_6class$P)
error_post<-mean(apply(LCA_6class$posterior,1, entropy),na.rm = TRUE)
R2_entropy <- (error_prior-error_post) / error_prior
R2_entropy
[1] NaN
我还尝试按照建议的here将na.omit
添加到功能entropy
这产生了6类模型的输出,但是3-5个nclass的输出与以前的输出不同:
2 classes - 0.8631432
3 classes - 0.951281
4 classes - 0.9460597
5 classes - 0.9363084
6 classes - 0.9471508
有人可以提供帮助吗?