Python 获得;检测到完美分离,结果不可用“;在建立Logistic回归模型时

Python 获得;检测到完美分离,结果不可用“;在建立Logistic回归模型时,python,pandas,Python,Pandas,作为我任务的一部分,我正在建立逻辑回归模型,但在建立模型时,我得到了一个错误“检测到完美分离,结果不可用” **X_train :-** year amt_spnt rank 1 -1.723034 -0.418500 0.272727 2 0.716660 2.088507 -0.636364 3 1.174102 -0.558333 -1.545455 4 -0.503187 -1.297451 1.181

作为我任务的一部分,我正在建立逻辑回归模型,但在建立模型时,我得到了一个错误“检测到完美分离,结果不可用”

**X_train :-**

      year     amt_spnt      rank
1   -1.723034   -0.418500   0.272727
2   0.716660    2.088507    -0.636364
3   1.174102    -0.558333   -1.545455
4   -0.503187   -1.297451   1.181818
5   1.326583    -0.628250   -1.545455

**y_train :-** 

1    0
2    1
3    1
4    0
5    1
Name: result, dtype: int64

**Logistic Model code:-** 

import statsmodels.api as sm
logm1 = sm.GLM(y_train,(sm.add_constant(X_train)), family = sm.families.Binomial())
logm1.fit().summary()

**Dataset before and after scaling**


这是一个模型设置问题,由于完美分离,您的模型无法收敛。完全分离意味着自变量中有一个(或多个)变量可以完全区分因变量=0和因变量=1。请参见以下示例:

Y 0 0 0 0 1 1 1

x1234445678

如果X 4,Y=1


对您的问题的简短回答是在自变量中找到此类变量,并将其从模型中删除。

谢谢您的回答。但我在我的数据集中看不到这样的功能。在缩放之前和缩放之后,我用完整的数据集(总共10行)编辑了我的问题。你能帮我一下吗?有什么变量导致了这个问题吗?嗨,我简化了什么是完美分离问题,你的数据似乎没有我上面描述的问题,但它是一个由自变量组合引起的准完全分离问题。我不经常使用“statsmodel”进行建模,但我尝试在其他软件中进行建模,结果发现“year”是导致完美分离问题的变量。在我移动“年”之后,模型也没有收敛,而“秩”仍然导致完美分离问题。在统计学中,这通常是因为你的样本量很小,一个或多个IVs几乎可以完美地预测DV。通常,解决这个问题有三种方法:1。增加样本量,使一个或多个IVs组合不太可能预测DV;2.删除导致完全分离的IVs,在本例中为“年”和“等级”;3.重新编码导致完美分离的IVs。如果您能提供一点关于DV和IVs是如何测量的背景知识,这将非常有帮助。
**Image for evidence:-** 

[![Evidence][1]][1] 

[1]: https://i.stack.imgur.com/cTncA.png