R語言中實現sem進行結構方程建模和路徑圖可視化|附代碼數據

2023-04-11     tecdat拓端

原標題:R語言中實現sem進行結構方程建模和路徑圖可視化|附代碼數據

原文連結:http://tecdat.cn/?p=23312

最近我們被客戶要求撰寫關於結構方程建模的研究報告,包括一些圖形和統計輸出。

結構方程模型是一個線性模型框架,它對潛變量同時進行回歸方程建模

引言

諸如線性回歸、多元回歸、路徑分析、確認性因子分析和結構回歸等模型都可以被認為是SEM的特例。在SEM中可能存在以下關係。

  • 觀察到的變量與觀察到的變量之間的關係(γ,如回歸)。
  • 潛變量與觀察變量(λ,如確認性因子分析)。
  • 潛變量與潛變量(γ,β,如結構回歸)。

SEM獨特地包含了測量和結構模型。測量模型將觀測變量與潛變量聯繫起來,結構模型將潛變量與潛變量聯繫起來。目前有多種軟體處理SEM模型,包括Mplus、EQS、SAS PROC CALIS、Stata的sem和最近的R的lavaan。R的好處是它是開源的,可以免費使用,而且相對容易使用。

本文將介紹屬於SEM框架的最常見的模型,包括

  • 簡單回歸
  • 多元回歸
  • 多變量回歸
  • 路徑分析
  • 確認性因素分析
  • 結構回歸

目的是在每個模型中介紹其

  • 矩陣表述
  • 路徑圖
  • lavaan語法
  • 參數和輸出

在這次訓練結束時,你應該能夠理解這些概念,足以正確識別模型,認識矩陣表述中的每個參數,並解釋每個模型的輸出。

語法簡介

語法一:f3~f1+f2(路徑模型)

結構方程模型的路徑部分可以看作是一個回歸方程。而在R中,回歸方程可以表示為yax1+bx2+c,「」的左邊的因變量,右邊是自變量,「+」把多個自變量組合在一起。那麼把y看作是內生潛變量,把x看作是外生潛變量,略去截距,就構成了語法一。

語法二:f1 =~ item1 + item2 + item3(測量模型)

"=~"的左邊是潛變量,右邊是觀測變量,整句理解為潛變量f1由觀測變量item1、item2和item3表現。

語法三:item1 item1 , item1 item2

"~~"的兩邊相同,表示該變量的方差,不同的話表示兩者的協方差

語法四:f1 ~ 1

表示截距

基礎知識

加載數據

在這種情況下,我們將模擬數據。

y ~ .5*f #有外部標準的回歸強度

f =~ .8*x1 + .8*x2 + .8*x3 + .8*x4 + .8*x5 #定義因子f,在5個項目上的載荷。

x1 ~~ (1-.8^2)*x1 #殘差。請注意,通過使用1平方的載荷,我們在每個指標中實現了1.0的總變異性(標準化的)。

#產生數據;注意,標準化的lv是默認的

simData

#看一下數據

describe(simData)[,1:4]

指定模型

y ~ f # "~回歸"

f =~ x1+ x2 + x3 + x4 + x5 # "=~被測量的是"

x1 ~~ x1 # 方差

x2 ~~ x2 #方差

x3~~x3 #變量

x4~~x4 #變量

x5~~x5 #變量

#x4~~x5將是協方差的一個例子

擬合模型

summary(model_m)

inspect(model_m)

Paths

路徑分析

與上述步驟相同,但主要側重於回歸路徑。值得注意的是這種方法對調節分析的效用。

點擊標題查閱往期內容

R語言:結構方程模型、潛變量分析

左右滑動查看更多

01

02

03

04

##加載數據

set.seed(1234)

Data <- data.frame(X = X, Y = Y, M = M)

指定模型

# 直接效應

Y ~ c*X #使用字符來命名回歸路徑

# 調節變量

M ~ a*X

Y ~ b*M

# 間接效應(a*b)

