Thursday, June 18, 2009

匯入SPSS資料檔並實作因素分析(1)

本文同樣引用王保進教授(2004)在『多變量分析-套裝程式與資料分析』一書中,第三章的資料檔EX3-2.sav來進行因素分析。步驟如下(資料檔同樣置於D:\EX3-2.sav):
  • 載入foreign套件,並且將SPSS資料檔匯入到變數ex3-2中。
ex3_2<-read.spss("EX3-2.sav",to.data.frame=T)
  • 計算correlation matrix(相關係數矩陣),並將此矩陣的內容存至corex.csv檔中以及determinant(行列式值),為避免發生遺漏值的狀況,因為在計算前要加上na.omit()函數;同時,也要將讀入資料的第一欄(ID)刪除。
corex<-cor(na.omit(ex3_2[,2:17]))
write.table(corex,"corex.csv",sep=",",col.names=NA)

det(corex)
  • 由上述操作的結果可以發現各變項間相關係數小於.3的甚少,同時行列式值8.044e-06也不等於0,表示適合進行因素分析。
  • 接下來我們以rela套件中的paf(principal axis factoring)來進行因素分析,並且看看其KMO值、MSA值等等。
pafex<-paf(as.matrix(na.omit(ex3_2[,2:17])))
  • 首先以Scree Plot來看看大概會有幾個因素存在,如下圖所示陡線在第三個因素時陡升,故保留3個因素應為合理。
plotuScree(pafex$Eigenvalues[,1])

  • 然後看KMO值(.879),已達到『有價值的』(meritorious)標準。
pafex$KMO
  • 接下來看看Bartlett's test of sphericity的值(3364.7)。
pafex$Bartlett
  • 由以上兩項結果表示資料適合進行因素分析;之後我們來看看各變項的取樣適當性係數,由資料顯示除了RUGGED此一變項係數為.6948較低外,其餘變項之取樣適當性均高,故可考慮刪除此一變項,再進行因素分析,本文先不探討刪除的狀況。
pafex$MSA
  • 接下來我們來看看各變項的初始共同性(initial communalities)以及萃取後的共同性(extraction communalities),共同性愈高表示該變項愈適合進行因素分析。
pafex$Communalities

No comments:

Post a Comment