在R的mice包中,如何在with()中计算插补数据集的Polychoric相关矩阵?
在mice插补数据集上计算Polychoric相关矩阵
要在mice的插补数据集上生成Polychoric相关矩阵,直接在with()函数中调用polychoric()并提取其rho结果即可,每个插补后的数据集都会生成对应的相关矩阵,最终返回所有插补结果的列表。
完整可运行代码
library(psych) library(tidyverse) library(mice) # 加载并预处理bfi数据集(保留问卷题项,移除人口学变量) data <- bfi %>% select(-c(gender, education, age)) # 执行缺失值插补(默认参数,可根据需求调整mice的参数) imp <- mice(data) # 在所有插补数据集上计算Polychoric相关矩阵 polychoric_results <- with(imp, polychoric(data)$rho) # 查看第一个插补数据集的Polychoric相关矩阵 polychoric_results[[1]] # 对所有插补结果的相关矩阵取平均值(用于后续α系数、EFA等分析) avg_polychoric <- apply(simplify2array(polychoric_results), 1:2, mean)
关键说明
with(imp, polychoric(data)$rho):with()函数会遍历mice生成的每个插补数据集,对每个数据集执行polychoric()计算并提取核心的相关矩阵rho,最终输出一个包含多个矩阵的列表。- 若后续需要基于合并后的结果分析,可通过
apply()函数对所有插补得到的相关矩阵取元素均值,得到一个平均后的Polychoric相关矩阵,用于α系数计算、探索性因子分析等操作。
内容的提问来源于stack exchange,提问作者Sparkringo
相关产品推荐
相关产品推荐

