结构方程模型(Structural Equation Modeling,SEM)是一种建立、估计和检验因果关系模型的方法。模型中既包含有可观测的显在变量,也可能包含无法直接观测的潜在变量。结构方程模型可以替代多重回归、通径分析、因子分析、协方差分析等方法,清晰分析单项指标对总体的作用和单项指标间的相互关系。本文主要应用R语言的sem包实现通径分析.

如当自变量数目比较多,且自变量间相互关系比较复杂(如:有些自变量间的关系是相关关系,有些自变量间则可能是因果关系)或者某些自变量是通过其他的自变量间接地对因变量产生影响,这时可以采用通径分析。

library(sem)
library(dplyr)
# 随机生成数据
dat <- matrix(rnorm(100), 25, 4) # 25*4 矩阵
colnames(dat) <- c('a', 'b', 'c', 'd') # 分配列名
cor_num <- cor(dat) # 计算相关性矩阵# 构建模型
# 我们假设 变量a 通过b, c 影响 dmodel.kerch <- specifyModel(# sem包是以文本的形式提交, 路径关系# 默认所有变量都是观测变量# 第一列表示路径#第二列表示回归系数,可以先假定一个任意变量, 模型随后进行修正赋值; 第三列为自由参数的起始值, 没有可设置为NA sem会计算起始值# 下面的变量, 如果存在于数据中, 则为观测变量, 否则为潜在变量text = 'a -> b, a_b, NAa -> c, a_c, NAa -> d, a_d, NAb -> d, b_d, NAb -> c, b_c, NAc -> d, c_d, NAa <-> a, a_a, NAb <-> b, b_b, NAc <-> c, c_c, NAd <-> d, d_d, NA')
## NOTE: it is generally simpler to use specifyEquations() or cfa()
##       see ?specifyEquations
  # 最后四行表示变量自身的影响# 构建sem# 第二个参数可以直接使用相关性矩阵,或者协方差矩阵out_sem <- sem(model.kerch, cor_num, nrow(dat))# 回归系数coef <- out_sem$coeff# 系数名coeff_name <- out_sem$semmod[,1]summary(out_sem)
##
##  Model Chisquare =  1.998401e-15   Df =  0 Pr(>Chisq) = NA
##  AIC =  20
##  BIC =  1.998401e-15
##
##  Normalized Residuals
##       Min.    1st Qu.     Median       Mean    3rd Qu.       Max.
## -2.679e-16 -8.967e-17 -2.125e-18 -7.036e-17  0.000e+00  0.000e+00
##
##  R-square for Endogenous Variables
##      b      c      d
## 0.0005 0.0970 0.1277
##
##  Parameter Estimates
##     Estimate     Std Error z value     Pr(>|z|)
## a_b -0.022182539 0.2040739 -0.10869855 0.9134415924 b <--- a
## a_c  0.311527866 0.1940185  1.60566059 0.1083485056 c <--- a
## a_d  0.324307405 0.2006684  1.61613599 0.1060649147 d <--- a
## b_d -0.037960563 0.1906895 -0.19906998 0.8422080012 d <--- b
## b_c  0.004386601 0.1940185  0.02260919 0.9819620148 c <--- b
## c_d  0.074420572 0.2006197  0.37095355 0.7106721273 d <--- c
## a_a  1.000000000 0.2886751  3.46410162 0.0005320055 a <--> a
## b_b  0.999507935 0.2885331  3.46410162 0.0005320055 b <--> b
## c_c  0.902991774 0.2606713  3.46410162 0.0005320055 c <--> c
## d_d  0.872252005 0.2517975  3.46410162 0.0005320055 d <--> d
##
##  Iterations =  0
  # 构建路径图pathDiagram(out_sem, edge.labels="values")
library(knitr)
knit('/Users/lipidong/baiduyun/work/RFile/learn/sem_with_r.rmd', output = '/Users/lipidong/learn/blog/_posts/2015-11-09-sem_with_r.md')

