R資料分析:結構方程模型(SEM)介紹

全文包括:

SEM簡介:功能、優點、缺點

分析軟體簡介

統計知識回顧:矩陣標量向量、多元迴歸分析、估計方法

SEM的六大步驟

路徑追蹤規則(Path tracing rules)

R codes

一、SEM簡介

強大的功能:

融合了因子分析(Factor Analysis)、方差分析(如ANOVA, ANCOVA, MANOVA, MANCOVA)、多重回歸(multiple regression)等:

可以分析有多個因變數的模型(multiple dependent variables)

可以分析複雜的中介模型(complex mediating mechanisms)

可以估算潛在變數以解釋測量誤差(estimate latent variables)

可以估算二分變數(binary) /序級變數(ordinal)的潛在因子

可以測試跨組的模型不變性(test invariance of models across groups)

可以建模重複測量的資料的發展軌跡(growth trajectories of repeated measures)

不勝列舉的優點們:

可以一次性完成對一個複雜模型的分析,而不用將模型拆分

適用於各種資料(不同分佈的資料-非正態分佈,不同型別的資料-非連續資料)

對長期資料,可以測試個體的穩定性

以及不足:

建了個太太太複雜的模型,以致於啥都說明不了(比如把各種變數一股腦塞進模型,偏離了理論)—— 所以在建模specification/re-specification時,一定要明確自己在做什麼,讓模型保持精簡。

難以判斷模型是否正好擬合(fit)資料 —— 要依據理論再參考一些fit index,將模型不斷最佳化,在過度適合和適合不足中找到平衡點。

可能有不同模型恰好一樣地擬合數據

沒有明確參考標準來確定合適的樣本大小——……樣本量越大越好

和其他分析一樣,SEM無法修正由於取樣或測量導致的誤差——好好設計和實施實驗讓資料質量高一些

哲學盲點:SEM使用”證據的缺失(absent of evidence)作為支援假設模型的證據 —— 沒有證據證明其存在可以證明其不存嗎?(例一:研製新藥,如果沒有證據顯示新藥有療效,是不是就能說明新藥沒有療效了呢?例二:尋找某物種,如果找不到這個物種的生物,是不是就說明該物種已經滅絕了餓呢?)

二、應用軟體

常用軟體:

Amos

(繪製路徑圖,簡易模型分析,想發表文章的話還是用後兩個分析吧)、

Mplus

(程式碼簡潔好上手)、

R(一般用

lavaan package,還有別的包可以用比如semTools有一些補充功能比如求

測量不變性 measurementInvariance()

,semplot/lavaanplot可以用來繪圖,還有openMX、sem等)。

除此以外,還有

Python

(學好程式設計啥問題都能解決)、

LISREL

(輸入input是矩陣而非原資料!Coursera上有港中文大學Kit Tai Hau 侯傑泰教授的免費公開課程“Structural Equation Model and its Applications | 結構方程模型及其應用 (普通話/粵語))、

EQS

(多變數分析軟體)

、SPSS

(也得自己碼程式碼syntax,點點點滑鼠是點不出來這些比較高階的功能的)。

三、統計知識回顧

矩陣代數(Matrix Algebra)

標量(scalars):

實數,只有大小,沒有方向。

R資料分析:結構方程模型(SEM)介紹

*a是一個標量,b也是一個標量。

矩陣(matrix)

:雙序排列的標量,行(rows)+列(columns)。

R資料分析:結構方程模型(SEM)介紹

*表示矩陣的字母一般大寫、加粗。

矩陣排序:

下標前面的數字代表行i,後面的數字代表列j,記作aij。

R資料分析:結構方程模型(SEM)介紹

矩陣轉置(Transpose):

把矩陣A(r×c)的行和列互相交換,得到矩陣A’(c×r)。

R資料分析:結構方程模型(SEM)介紹

對稱矩陣(Symmetric Matrices):

A = A’。

對角矩陣(diagonal matrix):

特殊的對稱矩陣,主對角線之外的元素皆為0的矩陣。

單位矩陣(Identity Matrix):

特殊的對角矩陣,主對角線為1,主對角線之外的元素皆為0的矩陣。

向量(Vector):

僅有一列/一行的矩陣。

R資料分析:結構方程模型(SEM)介紹

*代表向量的字母一般小寫加粗。

矩陣的加減乘除

(我省略了)

但要注意的是,

計算標量時,ab=ba,計算矩陣時,ab ≠ ba因為乘法要考慮順序。

實際上沒有矩陣除法,透過乘以逆矩陣(

A-1

)完成。

行列式(Determinant)

矩陣

S

的行列式記作

|S|

僅正方形的矩陣可以求行列式,比如相關性、協變數矩陣。

行列式為0的矩陣不可逆(inverted),這樣的矩陣是非正定矩陣(non-positive definite, NPD),而SEM計算中通常需要求逆矩陣,所以行列式為0的矩陣為導致執行錯誤(例如“psi matrix is not positive definite” )

