R

时间:2017-05-22 13:43:28

标签: r equations r-lavaan

我正在尝试使用包lavaan为R进行潜在变量分析。但是,我收到以下错误消息:

  

警告讯息:   1:在lav_data_full中(data = data,group = group,   cluster = cluster,:lavaan警告:一些观察到的差异是   (至少)比其他因素大1000倍;使用varTable(适合)   去弄清楚   2:在lav_model_vcov中(lavmodel = lavmodel,   lavsamplestats = lavsamplestats,:lavaan警告:不能   计算标准错误! lavaan注意:这可能是一种症状   模型未确定。   3:在lav_object_post_check(对象)中:lavaan警告:有人估计   ov差异是负面的   4:在lav_object_post_check(对象)中:
  lavaan警告:一些估计的lv差异为负

我的模型结构如下:

enter image description here

model <- "
        # regressions
        eigenvector.frug ~ Size + Morphology

        # latent variables
        Size =~ Mass + Forearm
        Morphology =~ LMT + BUM

        # covariances and variances
        Mass ~~ Forearm
        LMT ~~ BUM
        Mass ~~ Mass
        Forearm ~~ Forearm
        LMT ~~ LMT
        BUM ~~ BUM
        "

我正在运行的代码是:

fit <- sem(model, data=data,
           orthogonal=TRUE)

我得到以下摘要:

lavaan (0.5-23.1097) converged normally after 141 iterations

  Number of observations                            41

  Estimator                                         ML
  Minimum Function Test Statistic               88.676
  Degrees of freedom                                 2
  P-value (Chi-square)                           0.000

Parameter Estimates:

  Information                                 Expected
  Standard Errors                             Standard

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)
  Size =~                                             
    Mass              1.000                           
    Forearm           4.941       NA                  
  Morphology =~                                       
    LMT               1.000                           
    BUM               1.349       NA                  

Regressions:
                     Estimate  Std.Err  z-value  P(>|z|)
  eigenvector.frug ~                                    
    Size               -0.000       NA                  
    Morphology         -2.774       NA                  

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)
 .Mass ~~                                             
   .Forearm          59.805       NA                  
 .LMT ~~                                              
   .BUM               2.926       NA                  
  Size ~~                                             
    Morphology        0.000                           

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)
   .Mass            272.184       NA                  
   .Forearm        -518.752       NA                  
   .LMT               3.283       NA                  
   .BUM               5.871       NA                  
   .eigenvectr.frg    0.344       NA                  
    Size             26.894       NA                  
    Morphology       -0.038       NA    

由于数据在不同的比例下变化,我尝试使用比例功能对所有变量进行标准化并再次运行模型。

data2 = scale(data)

然后我收到以下错误消息:

  

警告讯息:   在lav_model_vcov中(lavmodel = lavmodel,lavsamplestats   = lavsamplestats,:lavaan警告:无法计算标准错误!   lavaan注意:这可能是模型未被识别的症状。

以下摘要:

lavaan (0.5-23.1097) converged normally after  69 iterations

  Number of observations                            41

  Estimator                                         ML
  Minimum Function Test Statistic               87.973
  Degrees of freedom                                 2
  P-value (Chi-square)                           0.000

Parameter Estimates:

  Information                                 Expected
  Standard Errors                             Standard

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)
  Size =~                                             
    Mass              1.000                           
    Forearm           0.940       NA                  
  Morphology =~                                       
    LMT               1.000                           
    BUM               0.181       NA                  

Regressions:
                     Estimate  Std.Err  z-value  P(>|z|)
  eigenvector.frug ~                                    
    Size                0.536       NA                  
    Morphology         -0.042       NA                  

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)
 .Mass ~~                                             
   .Forearm           0.389       NA                  
 .LMT ~~                                              
   .BUM               0.541       NA                  
  Size ~~                                             
    Morphology        0.000                           

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)
   .Mass              0.404       NA                  
   .Forearm           0.471       NA                  
   .LMT               0.394       NA                  
   .BUM               0.957       NA                  
   .eigenvectr.frg    0.819       NA                  
    Size              0.571       NA                  
    Morphology        0.581       NA         
你可以帮我弄清楚出了什么问题吗?非常感谢你。

1 个答案:

答案 0 :(得分:2)

我认为问题是同一构造的指标之间的相关残差。您试图以冗余方式解释同一构造上的指标之间的关系。

例如,潜在的构造&#34;尺寸&#34;可以解释指标变量之间的关系&#34; mass&#34;和#34;前臂。&#34;那里的残差将被概念化为由潜在构造解释的 not 指标中的方差。

但接下来你要做的就是让残差相关联,这样可以模拟&#34; mass&#34;之间的共享方差。和&#34;前臂&#34;这不是由潜在因素解释的。

问题在于你的潜在构造只由这两个变量组成。你基本上是在告诉lavaan:&#34;将这两个指标之间的差异建模为潜在的构造......不要等!同样模拟与残差相同的方差!&#34;所以lavaan基本上是在告诉你,&#34;这没有意义,我无法做到!&#34;我会试试这段代码:

model2 <- "
        # regressions
        eigenvector.frug ~ Size + Morphology

        # latent variables
        Size =~ Mass + Forearm
        Morphology =~ LMT + BUM

        # covariances and variances
        Mass ~~ Mass
        Forearm ~~ Forearm
        LMT ~~ LMT
        BUM ~~ BUM
        "

此代码隐式将残差协方差修正为零。

您可能遇到的另一个问题是未识别每个子模型。对于每个潜在变量,您试图从2个指标中估计潜在构造,这两个指标未被识别(即,您有3个与方差相关的元素可以使用,但您估计2个残差,加载和潜在变化) 。为了解决这个问题,您可以将每个潜在因素的负载限制为彼此相等。我们可以通过为因子载荷分配相同的标签(这里,&#34; a&#34;和&#34; b&#34;为每个因素)来做到这一点。

model3 <- "
        # regressions
        eigenvector.frug ~ Size + Morphology

        # latent variables
        Size =~ a*Mass + a*Forearm
        Morphology =~ b*LMT + b*BUM

        # covariances and variances
        Mass ~~ Mass
        Forearm ~~ Forearm
        LMT ~~ LMT
        BUM ~~ BUM
        "