那一刻,我升起風馬,不為祈福,只為守候你的到來。 那一天,閉目在經殿香霧中,驀然聽見,你頌經中的真言。 那一月,我搖動所有的轉經筒,不為超度,只為觸摸你的指尖。 那一年,磕長頭匍匐在山路,不為覲見,只為貼著你的溫暖。 那一世,轉山轉水轉佛塔啊,不為修來生,只為途中與你相見。 《倉央嘉措》
2007年10月9日 星期二
結構方程模型的基本觀念 (4)
誠如前述,結構方程模型基本上是「路徑分析」和「因子分析」的結合體,其中的「路徑」,指的是「潛變量」之間的因果關係,而「因子分析」指的則是「衡量模型」,由「可觀測變量」和「潛變量」組合而成。事實上,不論是「路徑」還是「衡量模型」,這些變量之間的關係,全都可以使用一般人容易明白的圖解形式很直觀地加以表達,同時,它們也可以使用學者所熟悉的數學語言,例如線性代數的形式,精確地加以表述。這兩種方式,是一而二,二而一的事,本質上沒有區別。
在這裡,本書將採用AMOS軟件為例,來對比一下結構方程模型的構造過程。不過在正式開始構造結構方程模型之前,讓我們先來複習一下線性代數中,關於矩陣向量的一些基本概念。
(1) 向量與矩陣的基本概念

