我想做一个结构方程模型,有几个潜在的变量与项目包裹。一些包裹应随机创建。我目前正在努力与“parcelAllocation”函数(semTools),希望有人能帮助我!
我的主数据集称为“Mydata”。我有三个潜在变量(MAAS,PFS和SFS),我想为它们创建随机项目包。
- MAAS有15个项目(Mydata$MAAS_1至Mydata$MAAS_15),我需要3个宗地,每个宗地5个项目
- PFS有7个项目(Mydata$PFS_1至Mydata$PFS_7),我需要3个宗地,每个宗地有2-3个项目
- SFS有7个项目(Mydata$SFS_1至Mydata$SFS_7),我需要3个宗地,每个宗地有2-3个项目
我一直在尝试使用作者所解释的parcelAllocation
函数,但我似乎很难理解它(或它的输出)。
这是我尝试的代码:
# Specify item-level models for each variable
item.syntaxMaas <- paste0("MAAS = ~ MAAS_", 1:15)
item.syntaxPfs <- paste0("PFS = ~ PFS_", 1:7)
item.syntaxSfs <- paste0("SFS = ~ SFS_", 1:7)
cat(item.syntax, sep = "\n")
# Create parcels for MAAS variable
maas.parcel.names <- paste0("maas.par", 1:3)
maas.mod.parcels <- 'MAAS = ~ maas.par1 + maas.par2 + maas.par3'
# Create parcels for PFS variable
pfs.parcel.names <- paste0("pfs.par", 1:3)
pfs.mod.parcels <- 'PFS =~ pfs.par1 + pfs.par2 + pfs.par3'
# Create parcels for SFS variable
sfs.parcel.names <- paste0("sfs.par", 1:3)
sfs.mod.parcels <- 'SFS =~ sfs.par1 + sfs.par2 + sfs.par3'
# Allocate indicators to parcels using parallel computing
maas.parcels <- parcelAllocation(maas.mod.parcels, data = Mydata,
nAlloc = 100, parcel.names = maas.parcel.names,
item.syntax = item.syntaxMaas, std.lv = TRUE)
pfs.parcels <- parcelAllocation(pfs.mod.parcels, data = Mydata,
nAlloc = 100, parcel.names =
pfs.parcel.names,
item.syntax = item.syntaxPfs,
std.lv = TRUE, parallel = "snow")
sfs.parcels <- parcelAllocation(sfs.mod.parcels, data = Mydata,
nAlloc = 100, parcel.names = sfs.parcel.names,
item.syntax = item.syntaxSfs, std.lv = TRUE,
parallel = "snow")
我只想知道哪些项分配给了哪个宗地,但运行
maas.parcels
我得到这个输出:
.
我不明白输出的意思。我在哪里可以看到哪些物品被分配到哪个包裹?是否有其他功能?或者我做错了什么?
啊,我希望包裹是平均分的项目进入他们。我没有找到一个论据。有可能得到吗?
1条答案
按热度按时间yshpjwxd1#
我只想知道哪些项目分配给了哪个包裹
您请求了
nAlloc = 100
分配,因此该问题有100个答案。由于分配是随机的,因此没有一个答案提供信息。但如果您对该算法有纯粹的学术兴趣,则可以在R控制台上使用print(parcelAllocation)
查看函数的内容。以assignments <- list()
开头的部分创建随机分配方案。因此您可以编写自己的函数来返回该对象。我不明白输出是什么意思
您是否已阅读帮助页参考资料部分的文章?
这将告诉你输出的内容,它只是显示不同随机分配的结果有多大的变异性,这就是这个函数的目的。
如果你想得到一个解决方案/拟合模型来从你的数据中得出推论,它考虑了包裹分配的不确定性,那么你可以使用
cfa.mi()
或sem.mi()
来汇总不同分配的结果,如帮助页面示例所示,并在2016年的论文中讨论。我希望宗地是进入其中的项目的平均得分
这是函数内部的工作。