那一刻,我升起風馬,不為祈福,只為守候你的到來。 那一天,閉目在經殿香霧中,驀然聽見,你頌經中的真言。 那一月,我搖動所有的轉經筒,不為超度,只為觸摸你的指尖。 那一年,磕長頭匍匐在山路,不為覲見,只為貼著你的溫暖。 那一世,轉山轉水轉佛塔啊,不為修來生,只為途中與你相見。 《倉央嘉措》

2007年10月11日 星期四

結構方程模型的基本觀念 (10)

可是,有些時候,我們實在不夠瞭解這個世界,我們在想像中以為不相關的概念,在真實的世界裡,也許正是高度相關的,這與我們的人生境界、所接受的訓練、對於研究問題的經驗、認識等等,都有關係。那麼,當我們的結構方程模型發生「識別不足」的時候,我們該如何來歸因,才能夠知道這可能是因為自變量之間的多重共線所造成的問題呢?首先是觀察「標準化迴歸係數 (standardized regression weights)」,也就是「標準化路徑係數」的數值,如果兩個潛變量之間的「標準化路徑係數」接近1,就代表這兩個潛變量所代表的概念幾乎相同,換句話說,這兩個潛變量其實就是如假包換的同一個變量,這時如果將這兩個潛變量同時當作自變量,來估計它們同時對另一個潛變量的影響,結構方程模型將無法計算這兩條本來在概念上應該只有一條的路徑係數,計算結果很可能就是其中一條的路徑係數大於+1,而另一條卻小於-1。所以在檢查統計軟件所跑出來的「標準化迴歸係數 」矩陣時,如果看見這種情形,那麼就可以明白這個模型之所以「識別不足」,可能就導因於自變量的多重共線問題。

其次,如前所述,如果模型中存在兩條共線很嚴重的路徑,或者說,存在兩個高度相關的自變量潛變量,共同在影響著同一個因變量潛變量,由於統計軟件在參數估計上遇到困難,很可能直接將這些在迭代的過程中所面臨的不穩定現象,都歸入了「標準誤 (standard errors)」,以致使得存在共線問題的路徑的標準誤,明顯地大於其它不存在共線問題的路徑的標準誤,因此,我們也可以通過觀察「未標準化迴歸係數 (unstandardized regression weights)」的「標準誤」,來檢查自變量之間是否存在多重共線的問題,進而確定模型發生「識別不足」的可能原因。

同樣的,前述這個計算困難的問題,也可能反映在所估計參數的協方差矩陣 (covariance of the parameter estimates)裡,那些協方差特別高的成對路徑,很可能就在暗示著存在著共線的問題。另一個明顯的指標是,存在共線的路徑所指向的那個因變量(潛變量)的方差估計 (variance estimate) 可能為負值。所有這些徵候,都反映著模型的「識別不足」問題,正可能是來自於自變量間的高度共線性所造成的。

如果很不幸地(事實上研究者通常就是這麼不幸),我們的理論模型看起來很好,一點也沒有「識別不足」的問題,但是在昂貴的田野調查之後,利用統計軟件和大量樣本,針對模型進行參數估計時,電腦卻出現令人懊惱的「識別不足」問題,這時我們該怎麼辦呢?以下列出一些經驗之談:

