Идентификация членов класса в R poLCA - PullRequest
0 голосов
/ 08 ноября 2019

Я выполняю скрытый анализ классов в R, и все работает нормально, и я получаю свою окончательную модель класса. Теперь мне нужно посмотреть на членство в классе, поэтому я использовал следующий код:

  round(lca.raq2 $posterior[1:3413,],2)

Проблема в том, что R исключил случаи из моего исходного файла (потенциально проблемные случаи для модели?), Поэтому у меня нет способаопределить, какие вероятности соответствуют каждому случаю в моей исходной базе данных.

Есть ли способ включить мой id_variable в команду $ posterior ??

Я попытался объединить идентификатор с набором данных, созданным poLCA, ноон не сливается и выдает мне эту ошибку:

merge (lca.raq, homdata $ idnumber) Ошибка в as.data.frame.default (x): невозможно принудительно вызвать класс '"poLCA"'на data.frame

Любые предложения приветствуются - мне действительно нужно иметь возможность идентифицировать конкретные случаи в каждом классе, чтобы провести дальнейший анализ с классами.

1 Ответ

0 голосов
/ 09 ноября 2019

вы можете получить имена строк из lca.raq2 $ y. Как сказал @Oliver, значения NA удаляются, поэтому у вас остается подмножество ваших значений. Вы можете увидеть пример ниже, чтобы увидеть, как получить идентификатор или имя наблюдения. Я предлагаю именовать строки ваших входных данных после вашего идентификатора.

library(poLCA)
set.seed(123)
data(values)
#introduce some random NAs
# here it set the rownames of the matrix to be id
# in your case it might be homdata$idnumber
rownames(values) = paste("row",1:nrow(values),sep="")
for(i in 1:ncol(values)){
 values[sample(1:nrow(values),10),i]<-NA
 }
 f <- cbind(A,B,C,D)~1
M1 <- poLCA(f,values,nclass=2)

POST = round(M1$posterior,2)
rownames(POST) = rownames(M1$y)

# we can check that the rownames of posterior values are indeed those complete values in original data
table(rownames(values)[complete.cases(values)] == rownames(POST))
TRUE 
 183 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...