紧接着上一篇理论知识:结构方程模型理论知识学习(太难了!看的我头晕…),这一篇简单介绍lavaan做结构方程模型的语法。下一篇就是R语言实战了!
lavaan是专门用于潜变量分析的R包,它是latent variable analysis(潜变量分析)的缩写。
在常规的R公式语法中,波浪号~左边的变量是因变量,右边的变量是自变量,多个自变量以+连接,比如:
y ~ x1 + x2 + x3 + x4
在lavaan中,这种形式也被保留下来,表示常规的回归的模型。稍有不同的地方是,SEM和CFA中可能会同时出现多个回归模型(叫公式、方程都可以),用来表示多个变量之间的关系,比如:
# 同时出现3个公式
y ~ f1 + f2 + x1 + x2
f1 ~ f2 + f3
f2 ~ f3 + x1 + x2
SEM中的变量分为潜变量和显变量,如果~两侧是不同类型的变量(比如:~左侧是潜变量,右侧是显变量),那么就会和常规的回归模型混淆,并且也难以区分谁是潜变量、谁是显变量,所以lavaan引入了=~,如果潜变量x由z1,z2,z3这3个显变量测量,可以写成如下格式:
x =~ z1+z2+z3
在SEM的求解过程中,变量之间的协方差和方差结构是必须的,lavaan中通过~~定义变量之间的协方差和方差结构。如果~~的两边是同一个变量,则是表示方差,如果是不同的变量,则是表示协方差。比如:
y1 ~~ x2 # 估计y1和x2之间的协方差
z1 ~~ x3 # 估计z1和x3之间的协方差
一个完整的lavaan模型公式是由以上4个部分组成的,并且必须使用单引号'引起来,例如:
# 一个完整的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语言在医学中的使用!

三连一下,感谢支持