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

使用lavaan进行多层结构方程模型:集群缺失及列表删除排查咨询

多层SEM中被剔除集群与案例的排查方法

针对你用lavaan运行多层SEM时32个国家集群只剩29个的问题,可通过以下步骤排查:

一、找出被剔除的集群(国家)

  1. 提取模型实际使用的清洗后数据集
    # 获取模型运行时用到的有效数据集
    used_data <- lavInspect(fit.3b, "data")
    
  2. 对比原数据与清洗数据的国家列表
    # 提取原数据和有效数据中的唯一国家
    original_countries <- unique(data_merge$country)
    used_countries <- unique(used_data$country)
    
    # 找出被剔除的国家
    dropped_countries <- setdiff(original_countries, used_countries)
    cat("被剔除的国家:", dropped_countries, "\n")
    

这些国家被剔除的核心原因:其所有案例都因**列表删除(listwise deletion)**被移除(比如模型涉及的变量、权重变量WEIGHT存在缺失),导致集群无有效案例。

二、定位列表删除的具体案例

直接通过模型对象提取保留案例的索引,对比原数据找出被删除的案例:

# 获取模型保留的原数据行索引
used_indices <- lavInspect(fit.3b, "case.idx")

# 找出被删除的行索引及对应案例
dropped_indices <- setdiff(1:nrow(data_merge), used_indices)
dropped_cases <- data_merge[dropped_indices, ]

# 查看被删除的案例详情
print(dropped_cases)

你可以进一步检查这些案例的缺失情况,确认是哪些变量的缺失导致它们被listwise删除。

补充说明

你的代码中,lavaan的listwise删除规则是:只要某一行在**模型公式mod3涉及的变量、抽样权重WEIGHT、集群变量country**中存在任意缺失,就会被直接剔除。即便你提前移除了外生变量缺失的国家,若这些国家的剩余案例存在其他变量缺失,仍会被全部删除,最终导致集群数量减少。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:35:21