2019年3月23日 星期六

多元邏輯迴歸的係數能跨模型比較嗎?如何詮釋?

不要比較。很難詮釋。



Q: 多元邏輯迴歸的係數能跨模型比較嗎?例如上表0.191跟0.294能比較嗎?
A: 最好不要。解釋上很危險。看你要解釋的是「發生機率的增加(X)(probability increase)」、「發生的機率增加率(O)(probability increase ratio)」、「勝算的增加(O)(odd increase)」



Q: 多元邏輯迴歸某項x的係數為負,代表發生的機率減少嗎?例如上表的-0.064代表成為技術工人的機率降低嗎?
A: 不代表。可能是一個j類別發生的機率增加率(probability increase ratio),小於k類別發生的機率增加率。但是x讓j、k發生的機率都提高了(probability increase)。教育程度實際上可能讓成為技術工人的機率提高。




多元邏輯迴是一種非常不直觀的模型,使用務必小心。為什麼?就我看過的中文書教科書,似乎都沒有認真講這部份的細節。請大家繼續看下去。


開始前,我先做個簡單的定義,本篇文章會出現四種複雜的名詞:
  • 簡介Multinomial logistic regression
當我們的y是連續變數時,可以使用線性迴歸;二元類別變量可以使用邏輯迴歸,多類別時則會使用多元邏輯迴歸Multinomial logistic regression。


多元邏輯迴歸的公式如上,基本上有K個類別時,就會有K-1個模型。每個模型所估計的,是 某類別 相對於 K類別 發生的勝算。

實際的例子我舉葉高華(2018)的〈大學多元入學是否有利「家境好」的學生?〉為例,上大學的管道主要有三種:繁星、申請、指考。當入學管道是我們的被解釋變項y時,就有必要使用多元邏輯迴歸。


例如該論文中的這個模型,就是在估計各種變數影響繁星相對於指考、或申請相對於指考的勝算。



  • Q1:變數在模型間的比較有意義嗎?

那麼這兩個模型中,同一種變數可以直接比較嗎?例如圖中的「地區平均所得(萬元)」在繁星模型是-0.038、在申請模型是-0.019,所以可以說地區平均所得對繁星的影響更強於申請嗎?

如果你所謂的「更強」是指勝算比(odd ratio),可以;指機率增加率(probability increase ratio),也可以;但如果你說的是發生機率(probability increase),萬萬不行。
※ps.當然葉高華的論文沒有這樣比較,僅是舉例而以。



勝算比(odd ratio)是兩個勝算(odd)的比值,勝算一般而言則是;不過在Multinomial中勝算的定義是。在邏輯迴歸中的係數取自然指數,即x增加一單位,y可以增加多少倍的勝算。

但是勝算有個特性,就是在發生機率很低時,增加一點機率,勝算就會暴增,也因此造成勝算比(odd ratio)倍數暴增。這裡先以 發生機率/不發生機率 作為舉例。



所以,繼續以上面論文的模型為例,繁星的學生不到學校的10%,申請與考試大概個半。此時迴歸的係數,就容易發生勝算比暴增的情形。

地區所得的係數,在繁星模型看似比申請模型更負向,但這只意味著勝算比比較小,或是機率減少率(probability decrease ratio)比較大。實際上地區所得增加1單位,申請入學減少的機率(probability decrease),大概比繁星入學減少的機率來得多。

所以重點是,影響的意思到底是什麼?如果不多做解釋,就直接下了「地區平均所得對繁星的影響比對申請更強」的結論,可能就會發生一些問題了。



  • 數據模擬
嗯,還是很沒畫面嗎?我實際模擬一套數據。

我們假設有三種階級類別:專業經理人、技術工人、非技術工人。我們做一個設定,每當教育年數增加1年,成為專業經理人的機率會增加0.8% (probability increase),成為技術工人的機率會增加4%,成為非技術工人的機率會少4.8%。並且三種階級在教育年數12年時,發生的機率分別為5%、45%、50%。

