Проблемы с запуском poLCA.entropy - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь провести анализ LCA в R с использованием пакета poLCA. В настоящее время я пытаюсь получить значения энтропии для своих данных, но я получаю одно и то же сообщение: Ошибка в (function (..., 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)). Все НС были изменены на 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), w2 = c (1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 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, 2, 1, 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, 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, 1), w6 = c (1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 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, 2, 2, 1, 1, 1, 1), w8 = c (2, 2, 1, 2, 2, 2, 1, 2, 3, 1, 2, 1, 2, 1, 1, 2, 1, 1, 3, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1), w9 = c (2, 1, 1, 2, 1, 2, 3, 3, 3, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 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, 2, 2, 3, 1, 2, 1, 1), w11 = c (1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1), w12 = c (1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 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, 2, 2, 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, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 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, 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, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1), w18 = c (1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1), w19 = c (1, 1, 1, 2, 2, 2, 1, 2, 1, 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, 1)), row.names = c (NA, 30L), класс = "data.frame")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...