天天看點

python對邏輯回歸進行顯著性_深入解讀Logistic回歸結果(一):回歸系數,OR

Logistic回歸雖然名字叫”回歸”,但卻是一種分類學習方法。使用場景大概有兩個:第一用來預測,第二尋找因變量的影響因素。

一 從線性回歸到Logistic回歸

線性回歸和Logistic回歸都是廣義線性模型的特例。

假設有一個因變量y和一組自變量x1, x2,

x3, ... ,

xn,其中y為連續變量,我們可以拟合一個線性方程:

y =β0+β1*x1+β2*x2+β3*x3+...+βn*xn

并通過最小二乘法估計各個β系數的值。

如果y為二分類變量,隻能取值0或1,那麼線性回歸方程就會遇到困難:方程右側是一個連續的值,取值為負無窮到正無窮,而左側隻能取值[0,1],無法對應。為了繼續使用線性回歸的思想,統計學家想到了一個變換方法,就是将方程右邊的取值變換為[0,1]。最後選中了Logistic函數:

y = 1 / (1+e-x)

這是一個S型函數,值域為(0,1),能将任何數值映射到(0,1),且具有無限階可導等優良數學性質。

我們将線性回歸方程改寫為:

y = 1 / (1+e-z),

其中,z

=β0+β1*x1+β2*x2+β3*x3+...+βn*xn

此時方程兩邊的取值都在0和1之間。

進一步數學變換,可以寫為:

Ln(y/(1-y)) =β0+β1*x1+β2*x2+β3*x3+...+βn*xn

Ln(y/(1-y))稱為Logit變換。我們再将y視為y取值為1的機率p(y=1),是以,1-y就是y取值為0的機率p(y=0),是以上式改寫為:

p(y=1) = ez/(1+ez),

p(y=0) = 1/(1+ez),

其中,z

=β0+β1*x1+β2*x2+β3*x3+...+βn*xn.

接下來就可以使用”最大似然法”估計出各個系數β。

二 odds與OR複習

odds:稱為幾率、比值、比數,是指某事件發生的可能性(機率)與不發生的可能性(機率)之比。用p表示事件發生的機率,則:odds

= p/(1-p)。

OR:比值比,為實驗組的事件發生幾率(odds1)/對照組的事件發生幾率(odds2)。

三 Logistic回歸結果的解讀

我們用一個例子來說明,這個例子中包含200名學生資料,包括1個自變量和4個自變量:

因變量: hon,表示學生是否在榮譽班(honors

class),1表示是,0表示否;

自變量:

female:性别,分類變量,1=女,0=男

read:閱讀成績,為連續變量

write:寫作成績,為連續變量

math:數學成績,為連續變量

1、不包含任何變量的Logistic回歸

首先拟合一個不包含任何變量的Logistic回歸,