此時,教育年數增加1年,成為技術工人增加的機率(probability increase),是成為專業經理人增加的機率的五倍。下圖是模擬的資料分配,我有加入一點隨機性,就是製造殘差的概念。

接著,我以非技術工人為對照組,用多元邏輯迴歸分析,結果如下。教育年數在技術工人模型的係數是0.191,代表增加1年教育,成為技術工人(相對於成為非技術工人)可以增加exp(0.191)倍的勝算。但是專業經理人模型的係數卻有0.294,比技術工人來得還要高!

PS. 不過,兩模型的勝算比大小,與兩模型y的機率增加率大小會是相似的。在教育年數12年時,增加1年教育,成為專業經理人機率增加率是16%,成為技術工人的機率增加率是9%。同樣是專業經理人大於技術工人。




這時候,如果你文章寫「教育程度對於成為專業經理人,比成為技術工人,來得有用」那麼可能就會有些詮釋上的問題了。

雖然如果你強調的更強/有用,是指勝算比的話,那其實也沒錯。

可是我的看法是 ,雖然模型估出來的數字是勝算比,但是勝算比在我們生活中、以及對於人類的思考並不直覺。所以我認為強調「x對y1,比x對y2的影響來的更強/有用」,讀者看到的感覺往往是「機率增加更多了(probability increase)」。


  • 多元邏輯迴歸某項x的係數為負,代表發生的機率減少嗎(probability decrease)


接下來我舉的例子更極端了,假設x的係數是負的,不代表某類別發生機率的減少(probability decrease),反而可能是增加。

1年的教育會增加0.8%的機率成為專業經理人、增加4%成為技術工人。教育都會讓成為兩種階級的機率增加,但我們如果把多元邏輯迴歸模型的對照組換成「專業經理人」。




傑克,這真是太神奇了!為什麼教育年數對於成為技術工人的勝算是負的???難道我們能說增加教育年數讓成為技術工人的機率降低了嗎(probability decrease)明明增加1年教育可以增加4%的機率成為技術工人阿?

原因在於多1年教育,「成為技術工人的機率增加率(probability increase ratio)」是小於「成為專業經理人的機率增加率。對又是勝算比在搞鬼。



算給你看,機率明明是增加的沒錯,但勝算比<1,所以是負的。這種詭異的情況之所以發生,是因為多元邏輯迴歸中勝算的定義與二元邏輯迴歸不同。i跟k類別發生的機率可能同時增加;但是二元邏輯迴歸中事件發生機率p增加(分子),事件不發生機率1-p一定是減少(分母)。

而這是用多元邏輯迴歸預測所畫出來的圖,沒有錯,從圖來看成為技術工人的機率大幅增加,但是係數卻是負的。


這個問題跟最前面的問題一樣。如果今天你真的是討論教育使「成為技術工人的機率增加率」vs「專業經理人的機率增加率」,或者是增加的勝算,那麼係數是負的合理。

但是我覺得其實不管是勝算、機率增加率,都有違人第一眼的直接觀感。明明教育都可以造成成為專業經理人與非技術工人的可能提高,為何係數還是負的?研究中最好謹慎使用多元邏輯迴歸。


  • 多元邏輯迴歸到底該怎麼用?

1. 我個人的建議是能夠避免使用多元邏輯迴歸就避免,因為他的邏輯相對複雜。

2.y最好不要有類別發生機率很低,最理想的情況是各類別y的比例一樣平均。

3. 對照組應該找:解釋變項效果對i類、j類為正向,k類為負向,那就k當對照組。也就是說,找那個x對它效果相對於對其它類別的效果,不同方向的。

4. 以上幾個條件都達不到時,畫圖、畫圖、畫圖。UCLA有教多元邏輯迴歸的繪圖與解釋,請參照:STATA版、R

5. 如果只欲解釋某個類別,其實可以直接轉成二元在解釋上會更好解釋。



-- 如果要玩玩看模擬數據,我放在這裡,可以自己設定機率。

沒有留言:

張貼留言