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