多元迴歸分析(Multiple Regression)

迴歸分析(regression)可以看作是SEM的一種形式。

廣泛應用於社會、行為、健康科學中的強大、靈活的分析方法。

因變數需要時正態分佈的連續資料,對自變數沒要求。

可以分析互動作用、中介作用等。

估計方法

最小二乘估計(Least Squares Estimation, LSE)

選擇可以

最小

化殘差的平方和(sum of squared residuals)的引數

最大似然估計(Maximum Likelihood Estimation, MLE)

頻率學派(Frequentist)的點估計法,根據樣本資料不斷嘗試,選出能

最優

描述實際機率分佈(likelihood)的引數。

最大後驗估計(Maximum A Posteriori Estimate, MAP)

提到了頻率學派,就插入一下貝葉斯學派(Bayesian)的最大後驗估計MAP。MAP融合了預估計量的先驗分佈資訊(Prior distribution),對未觀測點做估計,可以看作是正則化(regularized)的最大似然估計。

四、SEM操作步驟

1。 Specification 明確模型

自變數(independent variable)是什麼?因變數(dependent variable)是什麼?有沒有調節變數(mediator)?有沒有中介變數(moderator)?變數間是什麼關係(relationship)?

1.1 路徑圖(path diagram)

繪圖比較好用易上手的軟體:Amos (分析基於SPSS,要獲得分析結果的話要同時下載SPSS)(Amos全名其實就是Analysis of moment structures)

繪製正確的話,路徑圖完全可以表達(等同於)構建的方程式/模型

優點:視覺化模型隱含的

矩陣結構

(model-implied

moment structure

) 【

moment

指的是變數組(sets of variables)的均值(mean)、方差(variances)、 協方差(covariances),就是均值矩陣/(協)方差矩陣】。

路徑圖中圖形的含義

長方形/正方形:

測量變數(measured variable)

圓形:

未測量變數(unmeasured variable), 如殘差(residuals)、潛在變數(latent variables)

單向直線箭頭:

迴歸方程的引數(regression coefficient)/因子分析的因子負荷(factor loadings)

雙向曲線箭頭

:方差(variance)/協方差(covariance)

三角形:

均值(mean)/截距(intercept)的常數(constant)。在分析模型時,統計軟體會自動將一行常數設定成1。

R資料分析:結構方程模型(SEM)介紹

1.2 矩陣結構(Moment Structures)

總體矩陣(Population moments) 記作Σ和μ

樣本矩陣(sample moments)記作S和 m

總體隱含矩陣(Population model implied moments)記作Σ (θ) 和μ (θ)

樣本隱含矩陣(Sample model implied moments)記作 Σ (θ hat)和μ (θ hat)

如下圖,以總體矩陣為例:對於單個因變數和q個自變數的迴歸模型,有一個總體的協方差矩陣

Σ

和總體均值向量

μ。

R資料分析:結構方程模型(SEM)介紹

2。 Identification模型的辨識性

就像每個人都有個身份證號一樣,一個模型需要具有辨識度。模型辨識度指的在有足夠的已知資訊來推斷未知引數的程度。

Model identification refers to the extent to which there is sufficient known information to infer unknown values

過度識別(Over-identified)

:模型包含了冗餘資訊,需要修改 ——未知引數個數<獨立方程式個數(方程式有解,但沒有唯一精確解)。

許多路徑分析和幾乎所有SEM模型存在這個問題。

正好識別(Just-identified)

:觀察到的資訊 = 所需估計的引數數量 ——未知引數個數=獨立方程式個數(方程式有唯一精確解)。

所有多元迴歸模型都是恰好識別。

識別不足(Under-identified)

:觀察到有用資訊不足——未知引數個數>獨立方程式個數(方程無解)。

大問題!無法得到有效結果,下面講到的路徑追蹤規則(path tracing rules)對解決這個問題有用。

3。 Estimate 模型引數估計

從樣本資料中得到係數的過程。

3。1 最常用的是上述ML(最大似然法maximum likelihood),其具有

3個特點:

a.無偏的

:雖然每次都有抽樣誤差(sampling error), 但無限次重複實驗後,樣本估值的平均值將等於總體的真實值

unbiased: if we were to repeat our study an infinite number of times, the mean of the sample estimates would equal the population value

b.一致性:

當樣本量無限接近於總人群量時,樣本估值也無限接近群體值

consistent: as the sample size approaches infinity, the sample estimate approaches the population value

c.有效性:

引數估值的誤差最小

efficient: no other estimator has a smaller sampling error for the parameter estimate

3.2 兩種方式:

a. 充分統計最大似然值估計

(Sufficient-statistic maximum likelihood estimation,SSML)僅僅基於觀測到的協方差矩陣和均值向量,前提是有完整資料 (complete-case data)和正態分佈的因變數(normally distributed DVs)

b. 完全資訊最大似然值估計

