4 天:2020.9.19-20; 9.26-27
主講嘉賓:朱傳奇 (中山大學(xué))
?
課程主頁:https:///arlionn/DSGE
編者:魏珊珊 (廈門大學(xué))
E-Mail: [email protected]
Source: https://www./support/faqs/statistics/completely-determined-in-logistic-regression/
目錄[
1. 引言
2. 問題與方法
3. 進(jìn)一步擴(kuò)展
4. 參考資料
溫馨提示: 文中鏈接在微信中無法生效,。請點(diǎn)擊底部「閱讀原文」,。
1. 引言
先和大家一起簡單回顧一下什么是二值選擇模型。
二值選擇模型: 如果被解釋變量 y 是離散的,,而非連續(xù)的,,稱為「離散選擇模型」 (discrete choice model ) 或「定性反應(yīng)模型」 (qualitative response model)。
最常見的離散選擇模型是二值選擇行為 (binary choices),,因?yàn)槿松錆M了選擇,。比如:考研或不考研;就業(yè)或待業(yè),;買房或不買房,;買保險或不買保險;等等,。
此時,,由于被解釋變量為虛擬變量,取值為 0 或 1 ,,故通常不宜進(jìn)行 OLS 回歸,。因此,大家常用 Logit 模型或 Probit 模型進(jìn)行回歸,。
然而,,在進(jìn)行二值選擇模型的實(shí)證回歸研究中,我們經(jīng)常會遇到 Stata 顯示 「completely determined」 并常常為此困惑,。
基于此,,本文在總結(jié)現(xiàn)有資料的基礎(chǔ)上,簡單歸納了二值選擇模型實(shí)證回歸研究中出現(xiàn)該問題的兩種情況,,希望對大家有所幫助,。
為方便論述,本文以 Logit 模型為例,。如果大家想要進(jìn)一步深究 Logit 與 Probit 模型的異同,,可以參考 Stata 連享會往期推文「 二元選擇模型:Probit 還是 Logit?」,。
2. 問題與方法
當(dāng)我們運(yùn)用 Logit 回歸的時候,,一般會有兩種情況造成回歸結(jié)果出現(xiàn)以下類似提示:
Note: 4 failures and 0 successes completely determined.
首先,讓我們介紹不太常見的第一種情況,。
情況一:連續(xù)變量是一個很好的預(yù)測指標(biāo)
當(dāng)連續(xù)變量 (或連續(xù)變量與其他連續(xù)或虛擬變量的組合) 是被解釋變量的重要預(yù)測變量時,,Logit 回歸結(jié)果就會出現(xiàn)「 completely determined 」類似提示。
舉個簡單的例子。我們考慮剔除了 6 個觀測值的 Stata 自帶的 auto.dta 文件,。
. sysuse auto, clear
(1978 Automobile Data)
. drop if foreign==0 & gear_ratio>3.1
(6 observations deleted)
. logit foreign mpg weight gear_ratio
Iteration 0: log likelihood = -42.806086
Iteration 1: log likelihood = -11.724474
... ...
Iteration 6: log likelihood = -6.4874814
Logistic regression Number of obs = 68
LR chi2(3) = 72.64
Prob > chi2 = 0.0000
Log likelihood = -6.4874814 Pseudo R2 = 0.8484
------------------------------------------------------------------------------
foreign | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
mpg | -0.494 0.266 -1.86 0.063 -1.015 0.026
weight | -0.006 0.003 -1.96 0.049 -0.012 -0.000
gear_ratio | 15.705 8.166 1.92 0.054 -0.300 31.711
_cons | -21.395 25.415 -0.84 0.400 -71.207 28.417
------------------------------------------------------------------------------
Note: 4 failures and 0 successes completely determined.
畫一個簡單的散點(diǎn)圖,。
. scatter foreign gear_ratio
通過散點(diǎn)圖,我們可以很明顯地看出 gear_ratio 可以很好地預(yù)測 foreign,。它認(rèn)為,,預(yù)測概率最小的 4 個觀測值基本上可以完美預(yù)測。這恰好也印證了 Logit 回歸中的Note: 4 failures and 0 successes completely determined.
. predict p
(option pr assumed; Pr(foreign))
sort p
list p in 1/4
+-----------+
| p |
|-----------|
1. | 1.338e-10 |
2. | 6.264e-09 |
3. | 7.844e-09 |
4. | 1.489e-08 |
+-----------+
情況一應(yīng)對方法:
碰上第一種情況時,,我們通常傾向于畫一個簡單的散點(diǎn)圖,,進(jìn)而直觀地對因變量和自變量之間的關(guān)系進(jìn)行判斷。當(dāng)出現(xiàn)類似上圖的例子時,,意味著計算的模型很好,此時無需執(zhí)行任何其他操作,。
接下來討論需要仔細(xì)檢查的第二種情況,。
情況二:隱藏共線性
當(dāng)自變量為虛擬變量或是具有多個值(例如年齡)的連續(xù)變量時,容易出現(xiàn)隱藏共線性問題,。此時,,一個或多個估計系數(shù)會缺少標(biāo)準(zhǔn)誤(standard error)。
我們先對共線性定義進(jìn)行簡單回顧,。據(jù)百度百科界定,,共線性也即同線性或同線型。統(tǒng)計學(xué)中,,共線性即多重共線性,。多重共線性 (Multicollinearity ) 是指線性回歸模型中的解釋變量之間由于存在精確相關(guān)關(guān)系或高度相關(guān)關(guān)系而使模型估計失真或難以估計準(zhǔn)確。
當(dāng) Logit 回歸中因隱藏共線性問題出現(xiàn) 「completely determined」時,,此時會出現(xiàn)自變量的特定組合下僅有一個因變量輸出的情況,,也即:當(dāng)自變量是某一個特定組合時,因變量的輸出是唯一不變的,, Logit 回歸只能預(yù)測出這種單一的特殊情況,。
此時,我們需要找出這種特殊情況,,對其是否具有現(xiàn)實(shí)意義進(jìn)行簡單分析,。其次,在剔除特殊情況之后把剩余的數(shù)據(jù)重新進(jìn)行回歸,。
舉個簡單的例子,。
. list
+-------------+
| y x1 x2 |
|-------------|
1. | 0 0 0 |
2. | 0 1 0 |
3. | 1 1 0 |
4. | 0 0 1 |
5. | 1 0 1 |
+-------------+
. logit y x1 x2, nolog
Logistic regression Number of obs = 5
LR chi2(2) = 1.18
Prob > chi2 = 0.5530
Log likelihood = -2.7725887 Pseudo R2 = 0.1761
------------------------------------------------------------------------------
y | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x1 | 18.26157 2 9.13 0.000 14.34164 22.1815
x2 | 18.26157 . . . . .
_cons | -18.26157 1.414214 -12.91 0.000 -21.03338 -15.48976
------------------------------------------------------------------------------
note: 1 failure and 0 successes completely determined.
. predict p
(option pr assumed; Pr(y))
. sort p
. list
+------------------------+
| y x1 x2 p |
|------------------------|
1. | 0 0 0 1.17e-08 |
2. | 0 1 0 .5 |
3. | 1 1 0 .5 |
4. | 0 0 1 .5 |
5. | 1 0 1 .5 |
+------------------------+
此時,我們可以觀察到當(dāng) x1 = 0 且 x2 = 0 時,,對應(yīng)的 y 值只有 0 ,,出現(xiàn)了在自變量的特定組合下僅有一個因變量輸出的情況。另外,, Logit 模型出現(xiàn)了可能完美擬合 x1 = 0 且 x2 = 0 時的情況,。
接著,,我們在上例的基礎(chǔ)上添加一行新的觀察值,以避免出現(xiàn)這種 「completely determined」 的情況,。
. list
+-------------+
| y x1 x2 |
|-------------|
1. | 0 0 0 |
2. | 0 1 0 |
3. | 1 1 0 |
4. | 0 0 1 |
5. | 1 0 1 |
|-------------|
6. | 0 1 1 |
+-------------+
. logit y x1 x2
Iteration 0: log likelihood = -3.819085
Logistic regression Number of obs = 6
LR chi2(2) = 0.00
Prob > chi2 = 1.0000
Log likelihood = -3.819085 Pseudo R2 = 0.0000
------------------------------------------------------------------------------
y | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
x1 | 0 1.837117 0.00 1.000 -3.600684 3.600684
x2 | 0 1.837117 0.00 1.000 -3.600684 3.600684
_cons | -.6931472 1.732051 -0.40 0.689 -4.087904 2.70161
------------------------------------------------------------------------------
. predict p
(option pr assumed; Pr(y))
. sort p
. list
+------------------------+
| y x1 x2 p |
|------------------------|
1. | 0 0 0 .3333333 |
2. | 0 1 0 .3333333 |
3. | 1 1 0 .3333333 |
4. | 0 0 1 .3333333 |
5. | 1 0 1 .3333333 |
|------------------------|
6. | 0 1 1 .3333333 |
+------------------------+
情況二應(yīng)對方法
讓我們再次回顧情況二的初始數(shù)據(jù),。
. list
+------------------------+
| y x1 x2 p |
|------------------------|
1. | 0 0 0 1.17e-08 |
2. | 0 1 0 .5 |
3. | 1 1 0 .5 |
4. | 0 0 1 .5 |
5. | 1 0 1 .5 |
+------------------------+
如果把在自變量的特定組合下僅有一個因變量輸出的情況的觀察值剔除 (該示例中對應(yīng)剔除的觀察值為第一行數(shù)據(jù) ) , 此時 x1 、x2 和常數(shù)值處于共線狀態(tài),,因此 Logit 回歸結(jié)果會顯示 「 note: 1 failure and 0 successes completely determined. 」 ,。
那么,當(dāng)出現(xiàn)以上情況時,,我們需要做些什么,?
. egen pattern = group(x1 x2)
- 識別只有一個結(jié)果的協(xié)變量組合,。
. logit y x1 x2
. predict p
. summarize p
* p 的極值幾乎為 0 或幾乎為 1 ,。
. tab pattern if p < 1e-7 //這里使用一個比最小值稍大的觀察值替代。
* 如果 p 幾乎為1的時候,,我們可以使用 「 if p > 1 - 1e-7 」 替代,。
. list x1 x2 if pattern == XXXX // 這里使用上一步驟 「 tab 」 命令中得到的值。
* 至此,,通過上述步驟,,我們可以得到模型的協(xié)變量模式。
此時,,我們需要針對自身的研究問題分析出現(xiàn)完美預(yù)測結(jié)果的協(xié)變量模式是否具備研究意義,,或者是由于模型中的變量存在異常導(dǎo)致此類問題的出現(xiàn)。
接下來,,我們需要避免這類共線性問題的出現(xiàn),。
. logit y x1 x2 if pattern ~= XXXX // 這里仍然需要使用上一步驟 「 tab 」 命令中得到的值。
- 在去除共線性的情況下,,對模型重新進(jìn)行 Logit 回歸,。
. logit y x1
至于是否保留可以完美預(yù)測結(jié)果的協(xié)變量模式,這取決于步驟三的答案,。當(dāng)可以完美預(yù)測結(jié)果的協(xié)變量模式具備研究意義時,,我們可能需要從模型中排除以下觀察結(jié)果。
. logit y x1 if pattern ~= XXXX // 這里仍然需要使用上一步驟 「 tab 」 命令中得到的值,。
此時,,模型會報告:
Covariate pattern such and such predicted outcome perfectly.
The best model for the rest of the data is ....
3. 進(jìn)一步擴(kuò)展
在進(jìn)行 Logit 實(shí)證回歸時,我們發(fā)現(xiàn)有時回歸模型會因忽視「 retain prefect predictor variables 」問題使得參與 Logit 回歸的樣本與總樣本量不符,。
舉個簡單的例子,。當(dāng)我們的描述性統(tǒng)計樣本為 10000 個時,但參與 Logit 回歸的樣本會因沒有 「 retain prefect predictor variables 」 而缺失若干樣本,使得描述性統(tǒng)計樣本量與回歸樣本量不一致,。此時,,stata 回歸結(jié)果往往會顯示類似于 「 Note: 4 failures and 0 successes completely determined. 」的提示,意味著你的回歸樣本量比描述性統(tǒng)計樣本量少 4 個,。
因此,,有時為了避免這種不必要的困惑,我們有時會在 Logit 回歸命令的尾部添加 「asis」 選項(xiàng),。
4. 參考資料
- Willim Sribney, What does 'completely determined' mean in my logistic regression output? , -Link-
- 《計量經(jīng)濟(jì)學(xué)及Stata應(yīng)用》,;高等教育出版社;陳強(qiáng)編著,;P212