结构方程模型(Structural Equation Modeling)主要用于解决多变量问题,是分析多个原因和多个结果之间关系、能处理潜在变量的多元统计方法。可以用于分析潜在变量如健康行为、心理状态等,也可以同时分析多个影响因素及其相互之间的关系。
一、路径图
在进行分析之前,先根据变量之间可能存在的或理论上的各种线性关系,作出路径图。
独立变量与非独立变量之间的关系,回归系数用γ表示(只有箭头出)。
非独立变量之间的关系,回归系数用β表示(箭头有进,或有进有出)。
外生变量(X):也称外来变量,模型中影响其他变量的变量,为自变量。也称为独立变量。
内生变量(Y):受模型内部变量影响的变量,为效应变量或因变量。也称为非独立变量。
本例中的路径图我们先根据理论知识拟定为:
二.R代码
示例数据部分:
library(lavaan)
library(readxl)
library(magrittr)
library(dplyr)
data<-read_excel("C:/Users/示例数据.xls",na='NA')
df<-na.omit(data)
names(df)
df <- df %>%
select(c('T4PM2.5',"合计成熟卵子","合计正常受精","合计优质胚胎"))
#做直方图查看正态性
hist(df$合计成熟卵子)
hist(df$合计正常受精)
df$matureoocyte<-log(df$合计成熟卵子)#取对数
df$normalfertilization<-log(df$合计正常受精)
df$qualityembryo<-df$合计优质胚胎
#列出路径中所存在的关系
mod1<-'
matureoocyte ~ T4PM2.5
normalfertilization ~ T4PM2.5 + matureoocyte
qualityembryo ~ matureoocyte + normalfertilization
'
sem1<-sem(mod1,data=df,std.lv=TRUE)
summary(sem1)#p值大于0.05表示模型拟合效果较好
summary(sem1, modindices = T)
varTable(sem1)
三、结果及解读:
这里的p>0.05说明模型拟合效果好,暂时不需要调整模型。
四、做模型作图
library(semPlot)
semPaths(sem1,"std",edge.label.cex=1.2,
rotation = 1,
fade=FALSE, layout = "spring",
optimizeLatRes = FALSE, residuals = FALSE,
nCharNodes=15,sizeMan = 18, sizeLat = 14 )
图中数字为回归系数的大小,箭头指向为x->y。