运行poLCA.entropy的问题

时间:2019-01-08 19:36:08

标签: r dataframe rows

我正在尝试使用poLCA软件包在R中进行LCA分析。我目前正在尝试获取数据的熵值,但仍收到相同的消息:(函数(...,row.names = NULL,check.rows = FALSE,check.names = TRUE,:   参数暗示不同的行数:2,4,3

我已经尝试从数据库中删除所有NA,并创建了一个新数据库,而没有遗漏任何情况。我正在将数据库从xlsl导出到R中。我也一直在尝试使用方程式运行数据,但是它不起作用。我一直得到相同的输出。

#### Uploading database ####
LCA.women1=read.xlsx("LCA.women1.xlsx", sheet = 1)
str(LCA.women1)
LCA.women1=LCA.women1[,2:21]
### Running LCA ###
lcawomen1 <- poLCA(lcawperu, data=LCA.women1, maxiter=5000, tol=1e-10, na.rm=TRUE, probs.start=NULL, nclass=1, nrep=100, verbose=TRUE, calc.se=TRUE)
lcawomen2 <- poLCA(lcawperu, data=LCA.women1, maxiter=5000, tol=1e-10, na.rm=TRUE, probs.start=NULL, nclass=2, nrep=100, verbose=TRUE, calc.se=TRUE)
## Entropy measures ##
log(prod(sapply(lcawomen2$probs,ncol)))
p.hat <- lcawomen2$predcell$observed/lcawomen2$N
H.hat <- -sum(p.hat * log(p.hat))
H.hat
poLCA.entropy(lcawomen2)

### Entropy equations ###
entropy<-function (p) sum(-p*log(p))
error_prior <- entropy(lcawomen2$P)
error_post <- mean(apply(lcawomen2$posterior, 1, entropy))
R2_entropy <- (error_prior - error_post / error_prior)

### another method ###
results$R2_entropy
results[1,8]<-c("-")
error_prior<-entropy(lcawomen2$P) # class proportions model 2
error_post<-mean(apply(lcawomen2$posterior,1, entropy),na.rm = TRUE)
results[2,8]<-round(((error_prior-error_post) / error_prior),3)

这是我运行dput(head(LCAwomen2,30))后的数据结构。所有NA已更改为3: 结构(列表(w1 = c(1、2、1、2、2、1、2、1、1、1、1、1、2, 2,1,1,1,2,1,2,1,1,1,1,1,1,2,1,1,1,1),w2 = c(1, 1,2,1,1,2,1,2,2,2,2,1,1,1,2,2,2,1,2,1,2,2, 2,1,2,2,1,2,2,2),w3 = c(2,1,1,1,1,1,1,1,1,1,1, 1,2,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1),     w4 = c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,     1,1,1,1,1,1,1,1,1,1,1,1,1),w5 = c(1,1,1,1,     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,     1,1,1,1,1,1,1,1),w6 = c(1,2,2,1,1,1,2,1,1,1,2,     1,1,1,1,1,2,2,1,1,2,1,1,1,1,2,1,1,2,1,     1),w7 = c(1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,2,1,     1,1,1,1,1,1,1,1,1,2,2,1,1,1,1),w8 = c(2,2,1,     2,2,2,1,2,2,3,1,2,1,2,1,1,2,1,1,3,2,2,1,     2,1,2,1,1,1,2,1,1),w9 = c(2,1,1,2,1,1,2,3,3,3,     1,2,2,1,1,1,1,2,2,2,1,2,2,2,2,2,3,2,2,     1,3),w10 = c(2,1,1,1,1,1,2,2,3,1,2,2,1,1,     2,1,1,2,2,1,2,2,1,1,2,2,3,1,2,1,1),w11 = c(1,     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,     1,2,1,1,1,1,1,1,1,1,1),w12 = c(1,1,2,2,2,2,2,     1,1,2,1,1,2,1,1,1,1,1,2,2,2,2,1,1,2,1,     2,1,2,2,2),w13 = c(1,3,1,1,1,2,1,1,1,1,1,1,     1,1,1,1,1,2,2,1,1,2,1,2,3,1,1,1,2,2,1,1),     w14 = c(2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,     2,2,2,1,2,2,2,2,2,2,1,1,2,2),w15 = c(2,2,2,     2,1,2,2,1,1,2,2,1,2,2,1,2,1,2,1,2,2,1,     2,1,2,1,2,2,1,1,2),w16 = c(1,1,1,1,1,1,1,1,1,     1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,     1,1,1),w17 = c(1,1,1,1,1,2,1,2,1,1,1,1,1,1,     1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1),w18 = c(1,     1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,     2,2,1,1,2,1,1,1,2,1,1),w19 = c(1,1,1,2,2,2,2,     1,2,1,1,1,1,1,1,1,1,2,2,1,1,2,2,1,1,2,     1,1,1,1,1),w20 = c(1,1,1,1,1,1,1,1,1,1,1,     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)),row.names = c(NA, 30L),class =“ data.frame”)

0 个答案:

没有答案