【问题标题】:multi-group CFA with ordinal variables not working because of low frequency由于频率低,序数变量不起作用的多组 CFA
【发布时间】:2021-10-23 08:34:57
【问题描述】:

我正在尝试使用李克特量表数据运行心理测量工具的多组 CFA。我已将数据转换为序数,并根据同事的建议使用 WLSMV 估计和 theta 参数化。模型和初始 cfa 的代码如下所示。

model_ord <- ' depression =~ f1h09_ordinal+f1h16_ordinal+f1h17_ordinal+f1h18_ordinal+f1h35_ordinal+f1h50_ordinal
          anxiety =~ f1h01_ordinal+f1h12_ordinal+f1h19_ordinal+f1h38_ordinal+f1h45_ordinal+f1h49_ordinal
          somatization =~ f1h02_ordinal+f1h07_ordinal+f1h23_ordinal+f1h29_ordinal+f1h33_ordinal+f1h37_ordinal
          depression~~anxiety
          anxiety~~somatization
          depression~~somatization'

"'# use the cfa function from the lavaan package to fit a CFA of our model
fit_ord <- cfa(model_ord, data=d_ord, estimator='WLSMV', std.lv=TRUE, parameterization="theta")"'

虽然我确实收到以下警告,但初始 cfa 运行良好。

Warning message:
In lav_model_vcov(lavmodel = lavmodel, lavsamplestats = lavsamplestats,  :
  lavaan WARNING:
    The variance-covariance matrix of the estimated parameters (vcov)
    does not appear to be positive definite! The smallest eigenvalue
    (= -1.030933e-16) is smaller than zero. This may be a symptom that
    the model is not identified.

但是,当我按组将其分解时,我遇到了不同的问题(代码和错误消息如下)。

config_ord <- cfa(model_ord, data=d_ord, estimator='WLSMV', std.lv=TRUE, group="f103", parameterization="theta")
Error in lav_samplestats_step1(Y = Data, wt = wt, ov.names = ov.names,  : 
  lavaan ERROR: some categories of variable `f1h35_ordinal' are empty in group 1; frequencies are [75 15 2 0 0]

问题是样本(第 1 组)中没有男性对第 35 项做出“相当多”或“非常”的回应,而低频正在破坏 cfa。有趣的是,当我使用不同的分组(如下)时,我得到了相同的错误消息,但 cfa 仍然运行。

config_ord2 <- cfa(model_ord2, data=d_ord, estimator='WLSMV', std.lv=TRUE, group="binaryrelationship", parameterization="theta")
Error in lav_samplestats_step1(Y = Data, wt = wt, ov.names = ov.names,  : 
  lavaan ERROR: some categories of variable `f1h35_ordinal' are empty in group 1; frequencies are [98 22 4 3 0]

有谁知道为什么这会是一个分组而不是另一个分组的问题?我将如何解决这个问题?

【问题讨论】:

    标签: r factor-analysis


    【解决方案1】:

    鉴于在两次调用 cfa() 函数后都出现错误,因此任何调用都不应运行或返回 fit。您的代码示例似乎也表明了这种情况。

    就解决此问题而言,您的情况有几个选择:

    1. 您可以从模型中删除第 35 项。
    2. 您可以折叠所有组的第 35 项的级别。因为没有男性回答“相当”或“非常”,所以您必须将回答“相当”或“非常”的任何人的分数折叠到第三级项目。
    3. 您可以收集更多数据,并希望您能找到对第 35 项回答“相当”或“非常”的男性。

    如果您的研究问题不需要运行多组 CFA,您也可以考虑使用不同的统计技术,例如多级建模。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多