(Full information maximum likelihood estimator,FIML) 基於任何從個體觀察到的資料。允許部分缺失的資料(partially missing data)和用於處理非正態分佈(non-normal distribution)和巢狀資料結構( nested data structures)的替代方法

*對於完整的正態分佈的資料,SSML 和FIML 一樣。

3.3 優點:

適用於各種模型

無偏、一致、最大化有效性。

估值漸近正態分佈(Estimates are asymptotically normally distributed),為推理測試(inference test)提供依據

可以透過卡方檢驗比較不同模型的相對擬合度的優劣

FIML適用於有缺失值和非正態分佈的資料。

3.4 步驟

初始值(start value):選擇引數估計的初始值

迭代(iteration):計算似然值,更新引數估計值

收斂(converge):不斷計算似然值,直到前後兩個似然值之間的差異足夠小為止

從最後一步保留擬合值(Fit statistics)、引數估值(parameter estimates)和標準誤差(standard errors )

*如果模型太複雜有可能出現模型不收斂“failed to converge”的問題。

4。 Evaluation 模型評估

模型擬合程度如何?根據模型擬合指數作判斷(Model fit index)

5。 Potential re-specification可能需要模型再明確

如果模型不夠好,怎麼修改?參考理論,根據修正指數(Modification indices)調整模型。

6。 Interpretation 解讀

哪個結果顯著?結果是否有意義?

通常關注點在:

原始的引數估值(Raw parameter estimates)

標準化的引數估值(Standardized parameter estimates)

決定係數R2 , (explained variance in outcomes),即模型可解釋的變異量

五、路徑追蹤規則(Path Tracing Rules):

Sewall Wright在 19世紀20年代和30年代發明。

1。一旦開始用了單項箭頭,就不能再往回/用雙向箭頭了4 前進了不能再後退, 但可以先後退再前進

Rule 1: if you begin a trace forward from a variable using a singleheaded arrow, you can proceed forward any number of times; but once you start forward you may not move backwards or span a double-headed arrow

R資料分析:結構方程模型(SEM)介紹

圖片來源 p67 《結構方程模式理論與實務:圖解AMOS取向》作者: 李茂能

2。每一條路徑,最多僅可涉及一個未分析到的相關係數(僅能透過雙箭頭部分一次)

Rule 2: If you begin a trace backward from a variable using a single headed arrow, you can proceed backward any number of times; upon reaching a variable, you can do one of two things:

a。 span a double-headed arrow and stop

b。 span a double-headed arrow and proceed the trace forward

R資料分析:結構方程模型(SEM)介紹

圖片來源 p68 《結構方程模式理論與實務:圖解AMOS取向》作者: 李茂能

3。一個變數只能被經過一次,無迴路(no loop)

Rule 3: for each trace you can only pass through a variable once ; no loops are allowed

R資料分析:結構方程模型(SEM)介紹

圖片來源 p67 《結構方程模式理論與實務:圖解AMOS取向》作者: 李茂能

六、R code

#下載lavaan包

install。packages(“lavaan”, dependencies=TRUE)

#執行lavaan包

library(lavaan)

#建模:x是因,y是果

model <- ‘y ~ x’

#選擇用sem分析模型,指定資料

fit <- sem(model, data = data)

#顯示結果

summary(fit) #顯示原始引數

summary(fit, standardized = TRUE) #顯示標準化引數

summary(fit, std。nox = TRUE, rsquare = TRUE) #顯示基於觀測變數和潛在變數的標準化引數和R方

小結

本文原創作者使用者名稱HAO,請支援原創!

感謝大家耐心看完,自己的文章都寫的很細,程式碼都在原文中,希望大家都可以自己做一做,請關注後私信回覆“資料鏈接”獲取所有資料和本人收集的學習資料。如果對您有用請先收藏,再點贊轉發。

也歡迎大家的意見和建議,大家想了解什麼統計方法都可以在文章下留言,說不定我看見了就會給你寫教程哦。

如果你是一個大學本科生或研究生,如果你正在因為你的統計作業、資料分析、論文、報告、考試等發愁,如果你在使用SPSS,R,Python,Mplus, Excel中遇到任何問題,都可以聯絡我。因為我可以給您提供好的,詳細和耐心的資料分析服務。

如果你對Z檢驗,t檢驗,方差分析,多元方差分析,迴歸,卡方檢驗,相關,多水平模型,結構方程模型,中介調節,量表信效度等等統計技巧有任何問題,請私信我,獲取詳細和耐心的指導。

If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams。。 And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me。 Because I could provide you the best services for your Data Analysis。

Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc。 for your Data Analysis。。。??

Then Contact Me。 I will solve your Problem。。。

加油吧,打工人!

猜你喜歡

文獻解析:結構方程模型的基礎知識

R資料分析:結構方程模型畫圖以及模型比較,例項操練

Mplus教程:如何做潛在類別分析LCA

Mplus資料分析:潛在類別分析(LCA)流程(詳細版)