1.讀入數據
本文將使用Digman(1997)對一個包含14項研究的五因素模型進行了二階因子分析數據。他認為在這五因素模型中有兩個二階因素:一致性A、盡責性C和情緒穩定性E的二階因子α因子,外向性E和智力I的二階因子β因子。我們使用TSSEM方法來測試所提出的模型。相關矩陣池和樣本大小分別存儲在Digman97$data和Digman97$n中。
#library(metaSEM)#head(Digman97$data)
2.兩階段結構方程模型法
研究人員已經提出了幾種元分析結構方程模型的檢驗方法,包括廣義最小二乘(GLS)法(Becker,1992; Becker&Schram,1994)和兩階段結構方程模型(TSSEM)法(Cheung,2002; Cheung&Chan,2005)。由於兩階段結構方程模型的方法更為合理,在本文中,我們將介紹如何使用兩階段結構方程模型法進行元分析驗證性因素分析。所謂二階段就是,第一個階段,綜合變量之間的相關矩陣,第二階段,設定結構進行檢驗。另外,由於元分析分析固定效應模型和隨機效應模型兩種(參見本微信公眾以往關於元分析的文章),因此,在元分析驗證性因素分析之中,也可以使用兩種模型。
2.1固定效應模型
2.1.1固定效應模型:第一階段
在分析的第一階段,使用tssem1()函數,通過在自變量中指定method=「FEM」,將與固定效應模型相關的矩陣池組合起來:
fixed1 <- tssem1(Digman97$data, Digman97$n, method = "FEM")summary(fixed1)第一階段分析中檢驗相關矩陣同質性的擬合指標為χ2 (df = 130, N = 496) = 1505.4443, p = 0.0000, CFI = 0.6824, SRMR = 0.1621, RMSEA = 0.1815。這些值表明,假設相關矩陣齊性假設是不合理的。相反,更合適的做法是使用隨機效應模型,稍後將對此進行說明。然而,為了說明固定效應模型,我們繼續進行第二階段的分析。
我們還可以通過以下命令提取模型運算之後的綜合相關矩陣。
2.1.2固定效應模型:第二階段
第二階段分析的結構模型是通過網狀動作模型(RAM)形成的 (McArdle and McDonald, 1984)。結構模型由三個矩陣指定。A和S分別用於指定非對稱路徑和對稱方差協方差矩陣。A表示變量之間的回歸係數、因子負荷等非對稱路徑,A中的ij表示變量j到變量i的回歸係數。S是一個對稱矩陣,表示變量的方差和協方差。它用於指定路徑圖中的雙箭頭。對角線元素表示變量的方差。如果變量是自變量,則S中對應的對角線表示方差;否則,S中對應的對角線表示因變量的殘差。S中的非對角表示變量的協方差。F是一個選擇矩陣,用於過濾觀察到的變量。下面的語法指定了A矩陣:
Lambda <- matrix(c(".3*Alpha_A", ".3*Alpha_C", ".3*Alpha_ES", rep(0,5),".3*Beta_E", ".3*Beta_I"), ncol = 2, nrow = 5)head(Lambda)A1 <- rbind(cbind(matrix(0,ncol=5,nrow=5), Lambda), matrix(0,ncol=7,nrow=2))
dimnames(A1) <- list(c("A", "C", "ES", "E", "I", "Alpha", "Beta"),c("A", "C", "ES", "E", "I", "Alpha", "Beta"))
A1上面的輸出顯示了A1矩陣。Alpha_A是二階因子α到一階因子的負荷,而「0.3」是初始值。當標籤相同時,參數受到相同的約束。「0」的值表示這些因子負載固定在0。下面的語法指定了S矩陣:
Phi1 <- matrix(c(1, "0.3*cor", "0.3*cor",1), ncol=2, nrow=2)
Psi1 <- Diag(c(".2*e1", ".2*e2", ".2*e3", ".2*e4", ".2*e5"))
S1 <- bdiagMat(list(Psi1, Phi1)
dimnames(S1) <- list(c("A", "C", "ES", "E", "I", "Alpha", "Beta"), c("A", "C", "ES", "E", "I", "Alpha", "Beta")) S1下面的語法指定了F矩陣:
F1 <- create.Fmatrix(c(1, 1, 1, 1, 1, 0, 0), as.mxMatrix=FALSE)
dimnames(F1) <- list(c("A", "C", "ES", "E", "I"), c("A", "C", "ES", "E", "I", "Alpha", "Beta")) F1然後,我們可以通過tssem2()命令擬合結構模型:
fixed2 <- tssem2(fixed1, Amatrix=A1, Smatrix=S1, Fmatrix=F1, model.name="Digman97 FEM")summary(fixed2)
第二階段結構模型上的擬合指數
χ2(df=4,N=4,496)=65.4526, p=0.0000, CFI=0.9505, SRMR=0.0465, RMSEA=0.0585。雖然擬合優度指數看起來不錯,但由於第一階段分析中擬合優度指數較差,我們在解釋時應該謹慎。
2.2隨機效應模型
2.2.1隨機效應模型:第一階段
隨機效應TSSEM即在tssem1()中指定method=「REM」。默認情況下(RE.type =「Symm」),使用隨機效應中的正定義對稱協方差矩陣。可以使用RE.type=「Diag」指定隨機效應的對角矩陣。研究人員還可以指定RE.type=" 0 "。由於隨機效應的方差分量為零,因此該模型成為固定效應模型。
random1 <- tssem1(Digman97$data, Digman97$n, method="REM", RE.type="Diag")summary(random1)由於隨機效應模型第一階段的結果太長,在這裡就在再呈現,同志們可以自行在R上運行。I2表示相關係數的異質性。例如,上述分析表明,基於Q統計量的I2的變化範圍為0.7669 ~ 0.9326,表明相關元素間存在高度異質性。在多元隨機效應meta分析中,隨機效應TSSEM通常基於固定效應均值向量的飽和模型和隨機效應方差分量,因此不存在擬合優度指標。
如果要以矩陣形式提取估計的平均相關矩陣,可以使用以下命令:
vec2symMat( coef(random1, select="fixed"), diag=FALSE )
2.2.2隨機效應模型:第二階段
階段2的分析跟固定效應的過程相似,通過tssem2()函數進行。此函數自動處理在階段1分析中使用的是固定效果模型還是隨機效果模型。
random2 <- tssem2(random1, Amatrix=A1, Smatrix=S1, Fmatrix=F1)summary(random2)第二階段結構模型上的擬合指數χ2 (df = 4, N = 4, 496) = 7.8204, p = 0.0984,SRMR=0.0436, CFI=0.9922,TLI=0.9806 RMSEA=0.0146。這表明模型與數據非常吻合。α因子的因子負荷分別為0.5694、0.5906和0.6800,β因子的因子負荷分別為0.7605和0.6418。這兩個因子的因子相關係數為0.3937。所有這些估計都具有統計學意義。
3.繪製結構方程圖
library("semPlot")
my.plot <- meta2semPlot(random2, latNames=c("Alpha","Beta"))
semPaths(my.plot, whatLabels="path", nCharEdges=10, nCharNodes=10, color="yellow", edge.label.cex=0.8)semPaths(my.plot, whatLabels="est", nCharNodes=10, color="green", edge.label.cex=1.2)以上,就是元分析-驗證性因素分析的基本過程。由於許多量表的結構是存在著爭議的,因此,使用這一方法對它們進行比較就顯得十分有意義。
歡迎大家關注與轉發!!!