R语言sem包实现通径分析相关推荐

  1. r语言 bsda包_使用R语言creditmodel包进行Vintage分析或留存率分析

    1 什么是vintage分析? Vintage分析(账龄分析法)被广泛应用于信用卡及信贷行业,这个概念起源于葡萄酒,即不同年份出产的葡萄酒的品质有差异,那么不同时期开户或者放款的资产质量也有差异,其核 ...

  2. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

  3. R语言数据包自带数据集之ISwR包的melanom数据集字段解释、数据导入实战

    R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数 ...

  4. R语言数据包自带数据集之survival包的colon数据集字段解释、数据导入实战

    R语言数据包自带数据集之survival包的colon数据集字段解释.数据导入实战 #数据字段说明 colon数据集:B/C期结肠癌辅助化疗治疗数据 d # 患者编号 study # 所有患者都是1 ...

  5. R语言数据包自带数据集之survival包的lung数据集字段解释、数据导入实战

    R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导 ...

  6. R语言数据包自带数据集之ToothGrowth数据集字段解释、数据导入实战

    R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数据 #数 ...

  7. R语言数据包自带数据集之mtcars数据集字段解释、数据导入实战

    R语言数据包自带数据集之mtcars数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之mtcars数据集字段解释.数据导入实战 #会用帮助?或者help函数 #字段说明 #导入包 #导入数据 ...

  8. R语言dplyr包通过数据列的索引重命名数据列实战(Rename Column by Index Position)

    R语言dplyr包通过数据列的索引重命名数据列实战(Rename Column by Index Position) 目录 R语言dplyr包通过数据列的索引重命名数据列实战(Rename Colum ...

  9. R语言stringr包str_dup函数字符串多次复制实战

    R语言stringr包str_dup函数字符串多次复制实战 目录 R语言stringr包str_dup函数字符串多次复制实战 #导入stringr包 #仿真数据

最新文章

  1. python能做软件开发吗-学习Python软件开发能做什么?
  2. 利用solr的 DataImportHandler从mysql数据库建立索引
  3. java搜索项目内的异常_java中用Lucene做搜索,在建索引时遇到的2个异常
  4. C++PrimerPlus学习——第六章编程练习
  5. wordpress linux伪静态,nginx下wordpress伪静态设置
  6. 本周ASP.NET英文技术文章推荐[??/?? - 09/22]:VS 2008、.NET 3.5、asp:ListView、DotNetNuke、ASP.NET AJAX...
  7. Android Studio实现 历史上的今天
  8. sourceMap到底是个啥玩意?
  9. 使用DALSA采集卡进行采图(C#版)
  10. springboot框架(2):整合junit4
  11. 【2022最新Java面试宝典】—— TCP,UDP,Socket,Http网络编程面试题(47道含答案)
  12. 南京大学计算机系副教授名单,2018年度国际“人工智能10大新星”名单公布:南京大学俞扬副教授国内高校入选者...
  13. ubuntu linux安装google输入法
  14. matlab中黄金分割法,优化算法之黄金分割算法 - Matlab
  15. 固定连接index.php,WP中去掉固定链接中的index.php和category
  16. 什么是软链接?什么是硬链接?
  17. ardupilot python之px_uploader.py学习
  18. 使用excel打开文件,修正长度过长的数字后几位变为0的问题
  19. python中模型训练不收敛问题
  20. 计算机与科学专硕考研院校排名,22考研|全国首次专硕院校评估排名,看看有你想报的没...

热门文章

  1. module_param传递参数
  2. 一个碌碌无为的程序员
  3. Keyphrase Chunking - bert2chunk_dataloader.py分析
  4. Win10_11使用VMware等启动虚拟机蓝屏报错等一些列问题解决方案
  5. 中国广电5G套餐价格实惠,但是又没有预期那么便宜
  6. 王欣复出后的第一款产品
  7. java微信二维码登录
  8. CSS 网页弹出微信二维码
  9. “中国保险IT应用高峰论坛2009”现场实录
  10. 传统家装有落差,VR全景家装让你体验新房落成效果