R(lavaan)中的 CFA 与序数数据 - 包括多元相关性?
CFA in R (lavaan) with ordinal data - polychoric correlation included?
我想用 R
中的序数数据使用 lavaan
计算验证性因素分析 (CFA)。数据来自一份调查问卷,其中包含 16 个按李克特量表构建的项目。
我假设 4 因子模型最适合我的数据。为了计算 CFA,我搜索了信息并在 paper.
中找到了一些有用的建议
建议使用 DWLS 估计和多元相关。我已经使用 lavaan
包在 R
中用 DWLS 计算了 CFA。我发现在 Mplus 中,DWLS 估计或相同的 WLSMV 使用 polychoric correlation ,不幸的是我从未使用过 Mplus 并想与 R
一起工作,所以我想知道在 lavaan
中是否相同。
到目前为止,我是这样计算 CFA 的:
我指定了一个模型 (model.4),有 4 个因素(AV、AW、AB、AA),(每个因素有 4 个项目)
model.4='
AV =~ AVf1_+AVf2+AVf3+AVf4
AW =~ AWf1+AW2+AWf3+AWf4
AB =~ ABf1+ABf2+ABf3+ABf4
AA =~ AAf1+AAf2+AAf3+AAf4'
然后我使用了"ordered"
函数,因为我的数据是有序的,推荐在lavaan
包
model.ord = cfa(model.4,data=Data,ordered=c(
"AVf1","AVf2","AVf3","AVf4",
"AWf1","AWf2","AWf3","AWf4",
"ABf1","ABf2","ABf3","ABf4",
"AAf1","AAf2","AAf3","AAf4"))
这很有效。我得到了包含所有相关拟合指数(CFI、RMSEA 等)的输出。现在我的问题是,如果这像 Mplus 那样自动基于多元相关性?如果不是 - 我如何添加命令以使用多元相关? lavaan
包中有一些关于多元相关的信息,lavCor
,但我不知道它是否对我的问题有用,不幸的是我不知道如何使用它。
我这样试过:
model.ord1 <- lavCor(cfa(model.4,data=Data,ordered=c(
"AVf1","AVf2","AVf3","AVf4",
"AWf1","AWf2","AWf3","AWf4",
"ABf1","ABf2","ABf3","ABf4",
"AAf1","AAf2","AAf3","AAf4"))
))
但是> summary(model.ord1, fit=T)
没有用。我没有收到任何结果。
总结:我的 CFA 是否自动基于多元相关性?如果没有,我该如何改变我的函数来实现多元相关?
以下 link 包含一个类似的用例,我猜:https://www.packtpub.com/books/content/structural-equation-modeling-and-confirmatory-factor-analysis - 向下滚动到:"The lavaan syntax":
通过您使用的参数 ordered = c
,您已经告诉 lavaan 某些变量本质上是有序的。作为回应,lavaan 估计了这些变量的多元相关性。
但我不知道是不是true/correct。有人可以确认吗?
是,according to folks in the lavaan user group,使用 "ordered" 选项将对序数变量使用具有多元相关的 DWLS。
您可以通过比较
的输出来仔细检查这一点
inspect(fit, "sampstat")$cov
其中 fit 是具有有序变量的 cfa() 模型的输出,并且
lavCor(fit, ordered = TRUE, group = NULL, output = "cor")
报告多元相关性
我想用 R
中的序数数据使用 lavaan
计算验证性因素分析 (CFA)。数据来自一份调查问卷,其中包含 16 个按李克特量表构建的项目。
我假设 4 因子模型最适合我的数据。为了计算 CFA,我搜索了信息并在 paper.
中找到了一些有用的建议建议使用 DWLS 估计和多元相关。我已经使用 lavaan
包在 R
中用 DWLS 计算了 CFA。我发现在 Mplus 中,DWLS 估计或相同的 WLSMV 使用 polychoric correlation ,不幸的是我从未使用过 Mplus 并想与 R
一起工作,所以我想知道在 lavaan
中是否相同。
到目前为止,我是这样计算 CFA 的:
我指定了一个模型 (model.4),有 4 个因素(AV、AW、AB、AA),(每个因素有 4 个项目)
model.4='
AV =~ AVf1_+AVf2+AVf3+AVf4
AW =~ AWf1+AW2+AWf3+AWf4
AB =~ ABf1+ABf2+ABf3+ABf4
AA =~ AAf1+AAf2+AAf3+AAf4'
然后我使用了"ordered"
函数,因为我的数据是有序的,推荐在lavaan
包
model.ord = cfa(model.4,data=Data,ordered=c(
"AVf1","AVf2","AVf3","AVf4",
"AWf1","AWf2","AWf3","AWf4",
"ABf1","ABf2","ABf3","ABf4",
"AAf1","AAf2","AAf3","AAf4"))
这很有效。我得到了包含所有相关拟合指数(CFI、RMSEA 等)的输出。现在我的问题是,如果这像 Mplus 那样自动基于多元相关性?如果不是 - 我如何添加命令以使用多元相关? lavaan
包中有一些关于多元相关的信息,lavCor
,但我不知道它是否对我的问题有用,不幸的是我不知道如何使用它。
我这样试过:
model.ord1 <- lavCor(cfa(model.4,data=Data,ordered=c(
"AVf1","AVf2","AVf3","AVf4",
"AWf1","AWf2","AWf3","AWf4",
"ABf1","ABf2","ABf3","ABf4",
"AAf1","AAf2","AAf3","AAf4"))
))
但是> summary(model.ord1, fit=T)
没有用。我没有收到任何结果。
总结:我的 CFA 是否自动基于多元相关性?如果没有,我该如何改变我的函数来实现多元相关?
以下 link 包含一个类似的用例,我猜:https://www.packtpub.com/books/content/structural-equation-modeling-and-confirmatory-factor-analysis - 向下滚动到:"The lavaan syntax":
通过您使用的参数 ordered = c
,您已经告诉 lavaan 某些变量本质上是有序的。作为回应,lavaan 估计了这些变量的多元相关性。
但我不知道是不是true/correct。有人可以确认吗?
是,according to folks in the lavaan user group,使用 "ordered" 选项将对序数变量使用具有多元相关的 DWLS。
您可以通过比较
的输出来仔细检查这一点inspect(fit, "sampstat")$cov
其中 fit 是具有有序变量的 cfa() 模型的输出,并且
lavCor(fit, ordered = TRUE, group = NULL, output = "cor")
报告多元相关性