原文連結: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) 回歸分析工資影響因素