2016-12-30 8 views
4

Я хотел бы вычислить подтверждающий факторный анализ (CFA) в R (lavaan) с моими порядковыми данными. Я анализирую анкету, содержащую 16 элементов (Likert-Scale). Я полагаю, что 4-факторная модель лучше всего подходит для моих данных. Чтобы вычислить CFA, я искал информацию и нашел полезное пособие в документе (https://www.researchgate.net/publication/7489589_Comparison_of_alternative_estimation_methods_in_confirmatory_factor_analyses_of_the_General_Health_Questionnaire) и других сообщениях.CFA в R (лаваан) с порядковыми данными - включена полихорическая корреляция?

Вывод/рекомендация - использовать DWLS-оценку и полихорическую корреляцию. Мне удалось вычислить CFA с DWLS в R (с пакетом lavaan). Я узнал, что в Mplus оценка DWLS (или WLSMV, которая является одинаковой) использует автоматически полихорическую корреляцию (http://web.pdx.edu/~newsomj/semclass/ho_estimate.pdf), (к сожалению, я никогда не использовал Mplus и хотел бы работать с R), поэтому мне было интересно, если в лаване это то же самое и мне даже не нужно выполнять команду для полихорических корреляций.

До сих пор я вычислил CFA так:

я указал модель (model.4) с 4-мя факторами (А. В., 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' 

Тогда я использовал «заказал» функцию из-за моих упорядоченных данных, которая рекомендуется в пакете 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 автоматически основанным на полихорической корреляции? Если нет, как я могу изменить свою функцию для реализации полихорической корреляции?

ответ

1

Следующая ссылка содержит подобный случай использования я думаю: https://www.packtpub.com/books/content/structural-equation-modeling-and-confirmatory-factor-analysis - прокрутка вниз: «The lavaan синтаксиса»:

С аргументом ordered = c, который вы использовали, вы сказали lavaan, что некоторые переменные порядковые в природе. В ответ лаваны оценивают полихорические корреляции для этих переменных.

Но я не знаю, верно ли это/правильно. Кто-нибудь может это подтвердить?

2

Да, according to folks in the lavaan user group, используя опцию «заказать», будет использовать DWLS с полихорическими корреляциями для порядковых переменных.

Вы можете дважды проверить это, сравнивая выход

inspect(fit, "sampstat")$cov 

где подгонка выход модели КФА() с упорядоченными переменными и

lavCor(fit, ordered = TRUE, group = NULL, output = "cor") 

который сообщает polychoric корреляции