用R进行BiFactor验证性因素分析

来自OBHRM百科
跳转至: 导航搜索

示意图

BiFactor.png

脚本与注释

library(lavaan)                                                                 # 调用lavaan包,如果没有安装,需要先安装
cfadata <- read.table("http://www.statmodel.com/usersguide/chap5/ex5.6.dat")    # 从Mplus官网读数据到cfadata,cfadata是自己命名,可随便定。如网速慢,可下载到本地再读取。
names(cfadata) <-c(paste("y", 1:12, sep=""))                                    # 给变量命名
bifactormodel <- ' f1 =~ y1 +y2 +y3                                             # 设置模型,bifactormodel还是自己命名
              f2 =~ y4 +y5 +y6 
              f3 =~ y7 +y8 +y9 
              f4 =~ y10 +y11 +y12 
              G =~ y1 +y2 +y3+y4 +y5 +y6 +y7 +y8 +y9 +y10 +y11 +y12  '         
bifactorfit <- cfa(bifactormodel, cfadata,orthogonal=TRUE)                           # 进行CFA,必须加上orthogonal=TRUE,bifactorfit为自己命名,方便后面调用
summary(bifactorfit,fit.measures="TRUE")                                             # 显示总体结果
fitMeasures(bifactorfit,fit.measures="all", baseline.model=NULL)                     # 显示所有拟合指数
standardizedSolution(bifactorfit)                                                    # 显示标准化的结果
library(semTools)                                                                    # 调用semTools包,如果没有安装,需要先安装 
reliability(bifactorfit)                                                             # 计算AVE、CR(Composite Reliability)等值
library(semPlot)                                                                     # 调用semPlot包,如果没有安装,需要先安装 
semPaths(bifactorfit, bifactor = "G", 
         title=F, what = "std", residuals = FALSE,
         intercepts = FALSE, layout = "tree2",
         label.cex=1, edge.label.cex=0.9, font=2,  
         edge.color="black", fixedStyle = c("black",1),freeStyle = c("black",1),esize = 0.01,
         rotation=1)                                                                 # 画图,bifactor指定哪个因素为bifactor;rotation控制方向,取值为1/2/3/4

结果

总体结果

> summary(bifactorfit,fit.measures="TRUE")   
lavaan 0.6-4 ended normally after 49 iterations

  Optimization method                           NLMINB
  Number of free parameters                         36

  Number of observations                           500

  Estimator                                         ML
  Model Fit Test Statistic                      41.640
  Degrees of freedom                                42
  P-value (Chi-square)                           0.487

Model test baseline model:

  Minimum Function Test Statistic             4012.035
  Degrees of freedom                                66
  P-value                                        0.000

User model versus baseline model:

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

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)              -7208.821
  Loglikelihood unrestricted model (H1)      -7188.001

  Number of free parameters                         36
  Akaike (AIC)                               14489.643
  Bayesian (BIC)                             14641.369
  Sample-size adjusted Bayesian (BIC)        14527.102

Root Mean Square Error of Approximation:

  RMSEA                                          0.000
  90 Percent Confidence Interval          0.000  0.030
  P-value RMSEA <= 0.05                          1.000

Standardized Root Mean Square Residual:

  SRMR                                           0.018

Parameter Estimates:

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

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)
  f1 =~                                               
    y1                1.000                           
    y2                0.784    0.047   16.668    0.000
    y3                0.726    0.048   15.196    0.000
  f2 =~                                               
    y4                1.000                           
    y5                0.738    0.042   17.660    0.000
    y6                0.712    0.042   17.027    0.000
  f3 =~                                               
    y7                1.000                           
    y8                0.720    0.046   15.792    0.000
    y9                0.675    0.042   15.919    0.000
  f4 =~                                               
    y10               1.000                           
    y11               0.748    0.038   19.918    0.000
    y12               0.656    0.035   18.671    0.000
  G =~                                                
    y1                1.000                           
    y2                0.728    0.057   12.865    0.000
    y3                0.584    0.057   10.233    0.000
    y4                0.898    0.141    6.361    0.000
    y5                0.613    0.102    5.996    0.000
    y6                0.621    0.104    5.983    0.000
    y7                1.132    0.170    6.646    0.000
    y8                0.769    0.122    6.281    0.000
    y9                0.809    0.124    6.503    0.000
    y10               0.803    0.136    5.886    0.000
    y11               0.581    0.103    5.661    0.000
    y12               0.573    0.099    5.797    0.000

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)
  f1 ~~                                               
    f2                0.000                           
    f3                0.000                           
    f4                0.000                           
    G                 0.000                           
  f2 ~~                                               
    f3                0.000                           
    f4                0.000                           
    G                 0.000                           
  f3 ~~                                               
    f4                0.000                           
    G                 0.000                           
  f4 ~~                                               
    G                 0.000                           

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)
   .y1                0.358    0.042    8.584    0.000
   .y2                0.249    0.026    9.411    0.000
   .y3                0.310    0.027   11.443    0.000
   .y4                0.374    0.045    8.287    0.000
   .y5                0.262    0.027    9.810    0.000
   .y6                0.329    0.028   11.561    0.000
   .y7                0.273    0.040    6.864    0.000
   .y8                0.279    0.026   10.830    0.000
   .y9                0.277    0.024   11.518    0.000
   .y10               0.363    0.046    7.878    0.000
   .y11               0.263    0.028    9.426    0.000
   .y12               0.324    0.027   12.080    0.000
    f1                0.857    0.109    7.884    0.000
    f2                1.029    0.114    9.056    0.000
    f3                0.962    0.126    7.624    0.000
    f4                1.221    0.120   10.133    0.000
    G                 0.511    0.108    4.745    0.000

