使用lavaan进行SEM中介分析报错:数据集缺失观测变量
解决lavaan中介分析报错:missing observed variables in dataset: Y M
问题根源
- 模型语法结构错误
你把两个核心回归方程写在了同一行,导致lavaan无法正确解析模型逻辑,误生成了不存在的变量Y、M。中介模型需要明确拆分两条路径:
- 中介变量被预测变量驱动的路径
- 因变量被预测变量+中介变量共同驱动的路径
对象名笔误
你定义模型时用的变量名是modal,但调用sem()时传入的是model,这会导致R找不到模型对象(虽然当前报错没触发这个,但属于潜在致命问题)。变量名一致性风险
需确认Tyburdata数据集中的变量名和模型里的完全匹配,比如模型里的Sexual_Disgust不能是数据里的Sexual Disgust(带空格的变量名在lavaan中会解析失败,建议用下划线/驼峰命名)。
修正后的代码
# 规范的中介模型语法 model <- ' # 因变量回归:直接效应c + 中介路径b PolOri_Social ~ c*Gender + b*Sexual_Disgust # 中介变量回归:中介路径a Sexual_Disgust ~ a*Gender # 间接效应计算 ab := a*b # 总效应计算 total := c + ab ' # 拟合模型(确保模型对象名与定义一致) fit <- sem(model, data = Tyburdata) summary(fit)
内容的提问来源于stack exchange,提问作者Megan Owen
相关产品推荐
相关产品推荐

