首页 > 解决方案 > lavaan交互回归模型:样本协方差矩阵不是正定的

问题描述

我正在运行一个带有 lavaan R 包的模型,该模型通过连续和两个分类代码预测连续结果。其中一个是二分变量(我们称之为 A;0 = 否,1 = 是),另一个是三级分类变量(我们称之为 B;0 = 低、中、3 = 高)。以下是数据示例:

  outcome      gender      age continuous  A    B
1   1.333333        2 23.22404   1.333333  1    0
2   1.500000        2 23.18033   1.833333  1    1
3   1.500000        2 22.37978   2.166667  1    NA
4   2.250000        1 18.74044   1.916667  1    0
5   1.250000        1 22.37978   1.916667  1    1
6   1.500000        2 20.16940   1.500000  1    NA

除了连续、二分和三级分类变量外,我的模型还包括一些控制变量:

model.1a <- 'outcome ~ gender + age + continuous + A + B

         A ~~ continuous 
         A ~~ B
         continuous ~~ B'
fit.1a <- sem(model=model.1a, data=dat)
summary(fit.1a, fit.measures=TRUE, standardized=TRUE, ci=TRUE, rsquare=T)

在第二步中,我还想包含变量 A 和 B 之间的交互作用。为此,我首先将这两个变量居中,然后将交互作用包含在模型中:

model.1b <- 'outcome ~ gender + age + continuous + A_centr + B_centr + interaction

         A_centr ~~ continuous
         A_centr ~~ B_centr
         continuous ~~ B_centr
         interaction ~~ 0*gender + 0*age
         gender ~~ age'
fit.1b <- sem(model=model.1b, data=dat)
summary(fit.1b, fit.measures=TRUE, standardized=TRUE, ci=TRUE, rsquare=T)

但是,当我运行此模型时,出现以下错误:

Error in lav_samplestats_icov(COV = cov[[g]], ridge = ridge, x.idx = x.idx[[g]],  : 
  lavaan ERROR: sample covariance matrix is not positive-definite

据我所知,之所以如此,是因为两个分类变量之间的交互作用与原始变量非常相似,但我不确定如何解决这个问题。有没有人有解决问题的建议?

供您参考,我已经尝试对一个或两个分类变量使用非居中版本来创建交互项和回归模型。

标签: rinteractionr-lavaan

解决方案


推荐阅读