Discrete Choice Models Overview
=================================


.. _discrete_choice_overview_notebook:

`Link to Notebook GitHub <https://github.com/statsmodels/statsmodels/blob/master/examples/notebooks/discrete_choice_overview.ipynb>`_

.. raw:: html

   
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">print_function</span>
   <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
   <span class="kn">import</span> <span class="nn">statsmodels.api</span> <span class="k">as</span> <span class="nn">sm</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <h2 id="Data">Data<a class="anchor-link" href="#Data">&#182;</a></h2><p>Load data from Spector and Mazzeo (1980). Examples follow Greene's Econometric Analysis Ch. 21 (5th Edition).</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">spector_data</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">datasets</span><span class="o">.</span><span class="n">spector</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
   <span class="n">spector_data</span><span class="o">.</span><span class="n">exog</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">add_constant</span><span class="p">(</span><span class="n">spector_data</span><span class="o">.</span><span class="n">exog</span><span class="p">,</span> <span class="n">prepend</span><span class="o">=</span><span class="k">False</span><span class="p">)</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <p>Inspect the data:</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="nb">print</span><span class="p">(</span><span class="n">spector_data</span><span class="o">.</span><span class="n">exog</span><span class="p">[:</span><span class="mi">5</span><span class="p">,:])</span>
   <span class="nb">print</span><span class="p">(</span><span class="n">spector_data</span><span class="o">.</span><span class="n">endog</span><span class="p">[:</span><span class="mi">5</span><span class="p">])</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <h2 id="Linear-Probability-Model-(OLS)">Linear Probability Model (OLS)<a class="anchor-link" href="#Linear-Probability-Model-(OLS)">&#182;</a></h2>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">lpm_mod</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">OLS</span><span class="p">(</span><span class="n">spector_data</span><span class="o">.</span><span class="n">endog</span><span class="p">,</span> <span class="n">spector_data</span><span class="o">.</span><span class="n">exog</span><span class="p">)</span>
   <span class="n">lpm_res</span> <span class="o">=</span> <span class="n">lpm_mod</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="nb">print</span><span class="p">(</span><span class="s">&#39;Parameters: &#39;</span><span class="p">,</span> <span class="n">lpm_res</span><span class="o">.</span><span class="n">params</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>[[  2.66  20.     0.     1.  ]
    [  2.89  22.     0.     1.  ]
    [  3.28  24.     0.     1.  ]
    [  2.92  12.     0.     1.  ]
    [  4.    21.     0.     1.  ]]
   [ 0.  0.  0.  0.  1.]
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <h2 id="Logit-Model">Logit Model<a class="anchor-link" href="#Logit-Model">&#182;</a></h2>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">logit_mod</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">Logit</span><span class="p">(</span><span class="n">spector_data</span><span class="o">.</span><span class="n">endog</span><span class="p">,</span> <span class="n">spector_data</span><span class="o">.</span><span class="n">exog</span><span class="p">)</span>
   <span class="n">logit_res</span> <span class="o">=</span> <span class="n">logit_mod</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">disp</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
   <span class="nb">print</span><span class="p">(</span><span class="s">&#39;Parameters: &#39;</span><span class="p">,</span> <span class="n">logit_res</span><span class="o">.</span><span class="n">params</span><span class="p">)</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>Parameters:  [ 0.46385168  0.01049512  0.37855479]
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <p>Marginal Effects</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">margeff</span> <span class="o">=</span> <span class="n">logit_res</span><span class="o">.</span><span class="n">get_margeff</span><span class="p">()</span>
   <span class="nb">print</span><span class="p">(</span><span class="n">margeff</span><span class="o">.</span><span class="n">summary</span><span class="p">())</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>Parameters:  [  2.82611259   0.09515766   2.37868766 -13.02134686]
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <p>As in all the discrete data models presented below, we can print a nice summary of results:</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="nb">print</span><span class="p">(</span><span class="n">logit_res</span><span class="o">.</span><span class="n">summary</span><span class="p">())</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>        Logit Marginal Effects       
   =====================================
   Dep. Variable:                      y
   Method:                          dydx
   At:                           overall
   ==============================================================================
                   dy/dx    std err          z      P&gt;|z|      [95.0% Conf. Int.]
   ------------------------------------------------------------------------------
   x1             0.3626      0.109      3.313      0.001         0.148     0.577
   x2             0.0122      0.018      0.686      0.493        -0.023     0.047
   x3             0.3052      0.092      3.304      0.001         0.124     0.486
   ==============================================================================
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <h2 id="Probit-Model">Probit Model<a class="anchor-link" href="#Probit-Model">&#182;</a></h2>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">probit_mod</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">Probit</span><span class="p">(</span><span class="n">spector_data</span><span class="o">.</span><span class="n">endog</span><span class="p">,</span> <span class="n">spector_data</span><span class="o">.</span><span class="n">exog</span><span class="p">)</span>
   <span class="n">probit_res</span> <span class="o">=</span> <span class="n">probit_mod</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="n">probit_margeff</span> <span class="o">=</span> <span class="n">probit_res</span><span class="o">.</span><span class="n">get_margeff</span><span class="p">()</span>
   <span class="nb">print</span><span class="p">(</span><span class="s">&#39;Parameters: &#39;</span><span class="p">,</span> <span class="n">probit_res</span><span class="o">.</span><span class="n">params</span><span class="p">)</span>
   <span class="nb">print</span><span class="p">(</span><span class="s">&#39;Marginal effects: &#39;</span><span class="p">)</span>
   <span class="nb">print</span><span class="p">(</span><span class="n">probit_margeff</span><span class="o">.</span><span class="n">summary</span><span class="p">())</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>                           Logit Regression Results                           
   ==============================================================================
   Dep. Variable:                      y   No. Observations:                   32
   Model:                          Logit   Df Residuals:                       28
   Method:                           MLE   Df Model:                            3
   Date:                Mon, 20 Jul 2015   Pseudo R-squ.:                  0.3740
   Time:                        17:43:21   Log-Likelihood:                -12.890
   converged:                       True   LL-Null:                       -20.592
                                           LLR p-value:                  0.001502
   ==============================================================================
                    coef    std err          z      P&gt;|z|      [95.0% Conf. Int.]
   ------------------------------------------------------------------------------
   x1             2.8261      1.263      2.238      0.025         0.351     5.301
   x2             0.0952      0.142      0.672      0.501        -0.182     0.373
   x3             2.3787      1.065      2.234      0.025         0.292     4.465
   const        -13.0213      4.931     -2.641      0.008       -22.687    -3.356
   ==============================================================================
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <h2 id="Multinomial-Logit">Multinomial Logit<a class="anchor-link" href="#Multinomial-Logit">&#182;</a></h2>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <p>Load data from the American National Election Studies:</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">anes_data</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">datasets</span><span class="o">.</span><span class="n">anes96</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
   <span class="n">anes_exog</span> <span class="o">=</span> <span class="n">anes_data</span><span class="o">.</span><span class="n">exog</span>
   <span class="n">anes_exog</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">add_constant</span><span class="p">(</span><span class="n">anes_exog</span><span class="p">,</span> <span class="n">prepend</span><span class="o">=</span><span class="k">False</span><span class="p">)</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>Optimization terminated successfully.
            Current function value: 0.400588
            Iterations 6
   Parameters:  [ 1.62581004  0.05172895  1.42633234 -7.45231965]
   Marginal effects: 
          Probit Marginal Effects       
   =====================================
   Dep. Variable:                      y
   Method:                          dydx
   At:                           overall
   ==============================================================================
                   dy/dx    std err          z      P&gt;|z|      [95.0% Conf. Int.]
   ------------------------------------------------------------------------------
   x1             0.3608      0.113      3.182      0.001         0.139     0.583
   x2             0.0115      0.018      0.624      0.533        -0.025     0.048
   x3             0.3165      0.090      3.508      0.000         0.140     0.493
   ==============================================================================
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <p>Inspect the data:</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="nb">print</span><span class="p">(</span><span class="n">anes_data</span><span class="o">.</span><span class="n">exog</span><span class="p">[:</span><span class="mi">5</span><span class="p">,:])</span>
   <span class="nb">print</span><span class="p">(</span><span class="n">anes_data</span><span class="o">.</span><span class="n">endog</span><span class="p">[:</span><span class="mi">5</span><span class="p">])</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <p>Fit MNL model:</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">mlogit_mod</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">MNLogit</span><span class="p">(</span><span class="n">anes_data</span><span class="o">.</span><span class="n">endog</span><span class="p">,</span> <span class="n">anes_exog</span><span class="p">)</span>
   <span class="n">mlogit_res</span> <span class="o">=</span> <span class="n">mlogit_mod</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="nb">print</span><span class="p">(</span><span class="n">mlogit_res</span><span class="o">.</span><span class="n">params</span><span class="p">)</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>[[ -2.30258509   7.          36.           3.           1.        ]
    [  5.24755025   3.          20.           4.           1.        ]
    [  3.43720782   2.          24.           6.           1.        ]
    [  4.4200447    3.          28.           6.           1.        ]
    [  6.46162441   5.          68.           6.           1.        ]]
   [ 6.  1.  1.  1.  0.]
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <h2 id="Poisson">Poisson<a class="anchor-link" href="#Poisson">&#182;</a></h2><p>Load the Rand data. Note that this example is similar to Cameron and Trivedi's <code>Microeconometrics</code> Table 20.5, but it is slightly different because of minor changes in the data.</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">rand_data</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">datasets</span><span class="o">.</span><span class="n">randhie</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
   <span class="n">rand_exog</span> <span class="o">=</span> <span class="n">rand_data</span><span class="o">.</span><span class="n">exog</span><span class="o">.</span><span class="n">view</span><span class="p">(</span><span class="nb">float</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">rand_data</span><span class="o">.</span><span class="n">exog</span><span class="p">),</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
   <span class="n">rand_exog</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">add_constant</span><span class="p">(</span><span class="n">rand_exog</span><span class="p">,</span> <span class="n">prepend</span><span class="o">=</span><span class="k">False</span><span class="p">)</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>Optimization terminated successfully.
            Current function value: 1.548647
            Iterations 7
   [[ -1.15359746e-02  -8.87506530e-02  -1.05966699e-01  -9.15567017e-02
      -9.32846040e-02  -1.40880692e-01]
    [  2.97714352e-01   3.91668642e-01   5.73450508e-01   1.27877179e+00
       1.34696165e+00   2.07008014e+00]
    [ -2.49449954e-02  -2.28978371e-02  -1.48512069e-02  -8.68134503e-03
      -1.79040689e-02  -9.43264870e-03]
    [  8.24914421e-02   1.81042758e-01  -7.15241904e-03   1.99827955e-01
       2.16938850e-01   3.21925702e-01]
    [  5.19655317e-03   4.78739761e-02   5.75751595e-02   8.44983753e-02
       8.09584122e-02   1.08894083e-01]
    [ -3.73401677e-01  -2.25091318e+00  -3.66558353e+00  -7.61384309e+00
      -7.06047825e+00  -1.21057509e+01]]
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <p>Fit Poisson model:</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">poisson_mod</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">Poisson</span><span class="p">(</span><span class="n">rand_data</span><span class="o">.</span><span class="n">endog</span><span class="p">,</span> <span class="n">rand_exog</span><span class="p">)</span>
   <span class="n">poisson_res</span> <span class="o">=</span> <span class="n">poisson_mod</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s">&quot;newton&quot;</span><span class="p">)</span>
   <span class="nb">print</span><span class="p">(</span><span class="n">poisson_res</span><span class="o">.</span><span class="n">summary</span><span class="p">())</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <h2 id="Negative-Binomial">Negative Binomial<a class="anchor-link" href="#Negative-Binomial">&#182;</a></h2><p>The negative binomial model gives slightly different results.</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">mod_nbin</span> <span class="o">=</span> <span class="n">sm</span><span class="o">.</span><span class="n">NegativeBinomial</span><span class="p">(</span><span class="n">rand_data</span><span class="o">.</span><span class="n">endog</span><span class="p">,</span> <span class="n">rand_exog</span><span class="p">)</span>
   <span class="n">res_nbin</span> <span class="o">=</span> <span class="n">mod_nbin</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">disp</span><span class="o">=</span><span class="k">False</span><span class="p">)</span>
   <span class="nb">print</span><span class="p">(</span><span class="n">res_nbin</span><span class="o">.</span><span class="n">summary</span><span class="p">())</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>Optimization terminated successfully.
            Current function value: 3.091609
            Iterations 12
                             Poisson Regression Results                          
   ==============================================================================
   Dep. Variable:                      y   No. Observations:                20190
   Model:                        Poisson   Df Residuals:                    20180
   Method:                           MLE   Df Model:                            9
   Date:                Mon, 20 Jul 2015   Pseudo R-squ.:                 0.06343
   Time:                        17:43:22   Log-Likelihood:                -62420.
   converged:                       True   LL-Null:                       -66647.
                                           LLR p-value:                     0.000
   ==============================================================================
                    coef    std err          z      P&gt;|z|      [95.0% Conf. Int.]
   ------------------------------------------------------------------------------
   x1            -0.0525      0.003    -18.216      0.000        -0.058    -0.047
   x2            -0.2471      0.011    -23.272      0.000        -0.268    -0.226
   x3             0.0353      0.002     19.302      0.000         0.032     0.039
   x4            -0.0346      0.002    -21.439      0.000        -0.038    -0.031
   x5             0.2717      0.012     22.200      0.000         0.248     0.296
   x6             0.0339      0.001     60.098      0.000         0.033     0.035
   x7            -0.0126      0.009     -1.366      0.172        -0.031     0.005
   x8             0.0541      0.015      3.531      0.000         0.024     0.084
   x9             0.2061      0.026      7.843      0.000         0.155     0.258
   const          0.7004      0.011     62.741      0.000         0.678     0.722
   ==============================================================================
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing text_cell rendered">
   <div class="prompt input_prompt">
   </div>
   <div class="inner_cell">
   <div class="text_cell_render border-box-sizing rendered_html">
   <h2 id="Alternative-solvers">Alternative solvers<a class="anchor-link" href="#Alternative-solvers">&#182;</a></h2><p>The default method for fitting discrete data MLE models is Newton-Raphson. You can use other solvers by using the <code>method</code> argument:</p>
   
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class=" highlight hl-ipython3"><pre><span class="n">mlogit_res</span> <span class="o">=</span> <span class="n">mlogit_mod</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="s">&#39;bfgs&#39;</span><span class="p">,</span> <span class="n">maxiter</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span>
   <span class="nb">print</span><span class="p">(</span><span class="n">mlogit_res</span><span class="o">.</span><span class="n">summary</span><span class="p">())</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>                     NegativeBinomial Regression Results                      
   ==============================================================================
   Dep. Variable:                      y   No. Observations:                20190
   Model:               NegativeBinomial   Df Residuals:                    20180
   Method:                           MLE   Df Model:                            9
   Date:                Mon, 20 Jul 2015   Pseudo R-squ.:                 0.01845
   Time:                        17:43:23   Log-Likelihood:                -43384.
   converged:                      False   LL-Null:                       -44199.
                                           LLR p-value:                     0.000
   ==============================================================================
                    coef    std err          z      P&gt;|z|      [95.0% Conf. Int.]
   ------------------------------------------------------------------------------
   x1            -0.0580      0.006     -9.517      0.000        -0.070    -0.046
   x2            -0.2678      0.023    -11.802      0.000        -0.312    -0.223
   x3             0.0412      0.004      9.937      0.000         0.033     0.049
   x4            -0.0381      0.003    -11.219      0.000        -0.045    -0.031
   x5             0.2690      0.030      8.981      0.000         0.210     0.328
   x6             0.0382      0.001     26.081      0.000         0.035     0.041
   x7            -0.0441      0.020     -2.200      0.028        -0.083    -0.005
   x8             0.0172      0.036      0.477      0.633        -0.054     0.088
   x9             0.1780      0.074      2.397      0.017         0.032     0.324
   const          0.6636      0.025     26.787      0.000         0.615     0.712
   alpha          1.2930      0.019     69.477      0.000         1.256     1.329
   ==============================================================================
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stderr output_text">
   <pre>/Users/tom.augspurger/Envs/py3/lib/python3.4/site-packages/statsmodels-0.6.1-py3.4-macosx-10.10-x86_64.egg/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals
     &quot;Check mle_retvals&quot;, ConvergenceWarning)
   </pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>

   <script src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"type="text/javascript"></script>
   <script type="text/javascript">
   init_mathjax = function() {
       if (window.MathJax) {
           // MathJax loaded
           MathJax.Hub.Config({
               tex2jax: {
               // I'm not sure about the \( and \[ below. It messes with the
               // prompt, and I think it's an issue with the template. -SS
                   inlineMath: [ ['$','$'], ["\\(","\\)"] ],
                   displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
               },
               displayAlign: 'left', // Change this to 'center' to center equations.
               "HTML-CSS": {
                   styles: {'.MathJax_Display': {"margin": 0}}
               }
           });
           MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
       }
   }
   init_mathjax();

   // since we have to load this in a ..raw:: directive we will add the css
   // after the fact
   function loadcssfile(filename){
       var fileref=document.createElement("link")
       fileref.setAttribute("rel", "stylesheet")
       fileref.setAttribute("type", "text/css")
       fileref.setAttribute("href", filename)

       document.getElementsByTagName("head")[0].appendChild(fileref)
   }
   // loadcssfile({{pathto("_static/nbviewer.pygments.css", 1) }})
   // loadcssfile({{pathto("_static/nbviewer.min.css", 1) }})
   loadcssfile("../../../_static/nbviewer.pygments.css")
   loadcssfile("../../../_static/ipython.min.css")
   </script>