(1) 設法找出並消除模型中的迴路型的路徑,換言之,就是設法將模型構造成「遞歸模型 (recursive model)」的形式。
(2) 從理論與實務同時下手,看看能不能找出證據,來支持模型中的某些待估計參數,其實是不需要估計的。換句話說,假如模型中原本有些預設需要估計的參數,但是在思考之後,我們發現這些參數的值,是可以合理的直接予以規定的,那麼我們就可以直接將那些數值明白地表述 (explicitly specify) 在模型當中,這樣每多指定一個固定 (fixed) 的值,模型就多出一個自由度來,可以很有效地消除模型「識別不足」的問題。但是能夠這樣做的前提,還是需要有根有據,不能為所欲為。
(3) 如果找不到證據支持來直接指定待估計參數的值,但是卻必須利用這方法來增加自由度,那麼還有一個秘訣可以使用。在AMOS的Analysis Properties的Output設定窗口裡,勾選critical ratios for differences (CR) 這個選項,然後檢查所跑出來的配對的路徑係數的這個CR值(這個CR值,事實上等於兩個路徑係數的差,除以它的標準誤,換句話說,就是標準化正態分佈下的Z值)如果CR<1.96,就代表這配對的兩條路徑之間的路徑係數差異不顯著(p>0.05),因此可以重新設定模型,將這兩條路徑的係數直接指定相同的任意值(當然要接近剛剛電腦跑出的估計值),因此就可以直接節省兩個自由度。
(4) 設法減少模型中的路徑。事實上,每減少一條路徑,就等於減少一個待估計參數,也就同時增加了一個自由度。如果在模型中直接將路徑係數指定為固定 (fixed) 的值0,這與在模型中刪除這條路徑的效果是一樣的。
(5) 設法刪減變量,讓模型變得更簡潔。
(6) 刪除(合併)那些相關係數很高的自變量潛變量。
(7) 在模型中增添(導入)新的自變量潛變量。
(8) 保證每個潛變量的可觀測變量都至少三個或以上。
(9) 確保樣本數據中不存在遺漏值。
(10) 一般的統計軟件直接內定使用「極大似然法 (maximum likelihood)」來進行參數的估計運算,可以考慮改用其他方法(例如GLS)試試看。
(11) 設法在統計軟件中設定更高的迭代次數。
(12) 把電腦砸爛。(開玩笑的,後果請自負!)

結構方程模型的基本觀念 (9)

模型識別

構造好結構方程模型以後,緊接著的工作,當然就是使用統計軟件,對這個模型進行參數估計。這看起來非常容易,但是對於初學者而言,馬上出現的問題,通常是模型「識別不足 (under identification)」的問題,換言之,統計軟件跑不出我們所想要的模型估計,而且在電腦螢幕上出現一些程序錯誤的警告信息。如前所述,我們在進行結構方程模型估計的時候,最想要的模型設計是「過度識別」,也就是模型中的自由度,希望能高於所必須估計的參數數量,這個要求,不僅對於「衡量模型」非常重要,對於「結構模型」而言,也是一個必要的條件。

前面我們提到過,「識別不足」與「過度識別」的中線,是所謂的「恰好識別」,也就是所謂的「飽和模型」,如果能夠辨認「恰好識別」的狀態,我們就可以事先覺察所設計的模型會不會遇到「識別不足」的問題。例如某個模型總共有三個潛變量,A、B、與C,假定其中A同時影響B與C,而B又單獨影響C。在這個簡單的結構模型裡,如果明白我們前述的「協方差矩陣」的表述方式,那麼這裡我們有三個待估計的參數(也就是這三條潛變量路徑係數:A到B、A到C、與B到C),同時這個模型的「協方差矩陣」裡也剛好有三個元素 (COV(a,b)、COV(a,c)、與COV(b,c)),這剛好就是個「恰好識別」的模型,這時,如果我們增加一個待估計參數,比如猜想C對A在理論上存在因果作用,那麼馬上就出現了「識別不足」的問題。

避免出現「識別不足」和「恰好識別」現象的先決條件,當然就是在設計理論模型(或概念模型)的時候,就已經考慮了自由度的問題。最簡單的判別方式就是去計算協方差矩陣裡的元素數量,是否高於所需要估計的參數數量。當然,更容易的方法,就是讓統計軟件告訴我們,究竟這個模型估計跑不跑得動。例如,在通過田野調查大量蒐集數據之前,先使用虛構的假資料來試試這個理論模型,可以很容易的看清楚模型設計裡的缺陷。那麼,為甚麼要這麼麻煩地使用虛構數據進行測試呢?為甚麼不能在蒐集好數據之後,使用真實數據來進行測試呢?原因是,我們馬上要談到,處理「識別不足」問題的方法之一,就是增加模型中的「自變量」數量,但是要能增加「自變量」,必須在大規模調研之前,在構造研究工具的時候,就要在衡量題項裡加以考慮了,這可不是在田野調查之後還能亡羊補牢的事情。

但是,即使我們的理論模型看起來是「過度識別」了,在利用真實數據,進行模型參數估計的時候,統計軟件還是可能告訴我們「識別不足」或是「恰好識別」,這是為甚麼呢?最可能的原因有兩個:一是在「非遞歸 (non- recursive) 」路徑模型裡,存在了數值過小的路徑係數;或者,模型裡的自變量(潛變量)之間,存在過於明顯的多重共線 (multicollinearity)。以下針對這兩種情形略加探討。

