You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lavaan中CFA未自动设置因子载荷为1的原因咨询

问题:Lavaan执行CFA未自动固定因子载荷为1的原因

首次使用R语言的Lavaan包做验证性因子分析(CFA),程序能正常运行,但没看到每个因子自动设置一个因子载荷为1,想知道原因。

使用的代码:

model1 <- 'comm=~relimport+relthink+relhurt
Ind=~attend+prayer+relread
relimport~~relthink'

fit1 <- cfa(model1, data=SIM1, std.lv=TRUE)
summary(fit1, ci=T, standardized=T, fit.measures=T )
modindices(fit1, minimum.value=10, sort=TRUE)
lavaanPlot(model=fit1, node_options=list(shape="box", fontname= "Helvetica"),
       edge_options=list(color="grey"), coefs=TRUE, stand=TRUE)

输出结果:

lavaan 0.6.13 ended normally after 30 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                        14

                                                  Used       Total
  Number of observations                           796        1769

Model Test User Model:
                                                       
  Test statistic                                 2.707
  Degrees of freedom                                 7
  P-value (Chi-square)                           0.911

Model Test Baseline Model:

  Test statistic                              1394.558
  Degrees of freedom                                15
  P-value                                        0.000

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    1.000
  Tucker-Lewis Index (TLI)                       1.007

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)              -7374.779
  Loglikelihood unrestricted model (H1)      -7373.425
                                                       
  Akaike (AIC)                               14777.558
  Bayesian (BIC)                             14843.072
  Sample-size adjusted Bayesian (SABIC)      14798.615

Root Mean Square Error of Approximation:

  RMSEA                                          0.000
  90 Percent confidence interval - lower         0.000
  90 Percent confidence interval - upper         0.017
  P-value H_0: RMSEA <= 0.050                    1.000
  P-value H_0: RMSEA >= 0.080                    0.000

Standardized Root Mean Square Residual:

  SRMR                                           0.008

Parameter Estimates:

  Standard errors                             Standard
  Information                                 Expected
  Information saturated (h1) model          Structured

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|) ci.lower ci.upper   Std.lv
  comm =~                                                                        
    relimport         0.796    0.050   15.875    0.000    0.698    0.894    0.796
    relthink          0.735    0.062   11.784    0.000    0.613    0.857    0.735
    relhurt           0.660    0.061   10.827    0.000    0.540    0.779    0.660
  Ind =~                                                                         
    attend            0.685    0.048   14.408    0.000    0.591    0.778    0.685
    prayer            1.605    0.065   24.794    0.000    1.478    1.732    1.605
    relread           1.134    0.052   21.960    0.000    1.033    1.235    1.134
  Std.all
         
    0.926
    0.672
    0.455
         
    0.523
    0.844
    0.757

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|) ci.lower ci.upper   Std.lv
 .relimport ~~                                                                   
   .relthink         -0.007    0.069   -0.104    0.917   -0.143    0.129   -0.007
  comm ~~                                                                        
    Ind               0.609    0.043   14.108    0.000    0.525    0.694    0.609
  Std.all
         
   -0.027
         
    0.609

Variances:
                   Estimate  Std.Err  z-value  P(>|z|) ci.lower ci.upper   Std.lv
   .relimport         0.106    0.071    1.489    0.137   -0.033    0.245    0.106
   .relthink          0.658    0.084    7.874    0.000    0.494    0.822    0.658
   .relhurt           1.668    0.097   17.268    0.000    1.479    1.857    1.668
   .attend            1.242    0.068   18.253    0.000    1.109    1.376    1.242
   .prayer            1.040    0.125    8.286    0.000    0.794    1.286    1.040
   .relread           0.955    0.075   12.676    0.000    0.807    1.103    0.955
    comm              1.000                               1.000    1.000    1.000
    Ind               1.000                               1.000    1.000    1.000
  Std.all
    0.143
    0.549
    0.793
    0.726
    0.288
    0.426

回答

出现这个情况是因为你在cfa()函数里设置了std.lv=TRUE参数,这是Lavaan中模型识别的两种不同策略导致的:

  1. 默认策略(不设置std.lv):Lavaan会自动把每个潜变量的第一个观测变量的因子载荷固定为1,以此确定潜变量的度量尺度,这时潜变量的方差是自由估计的。

  2. 使用std.lv=TRUE时的策略:这个参数会让Lavaan把每个潜变量的方差固定为1来确定度量尺度,此时所有因子载荷都变成自由估计的参数,所以你看不到任何一个载荷被固定为1。

看你的输出结果里的「Variances」部分,comm和Ind这两个潜变量的方差都显示为1.000,且没有标准误和置信区间(因为是固定值),这就是std.lv=TRUE直接作用的结果。

如果想要回到你预期的「每个因子自动固定一个载荷为1」的状态,只需要去掉cfa()函数里的std.lv=TRUE参数,用默认设置即可。


内容的提问来源于stack exchange,提问作者RKollar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 23:15:35