You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在lavaan中获取聚类数据的标准化残差?

问题:聚类SEM模型无法生成标准化残差

使用lavaan拟合带cluster参数的聚类数据SEM模型时,调用lavResiduals()或指定标准化类型的residuals()会触发错误:

Fehler in Q %*% ACOV.obs[[g]] : verlangt numerische/komplexe Matrix/Vektor-Argumente
(中文翻译:错误:需要数值/复数矩阵/向量参数)

用lavaan内置Demo.twolevel数据可复现该问题:无cluster参数的模型能正常输出标准化残差,但加入cluster参数校正标准误后,仅能获取未标准化残差,无法生成标准化残差或残差的校正标准误。

测试代码

无cluster参数的正常模型

library(lavaan)

model <- '
fw =~ y1 + 1*y2 + y3
fw ~ x1 + x2 + x3
'
fit3 <- sem(model, data = Demo.twolevel)
summary(fit3, standardized=TRUE, fit.measures = TRUE)

# 正常输出标准化残差及z值、标准误
lavResiduals(fit3, zstat = TRUE, se = TRUE)

带cluster参数的出错模型

library(lavaan)

model <- '
fw =~ y1 + 1*y2 + y3
fw ~ x1 + x2 + x3
'
fit3c <- sem(model, data = Demo.twolevel, cluster = "cluster")
summary(fit3c, standardized=TRUE, fit.measures = TRUE)

# 触发错误
lavResiduals(fit3c, zstat = TRUE, se = TRUE)
# 仅能返回未标准化残差
residuals(fit3c, type= "cor.bentler")

环境:R 4.2.0,lavaan 0.6-17
需求:获取该聚类模型的标准化残差,或至少拿到残差的校正标准误以手动计算(公式:标准化残差 = 未标准化残差 / 校正标准误)


解决方法

目前lavaan的lavResiduals()对带cluster的多层SEM支持有限,无法直接生成标准化残差,可按以下步骤手动计算:

1. 提取未标准化残差

先获取协方差残差矩阵:

# 提取未标准化协方差残差
unstd_cov_resid <- residuals(fit3c, type = "cov")$cov

2. 获取残差的校正标准误

通过lavInspect()提取聚类校正后的观测变量渐近协方差矩阵,再从中计算残差的标准误:

# 提取观测变量的渐近协方差矩阵(已聚类校正)
acov_obs <- lavInspect(fit3c, "acov.obs")

# 残差的标准误是渐近协方差矩阵对角线元素的平方根
resid_se <- sqrt(diag(acov_obs))

# 将标准误转为与残差矩阵维度匹配的矩阵
resid_se_mat <- matrix(resid_se, nrow = nrow(unstd_cov_resid), ncol = ncol(unstd_cov_resid), byrow = FALSE)

3. 计算标准化残差

用未标准化残差除以对应的校正标准误:

# 得到标准化协方差残差
std_cov_resid <- unstd_cov_resid / resid_se_mat

补充:获取相关尺度的标准化残差

如果需要基于相关矩阵的标准化残差,可以先提取未标准化相关残差,再重复上述标准误计算逻辑,或从协方差标准化结果推导:

# 提取未标准化相关残差
unstd_cor_resid <- residuals(fit3c, type = "cor.bentler")$cor
# 相关残差的标准误计算需基于相关矩阵的渐近协方差,转换逻辑略复杂
# 也可从协方差标准化残差推导:将协方差残差除以变量标准差的乘积后再标准化

注:该问题属于lavaan旧版本的功能限制,后续版本可能会优化对聚类模型残差标准化的支持。


内容的提问来源于stack exchange,提问作者Marcus P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:13:17