R語言:結構方程模型、潛變量分析
原文鏈接:http://tecdat.cn/?p=3071
?
結構方程模型入門?
介紹
對于熟悉線性回歸擬合結構方程模型的分析師來說,在R環(huán)境中,擬合結構方程模型涉及學習新的建模語法,新的繪圖語法以及通常是新的數(shù)據(jù)輸入方法。然而,擬合結構方程模型可以成為分析師工具箱中的強大工具。
設置 環(huán)境
在R中實現(xiàn)SEM有許多不同的包,lavaan
軟件包為大多數(shù)SEM用戶提供了全面的功能集,并且具有易于學習的語法來描述SEM模型。要安裝lavaan
,我們只需運行:
# Main version
install.packages("lavaan")
讀入數(shù)據(jù)
加載lavaan包后,我們需要讀入數(shù)據(jù)集。我們讀取方差 - 協(xié)方差矩陣并運行路徑分析模型。
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)在我們在我們的環(huán)境中命名了一個方差 - 協(xié)方差矩陣。
有了這些數(shù)據(jù),我們可以構建兩種可能的模型
抑郁癥(DEP)影響免疫系統(tǒng)(IMM)影響疾?。↖LL)
IMM影響ILL影響DEP
使用SEM我們可以評估哪個模型最能解釋我們在上面的數(shù)據(jù)中觀察到的協(xié)方差。擬合模型lavaan
是一個兩步過程。首先,我們創(chuàng)建一個文本字符串作為lavaan
模型 。接下來,我們給出lavaan
如何擬合這個模型。
# Specify the model
# Give lavaan the command to fit the model
mod1fit <- sem(mod1, sample.cov = mat1, sample.nobs = 500)
# Specify model 2
mod2fit <- sem(mod2, sample.cov = mat1, sample.nobs = 500)
現(xiàn)在,我們在環(huán)境中為每個模型存儲了兩個對象。我們有模型字符串和modelfit對象。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模型的最佳方法之一是使用路徑圖直觀地檢查模型。
?
?
接下來,我們加載庫并制作一些路徑圖。
?

?

這兩個簡單的路徑模型哪個更好?我們可以運行卡方檢驗。
## 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的一些屬性。
# Goodness of fit measures
## ? ? ? ? ? ? ?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
# Estimates of the model parameters
## ? 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
# Modification indices
## ? ?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
非常感謝您閱讀本文,有任何問題請在下面留言!
?