使用lavaan拟合EFA后,如何获取有序观测变量的Probit残差相关矩阵?
获取WLSMV估计下有序变量EFA的Probit残差相关矩阵
针对你用lavaan::efa()拟合的有序变量EFA模型(WLSMV估计),可通过以下步骤手动计算Probit残差相关矩阵:
步骤1:提取模型关键参数
从拟合的EFA对象中提取旋转后的因子载荷矩阵和因子协方差矩阵(注意:若你需要的是1因子模型,将Model[[2]]改为Model[[1]]):
lambda <- unclass(Precarity_efa$Model[[2]]$lambda) psi <- unclass(Precarity_efa$Model[[2]]$psi)
步骤2:计算因子隐含的观测变量协方差矩阵
基于因子载荷和因子协方差,计算模型解释的观测变量协方差(潜响应变量尺度):
implied_cov <- lambda %*% psi %*% t(lambda)
步骤3:获取观测变量的Polychoric相关矩阵
WLSMV估计基于有序变量的Polychoric相关,用lavCor()计算与模型一致的相关矩阵:
obs_cor <- lavCor( data = RADx0030_Imputed_imp1, ov.names = c("CHALLIVE", "CHALFOOD", "CHALWATER", "CHALTRANS", "CHALHLTH", "CHALMEDS"), ordered = TRUE )
步骤4:计算Probit残差相关矩阵
通过观测相关减去模型隐含协方差得到残差协方差,再转换为相关矩阵:
# 计算残差协方差矩阵 resid_cov <- obs_cor - implied_cov # 转换为残差相关矩阵 resid_cor <- cov2cor(resid_cov) # 保留三位小数便于查看 resid_cor <- round(resid_cor, 3)
执行完以上代码后,resid_cor即为你需要的Probit残差相关矩阵。
内容的提问来源于stack exchange,提问作者Nader Mehri
相关产品推荐
相关产品推荐

