繁体   English   中英

R 和 Python 的逻辑回归结果不同?

[英]Logistic Regression different results with R and Python?

我在两个程序中都使用了逻辑回归方法,并想知道为什么我得到了不同的结果,尤其是系数。 结果,感染,是 (1, 0) 和 Flushed 是一个连续变量。

Python:

import statsmodels.api as sm
logit_model=sm.Logit(data['INFECTION'], data['Flushed'])
result=logit_model.fit()
print(result.summary())

结果:

                           Logit Regression Results                           
==============================================================================
Dep. Variable:              INFECTION   No. Observations:                  414
Model:                          Logit   Df Residuals:                      413
Method:                           MLE   Df Model:                            0
Date:                Fri, 24 Aug 2018   Pseudo R-squ.:                  -1.388
Time:                        15:47:42   Log-Likelihood:                -184.09
converged:                       True   LL-Null:                       -77.104
                                        LLR p-value:                       nan
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
Flushed       -0.6467      0.070     -9.271      0.000      -0.783      -0.510
==============================================================================

回复:

mylogit <- glm(INFECTION ~ Flushed, data = cvc, family = "binomial")
summary(mylogit)

结果:

Call:
glm(formula = INFECTION ~ Flushed, family = "binomial", data = cvc)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.0598  -0.3107  -0.2487  -0.2224   2.8051  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -3.91441    0.38639 -10.131  < 2e-16 ***
Flushed      0.22696    0.06049   3.752 0.000175 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

您似乎缺少 Python 逻辑模型中的常量(偏移)参数。

要使用 R 的公式语法,您需要拟合两种不同的模型:

Python model: INFECTION ~ 0 + Flushed
R model     : INFECTION ~ Flushed

要向 Python 模型添加常量,请使用sm.add_constant(...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM