Ed Brannin
0
Q:

multinomial logit python

In [1]: import statsmodels.api as st
 
In [2]: iris = st.datasets.get_rdataset('iris', 'datasets')
 
In [3]: ### get the y 
 
In [4]: y = iris.data.Species
 
In [5]: print y.head(3)
0    setosa
1    setosa
2    setosa
Name: Species, dtype: object
 
In [6]: ### get the x 
 
In [7]: x = iris.data.ix[:, 0]
 
In [8]: x = st.add_constant(x, prepend = False)
 
In [9]: print x.head(3)
   Sepal.Length  const
0           5.1      1
1           4.9      1
2           4.7      1
 
In [10]: ### specify the model
 
In [11]: mdl = st.MNLogit(y, x)
 
In [12]: mdl_fit = mdl.fit()
Optimization terminated successfully.
         Current function value: 0.606893
         Iterations 8
 
In [13]: ### print model summary ###
 
In [14]: print mdl_fit.summary()
                          MNLogit Regression Results                          
==============================================================================
Dep. Variable:                Species   No. Observations:                  150
Model:                        MNLogit   Df Residuals:                      146
Method:                           MLE   Df Model:                            2
Date:                Fri, 23 Aug 2013   Pseudo R-squ.:                  0.4476
Time:                        22:22:58   Log-Likelihood:                -91.034
converged:                       True   LL-Null:                       -164.79
                                        LLR p-value:                 9.276e-33
=====================================================================================
Species=versicolor       coef    std err          z      P>|z|      [95.0% Conf. Int.]
--------------------------------------------------------------------------------------
Sepal.Length           4.8157      0.907      5.310      0.000         3.038     6.593
const                -26.0819      4.889     -5.335      0.000       -35.665   -16.499
--------------------------------------------------------------------------------------
Species=virginica       coef    std err          z      P>|z|      [95.0% Conf. Int.]
-------------------------------------------------------------------------------------
Sepal.Length          6.8464      1.022      6.698      0.000         4.843     8.850
const               -38.7590      5.691     -6.811      0.000       -49.913   -27.605
=====================================================================================
 
In [15]: ### marginal effects ###
 
In [16]: mdl_margeff = mdl_fit.get_margeff()
 
In [17]: print mdl_margeff.summary()
       MNLogit Marginal Effects      
=====================================
Dep. Variable:                Species
Method:                          dydx
At:                           overall
=====================================================================================
    Species=setosa      dy/dx    std err          z      P>|z|      [95.0% Conf. Int.]
--------------------------------------------------------------------------------------
Sepal.Length          -0.3785      0.003   -116.793      0.000        -0.385    -0.372
--------------------------------------------------------------------------------------
Species=versicolor      dy/dx    std err          z      P>|z|      [95.0% Conf. Int.]
--------------------------------------------------------------------------------------
Sepal.Length           0.0611      0.022      2.778      0.005         0.018     0.104
--------------------------------------------------------------------------------------
Species=virginica      dy/dx    std err          z      P>|z|      [95.0% Conf. Int.]
-------------------------------------------------------------------------------------
Sepal.Length          0.3173      0.022     14.444      0.000         0.274     0.360
=====================================================================================
 
In [18]: ### aic and bic ###
 
In [19]: print mdl_fit.aic
190.06793279
 
In [20]: print mdl_fit.bic
202.110473966
<div class="open_grepper_editor" title="Edit & Save To Grepper"></div>
0

New to Communities?

Join the community