2014-02-25 110 views
2

我怎樣才能得到一個包含所有潛在因素的表格和每個測量項目對所有因素的加載?我似乎無法找到一種方法來從合適的lavaan模型中解脫出來。這裏是我用來生成模型擬合的通用代碼。如何從lavaan中提取因子載荷?

library(lavaan) 
fit <- sem(mySemModel, data=df, std.ov=TRUE, std.lv=TRUE) 
summary(fit, fit.measures=TRUE, rsq=TRUE, standardized=TRUE) 

我正在尋找與EFA相同的輸出。例如,如果我跑的代碼:

library(psych) 
myFA <- fa(tpblatentData, 2) 
print(myFA) 

我會得到這樣的事情:

   PA1 PA2 
Qitem1    0.74 
Qitem2    0.82 
Qitem3    0.87 
Qitem4  0.98  
Qitem5  0.94  
Qitem6  0.89  
+0

您可以使用parameterEstimates(fit) – user20650

+0

parameterEstimates(fit)顯示我在模型中指定的因素項目的估計值,但它不會顯示項目如何加載其他因素(除非我失去了一些東西)。 – Jim

+0

更可能我失去了一些東西。是的,您只會獲得您指定的因素和項目的裝載量。但我假設你正在做一個EFA(在CFA框架中),因爲你正在比較心理包中的fa。所以在lavaan中,我假設你會在每個因素上指定每個項目。因此參數Estimates中的每個估計值都會返回每個因子的負載。他們顯示很長的路。這就是我將如何在Mplus中實現一個類似的。你可以顯示你的模型 – user20650

回答

9

您可以通過使用inspect功能從lavaan得到矩陣形式模型的標準化負荷包。以下代碼將返回lambda(因子加載),theta(觀察誤差協方差矩陣),psi(潛在協方差矩陣)和beta(潛在路徑)矩陣。

inspect(fit,what="std")

這似乎從你的榜樣,你正在尋找的因子載荷,這是在lambda矩陣:

inspect(fit,what="std")$lambda

以同樣的方式,你可以通過指定提取非標準化參數「est」而不是「std」。

+0

謝謝,我試過你的建議,但我發現lambda值是一個整數。它應該是一個十進制數。 –

+0

我的模型中的所有變量都被觀察到,沒有變量。 –

+1

如果您觀察到所有變量,則lambda矩陣是無關緊要的。相反,查找測試矩陣:檢查(適合,什麼=「標準」)$ beta –