# 详解 Logit/Probit 模型中的 completely determined 问题

Stata 连享会   主页 || 视频 || 推文

## 2. 问题与方法

Note: 4 failures and 0 successes completely determined.

### 情况一：连续变量是一个很好的预测指标

`````` . 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.
``````

`````` . scatter foreign gear_ratio
``````

``````   . 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 |
+-----------+
``````

### 情况二：隐藏共线性

``````. 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 |
+------------------------+
``````

``````. 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 |
+------------------------+
``````

``````. 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 |
+------------------------+
``````

1. 生成协变量组合。
``````. egen pattern = group(x1 x2)
``````
1. 识别只有一个结果的协变量组合。
``````. 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 」 命令中得到的值。
* 至此，通过上述步骤，我们可以得到模型的协变量模式。
``````
1. 此时，我们需要针对自身的研究问题分析出现完美预测结果的协变量模式是否具备研究意义，或者是由于模型中的变量存在异常导致此类问题的出现。

2. 接下来，我们需要避免这类共线性问题的出现。

``````. logit y x1 x2 if pattern ~= XXXX  //  这里仍然需要使用上一步骤 「 tab 」 命令中得到的值。
``````
1. 在去除共线性的情况下，对模型重新进行 Logit 回归。
``````. logit y x1
``````

``````. 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 ....
``````

## 4. 参考资料

• Willim Sribney, What does "completely determined" mean in my logistic regression output? , -Link-
• 百度百科_共线性
• 《计量经济学及Stata应用》；高等教育出版社；陈强编著；P212

## 相关课程

http://lianxh.duanshu.com

### 课程一览

Stata数据清洗 游万海 直播, 2 小时，已上线

Note: 部分课程的资料，PPT 等可以前往 连享会-直播课 主页查看，下载。

#### 关于我们

• Stata连享会 由中山大学连玉君老师团队创办，定期分享实证分析经验。直播间 有很多视频课程，可以随时观看。
• 连享会-主页知乎专栏，300+ 推文，实证分析不再抓狂。
• 公众号推文分类： 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类，主流方法介绍一目了然：DID, RDD, IV, GMM, FE, Probit 等。
• 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标，输入简要关键词，以便快速呈现历史推文，获取工具软件和数据下载。常见关键词：`课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法`

✏ 连享会学习群-常见问题解答汇总：
https://gitee.com/arlionn/WD