模型為ln(p/(1-p)

=β0

回歸結果如下(結果經過編輯):

hon

系數β

标準誤

P

截距

-1.12546

0.164

0.000

這裡的系數β就是模型中的β0=

-1.12546,

我們用p表示學生在榮譽班的機率,是以有ln(p/(1-p)

=β0=

-1.12546,

解方程得:p = 0.245。

odds = p/1-p = 0.3245

這裡的p是什麼意思呢?p就是所有資料中hon=1的機率。

我們來統計一下整個hon的資料:

hon

例數

百分比

151

75.5%

1

49

24.5%

hon取值為1的機率p為49/(151+49)

= 24.5% = 0.245,我們可以手動計算出ln(p/(1-p) =

-1.12546,等于系數β0。可以得出關系:

β0=ln(odds)。

2、包含一個二分類因變量的模型

拟合一個包含二分類因變量female的Logistic回歸,

模型為ln(p/(1-p)

=β0+β1*female.

回歸結果如下(結果經過編輯):

hon

系數β

标準誤

P

female

0.593

.3414294

0.083

截距

-1.47

.2689555

0.000

在解讀這個結果之前,先看一下hon和female的交叉表:

hon

female

Total

Male

Female

74

77

151

1

17

32

49

Total

91

109

根據這個交叉表,對于男性(Male),其處在榮譽班級的機率為17/91,處在非榮譽班級的機率為74/91,是以其處在榮譽班級的幾率odds1=(17/91)/(74/91)

= 17/74 = 0.23;相應的,女性處于榮譽班級的幾率odds2 =

(32/109)/(77/109)=32/77 = 0.42。女性對男性的幾率之比OR =

odds2/odds1 = 0.42/0.23 =

1.809。我們可以說,女性比男性在榮譽班的幾率高80.9%。

回到Logistic回歸結果。截距的系數-1.47是男性odds的對數(因為男性用female=0表示,是對照組),ln(0.23)

=

-1.47。變量female的系數為0.593,是女性對男性的OR值的對數,ln(1.809)

= 0.593。是以我們可以得出關系: OR =

exp(β),或者β=

ln(OR)(exp(x)函數為指數函數,代表e的x次方)。

3、包含一個連續變量的模型

拟合一個包含連續變量math的Logistic回歸,

模型為ln(p/(1-p)

=β0+β1*math.

回歸結果如下(結果經過編輯):

hon

系數β

标準誤

P

math

.1563404

.0256095

0.000

截距

-9.793942

1.481745

0.000

這裡截距系數的含義是在榮譽班中math成績為0的odds的對數。我們計算出odds

= exp(-9.793942) =

.00005579,是非常小的。因為在我們的資料中,沒有math成績為0的學生,是以這是一個外推出來的假想值。

怎麼解釋math的系數呢?根據拟合的模型,有:

ln(p/(1-p)) = - 9.793942 +

.1563404*math

我們先假設math=54,有:

ln(p/(1-p))(math=54) = - 9.793942 + .1563404 *54

然後我們把math提高提高一個機關,令math=55,有:

ln(p/(1-p))(math=55) = - 9.793942 + .1563404 *55

兩者之差:

ln(p/(1-p))(math=55) - ln(p/1-p))(math = 54) =

0.1563404.

正好是變量math的系數。

由此我們可以說,math每提高1個機關,odds(即p/(1-p),也即處于榮譽班的幾率)的對數增加0.1563404。

那麼odds增加多少呢?根據對數公式:

ln(p/(1-p))(math=55) - ln(p/1-p))(math = 54) =

ln((p/(1-p)(math=55)/ (p/(1-p)(math=54))) = ln(odds(math=55)/

odds(math=54)) = 0.1563404.

是以:

odds(math=55)/ odds(math=54) =

exp(0.1563404) = 1.169.

是以我們可以說,math每升高一個機關,odds增加16.9%。且與math的所處的絕對值無關。

聰明的讀者肯定發現,odds(math=55)/

odds(math=54)不就是OR嘛!

4、包含多個變量的模型(無互動效應)

拟合一個包含female、math、read的Logistic回歸,

模型為ln(p/(1-p) =

β0+β1*math+β2*female+β3*read.

回歸結果如下(結果經過編輯):

hon

系數β

标準誤

P

math

.1229589

0.000

female

0.979948

0.020

read

.0590632

0.026

截距

-11.77025

0.000

該結果說明:

(1)性别:在math和read成績都相同的條件下,女性(female=1)進入榮譽班的幾率(odds)是男性(female=0)的exp(0.979948)

= 2.66倍,或者說,女性的幾率比男性高166%。

(2)math成績:在female和read都相同的條件下,math成績每提高1,進入榮譽班的幾率提高13%(因為exp(0.1229589)

= 1.13)。

(3)read的解讀類似math。

5、包含互動相應的模型

拟合一個包含female、math和兩者互動相應的Logistic回歸,

模型為ln(p/(1-p)

=β0+β1*female+β2*math+β3*female

*math.

所謂互動效應,是指一個變量對結果的影響因另一個變量取值的不同而不同。

回歸結果如下(結果經過編輯):

hon

系數β

标準誤

P

female

-2.899863

0.349

math

.1293781

0.000

female*math

.0669951

0.210

截距

-8.745841

0.000

注意:female*math項的P為0.21,可以認為沒有互動相應。但這裡我們為了講解互動效應,暫時忽略P值,姑且認為他們是存在互動效應的。

由于互動效應的存在,我們就不能說在保持math和female*math不變的情況下,female的影響如何如何,因為math和female*math是不可能保持不變的!

對于這種簡單的情況,我們可以分别拟合兩個方程,

對于男性(female=0):

log(p/(1-p))= β0+

β2*math.

對于女性(female=1):

log(p/(1-p))= (β0+

β1) +

(β2+

β3)*math.

然後分别解釋。