influence.SEM包使用及异常值筛选标准技术咨询
关于influence.SEM包使用与SEM异常值识别的问题解答
1. 如何使用influence.SEM包
使用这个包的核心是基于已拟合的SEM模型和原始观测数据,步骤如下:
- 先安装并加载包:
install.packages("influence.SEM") library(influence.SEM) - 确保你已经用SEM工具(比如lavaan、sem包)拟合好模型对象
mod,且数据框df包含模型中所有的观测变量。 - 调用目标函数并解读结果:
Deltachi(mod, df):计算单个案例移除后的模型卡方值变化(Δχ²),值越大说明案例对整体拟合的影响越强。运行后会生成可视化图,通常以95%置信水平对应的卡方临界值为阈值标记异常案例,也可以通过$Deltachi提取数值结果手动筛选。genCookDist(mod, df):生成Cook距离,衡量案例对模型参数估计的影响程度,类似线性回归的Cook距离,常用阈值为4/n(n为样本量)或1,超过阈值的案例属于高影响力点。Likedist(mod, df):计算似然距离,基于案例移除前后模型对数似然值的变化,通过可视化图展示,超过临界值的案例需重点关注。
2. influence.SEM不是识别SEM异常值的唯一工具
还有不少常用工具可以完成SEM的异常值/影响力分析:
- lavaan包自带功能:
lavTestScore(mod)计算案例得分检验统计量,识别对拟合有显著影响的案例;lavResiduals(mod, type = "casewise")生成案例水平残差,排查异常响应模式。 - semTools包:
influencePlot(mod)整合Cook距离、DFBETA等多种统计量的可视化;caseDeleteLavaan(mod)执行案例删除分析,直接观察移除单个案例后参数和拟合指标的变化。 - 如果使用Mplus软件,也有专门的似然基影响力统计模块可以调用。
3. 函数结果差异的处理策略,以及是否回归因子得分方法
异常值筛选建议
三个函数从不同维度衡量案例影响力:Δχ²关注整体拟合变化,Cook距离关注参数估计偏移,似然距离关注模型似然值变化,结果有差异是正常的。筛选时遵循以下逻辑:
- 优先移除三个函数共同标记的异常值:这类案例在三个维度都表现出强影响力,对模型干扰的确定性最高。
- 仅被单个/两个函数标记的案例,先做人工核查:检查原始数据是否有录入错误、该案例的观测指标是否存在系统性异常;也可以尝试移除后重新拟合模型,对比参数估计和拟合指标的变化——如果变化极小,可保留案例;如果变化显著,再考虑删除。
不建议回到估计因子值的计算方式
你停止使用因子得分做回归的选择是合理的:潜因子得分是模型估计的结果,本身带有抽样误差,将其作为自变量放入线性回归会传递测量误差,导致回归系数估计有偏、标准误不准确。而influence.SEM的方法直接基于原始观测变量和SEM模型做分析,更符合SEM框架的统计逻辑,避免了中间误差传递的问题。
内容的提问来源于stack exchange,提问作者HHKK
相关产品推荐
相关产品推荐

