无估计因子值时如何检验SEM线性假设?含lavaan模型验证
在结构方程模型(SEM)中检验因子间的二次关系(无估计因子值时)
假设我们有如下简化的路径模型(基于lavaan语法):
lavaan -> ' # measurement model A =~ ItemA + ItemB + ItemC B =~ ItemD + ItemE + ItemF C =~ ItemG + ItemH + ItemI # path model A ~ B + C'
要检验B和C与A不存在二次关系,你提到的两种方法中,方法一是正确可行的,方法二不可行,具体分析如下:
方法一:基于观测指标平方构建二次潜变量
思路与代码
先在数据集中将B、C的各观测条目平方,生成如ItemD_sqr、ItemE_sqr这类新变量,再构建包含二次潜变量的模型:
lavaan ->' # measurement model A =~ ItemA + ItemB + ItemC B =~ ItemD + ItemE + ItemF C =~ ItemG + ItemH + ItemI B_sqr =~ ItemD_sqr + ItemE_sqr + ItemF_sqr C_sqr =~ ItemG_sqr + ItemH_sqr + ItemI_sqr # path model A ~ B + B_sqr + C + C_sqr'
判断逻辑
- 观察二次潜变量
B_sqr、C_sqr对A的路径系数是否显著(p值小于预设显著性水平,如0.05); - 对比原模型与加入二次项后的模型的拟合指标(如Δχ²、CFI、TLI变化),以及A的R²是否有显著提升;
- 若二次项系数显著且模型拟合/解释力有提升,则说明存在二次关系,反之则支持线性假设。
合理性
在SEM中,潜变量是不可直接观测的构念,无法直接对其进行平方运算。通过观测指标的平方构建对应的二次潜变量,符合SEM的测量模型逻辑——二次潜变量代表原潜变量的非线性效应,其测量模型与原潜变量的测量逻辑一致。
方法二:直接对潜变量使用I(B^2)
这种方法不可行,原因如下:
- lavaan中的
I()运算符仅支持对观测变量进行算术运算,而B、C是模型估计出的潜变量,并非原始观测数据中的变量,无法直接用I(B^2)的形式生成二次项; - 潜变量是基于观测指标的线性组合估计得到的,直接对其进行平方运算不符合SEM的模型框架,lavaan也无法识别这种语法。
内容的提问来源于stack exchange,提问作者HHKK
相关产品推荐
相关产品推荐

