原文链接:http://tecdat.cn/?p=3071

原文出处:拓端数据部落公众号


结构方程模型入门

介绍

对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法。然而,拟合结构方程模型可以成为分析师工具箱中的强大工具。

设置 环境

在R中实现SEM有许多不同的包,lavaan软件包为大多数SEM用户提供了全面的功能集,并且具有易于学习的语法来描述SEM模型。要安装lavaan,我们只需运行:

# 安装
install.packages("lavaan")

读入数据

我们需要读入数据集。我们读取方差 - 协方差矩阵并运行路径分析模型。

 mat1 <- matrix(c(1, 0, 0, 0.6, 1, 0, 0.33, 0.63, 1), 3, 3, byrow = TRUE)
 print(mat1)
##      ILL  IMM DEP
## ILL 1.00 0.00   0
## IMM 0.60 1.00   0
## DEP 0.33 0.63   1
现在我们在我们的环境中命名了一个方差 - 协方差矩阵。

有了这些数据,我们可以构建两种可能的模型

  1. 抑郁症(DEP)影响免疫系统(IMM)影响疾病(ILL)
  2. IMM影响ILL影响DEP

使用SEM我们可以评估哪个模型最能解释我们在上面的数据中观察到的协方差。拟合模型lavaan是一个两步过程。首先,我们创建一个文本字符串定义lavaan模型 。接下来,我们给出lavaan如何拟合这个模型。

# 定义模型
# 拟合模型
mod1fit <- sem(mod1, sample.cov = mat1, sample.nobs = 500)# 定义模型2
mod2fit <- sem(mod2, sample.cov = mat1, sample.nobs = 500)

现在,我们在环境中为每个模型存储了两个对象。我们有模型字符串和modelfit对象。summary提供输出:

##
##   Number of observations                           500
##
##   Estimator                                         ML
##   Minimum Function Test Statistic                2.994
##   Degrees of freedom                                 1
##   P-value (Chi-square)                           0.084
##
## Parameter estimates:
##
##   Information                                 Expected
##   Standard Errors                             Standard
##
##                    Estimate  Std.err  Z-value  P(>|z|)
## Regressions:
##   ILL ~
##     IMM               0.600    0.036   16.771    0.000
##   IMM ~
##     DEP               0.630    0.035   18.140    0.000
##
## Variances:
##     ILL               0.639    0.040
##     IMM               0.602    0.038
##
##   Number of observations                           500
##
##   Estimator                                         ML
##   Minimum Function Test Statistic              198.180
##   Degrees of freedom                                 1
##   P-value (Chi-square)                           0.000
##
## Parameter estimates:
##
##   Information                                 Expected
##   Standard Errors                             Standard
##
##                    Estimate  Std.err  Z-value  P(>|z|)
## Regressions:
##   DEP ~
##     ILL               0.330    0.042    7.817    0.000
##   ILL ~
##     IMM               0.600    0.036   16.771    0.000
##
## Variances:
##     DEP               0.889    0.056
##     ILL               0.639    0.040

理解SEM模型的最佳方法之一是使用路径图直观地检查模型。

接下来,我们加载库并制作一些路径图。

这两个简单的路径模型哪个更好?我们可以运行卡方检验。

## Chi Square Difference Test
##
##         Df  AIC  BIC  Chisq Chisq diff Df diff Pr(>Chisq)
## mod1fit  1 3786 3803   2.99
## mod2fit  1 3981 3998 198.18        195       0     <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

可以看到模型2更好。让我们看一下模型2的一些属性。

# 拟合优度评价指标
##              fmin             chisq                df            pvalue
##             0.198           198.180             1.000             0.000
##    baseline.chisq       baseline.df   baseline.pvalue               cfi
##           478.973             3.000             0.000             0.586
##               tli              nnfi               rfi               nfi
##            -0.243            -0.243             1.000             0.586
##              pnfi               ifi               rni              logl
##             0.195             0.587             0.586         -1986.510
## unrestricted.logl              npar               aic               bic
##         -1887.420             4.000          3981.020          3997.878
##            ntotal              bic2             rmsea    rmsea.ci.lower
##           500.000          3985.182             0.628             0.556
##    rmsea.ci.upper      rmsea.pvalue               rmr        rmr_nomean
##             0.703             0.000             0.176             0.176
##              srmr       srmr_nomean             cn_05             cn_01
##             0.176             0.176            10.692            17.740
##               gfi              agfi              pgfi               mfi
##             0.821            -0.075             0.137             0.821
##              ecvi
##             0.412

# 模型参数预测
##   lhs op rhs   est    se      z pvalue ci.lower ci.upper
## 1 DEP  ~ ILL 0.330 0.042  7.817      0    0.247    0.413
## 2 ILL  ~ IMM 0.600 0.036 16.771      0    0.530    0.670
## 3 DEP ~~ DEP 0.889 0.056 15.811      0    0.779    1.000
## 4 ILL ~~ ILL 0.639 0.040 15.811      0    0.560    0.718
## 5 IMM ~~ IMM 0.998 0.000     NA     NA    0.998    0.998

