我正在尝试对大型民意调查进行潜伏类分析,但是我遇到了一个问题,即潜伏类结束时的观察数量少于最初的观察数量数据。这使我无法进行分析,因为我想将类特征变量附加到原始数据集中并运行一些统计数据/制作图表。
下面是一小段代码,ur是我要在其上运行LCA的数据集。 问题在于,当我创建ur时,会得到1948 obs的数据集,而在隐性类之后,我会返回1943 obs的集合。
ur <-dat [complete.cases(dat [,91:104])== T,]
f <-cbind(Q42_1,Q42_3,Q42_4,Q42_5,Q42_6,Q42_7,Q42_8,Q42_9, Q43_1,Q43_2,Q43_3,Q43_4,Q43_5, Q43_6)〜factor(pid3)+ factor(inc)+ factor(edu)+ 因子(自己)+因子(年龄)+已婚+因子(Q59)+男性+ emp
lca2 <-poLCA(f,ur,nclass = 2,maxiter = 50000,tol = 0.00000000000001, nrep = 5)
此外,潜在类中包含的所有列出的问题都包含在指定的dat的91:104范围内。
如何纠正此问题?
谢谢!
答案 0 :(得分:0)
默认情况下,poLCA会忽略缺少任何清单变量的情况。它还省略了任何协变量缺失的情况。这称为“逐案删除”,它是处理缺失值的最常用方法。 这似乎是最可能造成案件丢失的原因。
poLCA命令选项为:-
poLCA(formula, data, nclass = 2, maxiter = 1000, graphs = FALSE,
tol = 1e-10, na.rm = TRUE, probs.start = NULL, nrep = 1,
verbose = TRUE, calc.se = TRUE)
帮助文件显示:-
逻辑,关于poLCA如何处理清单变量中值缺失的情况。如果为TRUE,则在估算模型之前,将这些情况删除(逐级删除)。如果为FALSE,则保留缺少值的案例。缺少协变量的案例将始终被删除。默认值为TRUE。
我认为设置
na.rm = FALSE
将所有清单文件中缺少清单变量(而不是协变量)的值保留在其中。