如何使用lavPredict获得加权总和分数?

时间:2019-02-07 15:01:58

标签: r factor-analysis r-lavaan

我正在使用cfa()包中的lavPredict()lavaan函数为一系列具有某些缺失值的观测值创建因子得分。但是,我找不到产生加权和分数的方法,这种方法可以避免平均值为零。

以下是类似数据的示例:

x <- rnorm(100, 0.4, sd = 0.3)
y <- rnorm(100, 0.7, sd = 0.2)
df <- data.frame(x, y)
df$x[20:30] <- NA
df$y[80:90] <- NA

使用最大信息最大可能性(FIML),我可以在确认性因子分析过程中估算缺失的数据。

mod <- 'dim =~ x + y'
fit <- cfa(mod, df, missing = "fiml")

然后,使用lavPredict函数,我可以为所有观察结果提供因子得分。我使用以下因素评分方法:“回归”,“巴特利特”,“ ML”(最大似然)和“ EBM”(经验贝叶斯模态)。

pred.r <- as.data.frame(lavPredict(fit, method = "regression"))
pred.b <- as.data.frame(lavPredict(fit, method = "Bartlett"))
pred.ml <- as.data.frame(lavPredict(fit, method = "ML"))
pred.ebm <- as.data.frame(lavPredict(fit, method = "EBM"))

以下直方图将显示因子得分的分布:

hist(pred.r$dim)
hist(pred.b$dim)
hist(pred.ml$dim)
hist(pred.ebm$dim)

我正在寻找一种计算因子得分的方法,该因子得分由来自CFA的因子负载加权而没有平均值为零。这行代码可以获取因子负载:

cfa.ld <- as.data.frame(inspect(cfa.fit, what = "std")$lambda)

但是我试图找到一种简单的方法来获得因子分数,该因子分数遵循DiStefano,Zhu和Mindrila(2009)在此处描述的加权总分方法:https://pareonline.net/getvn.asp?v=14&n=20

0 个答案:

没有答案