(2) 構造結構方程模型的工作環境
接下來,讓我們簡單感受一下在AMOS中,用來構造結構方程模型的工作環境。在打開Amos Graphics之後,首先映入眼簾的是如下圖這樣的畫面,AMOS提供了一個十分直觀的圖形化介面,和許多有用的模型構造工具,來幫助我們建構結構方程模型,而不需要使用諸如向量和矩陣等數學語言來定義模型。基本上,在AMOS中構造結構方程模型十分簡單,只要使用鼠標將相應的元素點選後,直接在畫面中的工作區裡畫出來就可以了。其中白色的方框代表「可觀測變量」,白色的圓圈代表「潛變量」,單箭頭表示「因果路徑」,雙箭頭表示「相關」。其他的工具也都在幫助研究者,加速並降低構造模型所必須付出的努力,詳情請參見軟件使用說明與相關手冊。
結構方程模型的基本觀念 (3)
(6) 不存在多重共線性的假定
和多元迴歸分析一樣,結構方程模型假定了模型中的變量之間,不存在共線性的問題。但是由於結構方程模型的優勢之一,就是可以在模型中直接將共線性清晰地予以表述 (specify)出來,所以,本質上,結構方程模型還是可以處理多重共線性的問題。不過,如果這多重共線性十分嚴重,在最極端的情形下稱之為完全共線,那麼就會導致模型中出現「奇異 (singular) 矩陣」,由於「奇異矩陣」是無法進行某些矩陣代數運算的,例如就不能進行轉置 (inverse) 運算,結果就會使得結構方程模型無法求解。
(7) 殘差獨立的假定
和多元迴歸分析一樣,結構方程模型也假定了模型中可觀測變量的殘差之間是不存在相關的。但是由於結構方程模型中,我們一樣可以將這些相關的殘差,直接在模型中清晰地表述出來,所以結構方程模型還是可以處理殘差相關的問題。只是要在模型中定義某些殘差的相關,並不是隨心所欲想要相關就相關的,更不應該只是單純為了改善模型擬合指標,才讓某些殘差在模型中表述為相關,設計模型的要點就是要掌握理論依據,實事求是,必須能夠合理解釋某對殘差間為何必然存在相關,這才可以在模型中表述為相關。
(8) 不存在接近零的協方差矩陣 (covariance matrix)
結構模型本身必須真有意義,而不是潛變量的瞎拼瞎湊。如果結構模型裡潛變量之間的因果關係不明確,或是關係甚小,就可能導致滿盤都接近0的協方差矩陣。由於許多擬合指標的計算過程(例如卡方檢定、CFI、NFI、RMSEA、RMR等等),其實是在觀察每次模型修正後,真實數據下的協方差矩陣,和虛無假說 (null hypothesis) 下內容為0的協方差矩陣之間差異的變化。當真實觀察到的協方差矩陣很接近0的時候,這些計算擬合指標的程序將無法分辨協方差矩陣間的差異,所以就會認定不存在「不擬合」的現象,因此就高估了「擬合指標」。
(9) 適當的樣本大小
大多數國外管理學期刊裡使用了結構方程模型的研究中,所使用的樣本數量大約介乎於200到400之間。另外,許多學者對於樣本數量做出了各種原則性的建議,但是也眾說紛紜,沒有一定的標準。其中大多數的學者相信,如果樣本數低於200,那麼所獲得的參數估計將不穩定。事實上,樣本數量和模型中的變量數量之間,存在著密切關係。一般認為,適合進行結構方程模型的樣本數量,至少應該是模型中所有可觀測變量數量的10到20倍(Mitchell, 1993),或者是所需要估計的參數(包含所有係數和殘差)的數量的5倍(Bentler and Chou, 1987),雖然有些研究指出,卡方檢定對樣本數太敏感,過大的樣本數容易導致較差的卡方擬合,但是比較新的觀點認為,樣本數還是儘可能愈大愈好,因為在「中央極限定理」之下,大的樣本數比較能保證觀測變量的正態性。
結構方程模型的基本觀念 (2)
(二) 結構方程模型的前提假定
如前所述,結構方程模型在應用上的限制相對已經較少了,但是它和其他的多變量分析技術一樣,在實際應用的時候,仍然有其特定的前提假定必須遵守。
(1) 結構方程模型裡面的「可觀測變量」必須服從正態分佈。
由於在估計結構方程模型的擬合指標時,我們所採用的最基本工具是卡方檢定 (chi-square test),卡方檢定對於變量的正態性 (normality) 十分敏感,即使輕微的違背這個要求,都可能導致卡方檢定結果發生很大的偏差。同時,大多數結構方程模型在估計參數時所採用的方法都是「極大似然估計法」,這方法在應用時的基本前提也是變量的正態性,尤其對於模型中「內生變量 (endogenous variables)」的正態性更是嚴格要求,因此「可觀測變量」服從正態分佈,是進行結構方程模型時不可迴避的必要條件。這裡補充說明一下,如果「可觀測變量」不服從正態分佈,但是其殘差卻:(a) 服從正態分佈,(b) 所有殘差的方差都很接近(代表殘差同質),(c) 殘差間彼此獨立(也就是不相關),這時卡方的估計結果還是不偏的。不過這三個條件看來比要求「可觀測變量」服從正態分佈還要困難。
在實務上,避免違背這個條件的簡易方法,首先就是儘可能不去使用「順序尺度 (ordinal scale)」或是「名目尺度 (nominal scale)」這種「類別的」,或是「離散的」變量衡量方法。其次,在萬不得已必須使用類別型變量衡量的時候,還可以選用一些「轉換 (transformation)」技術,來「正態化 (normalize)」那些有問題的變量。所謂「轉換」,就是根據變量的分佈特徵,通過數學代換,將原本不屬於正態分佈的變量,設法將之轉變成具有正態分佈性質的變量。常見的轉換技術包括:取平方根 (square root)、取自然對數 (logarithmic)、或是函數1/x反轉 (inverse)等等,其中函數反轉優於取自然對數,自然對數又優於取平方根。
例如,對於服從「卜瓦松 (Poisson)」分佈的變量,我們通常直接對它取平方根,即可賦予變量正態分佈的特徵;對於百分比形式的變量,「反正弦 (arcsine )」處理也許是個好方法;對於二項式分佈的變量,通常使用的方法是通過「勝率 (Odds)」轉換成概率後,再利用自然對數函數log(p/(1-p))進行轉換;對於「韋布 (Weibull)」型「極值分佈 (extreme value distribution)」形式的變量,則使用反轉函數log(-log(1-x))進行轉換。無論如何,這些變量轉換必須有根有據,確實依據數學原理讓變量獲得正態分佈的性質,否則再怎麼奇巧轉換也是無益的。最後,當然還需要利用一些統計方法,來驗證模型中所使用的「可觀測變量」的正態性。這些方法包括QQ-plot,Shapiro-Wilk Statistic,或是Kolmogorov-Smirnov Statistic等等,茲不贅敘。
(2) 結構方程模型裡面作為「因變量」的「潛變量」必須服從正態分佈。
所以結構模型裡面,所有的「因變量」都不可以被設計成類別型變量的形式。如果萬不得已必須使用類別衡量的變量作為因變量,那麼必須改用「類別型潛變量分析 (latent class analysis: LCA)」方法處理,一般的結構方程模型軟件並不能處理這種問題。坊間存在若干特殊的統計軟件是專門用來處理這種類別型潛變量問題的,例如Statistical Innovations公司的Latent GOLD軟件(商業軟件),或是Jeroen Vermunt博士的LEM(自由軟件)。
(3) 線性關係的假定
結構方程模型預設了所有的「可觀測變量」和它們所屬的「潛變量」之間,以及「潛變量」和「潛變量」之間的關係,都必須是線性的。不過這倒不至於構成太嚴重的限制,因為就和一般的迴歸分析一樣,對於我們所假定的變量間的非線性關係,我們仍然可以針對變量進行函數轉換,來適應這個變量間必須是線性的要求。
(4) 潛變量的假定
在結構方程模型裡面,我們基本上假定所有的路徑關係,都只能採用非直接衡量的方式加以處理,也就是只存在「潛變量路徑分析」。
(5) 多元的可觀測變量
在結構方程模型中,所有的「潛變量」都必需由至少三個以上的「可觀測變量」來加以描述,如果只有一個「可觀測變量」在解釋著某個特定的「潛變量」,那麼這就不是結構方程模型,而是迴歸分析。如果只有兩個「可觀測變量」在解釋著某個特定的「潛變量」,那麼在模型中,這兩個「可觀測變量」必須被正式地表述 (specify)為相關,通過對這個相關的估計(等於新增一個可觀測變量),才能夠避免因為「可觀測變量」不足所導致的「識別不足 (under identification)」問題,如果「識別不足」,則模型將受制於自由度不足而無法求解,連帶的,當然也無法估計模型的「擬合指標」。
一個衡量模型至少必須滿足「恰好識別 (just identification)」的條件才可能求解。「恰好識別」的模型又稱為「飽和模型 (saturated model)」,也就是模型所構造的協方差矩陣(港台稱為共變異矩陣,covariance matrix)中的元素數量,剛好和所需要估計的參數數量相等,這時在估計參數的時候,剛好用盡了所有的自由度,所以參數雖然可以被估計出來,但是卻也因此而無法估計「擬合指標」,因為沒有自由度的估計,其實就等於是真實的計算,也就是百分之一百的擬合,或者這麼說,其實根本就沒有擬合的概念可言。在這樣的情形下,用來估計結構方程模型的軟件,不論是Lisrel還是AMOS,都將會報告自由度為0,卡方值為0,同時無法計算顯著水平。
研究者真正想要的其實是「過度識別 (over identification)」,「過度識別」代表已知變量間的協方差數量,大於未知的待估計參數的數量,所以這時模型的自由度將會是正的數值,我們才能夠應用結構方程模型的軟件來估計參數,同時計算出模型的各種「擬合指標」來。事實上由信度的立場來看這個問題,越多的「可觀測變量」通常其結構信度也較佳,這可由Cronbach's alpha信賴係數的計算即可清晰觀察出來,在同一個構念中,當我們放入的近似的衡量題項愈多,Cronbach's alpha的值很容易就可以升高。
所以在構造衡量題項的時候,最好儘可能從多維度多視角的多元觀點來廣泛採納「可觀測變量」,不要吝惜於「可觀測變量」被納入研究工具中的數量。畢竟在研究工具接受前測中效度信度檢查的時候,就可能開始刪減題項了,再加上田野調查之後,根據大規模數據進行衡量模型的效度信度檢查時,還可能繼續刪減題項,如果原始題項不足,在最後的結構模型分析階段,就很可能發生「識別不足」或是「恰好識別」的問題,為研究過程帶來無謂的麻煩。
結構方程模型的基本觀念 (1)
三、結構方程模型的基本觀念
(一) 結構方程模型是什麼
結構方程模型可以說,就是「路徑分析 (path analysis)」和「因子分析 (factor analysis)」的結合體。它的用途,與大家所熟悉的多元迴歸分析十分相似,但是不同的地方在於,結構方程模型是一種更為強大的統計方法,在構造模型和估計參數的過程裡,可以直接處理多組方程間的互動干擾、非線性關係、不獨立(相關)的自變量、殘差相關、衡量誤差、以及將多組相依的衡量模型共冶於一個單一模型當中。事實上,我們可以將結構方程模型視為「廣義線性模型 (general linear model: GLM)」的延伸,它的強大功能,絕對可以用來取代我們慣用的迴歸分析、路徑分析、因子分析、時間序列分析、甚至共變量分析。不過限於篇幅,本書將聚焦於結構方程模型在因子分析、潛變量路徑分析、和一般路徑分析上的應用。
相對於多元迴歸分析,結構方程模型在應用上的限制也較少,關鍵的亮點包括在進行「路徑分析」的時候,即使自變量間存在明顯的共線性 (multicollinearity),結構方程模型依然可以照單全收,絲毫不影響其解釋上的有效性。利用結構方程模型來進行「驗證性因子分析」,更可以通過將多個可觀測變量指定給單一潛變量,從而可以在根源處直接降低衡量誤差。尤其在殘差的處理上,很少有統計方法可以這麼方便地直接檢查每一個可觀測變量的殘差,甚至操弄這些殘差之間的相關。結構方程模型在路徑係數的處理上也高人一等,不僅可以同時估計多個自變量對多組因變量的關係,還能夠進行多樣本多模型之間的係數比較。最重要的優勢是,結構方程模型不僅僅可以估計單一參數的係數,還能夠直接估計整體模型的擬合度,這是許多傳統統計方法所望塵莫及的。
如前所述,結構方程模型的主要用途,其實是用來驗證研究者心中對於他所想像世界的猜想,而比較不是用來探索一個新的世界。換言之,在應用結構方程模型的一開始,大多數的研究者在他的心中,早已存在某些定見了。這些定見的存在形式,大抵上可以分成兩種:(1) 研究者想要檢驗他的某個想法是否正確,於是構造了一個結構方程模型,在代入真實數據對模型進行估計後,研究者可以根據擬合指標的好壞,來判斷真實世界裡的數據,和他所構造的模型之間是否一致,從而明白他原先的想法是否可以接受。(2) 研究者根據不同理論,得出兩種或兩種以上可以用來描述這個世界的不同看法,然後針對這些不同看法,分別構造出不同的結構方程模型來,在代入真實數據分別對這些模型進行估計後,研究者可以根據擬合指標的好壞,來判斷究竟哪種看法,更加切合實際。
儘管如此,我們還是可以在文獻中看到有些研究者,利用結構方程模型來進行模型探索,而不是正確使用結構方程模型,來驗證心中事先設定的模型猜想。例如有些研究者在驗證原先設定好的結構模型時,發現擬合指標很差,於是通過「修正指標 (modification index)」的暗示,「為數字而數字」地對模型任意調整改動,直到擬合指標達到及格標準為止。當然這樣的作法並不可取,因為通過這種過程而勉強予以接受的結構模型,可能只是剛好反映了這組特定樣本的特徵,而不是因為模型本身可以放諸四海而皆準,換句話說,是因為這組特定樣本造就了一個事先想像不到、缺乏理論依據的模型,而不是通過真實數據,驗證了一個具有理論深度的模型。這樣的模型即使擬合指標合格了,可能還是缺乏外部效度,我們很難接受這樣的模型會是能夠代表事實真理的模型。對於這種情形下所構造出來的結構方程模型,研究者有必要使用多組不同的樣本,對相同模型進行多次驗證,也就是「強韌度測試 (robust tests)」,如果多組樣本都證實了相同結構模型的「擬合指標」都是及格的,那麼我們才能夠正式接受這個結構方程模型。


