搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > tidyss > R语言验证性因子分析

R语言验证性因子分析

tidyss 2020-06-29


  • 安装

  • 模型语法

  • 示例:验证性因子分析(CFA)

    • 建立模型

    • 拟合模型fit

    • 统计拟合情况

  • 用lavaan包进行cfa分析总结


cfa是验证性因子分析的缩写,经常用于检验问卷的效度。流行于经管社科类学科,常见的可以实现该功能的商业软件有IBM的SPSS软件的AMOS模块,Mplus,LISREL等。软件简单易用菜单化操作同时作为收费软件价格昂贵。

通过R语言相关包同样可以实现功能,而且不必安装过100M的软件占用计算机内存。免费,开源,功能强大。也可以通过编程实现自己的想法提高科研效率。

使用商用软件对输出结果负责,开源软件则是自己对自己负责

安装

install.package('lavaan')

library(lavaan)

提示上述文字,则安装成功

模型语法

模型用于描述要被估计的模型信息

主要有四种格式:

formula type operator mnemonic
latent vatiable definition =~ is measured by
regression ~ is regressed on
(residual)(co)variance ~~ is correlated with(方差左右变量相同,协方差不同)
intercept ~1 intercept(截距)

示例:

myModel <- '
            # regressions
              y1 + y2 ~ f1 + f2 + x1 + x2
                   f1 ~ f2 + f3            
                   f2 ~ f3 + x1 + x2
            
            # latent variable definition
              f1 =~ y1 + y2 + y3
              f2 =~ y4 + y5 + y6
              f3 =~ y7 + y8 + y9 + y10
            
            # variances and covariances
              y1 ~~ y1 
              y1 ~~ y2 
              f1 ~~ f2
            
            # intercepts
              y1 ~ 1
              f1 ~ 1
          '

注意标点符号 ' '

如果要拟合的模型比较长,可以用以lav为扩展名的文本文件保存载入。

myModel <- readLines('/mydirPath/myModel.lav')

文件需要保存在绝对路径中

示例:验证性因子分析(CFA)

数据集HolzingerSwineford1939

可以在前面加?查看数据详情

建立模型

HS.model <- 'visual  =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9'

拟合模型fit

fit <- cfa(HS.model,data = HolzingerSwineford1939)

统计拟合情况

输出结果与SEM模型商用软件类似

summary(fit,fit.measures=TRUE)
lavaan 0.6-5 ended normally after 35 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of free parameters                         21
                                                      
  Number of observations                           301
                                                      
Model Test User Model:
                                                      
  Test statistic                                85.306
  Degrees of freedom                                24
  P-value (Chi-square)                           0.000

Model Test Baseline Model:

  Test statistic                               918.852
  Degrees of freedom                                36
  P-value                                        0.000

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.931
  Tucker-Lewis Index (TLI)                       0.896

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)              -3737.745
  Loglikelihood unrestricted model (H1)      -3695.092
                                                      
  Akaike (AIC)                                7517.490
  Bayesian (BIC)                              7595.339
  Sample-size adjusted Bayesian (BIC)         7528.739

Root Mean Square Error of Approximation:

  RMSEA                                          0.092
  90 Percent confidence interval - lower         0.071
  90 Percent confidence interval - upper         0.114
  P-value RMSEA <= 0.05                          0.001

Standardized Root Mean Square Residual:

  SRMR                                           0.065

Parameter Estimates:

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

Latent Variables:
                   Estimate  Std.Err  z-value  P(>|z|)
  visual =~                                           
    x1                1.000                           
    x2                0.554    0.100    5.554    0.000
    x3                0.729    0.109    6.685    0.000
  textual =~                                          
    x4                1.000                           
    x5                1.113    0.065   17.014    0.000
    x6                0.926    0.055   16.703    0.000
  speed =~                                            
    x7                1.000                           
    x8                1.180    0.165    7.152    0.000
    x9                1.082    0.151    7.155    0.000

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)
  visual ~~                                           
    textual           0.408    0.074    5.552    0.000
    speed             0.262    0.056    4.660    0.000
  textual ~~                                          
    speed             0.173    0.049    3.518    0.000

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)
   .x1                0.549    0.114    4.833    0.000
   .x2                1.134    0.102   11.146    0.000
   .x3                0.844    0.091    9.317    0.000
   .x4                0.371    0.048    7.779    0.000
   .x5                0.446    0.058    7.642    0.000
   .x6                0.356    0.043    8.277    0.000
   .x7                0.799    0.081    9.823    0.000
   .x8                0.488    0.074    6.573    0.000
   .x9                0.566    0.071    8.003    0.000
    visual            0.809    0.145    5.564    0.000
    textual           0.979    0.112    8.737    0.000
    speed             0.384    0.086    4.451    0.000

输出结果依次为:

前六行:

  • 显示lavaan包版本数
  • 是否lavaan包常规汇总,需要多少指标
  • 被有效用于建模的样本数量
  • 用于获得参数值的模型估计方法(如ML,极大似然值)
  • 模型test统计、自由度、P值

其次为拟合结果:只有选择fit.measures=TRUE才会显示

  • 开始于 Model test baseline model
  • 终止于 SRMR

最后为参数估计:

  • 开始于 标准差信息
  • 接下来 参数信息
  • 潜变量,协方差与方差
    • 第一列为估计
    • 第二列为标准误
    • 第三列为Z值(Wald检验)
    • 最后列为P值:用于验证假设

用lavaan包进行cfa分析总结

这个示例阐释了lavaan工作流观点:

  1. 建立模型
  2. 拟合模型: cfa(), sem(), growth(),或者非标准模型用 lavaan()函数拟合,不能与前三者一样自动拟合
  3. 汇总拟合信息


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《R语言验证性因子分析》的版权归原作者「tidyss」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注tidyss微信公众号

tidyss微信公众号:DA_BY_R

tidyss

手机扫描上方二维码即可关注tidyss微信公众号

tidyss最新文章

精品公众号随机推荐