# 修改指标
##    lhs op rhs    mi    epc sepc.lv sepc.all sepc.nox
## 1  DEP ~~ DEP   0.0  0.000   0.000    0.000    0.000
## 2  DEP ~~ ILL 163.6 -0.719  -0.719   -0.720   -0.720
## 3  DEP ~~ IMM 163.6  0.674   0.674    0.675    0.674
## 4  ILL ~~ ILL   0.0  0.000   0.000    0.000    0.000
## 5  ILL ~~ IMM    NA     NA      NA       NA       NA
## 6  IMM ~~ IMM   0.0  0.000   0.000    0.000    0.000
## 7  DEP  ~ ILL   0.0  0.000   0.000    0.000    0.000
## 8  DEP  ~ IMM 163.6  0.675   0.675    0.675    0.676
## 9  ILL  ~ DEP 163.6 -0.808  -0.808   -0.808   -0.808
## 10 ILL  ~ IMM   0.0  0.000   0.000    0.000    0.000
## 11 IMM  ~ DEP 143.8  0.666   0.666    0.666    0.666
## 12 IMM  ~ ILL   0.0  0.000   0.000    0.000    0.000

非常感谢您阅读本文,有任何问题请在下面留言!


最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言回归中的Hosmer-Lemeshow拟合优度检验

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.在R语言中实现Logistic逻辑回归

8.python用线性回归预测股票价格

9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

拓端tecdat|R语言:结构方程模型、潜变量分析相关推荐

  1. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  2. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  3. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  4. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  5. R语言:结构方程模型sem、潜变量分析

    原文链接:http://tecdat.cn/?p=3071 对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法(点击 ...

  6. R语言结构方程模型(SEM)在生态学领域中的应用

    前言:结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归.因子分析.协方差分析等方法,利用图形化模型方式清晰 ...

  7. R语言结构方程模型(SEM)在生态学领域中的实践

    结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归.因子分析.协方差分析等方法,利用图形化模型方式清晰展示研 ...

  8. R语言结构方程模型(SEM)教程

    详情点击链接:R语言结构方程模型(SEM)在生态学应用 结构方程模型(Sructural Equation Model)是一种建立.估计和检验研究系统中多变量间因果关系的模型方法,它可以替代多元回归. ...

  9. R语言结构方程模型分析与应用

    (R语言平台:模型构建.拟合.筛选及结果发表全流程:潜变量分析:组成变量分析:非线性关系处理.非正态数据.分组数据.嵌套数据分析与处理:混合效应模型:贝叶斯方法:经典案例练习及解读) 现代统计学理论和 ...

  10. R语言:结构方程模型、潜变量分析

    结构方程模型入门 介绍 对于熟悉线性回归拟合结构方程模型的分析师来说,首先会感到奇怪.在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法.然而,快速重新定位并且很 ...

最新文章

  1. 还在用 Random生成随机数?试试 ThreadLocalRandom,超好用!
  2. opencv:读取、保存操作函数
  3. Spring单例的线程安全性
  4. Vijos 1197 - 费解的开关
  5. Jquery操作表单Select元素常用方法
  6. C++一级与二级指针基础详解
  7. __attribute__机制介绍
  8. c语言学习-自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数)
  9. [BZOJ3684]大朋友和多叉树
  10. C语言二叉树求叶子数
  11. 正交矩阵、正规矩阵和酉矩阵
  12. 算法入门到进阶(一)——算法复杂度
  13. flea-common使用之通用策略模式实现
  14. MFC 中PreTranslateMessage(MSG* pMsg)截获按钮和编辑框的消息进行预处理
  15. 刚挣钱的程序猿同学该怎样花钱?
  16. Linux 磁盘管理 : mount 命令详解
  17. 【论文解读】Cross-domain Correspondence Learning for Exemplar-based Image Translation
  18. RPG角色扮演C++
  19. IEEE期刊论文格式(一)
  20. 1990-2019年地级市地方财政收支数据(全市)

热门文章

  1. Java对正则表达式的支持(二)
  2. svn 查看版本历史时。Item is not readable svn: 条目不可读
  3. mongodb安装指南 及使用
  4. poj 2192 Zipper
  5. 决策树随机森林adaboost理论实战
  6. 阿里启动“Buy+”计划,正式成立 VR 实验室
  7. 《算法设计与分析》一一第3章 线性表的遍历
  8. 响应式布局之网站头部导航
  9. 译DevExpress v16.1更新说明(WinForms篇)
  10. Python 2.7.9 Demo - 015.元组的定义、取值、遍历