首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >R语言结构方程模型lavaan语法简介

R语言结构方程模型lavaan语法简介

作者头像
医学和生信笔记
发布2026-03-17 17:56:09
发布2026-03-17 17:56:09
860
举报

紧接着上一篇理论知识:结构方程模型理论知识学习(太难了!看的我头晕…),这一篇简单介绍lavaan做结构方程模型的语法。下一篇就是R语言实战了!

lavaan是专门用于潜变量分析的R包,它是latent variable analysis(潜变量分析)的缩写。

在常规的R公式语法中,波浪号~左边的变量是因变量,右边的变量是自变量,多个自变量以+连接,比如:

代码语言:javascript
复制
y ~ x1 + x2 + x3 + x4

lavaan中,这种形式也被保留下来,表示常规的回归的模型。稍有不同的地方是,SEM和CFA中可能会同时出现多个回归模型(叫公式、方程都可以),用来表示多个变量之间的关系,比如:

代码语言:javascript
复制
# 同时出现3个公式
y ~ f1 + f2 + x1 + x2 
f1 ~ f2 + f3 
f2 ~ f3 + x1 + x2

SEM中的变量分为潜变量和显变量,如果~两侧是不同类型的变量(比如:~左侧是潜变量,右侧是显变量),那么就会和常规的回归模型混淆,并且也难以区分谁是潜变量、谁是显变量,所以lavaan引入了=~,如果潜变量xz1,z2,z3这3个显变量测量,可以写成如下格式:

代码语言:javascript
复制
x =~ z1+z2+z3

在SEM的求解过程中,变量之间的协方差和方差结构是必须的,lavaan中通过~~定义变量之间的协方差和方差结构。如果~~的两边是同一个变量,则是表示方差,如果是不同的变量,则是表示协方差。比如:

代码语言:javascript
复制
y1 ~~ x2 # 估计y1和x2之间的协方差
z1 ~~ x3 # 估计z1和x3之间的协方差

一个完整的lavaan模型公式是由以上4个部分组成的,并且必须使用单引号'引起来,例如:

代码语言:javascript
复制
# 一个完整的lavaan语法
myModel <- ' # 回归模型
             y1 + y2 ~ f1 + f2 + x1 + x2
             f1 ~ f2 + f3
             f2 ~ f3 + x1 + x2

             # 潜变量 
             f1 =~ y1 + y2 + y3 
             f2 =~ y4 + y5 + y6 
             f3 =~ y7 + y8 + y9 + y10

             # 方差和协方差 
             y1 ~~ y1 
             y1 ~~ y2 
             f1 ~~ f2

             # 截距项
             y1 ~ 1 
             f1 ~ 1
           '

但是在实际使用时,只有潜变量部分的公式才是必须的,其余部分的公式有时可以省略(会默认计算其余部分,也有例外,要根据实际情况来)。


医学和生信笔记,专注R语言在医学中的使用!

三连一下,感谢支持

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 医学和生信笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档