【问题标题】:Matching posterior probabilities in poLCA R package匹配 poLCA R 包中的后验概率
【发布时间】:2019-01-22 22:37:27
【问题描述】:

我是 R 的新手,有一个关于 poLCA 的问题。当你运行一个潜在的类时 在 poLCA 中进行分析,它会为每个受访者生成一个值 “属于”每个潜在类别的后验概率。这些被存储 作为元素“后验”中的矩阵。

我想创建一个数据框,其中包含每个受访者的独特之处 ID 号(作为变量存储在用于 poLCA 的数据帧中) 以及它们从“后验”矩阵中匹配的后验概率。我 然后想将此数据帧写入 csv 文件以在另一个文件中使用 程序。

我知道这是可能的,但我似乎无法做到这一点(怪我 R)的无能。非常感谢任何帮助。

最好的祝愿。 罗伯特·德弗里斯

编辑 - 示例

#Loading the poLCA package
library(poLCA)

#The ID variable
serial <-sample(1:1000,100,replace=F)

#The variables used in the latent class model
V1 <- sample(1:2,100,replace=T)
V2 <- sample(1:2,100,replace=T)
V3 <- sample(1:2,100,replace=T)
V4 <- sample(1:2,100,replace=T)

#the data given to the lca
lcadata <- data.frame(serial,V1,V2,V3,V4)

#the lca formula
f <- cbind(V1,V2,V3,V4) ~1

#A 2 class LCA model in poLCA
lca2 <- poLCA(f,lcadata,nclass=3,maxiter=5000,nrep=10)

【问题讨论】:

  • 您能否提供您的数据的 sn-p 或玩具数据集,我们可以在其上运行 poLCA() 来帮助回答您的问题?这应该很简单,但是如果没有可重复的示例,很难做到完全正确。
  • 欢迎来到 SO 并感谢您提出问题。请包括您尝试过的代码以及您收到的错误消息。一个MVCE 将是一个很好的方式来做到这一点,有一个问题that demonstrates how
  • 我觉得问题只是对象子集的问题,这是函数调用的结果。您能否提供一个reproducible example 并帮助我们为您提供帮助?
  • 感谢您的及时回复。我添加了我正在使用的代码示例。此代码将在 100 个假设观察值上运行 2 类 LCA 模型。它将存储每个案例“属于”矩阵“lca2$posterior”中的两个类别中的每一个的后验概率。正是这些我想与新数据框中的“序列”ID 号相匹配。
  • poLCA 对象不存储序列,您只需要相信后验与输入数据帧的顺序相同。也就是说,您可以使用 write.csv(cbind(lcadata[,"serial"],lca2$posterior),file="output.csv") 写出结果;如果您还想要输出中的变量 V1...V4,请删除 [,"serial"]

标签: r


【解决方案1】:

简单到

write.csv(cbind(lcadata$serial, lca2$posterior), 'new_data.csv', row.names=FALSE)

应该可以。

【讨论】:

  • 谢谢 - 成功了。我还对后验是否与相关变量值中的应有值匹配进行了快速手动检查 - 它似乎匹配。但是,有没有更好的方法来检查(如@scoa 所指出的)后验是否与输入数据帧的顺序相同?
猜你喜欢
  • 2016-06-23
  • 2019-09-03
  • 2016-04-15
  • 2015-07-09
  • 2017-09-25
  • 2013-06-26
  • 1970-01-01
  • 2018-02-02
  • 2015-05-03
相关资源
最近更新 更多