相對於「非遞歸模型 (non-recursive model)」,「遞歸模型 (recursive model)」是指那些因果路徑方向完全一致,不存在任何迴路的模型,同時因變量的殘差(干擾項)之間也不可以存在任何相關,因為一旦相關,就有了迴路了(所以我們預期因變量殘差的協方差矩陣中所有的元素都接近0)。例如前述這個A到B、A到C、與B到C的模型就是一個「遞歸模型」,但是如果在其中添增一個C到A或是C到B的路徑,或者B與C的殘差之間存在相關,這個模型就變成了一個「非遞歸模型」了。對於「非遞歸模型」,如果模型中的路徑係數接近0,也就是說,預期發生因果關係的潛變量之間,事實上,在真實數據的檢驗之下,其實是無關的,這時一方面由於模型中存在迴路,需要估計的參數比起「遞歸模型」要多得多,甚至可能已經是「恰好識別」了,另一方面,這些需要估計的參數(路徑),實質上根本不存在顯著因果關係,將使得結構模型的求解發生困難,在內定的迭代運算次數裡還達不到均衡解,於是統計軟件將之判斷為「識別不足」。事實上,只要將模型設定成「遞歸模型」,同時我們確信因變量殘差之間不存在相關,那麼就一定不出現「識別不足」的問題。反之,由這裡的描述,我們可以明白兩種造成「識別不足」的可能情況:(1) 模型被構造成「非遞歸模型」的形式,同時其中存在接近0的路徑係數;(2) 因變量的殘差之間存在相關,同時模型中存在接近0的路徑係數。

另一個造成「識別不足」的原因是自變量(潛變量)之間的多重共線問題。很顯然的,這還是和我們當初是如何來猜想這個世界、如何來構造模型有關。一個優秀的模型,必須滿足「簡潔 (parsimony)」的要求,換言之,在週延地考慮了與研究問題真正相關的變量之後,所選定的變量與變量之間,必須在概念上能夠互斥,在概念上高度相關的變量,就應該視為同一個變量,使用相同的潛變量加以處理,不可以枝枝節節,同時使用好幾個潛變量來表述相同的概念。只要能夠注意這一點,就不容易出現自變量之間的多重共線問題,從而,也就比較可以避免研究者最討厭的「識別不足」的問題。

2007年10月10日 星期三

結構方程模型的基本觀念 (8)

結構方程模型中數學符號的總整理

事實上,如果使用現代的統計軟件來進行結構方程模型的參數估計,以上這些矩陣表達形式都已經不再需要了,商業軟件中,不論是Lisrel還是AMOS,早已提供了十分便利、而且功能強大的圖形工具,幫助我們用最直觀的方式來構造模型,甚至免費的自由軟件Mx,都已經在最新的版本裡提供了以圖解方式構造模型的功能,所以上述這些數學表述的模型構造方式,似乎早已落伍,大可隨手揚棄了。

不過,能夠理解上面這些矩陣方程的表述形式,可以幫助我們更深入明白結構方程模型的內涵,使我們在以圖解模式構造模型時,更能理解這些結構背後的意義與限制,從而提昇我們在模型構造上的能力。同時,懂得這些矩陣表述式,可以讓我們對於統計工具的選擇更加自由,例如R這免費自由軟件也提供估計結構方程模型的模塊,只是必須使用矩陣表述方式來構造模型,即便如此,由於R在統計上超級強大的功能,我們就可以在R裡面,通過具有邏輯迴路的編程,將不同類型的統計過程結合在一起,甚至自行編寫特殊用途的統計程序,自動化地進行許多更深入的統計分析,這是使用專屬的結構方程統計軟件所無法達成的事情。

所以,學習以矩陣方程的形式來構造結構方程模型,還是很有價值的。起碼,熟悉這些數學語言,可以大幅度地釋放我們在閱讀一些關於結構方程模型的經典文獻時,可能面臨的困難。畢竟這些重要文獻,大多存在許多這樣的矩陣表述。以下將這些數學符號略作整理。


結構方程模型的基本觀念 (7)

結構方程模型的基本觀念 (6)