R語言:結(jié)構(gòu)方程模型、潛變量分析
原文鏈接:http://tecdat.cn/?p=3071
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
?
結(jié)構(gòu)方程模型入門?
介紹
對(duì)于熟悉線性回歸擬合結(jié)構(gòu)方程模型的分析師來說,在R環(huán)境中,擬合結(jié)構(gòu)方程模型涉及學(xué)習(xí)新的建模語法,新的繪圖語法以及通常是新的數(shù)據(jù)輸入方法。然而,擬合結(jié)構(gòu)方程模型可以成為分析師工具箱中的強(qiáng)大工具。
設(shè)置 環(huán)境
在R中實(shí)現(xiàn)SEM有許多不同的包,lavaan
軟件包為大多數(shù)SEM用戶提供了全面的功能集,并且具有易于學(xué)習(xí)的語法來描述SEM模型。要安裝lavaan
,我們只需運(yùn)行:
# 安裝
install.packages("lavaan")
讀入數(shù)據(jù)
我們需要讀入數(shù)據(jù)集。我們讀取方差 - 協(xié)方差矩陣并運(yùn)行路徑分析模型。
mat1 <- matrix(c(1, 0, 0, 0.6, 1, 0, 0.33, 0.63, 1), 3, 3, byrow = TRUE)
print(mat1)
## ? ? ?ILL ?IMM DEP
## ILL 1.00 0.00 ? 0
## IMM 0.60 1.00 ? 0
## DEP 0.33 0.63 ? 1
現(xiàn)在我們?cè)谖覀兊沫h(huán)境中命名了一個(gè)方差 - 協(xié)方差矩陣。
有了這些數(shù)據(jù),我們可以構(gòu)建兩種可能的模型
抑郁癥(DEP)影響免疫系統(tǒng)(IMM)影響疾?。↖LL)
IMM影響ILL影響DEP
使用SEM我們可以評(píng)估哪個(gè)模型最能解釋我們?cè)谏厦娴臄?shù)據(jù)中觀察到的協(xié)方差。擬合模型lavaan
是一個(gè)兩步過程。首先,我們創(chuàng)建一個(gè)文本字符串定義lavaan
模型 。接下來,我們給出lavaan
如何擬合這個(gè)模型。
# 定義模型
# 擬合模型
mod1fit <- sem(mod1, sample.cov = mat1, sample.nobs = 500)
# 定義模型2
mod2fit <- sem(mod2, sample.cov = mat1, sample.nobs = 500)
現(xiàn)在,我們?cè)诃h(huán)境中為每個(gè)模型存儲(chǔ)了兩個(gè)對(duì)象。我們有模型字符串和modelfit對(duì)象。summary
提供輸出:
##
## ? Number of observations ? ? ? ? ? ? ? ? ? ? ? ? ? 500
##
## ? Estimator ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ML
## ? Minimum Function Test Statistic ? ? ? ? ? ? ? ?2.994
## ? Degrees of freedom ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1
## ? P-value (Chi-square) ? ? ? ? ? ? ? ? ? ? ? ? ? 0.084
##
## Parameter estimates:
##
## ? Information ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Expected
## ? Standard Errors ? ? ? ? ? ? ? ? ? ? ? ? ? ? Standard
##
## ? ? ? ? ? ? ? ? ? ?Estimate ?Std.err ?Z-value ?P(>|z|)
## Regressions:
## ? ILL ~
## ? ? IMM ? ? ? ? ? ? ? 0.600 ? ?0.036 ? 16.771 ? ?0.000
## ? IMM ~
## ? ? DEP ? ? ? ? ? ? ? 0.630 ? ?0.035 ? 18.140 ? ?0.000
##
## Variances:
## ? ? ILL ? ? ? ? ? ? ? 0.639 ? ?0.040
## ? ? IMM ? ? ? ? ? ? ? 0.602 ? ?0.038
##
## ? Number of observations ? ? ? ? ? ? ? ? ? ? ? ? ? 500
##
## ? Estimator ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ML
## ? Minimum Function Test Statistic ? ? ? ? ? ? ?198.180
## ? Degrees of freedom ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1
## ? P-value (Chi-square) ? ? ? ? ? ? ? ? ? ? ? ? ? 0.000
##
## Parameter estimates:
##
## ? Information ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Expected
## ? Standard Errors ? ? ? ? ? ? ? ? ? ? ? ? ? ? Standard
##
## ? ? ? ? ? ? ? ? ? ?Estimate ?Std.err ?Z-value ?P(>|z|)
## Regressions:
## ? DEP ~
## ? ? ILL ? ? ? ? ? ? ? 0.330 ? ?0.042 ? ?7.817 ? ?0.000
## ? ILL ~
## ? ? IMM ? ? ? ? ? ? ? 0.600 ? ?0.036 ? 16.771 ? ?0.000
##
## Variances:
## ? ? DEP ? ? ? ? ? ? ? 0.889 ? ?0.056
## ? ? ILL ? ? ? ? ? ? ? 0.639 ? ?0.040
理解SEM模型的最佳方法之一是使用路徑圖直觀地檢查模型。
接下來,我們加載庫并制作一些路徑圖。


