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

使用SEMinR包拟合PLS模型时遇逻辑判断缺失值错误求助

关于SEMinR包PLS模型拟合报错的排查与解决

我正在使用SEMinR包运行结构方程模型(SEM),数据集无缺失值。已按如下代码指定模型,但拟合数据时出现错误:

模型代码

national_mm= constructs(
  composite('NatCont', multi_items('nat_',1:4)))

model_nat_sm=relationships(
  paths(from='NatCont',to=c('coauthor','imfjourn')))

modelnational=estimate_pls(data=dataNational, measurement_model = national_mm, structural_model = model_nat_sm) 

报错信息

error in if ((mmMatrix[mmMatrix[, "construct"] == construct, "type"][1] == : missing value, where TRUE/FALSE needed

错误原因及解决办法

  • 核心原因:结构模型里的coauthor和imfjourn两个构念,没有在测量模型national_mm中定义。SEMinR要求所有参与结构路径的构念,必须先在测量模型里明确其测量方式(复合式/反映式),否则程序无法识别构念类型,导致逻辑判断时出现缺失值,触发报错。

  • 解决步骤:
    把coauthor和imfjourn补充到测量模型中,根据实际测量项调整代码:

    national_mm= constructs(
      composite('NatCont', multi_items('nat_',1:4)),
      # 按实际情况定义coauthor的测量项,多项目用multi_items,单项目用single_item
      composite('coauthor', multi_items('coauth_', 1:3)),
      # 同理定义imfjourn的测量项
      composite('imfjourn', single_item('imfjourn'))
    )
    
    model_nat_sm=relationships(
      paths(from='NatCont',to=c('coauthor','imfjourn')))
    
    modelnational=estimate_pls(data=dataNational, measurement_model = national_mm, structural_model = model_nat_sm) 
    
  • 额外检查项:

    • 确认数据集中的变量名和测量模型里的命名完全匹配,比如nat_1至nat_4确实存在于dataNational中,没有拼写错误。
    • 确保每个构念的测量类型(composite或reflective)指定正确,这是SEMinR运行PLS模型的必要前提。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 00:12:35