结构方程模型(SEM)——R

文摘   2024-09-20 14:10   广东  

结构方程模型(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.5normalfertilization ~ T4PM2.5 + matureoocytequalityembryo ~ 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。




环境与生殖发育
聚焦环境健康,探索生命奥秘
 最新文章