這兩個(gè)簡單的路徑模型哪個(gè)更好?我們可以運(yùn)行卡方檢驗(yàn)。
## Chi Square Difference Test
##
## ? ? ? ? Df ?AIC ?BIC ?Chisq Chisq diff Df diff Pr(>Chisq)
## mod1fit ?1 3786 3803 ? 2.99
## mod2fit ?1 3981 3998 198.18 ? ? ? ?195 ? ? ? 0 ? ? <2e-16 ***
## ---
## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
可以看到模型2更好。讓我們看一下模型2的一些屬性。
# 擬合優(yōu)度評(píng)價(jià)指標(biāo)
## ? ? ? ? ? ? ?fmin ? ? ? ? ? ? chisq ? ? ? ? ? ? ? ?df ? ? ? ? ? ?pvalue
## ? ? ? ? ? ? 0.198 ? ? ? ? ? 198.180 ? ? ? ? ? ? 1.000 ? ? ? ? ? ? 0.000
## ? ?baseline.chisq ? ? ? baseline.df ? baseline.pvalue ? ? ? ? ? ? ? cfi
## ? ? ? ? ? 478.973 ? ? ? ? ? ? 3.000 ? ? ? ? ? ? 0.000 ? ? ? ? ? ? 0.586
## ? ? ? ? ? ? ? tli ? ? ? ? ? ? ?nnfi ? ? ? ? ? ? ? rfi ? ? ? ? ? ? ? nfi
## ? ? ? ? ? ?-0.243 ? ? ? ? ? ?-0.243 ? ? ? ? ? ? 1.000 ? ? ? ? ? ? 0.586
## ? ? ? ? ? ? ?pnfi ? ? ? ? ? ? ? ifi ? ? ? ? ? ? ? rni ? ? ? ? ? ? ?logl
## ? ? ? ? ? ? 0.195 ? ? ? ? ? ? 0.587 ? ? ? ? ? ? 0.586 ? ? ? ? -1986.510
## unrestricted.logl ? ? ? ? ? ? ?npar ? ? ? ? ? ? ? aic ? ? ? ? ? ? ? bic
## ? ? ? ? -1887.420 ? ? ? ? ? ? 4.000 ? ? ? ? ?3981.020 ? ? ? ? ?3997.878
## ? ? ? ? ? ?ntotal ? ? ? ? ? ? ?bic2 ? ? ? ? ? ? rmsea ? ?rmsea.ci.lower
## ? ? ? ? ? 500.000 ? ? ? ? ?3985.182 ? ? ? ? ? ? 0.628 ? ? ? ? ? ? 0.556
## ? ?rmsea.ci.upper ? ? ?rmsea.pvalue ? ? ? ? ? ? ? rmr ? ? ? ?rmr_nomean
## ? ? ? ? ? ? 0.703 ? ? ? ? ? ? 0.000 ? ? ? ? ? ? 0.176 ? ? ? ? ? ? 0.176
## ? ? ? ? ? ? ?srmr ? ? ? srmr_nomean ? ? ? ? ? ? cn_05 ? ? ? ? ? ? cn_01
## ? ? ? ? ? ? 0.176 ? ? ? ? ? ? 0.176 ? ? ? ? ? ?10.692 ? ? ? ? ? ?17.740
## ? ? ? ? ? ? ? gfi ? ? ? ? ? ? ?agfi ? ? ? ? ? ? ?pgfi ? ? ? ? ? ? ? mfi
## ? ? ? ? ? ? 0.821 ? ? ? ? ? ?-0.075 ? ? ? ? ? ? 0.137 ? ? ? ? ? ? 0.821
## ? ? ? ? ? ? ?ecvi
## ? ? ? ? ? ? 0.412
# 模型參數(shù)預(yù)測(cè)
## ? lhs op rhs ? est ? ?se ? ? ?z pvalue ci.lower ci.upper
## 1 DEP ?~ ILL 0.330 0.042 ?7.817 ? ? ?0 ? ?0.247 ? ?0.413
## 2 ILL ?~ IMM 0.600 0.036 16.771 ? ? ?0 ? ?0.530 ? ?0.670
## 3 DEP ~~ DEP 0.889 0.056 15.811 ? ? ?0 ? ?0.779 ? ?1.000
## 4 ILL ~~ ILL 0.639 0.040 15.811 ? ? ?0 ? ?0.560 ? ?0.718
## 5 IMM ~~ IMM 0.998 0.000 ? ? NA ? ? NA ? ?0.998 ? ?0.998
# 修改指標(biāo)
## ? ?lhs op rhs ? ?mi ? ?epc sepc.lv sepc.all sepc.nox
## 1 ?DEP ~~ DEP ? 0.0 ?0.000 ? 0.000 ? ?0.000 ? ?0.000
## 2 ?DEP ~~ ILL 163.6 -0.719 ?-0.719 ? -0.720 ? -0.720
## 3 ?DEP ~~ IMM 163.6 ?0.674 ? 0.674 ? ?0.675 ? ?0.674
## 4 ?ILL ~~ ILL ? 0.0 ?0.000 ? 0.000 ? ?0.000 ? ?0.000
## 5 ?ILL ~~ IMM ? ?NA ? ? NA ? ? ?NA ? ? ? NA ? ? ? NA
## 6 ?IMM ~~ IMM ? 0.0 ?0.000 ? 0.000 ? ?0.000 ? ?0.000
## 7 ?DEP ?~ ILL ? 0.0 ?0.000 ? 0.000 ? ?0.000 ? ?0.000
## 8 ?DEP ?~ IMM 163.6 ?0.675 ? 0.675 ? ?0.675 ? ?0.676
## 9 ?ILL ?~ DEP 163.6 -0.808 ?-0.808 ? -0.808 ? -0.808
## 10 ILL ?~ IMM ? 0.0 ?0.000 ? 0.000 ? ?0.000 ? ?0.000
## 11 IMM ?~ DEP 143.8 ?0.666 ? 0.666 ? ?0.666 ? ?0.666
## 12 IMM ?~ ILL ? 0.0 ?0.000 ? 0.000 ? ?0.000 ? ?0.000
非常感謝您閱讀本文,有任何問題請(qǐng)?jiān)谙旅媪粞裕?/p>
最受歡迎的見解
1.R語言多元Logistic邏輯回歸 應(yīng)用案例
2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實(shí)現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語言泊松Poisson回歸模型分析案例
5.R語言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗(yàn)
6.r語言中對(duì)LASSO回歸,Ridge嶺回歸和Elastic Net模型實(shí)現(xiàn)
7.在R語言中實(shí)現(xiàn)Logistic邏輯回歸
8.python用線性回歸預(yù)測(cè)股票價(jià)格
9.R語言如何在生存分析與Cox回歸中計(jì)算IDI,NRI指標(biāo)