Я использую функции 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 and Mindrila (2009) здесь: https://pareonline.net/getvn.asp?v=14&n=20