驗證性因子分析

因子分析能夠分爲探索性因子分析(EFA)和驗證性因子分析(CFA),探索性因子分析(EFA)我以前寫過一篇文章介紹,這裏再也不展開,想看的能夠點這。驗證性因子分析(CFA)相對而言更復雜一點,並且就個人專業而言基本用不上,不過仍是頗有意思的因此今天也去了解了一下。
想要了解一下的能夠看邱皓政老師的《量化研究與統計分析:SPSS(PASW)數據分析範例解析》,而後看一下SPSSAU寫的介紹性文章 and SPSSAU寫的一個例子就能夠有一個基本的瞭解 ,不過這些都是比較簡單的介紹,想要深刻理解確定仍是須要專門讀下專著的。
本博文主要是記錄下個人理解,以及一個整體的進行驗證性因子分析的思路。html

1.個人理解

驗證性因子分析(CFA)能夠用來驗證本身預先提出的一種結構,好比在設計問卷前我就想好了Q1-Q3這三題反應的是一我的的思惟能力(Factor1),Q4-Q6這三題反應的是一我的的體能能力(Factor2),接下來,咱們就可使用CFA來進行判斷收集到的數據是否可以按照預先提出的結構來劃分。也就是咱們預先的理論架構是不是好的,題目設置是不是好的,收集到的數據可否體現想要的結果,實際上也就是一種效度檢驗。在進行CFA分析的時候,第一步要看模型的擬合效果,這個能夠經過GFI,RMSE等一些指標來判斷,很差的話就要對題目進行調整,刪掉一些題目之類的,直到擬合效果足夠好,第二步是要進行內部適配性的檢查,一、聚斂性:一個因子及其對應的題目是否合適,或者說幾個題目是否確實反映了某個因子;二、區分效度,不一樣因子是不是有區別的;最後能夠進行共同方法誤差分析,這個不作也能夠,看狀況就好。因此總的來講也就是先判斷總體模型好很差,好的話進一步判斷模型內部的細節怎麼樣。python

2.CFA步驟

  1. 構建好模型和思路,也就是要肯定好模型的結構。
  2. 通常建議先使用EFA對模型結構進行簡單的判斷,若是EFA便發現有些題目和預設的factor對應的很差,便考慮刪除這些題目或對結構進行調整。
  3. 進行CFA,獲得模型的各個參數。
  4. 藉助GFI,RMSE等參數判斷模型的擬合信息;若擬合很差的話,藉助MI指標對模型進行修正調整,好比刪除對應很差的題項,而後從新跑CFA,直到模型擬合良好。
  5. 進行內部適配性的檢驗,1.藉助AVE和CR以及因子載荷(具體可見SPSSAU的介紹文章或上述的書籍)進行判斷;2.藉助AVE根號值和相關分析結果進行區分效度的檢驗。若效果很差,也須要繼續作調整。
  6. 進行共同方法誤差分析,看需求是否須要作這個。
  7. 撰寫結論。

3.實現

CFA是SEM的一種特例狀況,實現的話spss裏是不行的,須要使用AMOS等一些專門的sem軟件,以前作EFA時看到python的FactorAnalysis裏好像也有CFA,不過沒仔細看,估計也是能夠的,以後能夠看看官方文檔跑一跑試試。git

python實現案例
說明:pyhton裏的因子分析包確實能夠實現CFA的,可是不少統計性指標都沒有的,只給出了因子載荷和一些偏差、方差之類的,因此實際上仍是不大行,以後我再去查一下看行不行,不過官網彷佛就沒有這些須要的統計指標。
官網文檔github

官網給出的案例的及測試數據集web

4 AMOS實現

很是具體的過程就不說了,就說一個網上常常有人出現的問題,可是彷佛至今也沒人給出直接的解答,也就是AMOS結果中沒有default model,也就是實際上是模型訓練失敗了,爲何會出現這個狀況呢?實際上在output中給了提示了:
在這裏插入圖片描述
也就是約束不夠多,這個所說的約束能夠看下下面補充鏈接中的第二個連接:驗證性因子分析中的固定方差法以及固定載荷法,也就是須要給潛變量方差設定一個值或給路徑設定一個載荷,此外除了潛變量外,千萬不要忘了偏差項也要設置的。架構

此外,CFA還要作內在適配性檢驗的,amos是無法輸出AVE和CR的,不過這兩個指標手算也是很簡單的。因此實際上python作CFA也還行的,只不過就是人工多算了總體擬合指標罷了,其餘也是都同樣的。ide

還有一點須要說明,amos是沒法計算出因子得分的,這是一個缺點,固然能夠直接來手工計算下,也比較簡單的,公式爲: 因子得分=因子得分系數(因子得分系數矩陣裏相應的值)* 標準化轉化後的數據。 除此以外,還可使用python的因子分析包來計算因子得分,因此能夠說pyhton和amos能夠進行很好的互補,共同完成CFA。svg

補充:
一篇關於CFA做用的文章
驗證性因子分析中的固定方差法以及固定載荷法
一次操做實例
amos操做介紹測試