用R进行BiFactor验证性因素分析
来自OBHRM百科
示意图
脚本与注释
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