拟合指数

> fitMeasures(bifactorfit,fit.measures="all", baseline.model=NULL)                     # 显示所有拟合指数
               npar                fmin               chisq 
             36.000               0.042              41.640 
                 df              pvalue      baseline.chisq 
             42.000               0.487            4012.035 
        baseline.df     baseline.pvalue                 cfi 
             66.000               0.000               1.000 
                tli                nnfi                 rfi 
              1.000               1.000               0.984 
                nfi                pnfi                 ifi 
              0.990               0.630               1.000 
                rni                logl   unrestricted.logl 
              1.000           -7208.821           -7188.001 
                aic                 bic              ntotal 
          14489.643           14641.369             500.000 
               bic2               rmsea      rmsea.ci.lower 
          14527.102               0.000               0.000 
     rmsea.ci.upper        rmsea.pvalue                 rmr 
              0.030               1.000               0.021 
         rmr_nomean                srmr        srmr_bentler 
              0.021               0.018               0.018 
srmr_bentler_nomean                crmr         crmr_nomean 
              0.018               0.019               0.019 
         srmr_mplus   srmr_mplus_nomean               cn_05 
              0.018               0.018             698.938 
              cn_01                 gfi                agfi 
            795.987               0.986               0.975 
               pgfi                 mfi                ecvi 
              0.531               1.000               0.227 

标准化的结果

> standardizedSolution(bifactorfit)  
   lhs op rhs est.std    se      z pvalue ci.lower ci.upper
1   f1 =~  y1   0.705 0.040 17.680      0    0.627    0.783
2   f1 =~  y2   0.710 0.039 18.248      0    0.633    0.786
3   f1 =~  y3   0.695 0.038 18.337      0    0.621    0.769
4   f2 =~  y4   0.753 0.034 21.874      0    0.685    0.820
5   f2 =~  y5   0.743 0.034 22.002      0    0.677    0.809
6   f2 =~  y6   0.705 0.035 20.239      0    0.637    0.774
7   f3 =~  y7   0.714 0.043 16.429      0    0.628    0.799
8   f3 =~  y8   0.680 0.043 15.816      0    0.596    0.764
9   f3 =~  y9   0.646 0.045 14.378      0    0.558    0.734
10  f4 =~ y10   0.799 0.030 26.731      0    0.740    0.857
11  f4 =~ y11   0.782 0.030 26.213      0    0.723    0.840
12  f4 =~ y12   0.719 0.032 22.542      0    0.656    0.781
13   G =~  y1   0.544 0.051 10.724      0    0.445    0.643
14   G =~  y2   0.508 0.052  9.789      0    0.407    0.610
15   G =~  y3   0.431 0.054  7.942      0    0.325    0.538
16   G =~  y4   0.476 0.051  9.339      0    0.376    0.576
17   G =~  y5   0.435 0.052  8.307      0    0.332    0.538
18   G =~  y6   0.434 0.052  8.274      0    0.331    0.536
19   G =~  y7   0.588 0.051 11.460      0    0.488    0.689
20   G =~  y8   0.529 0.053  9.907      0    0.424    0.634
21   G =~  y9   0.564 0.052 10.804      0    0.462    0.666
22   G =~ y10   0.415 0.052  7.972      0    0.313    0.517
23   G =~ y11   0.392 0.053  7.444      0    0.289    0.496
24   G =~ y12   0.406 0.052  7.758      0    0.303    0.508
25  y1 ~~  y1   0.207 0.026  7.927      0    0.156    0.259
26  y2 ~~  y2   0.238 0.028  8.642      0    0.184    0.292
27  y3 ~~  y3   0.331 0.031 10.548      0    0.270    0.393
28  y4 ~~  y4   0.206 0.027  7.689      0    0.154    0.259
29  y5 ~~  y5   0.258 0.029  9.008      0    0.202    0.315
30  y6 ~~  y6   0.315 0.030 10.561      0    0.256    0.373
31  y7 ~~  y7   0.145 0.022  6.445      0    0.101    0.188
32  y8 ~~  y8   0.258 0.026  9.777      0    0.206    0.310
33  y9 ~~  y9   0.264 0.026 10.301      0    0.214    0.314
34 y10 ~~ y10   0.190 0.026  7.333      0    0.139    0.241
35 y11 ~~ y11   0.235 0.027  8.647      0    0.182    0.288
36 y12 ~~ y12   0.318 0.029 10.973      0    0.262    0.375
37  f1 ~~  f1   1.000 0.000     NA     NA    1.000    1.000
38  f2 ~~  f2   1.000 0.000     NA     NA    1.000    1.000
39  f3 ~~  f3   1.000 0.000     NA     NA    1.000    1.000
40  f4 ~~  f4   1.000 0.000     NA     NA    1.000    1.000
41   G ~~   G   1.000 0.000     NA     NA    1.000    1.000
42  f1 ~~  f2   0.000 0.000     NA     NA    0.000    0.000
43  f1 ~~  f3   0.000 0.000     NA     NA    0.000    0.000
44  f1 ~~  f4   0.000 0.000     NA     NA    0.000    0.000
45  f1 ~~   G   0.000 0.000     NA     NA    0.000    0.000
46  f2 ~~  f3   0.000 0.000     NA     NA    0.000    0.000
47  f2 ~~  f4   0.000 0.000     NA     NA    0.000    0.000
48  f2 ~~   G   0.000 0.000     NA     NA    0.000    0.000
49  f3 ~~  f4   0.000 0.000     NA     NA    0.000    0.000
50  f3 ~~   G   0.000 0.000     NA     NA    0.000    0.000
51  f4 ~~   G   0.000 0.000     NA     NA    0.000    0.000

自动生成的结果图

BiFactorR.png