ab := a*b #定義新參數

# 總效應

total := c + (a*b) #使用":="定義新參數

擬合模型

summary(model_m)

Paths(model)

間接效應的Bootstrapping置信區間

除了指定對5000個樣本的標準誤差進行bootstrapping外,下面的語法還指出標準誤差應進行偏差校正(但不是accelearted)。這種方法將產生與SPSS中的PROCESS宏程序類似的結果,即對標準誤差進行偏差修正。

sem(medmodel,se = "bootstrap")

確認性因素分析

加載數據

我們將使用例子中的相同數據

指定模型

'

f =~ x1 + x2 + x3 +x4 + x5

x1~~x1

x2~~x2

x3~~x3

x4~~x4

x5~~x5

'

擬合模型

sem(fit, simData)

Paths(fit)

anova

正如各模型的LRT所示,sem()和cfa()是具有相同默認值的軟體包。CFA可以很容易地使用cfa()或sem()完成 結構方程模型

加載數據

在這種情況下,我將模擬數據。

#結構成分

y ~ .5*f1 + .7*f2 #用外部標準回歸的強度

#測量部分

f1 =~ .8*x1 + .6*x2 + .7*x3 + .8*x4 + .75*x5 #定義因子f,在5個項目上的載荷。

x1 ~~ (1-.8^2)*x1 #殘差。注意,通過使用1平方的載荷,我們實現了每個指標的總變異性為1.0(標準化)。

#生成數據;注意,標準化的lv是默認的

sim <- sim(tosim)

#看一下數據

describe(sim )

指定模型

測試正確的模型

#結構性

y ~ f1+ f2

#測量

f1 =~ x1 + x2 + x3 + x4 + x5

f2 =~ x6 + x7

測試不正確的模型。假設我們錯誤地認為X4和X5負載於因子2。

incorrect

#結構性

y ~ f1+ f2

#測量

f1 =~ x1 + x2 + x3

f2 =~ x6 + x7 + x4 + x5

擬合模型

正確的模型

summary(model_m)

不正確的模型

summary(incorrectmodel_m, fit.measures = TRUE)

比較模型

正確模型

不正確模型

Paths(incorrec)

anova

除了不正確模型的整體擬合指數較差--如CFI<0.95,RMSEA>0.06,SRMR>0.08和Chi-square test<0.05所示,正確模型也優於不正確模型,如正確模型的AIC和BIC低得多所示。

點擊文末 「閱讀原文」

獲取全文完整資料。

本文選自《R語言中實現sem進行結構方程建模和路徑圖可視化》。

點擊標題查閱往期內容

結構方程模型SEM分析心理學和營銷研究數據路徑圖可視化結構方程模型SEM、路徑分析房價和犯罪率數據、預測智力影響因素可視化2案例

結構方程模型 SEM 多元回歸和模型診斷分析學生測試成績數據與可視化

在R語言中實現sem進行結構方程建模和路徑圖可視化

R語言結構方程SEM中的power analysis 效能檢驗分析stata如何處理結構方程模型(SEM)中具有缺失值的協變量

R語言基於協方差的結構方程擬合的卡方檢驗

R語言基於協方差的SEM結構方程模型中的擬合指數

R語言:結構方程模型、潛變量分析

R語言對用電負荷時間序列數據進行K-medoids聚類建模和GAM回歸

R語言進行支持向量機回歸SVR和網格搜索超參數優化

R語言貝葉斯MCMC:用rstan建立線性回歸模型分析汽車數據和可視化診斷

R語言深度學習:用keras神經網絡回歸模型預測時間序列數據

R語言貝葉斯MCMC:GLM邏輯回歸、Rstan線性回歸、Metropolis Hastings與Gibbs採樣算法實例

R語言使用虛擬變量(Dummy Variables) 回歸分析工資影響因素

文章來源: https://twgreatdaily.com/zh-hk/b28ccf55e65fe68c21587b429d6ce2e7.html