結(jié)構(gòu)方程模型(SEM)

結(jié)構(gòu)方程模型(SEM)及其R實(shí)現(xiàn)一個(gè)人旅行-的博客-CSDN博客結(jié)構(gòu)方程模型

SEM需要分析人員首先自行建立一個(gè)因子之間的關(guān)系模型,之后使用SEM對該模型進(jìn)行分析,根據(jù)結(jié)果評估模型的效果,之后不斷的對模型進(jìn)行調(diào)整,隨后重復(fù)“調(diào)整-評估”這一循環(huán),直至結(jié)果滿意為止。

首先第一個(gè)痛點(diǎn)就是起始模型的建立,這個(gè)東西就是非常個(gè)性化的東西了,可以說沒什么標(biāo)準(zhǔn),只能由每個(gè)分析人員根據(jù)研究的實(shí)際情況自行摸索。

當(dāng)然也有一些前期的基本工作,比如通過一些相關(guān)性分析、VIF、CCA/RDA等篩選一下用于建模的因子,去除不必要的因子,使得起始模型的建立更簡單一些,也可以通過相關(guān)性結(jié)合研究實(shí)際初步評估一下直接作用和間接作用。

第二個(gè)痛點(diǎn)就是對模型的調(diào)整,每個(gè)因子應(yīng)該放在什么位置,因子之間的關(guān)聯(lián)應(yīng)該怎么改變,這個(gè)東西是真的不知道怎么講,感覺只能是多嘗試。

常規(guī)分析兩個(gè)變量間是否存在關(guān)聯(lián)時(shí),我們會(huì)使用相關(guān)性分析,但是相關(guān)性只能表明兩個(gè)變量存在相互關(guān)系,但無法得出哪個(gè)變量是因?哪個(gè)變量是果?

此外,相關(guān)性分析只是兩個(gè)變量數(shù)量上的相互關(guān)系,而在實(shí)際情況中,有些變量可能不是直接與其它變量發(fā)生相互作用,而是通過第三個(gè)變量間接的與靶標(biāo)變量關(guān)聯(lián)。

結(jié)構(gòu)方程模型(Structural Equation Modeling,SEM)就是一種將兩個(gè)或多個(gè)結(jié)構(gòu)模型聯(lián)合起來,以實(shí)現(xiàn)對多元關(guān)系進(jìn)行建模的統(tǒng)計(jì)框架,其可以解決相關(guān)性分析中無法得到的因果關(guān)系以及區(qū)別直接和間接作用。


image.png

SEM模型匹配

SEM可以分為協(xié)方差SEM和分段SEM
1.協(xié)方差SEM

協(xié)方差SEM假定所有變量均具有正態(tài)分布,即數(shù)據(jù)服從多元正態(tài)分布,同時(shí)該分析還假定所有的變量均為獨(dú)立的。

使用piecewisedSEM包的keeley數(shù)據(jù)作為示例數(shù)據(jù),假定的初始關(guān)系為firesev由age決定,同時(shí)firesev還決定cover,使用lavaan包進(jìn)行協(xié)方差SEM模型匹配。


install.packages("piecewiseSEM")
install.packages("lavaan")
library(lavaan)
library(piecewiseSEM)

data(keeley)
keeley_formula <- '
firesev ~ age
cover ~ firesev
'
keeley_sem <- sem(keeley_formula, data = keeley)

summary(keeley_sem, standardize = T, rsq = T)

lavaan 0.6-12 ended normally after 1 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                         4

  Number of observations                            90

Model Test User Model:
                                                      
  Test statistic                                 3.297
  Degrees of freedom                                 1
  P-value (Chi-square)                           0.069

Parameter Estimates:

  Standard errors                             Standard
  Information                                 Expected
  Information saturated (h1) model          Structured

Regressions:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  firesev ~                                                             
    age               0.060    0.012    4.832    0.000    0.060    0.454
  cover ~                                                               
    firesev          -0.084    0.018   -4.611    0.000   -0.084   -0.437

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
   .firesev           2.144    0.320    6.708    0.000    2.144    0.794
   .cover             0.081    0.012    6.708    0.000    0.081    0.809

R-Square:
                   Estimate
    firesev           0.206
    cover             0.191
keeley_sem <- sem(keeley_formula, data = keeley)

summary(keeley_sem, standardize = T, rsq = T)



keeley_psem <- psem(
  lm(firesev ~ age, data = keeley),
  lm(cover ~ firesev, data = keeley),
  data = keeley)
keeley_psem
fisherC(keeley_psem)
##   Fisher.C df P.Value
## 1     5.18  2   0.075
AIC(keeley_psem)
## [1] 17.18
BIC(keeley_psem)
## [1] 32.179
summary(keeley_psem, .progressBar = FALSE)

2.分段SEM

不同于協(xié)方差SEM,分段SEM使用Fisher‘s C statistic代替卡方檢驗(yàn),但是同樣要求P>0.05。

AIC會(huì)在給定模型的復(fù)雜性與其擬合優(yōu)度之間進(jìn)行權(quán)衡,可以將AIC值視為對應(yīng)了模型的準(zhǔn)確性,AIC值越小的模型表明越有可能準(zhǔn)確地預(yù)測新數(shù)據(jù),AIC小于2時(shí)認(rèn)為模型效果很好。

Structural Equation Model of keeley_psem 

Call:
  firesev ~ age
  cover ~ firesev

    AIC      BIC
 17.180   32.179

---
Tests of directed separation:

     Independ.Claim Test.Type DF Crit.Value P.Value 
  cover ~ age + ...      coef 87    -1.8018   0.075 

Global goodness-of-fit:

  Fisher's C = 5.18 with P-value = 0.075 and on 2 degrees of freedom

---
Coefficients:

  Response Predictor Estimate Std.Error DF Crit.Value P.Value Std.Estimate    
   firesev       age   0.0597    0.0125 88     4.7781       0       0.4539 ***
     cover   firesev  -0.0839    0.0184 88    -4.5594       0      -0.4371 ***

  Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05

---
Individual R-squared:

  Response method R.squared
   firesev   none      0.21
     cover   none      0.19
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容