Interactions and ANOVA
======================


.. _interactions_anova_notebook:

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

.. raw:: html

   
   <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>Note: This script is based heavily on Jonathan Taylor&#39;s class notes <a href="http://www.stanford.edu/class/stats191/interactions.html">http://www.stanford.edu/class/stats191/interactions.html</a></p>
   <p>Download and format data:</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[1]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">print_function</span>
   <span class="kn">from</span> <span class="nn">statsmodels.compat</span> <span class="kn">import</span> <span class="n">urlopen</span>
   <span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
   <span class="n">np</span><span class="o">.</span><span class="n">set_printoptions</span><span class="p">(</span><span class="n">precision</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">suppress</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
   <span class="kn">import</span> <span class="nn">statsmodels.api</span> <span class="kn">as</span> <span class="nn">sm</span>
   <span class="kn">import</span> <span class="nn">pandas</span> <span class="kn">as</span> <span class="nn">pd</span>
   <span class="n">pd</span><span class="o">.</span><span class="n">set_option</span><span class="p">(</span><span class="s2">&quot;display.width&quot;</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span>
   <span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="kn">as</span> <span class="nn">plt</span>
   <span class="kn">from</span> <span class="nn">statsmodels.formula.api</span> <span class="kn">import</span> <span class="n">ols</span>
   <span class="kn">from</span> <span class="nn">statsmodels.graphics.api</span> <span class="kn">import</span> <span class="n">interaction_plot</span><span class="p">,</span> <span class="n">abline_plot</span>
   <span class="kn">from</span> <span class="nn">statsmodels.stats.anova</span> <span class="kn">import</span> <span class="n">anova_lm</span>
   
   <span class="k">try</span><span class="p">:</span>
       <span class="n">salary_table</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s1">&#39;salary.table&#39;</span><span class="p">)</span>
   <span class="k">except</span><span class="p">:</span>  <span class="c1"># recent pandas can read URL without urlopen</span>
       <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;http://stats191.stanford.edu/data/salary.table&#39;</span>
       <span class="n">fh</span> <span class="o">=</span> <span class="n">urlopen</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
       <span class="n">salary_table</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_table</span><span class="p">(</span><span class="n">fh</span><span class="p">)</span>
       <span class="n">salary_table</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span><span class="s1">&#39;salary.table&#39;</span><span class="p">)</span>
   
   <span class="n">E</span> <span class="o">=</span> <span class="n">salary_table</span><span class="o">.</span><span class="n">E</span>
   <span class="n">M</span> <span class="o">=</span> <span class="n">salary_table</span><span class="o">.</span><span class="n">M</span>
   <span class="n">X</span> <span class="o">=</span> <span class="n">salary_table</span><span class="o">.</span><span class="n">X</span>
   <span class="n">S</span> <span class="o">=</span> <span class="n">salary_table</span><span class="o">.</span><span class="n">S</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">URLError</span>                                  Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-380-e34bb7e2457e&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">     15</span> <span class="ansigreen">except</span><span class="ansiblue">:</span>  <span class="ansired"># recent pandas can read URL without urlopen</span><span class="ansiblue"></span>
   <span class="ansigreen">     16</span>     url <span class="ansiblue">=</span> <span class="ansiblue">&apos;http://stats191.stanford.edu/data/salary.table&apos;</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 17</span><span class="ansired">     </span>fh <span class="ansiblue">=</span> urlopen<span class="ansiblue">(</span>url<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     18</span>     salary_table <span class="ansiblue">=</span> pd<span class="ansiblue">.</span>read_table<span class="ansiblue">(</span>fh<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     19</span>     salary_table<span class="ansiblue">.</span>to_csv<span class="ansiblue">(</span><span class="ansiblue">&apos;salary.table&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">urlopen</span><span class="ansiblue">(url, data, timeout, cafile, capath, cadefault, context)</span>
   <span class="ansigreen">    152</span>     <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    153</span>         opener <span class="ansiblue">=</span> _opener<span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 154</span><span class="ansired">     </span><span class="ansigreen">return</span> opener<span class="ansiblue">.</span>open<span class="ansiblue">(</span>url<span class="ansiblue">,</span> data<span class="ansiblue">,</span> timeout<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    155</span> <span class="ansiblue"></span>
   <span class="ansigreen">    156</span> <span class="ansigreen">def</span> install_opener<span class="ansiblue">(</span>opener<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">open</span><span class="ansiblue">(self, fullurl, data, timeout)</span>
   <span class="ansigreen">    427</span>             req <span class="ansiblue">=</span> meth<span class="ansiblue">(</span>req<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    428</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 429</span><span class="ansired">         </span>response <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_open<span class="ansiblue">(</span>req<span class="ansiblue">,</span> data<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    430</span> <span class="ansiblue"></span>
   <span class="ansigreen">    431</span>         <span class="ansired"># post-process response</span><span class="ansiblue"></span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">_open</span><span class="ansiblue">(self, req, data)</span>
   <span class="ansigreen">    445</span>         protocol <span class="ansiblue">=</span> req<span class="ansiblue">.</span>get_type<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    446</span>         result = self._call_chain(self.handle_open, protocol, protocol +
   <span class="ansigreen">--&gt; 447</span><span class="ansired">                                   &apos;_open&apos;, req)
   </span><span class="ansigreen">    448</span>         <span class="ansigreen">if</span> result<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    449</span>             <span class="ansigreen">return</span> result<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">_call_chain</span><span class="ansiblue">(self, chain, kind, meth_name, *args)</span>
   <span class="ansigreen">    405</span>             func <span class="ansiblue">=</span> getattr<span class="ansiblue">(</span>handler<span class="ansiblue">,</span> meth_name<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    406</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 407</span><span class="ansired">             </span>result <span class="ansiblue">=</span> func<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    408</span>             <span class="ansigreen">if</span> result <span class="ansigreen">is</span> <span class="ansigreen">not</span> None<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    409</span>                 <span class="ansigreen">return</span> result<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">http_open</span><span class="ansiblue">(self, req)</span>
   <span class="ansigreen">   1226</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1227</span>     <span class="ansigreen">def</span> http_open<span class="ansiblue">(</span>self<span class="ansiblue">,</span> req<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1228</span><span class="ansired">         </span><span class="ansigreen">return</span> self<span class="ansiblue">.</span>do_open<span class="ansiblue">(</span>httplib<span class="ansiblue">.</span>HTTPConnection<span class="ansiblue">,</span> req<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1229</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1230</span>     http_request <span class="ansiblue">=</span> AbstractHTTPHandler<span class="ansiblue">.</span>do_request_<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">do_open</span><span class="ansiblue">(self, http_class, req, **http_conn_args)</span>
   <span class="ansigreen">   1196</span>         <span class="ansigreen">except</span> socket<span class="ansiblue">.</span>error<span class="ansiblue">,</span> err<span class="ansiblue">:</span> <span class="ansired"># XXX what error?</span><span class="ansiblue"></span>
   <span class="ansigreen">   1197</span>             h<span class="ansiblue">.</span>close<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1198</span><span class="ansired">             </span><span class="ansigreen">raise</span> URLError<span class="ansiblue">(</span>err<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1199</span>         <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   1200</span>             <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansired">URLError</span>: &lt;urlopen error [Errno -2] Name or service not known&gt;</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>Take a look at 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;[2]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
   <span class="n">symbols</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;D&#39;</span><span class="p">,</span> <span class="s1">&#39;^&#39;</span><span class="p">]</span>
   <span class="n">colors</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;r&#39;</span><span class="p">,</span> <span class="s1">&#39;g&#39;</span><span class="p">,</span> <span class="s1">&#39;blue&#39;</span><span class="p">]</span>
   <span class="n">factor_groups</span> <span class="o">=</span> <span class="n">salary_table</span><span class="o">.</span><span class="n">groupby</span><span class="p">([</span><span class="s1">&#39;E&#39;</span><span class="p">,</span><span class="s1">&#39;M&#39;</span><span class="p">])</span>
   <span class="k">for</span> <span class="n">values</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_groups</span><span class="p">:</span>
       <span class="n">i</span><span class="p">,</span><span class="n">j</span> <span class="o">=</span> <span class="n">values</span>
       <span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">group</span><span class="p">[</span><span class="s1">&#39;X&#39;</span><span class="p">],</span> <span class="n">group</span><span class="p">[</span><span class="s1">&#39;S&#39;</span><span class="p">],</span> <span class="n">marker</span><span class="o">=</span><span class="n">symbols</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span>
                  <span class="n">s</span><span class="o">=</span><span class="mi">144</span><span class="p">)</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Experience&#39;</span><span class="p">);</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Salary&#39;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-381-66af8762e78f&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      2</span> symbols <span class="ansiblue">=</span> <span class="ansiblue">[</span><span class="ansiblue">&apos;D&apos;</span><span class="ansiblue">,</span> <span class="ansiblue">&apos;^&apos;</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> colors <span class="ansiblue">=</span> <span class="ansiblue">[</span><span class="ansiblue">&apos;r&apos;</span><span class="ansiblue">,</span> <span class="ansiblue">&apos;g&apos;</span><span class="ansiblue">,</span> <span class="ansiblue">&apos;blue&apos;</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 4</span><span class="ansired"> </span>factor_groups <span class="ansiblue">=</span> salary_table<span class="ansiblue">.</span>groupby<span class="ansiblue">(</span><span class="ansiblue">[</span><span class="ansiblue">&apos;E&apos;</span><span class="ansiblue">,</span><span class="ansiblue">&apos;M&apos;</span><span class="ansiblue">]</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      5</span> <span class="ansigreen">for</span> values<span class="ansiblue">,</span> group <span class="ansigreen">in</span> factor_groups<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">      6</span>     i<span class="ansiblue">,</span>j <span class="ansiblue">=</span> values<span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;salary_table&apos; is not defined</pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   
   
   <div class="output_text output_subarea ">
   <pre>
   &lt;matplotlib.figure.Figure at 0x7fb773999d90&gt;
   </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 a linear model:</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[3]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">formula</span> <span class="o">=</span> <span class="s1">&#39;S ~ C(E) + C(M) + X&#39;</span>
   <span class="n">lm</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="n">formula</span><span class="p">,</span> <span class="n">salary_table</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="k">print</span><span class="p">(</span><span class="n">lm</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-382-95ded19c3a72&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> formula <span class="ansiblue">=</span> <span class="ansiblue">&apos;S ~ C(E) + C(M) + X&apos;</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 2</span><span class="ansired"> </span>lm <span class="ansiblue">=</span> ols<span class="ansiblue">(</span>formula<span class="ansiblue">,</span> salary_table<span class="ansiblue">)</span><span class="ansiblue">.</span>fit<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>lm<span class="ansiblue">.</span>summary<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;salary_table&apos; is not defined</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>Have a look at the created design matrix: </p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[4]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">lm</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">exog</span><span class="p">[:</span><span class="mi">5</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-383-e9012a047d1f&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>lm<span class="ansiblue">.</span>model<span class="ansiblue">.</span>exog<span class="ansiblue">[</span><span class="ansiblue">:</span><span class="ansicyan">5</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;lm&apos; is not defined</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>Or since we initially passed in a DataFrame, we have a DataFrame available in</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[5]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">lm</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">orig_exog</span><span class="p">[:</span><span class="mi">5</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-384-0d890acdc576&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>lm<span class="ansiblue">.</span>model<span class="ansiblue">.</span>data<span class="ansiblue">.</span>orig_exog<span class="ansiblue">[</span><span class="ansiblue">:</span><span class="ansicyan">5</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;lm&apos; is not defined</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>We keep a reference to the original untouched data in</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[6]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">lm</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">frame</span><span class="p">[:</span><span class="mi">5</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-385-7c0e717ac664&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>lm<span class="ansiblue">.</span>model<span class="ansiblue">.</span>data<span class="ansiblue">.</span>frame<span class="ansiblue">[</span><span class="ansiblue">:</span><span class="ansicyan">5</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;lm&apos; is not defined</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>Influence statistics</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[7]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">infl</span> <span class="o">=</span> <span class="n">lm</span><span class="o">.</span><span class="n">get_influence</span><span class="p">()</span>
   <span class="k">print</span><span class="p">(</span><span class="n">infl</span><span class="o">.</span><span class="n">summary_table</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-386-a1537ce8cfa3&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>infl <span class="ansiblue">=</span> lm<span class="ansiblue">.</span>get_influence<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>infl<span class="ansiblue">.</span>summary_table<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;lm&apos; is not defined</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>or get a dataframe</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[8]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">df_infl</span> <span class="o">=</span> <span class="n">infl</span><span class="o">.</span><span class="n">summary_frame</span><span class="p">()</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[9]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">df_infl</span><span class="p">[:</span><span class="mi">5</span><span class="p">]</span>
   </pre></div>
   
   </div>
   </div>
   </div>
   
   <div class="output_wrapper">
   <div class="output">
   
   
   <div class="output_area"><div class="prompt output_prompt">Out[9]:</div>
   
   <div class="output_html rendered_html output_subarea output_pyout">
   <div style="max-width:1500px;overflow:auto;">
   <table border="1" class="dataframe">
     <thead>
       <tr style="text-align: right;">
         <th></th>
         <th>dfb_const</th>
         <th>dfb_GNPDEFL</th>
         <th>dfb_GNP</th>
         <th>dfb_UNEMP</th>
         <th>dfb_ARMED</th>
         <th>dfb_POP</th>
         <th>dfb_YEAR</th>
         <th>cooks_d</th>
         <th>dffits</th>
         <th>dffits_internal</th>
         <th>hat_diag</th>
         <th>standard_resid</th>
         <th>student_resid</th>
       </tr>
     </thead>
     <tbody>
       <tr>
         <th>0</th>
         <td>-0.016406</td>
         <td>-0.234566</td>
         <td>-0.045095</td>
         <td>-0.121513</td>
         <td>-0.149026</td>
         <td>0.211057</td>
         <td>0.013388</td>
         <td>0.140840</td>
         <td>1.014472</td>
         <td>0.992915</td>
         <td>0.424537</td>
         <td>1.156014</td>
         <td>1.181112</td>
       </tr>
       <tr>
         <th>1</th>
         <td>-0.020608</td>
         <td>-0.289091</td>
         <td>0.124453</td>
         <td>0.156964</td>
         <td>0.287700</td>
         <td>-0.161890</td>
         <td>0.025958</td>
         <td>0.040561</td>
         <td>-0.508591</td>
         <td>-0.532850</td>
         <td>0.564978</td>
         <td>-0.467568</td>
         <td>-0.446281</td>
       </tr>
       <tr>
         <th>2</th>
         <td>-0.008382</td>
         <td>0.007161</td>
         <td>-0.016799</td>
         <td>0.009575</td>
         <td>0.002227</td>
         <td>0.014871</td>
         <td>0.008103</td>
         <td>0.002930</td>
         <td>0.135299</td>
         <td>0.143218</td>
         <td>0.362075</td>
         <td>0.190101</td>
         <td>0.179590</td>
       </tr>
       <tr>
         <th>3</th>
         <td>0.018093</td>
         <td>0.907968</td>
         <td>-0.500022</td>
         <td>-0.495996</td>
         <td>0.089996</td>
         <td>0.711142</td>
         <td>-0.040056</td>
         <td>0.244193</td>
         <td>-1.495156</td>
         <td>-1.307421</td>
         <td>0.372228</td>
         <td>-1.697900</td>
         <td>-1.941705</td>
       </tr>
       <tr>
         <th>4</th>
         <td>1.871260</td>
         <td>-0.219351</td>
         <td>1.611418</td>
         <td>1.561520</td>
         <td>1.169337</td>
         <td>-1.081513</td>
         <td>-1.864186</td>
         <td>0.613917</td>
         <td>2.333153</td>
         <td>2.073021</td>
         <td>0.615511</td>
         <td>1.638429</td>
         <td>1.844027</td>
       </tr>
     </tbody>
   </table>
   </div>
   </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>Now plot the reiduals within the groups separately:</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[10]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">resid</span> <span class="o">=</span> <span class="n">lm</span><span class="o">.</span><span class="n">resid</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">));</span>
   <span class="k">for</span> <span class="n">values</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_groups</span><span class="p">:</span>
       <span class="n">i</span><span class="p">,</span><span class="n">j</span> <span class="o">=</span> <span class="n">values</span>
       <span class="n">group_num</span> <span class="o">=</span> <span class="n">i</span><span class="o">*</span><span class="mi">2</span> <span class="o">+</span> <span class="n">j</span> <span class="o">-</span> <span class="mi">1</span>  <span class="c1"># for plotting purposes</span>
       <span class="n">x</span> <span class="o">=</span> <span class="p">[</span><span class="n">group_num</span><span class="p">]</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">group</span><span class="p">)</span>
       <span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">resid</span><span class="p">[</span><span class="n">group</span><span class="o">.</span><span class="n">index</span><span class="p">],</span> <span class="n">marker</span><span class="o">=</span><span class="n">symbols</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span>
               <span class="n">s</span><span class="o">=</span><span class="mi">144</span><span class="p">,</span> <span class="n">edgecolors</span><span class="o">=</span><span class="s1">&#39;black&#39;</span><span class="p">)</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">);</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Residuals&#39;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-389-1f49e6986775&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>resid <span class="ansiblue">=</span> lm<span class="ansiblue">.</span>resid<span class="ansiblue"></span>
   <span class="ansigreen">      2</span> plt<span class="ansiblue">.</span>figure<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">6</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue">;</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> <span class="ansigreen">for</span> values<span class="ansiblue">,</span> group <span class="ansigreen">in</span> factor_groups<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span>     i<span class="ansiblue">,</span>j <span class="ansiblue">=</span> values<span class="ansiblue"></span>
   <span class="ansigreen">      5</span>     group_num <span class="ansiblue">=</span> i<span class="ansiblue">*</span><span class="ansicyan">2</span> <span class="ansiblue">+</span> j <span class="ansiblue">-</span> <span class="ansicyan">1</span>  <span class="ansired"># for plotting purposes</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;lm&apos; is not defined</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>Now we will test some interactions using anova or f_test</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[11]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">interX_lm</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s2">&quot;S ~ C(E) * X + C(M)&quot;</span><span class="p">,</span> <span class="n">salary_table</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="k">print</span><span class="p">(</span><span class="n">interX_lm</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-390-1875cf9774f0&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>interX_lm <span class="ansiblue">=</span> ols<span class="ansiblue">(</span><span class="ansiblue">&quot;S ~ C(E) * X + C(M)&quot;</span><span class="ansiblue">,</span> salary_table<span class="ansiblue">)</span><span class="ansiblue">.</span>fit<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>interX_lm<span class="ansiblue">.</span>summary<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;salary_table&apos; is not defined</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>Do an ANOVA check</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[12]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="kn">from</span> <span class="nn">statsmodels.stats.api</span> <span class="kn">import</span> <span class="n">anova_lm</span>
   
   <span class="n">table1</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">lm</span><span class="p">,</span> <span class="n">interX_lm</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="n">table1</span><span class="p">)</span>
   
   <span class="n">interM_lm</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s2">&quot;S ~ X + C(E)*C(M)&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">salary_table</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="k">print</span><span class="p">(</span><span class="n">interM_lm</span><span class="o">.</span><span class="n">summary</span><span class="p">())</span>
   
   <span class="n">table2</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">lm</span><span class="p">,</span> <span class="n">interM_lm</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="n">table2</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-391-0c9af2b17bde&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> <span class="ansigreen">from</span> statsmodels<span class="ansiblue">.</span>stats<span class="ansiblue">.</span>api <span class="ansigreen">import</span> anova_lm<span class="ansiblue"></span>
   <span class="ansigreen">      2</span> <span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 3</span><span class="ansired"> </span>table1 <span class="ansiblue">=</span> anova_lm<span class="ansiblue">(</span>lm<span class="ansiblue">,</span> interX_lm<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>table1<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      5</span> <span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;lm&apos; is not defined</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>The design matrix as a DataFrame</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[13]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">interM_lm</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">orig_exog</span><span class="p">[:</span><span class="mi">5</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-392-54036886e7c2&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>interM_lm<span class="ansiblue">.</span>model<span class="ansiblue">.</span>data<span class="ansiblue">.</span>orig_exog<span class="ansiblue">[</span><span class="ansiblue">:</span><span class="ansicyan">5</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;interM_lm&apos; is not defined</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>The design matrix as an ndarray</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[14]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">interM_lm</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">exog</span>
   <span class="n">interM_lm</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">exog_names</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-393-f8ee67f5a751&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>interM_lm<span class="ansiblue">.</span>model<span class="ansiblue">.</span>exog<span class="ansiblue"></span>
   <span class="ansigreen">      2</span> interM_lm<span class="ansiblue">.</span>model<span class="ansiblue">.</span>exog_names<span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;interM_lm&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[15]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">infl</span> <span class="o">=</span> <span class="n">interM_lm</span><span class="o">.</span><span class="n">get_influence</span><span class="p">()</span>
   <span class="n">resid</span> <span class="o">=</span> <span class="n">infl</span><span class="o">.</span><span class="n">resid_studentized_internal</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
   <span class="k">for</span> <span class="n">values</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_groups</span><span class="p">:</span>
       <span class="n">i</span><span class="p">,</span><span class="n">j</span> <span class="o">=</span> <span class="n">values</span>
       <span class="n">idx</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">index</span>
       <span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">X</span><span class="p">[</span><span class="n">idx</span><span class="p">],</span> <span class="n">resid</span><span class="p">[</span><span class="n">idx</span><span class="p">],</span> <span class="n">marker</span><span class="o">=</span><span class="n">symbols</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span>
               <span class="n">s</span><span class="o">=</span><span class="mi">144</span><span class="p">,</span> <span class="n">edgecolors</span><span class="o">=</span><span class="s1">&#39;black&#39;</span><span class="p">)</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;X&#39;</span><span class="p">);</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;standardized resids&#39;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-394-b9ade982a4ac&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>infl <span class="ansiblue">=</span> interM_lm<span class="ansiblue">.</span>get_influence<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> resid <span class="ansiblue">=</span> infl<span class="ansiblue">.</span>resid_studentized_internal<span class="ansiblue"></span>
   <span class="ansigreen">      3</span> plt<span class="ansiblue">.</span>figure<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">6</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span> <span class="ansigreen">for</span> values<span class="ansiblue">,</span> group <span class="ansigreen">in</span> factor_groups<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">      5</span>     i<span class="ansiblue">,</span>j <span class="ansiblue">=</span> values<span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;interM_lm&apos; is not defined</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>Looks like one observation is an outlier.</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[16]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">drop_idx</span> <span class="o">=</span> <span class="nb">abs</span><span class="p">(</span><span class="n">resid</span><span class="p">)</span><span class="o">.</span><span class="n">argmax</span><span class="p">()</span>
   <span class="k">print</span><span class="p">(</span><span class="n">drop_idx</span><span class="p">)</span>  <span class="c1"># zero-based index</span>
   <span class="n">idx</span> <span class="o">=</span> <span class="n">salary_table</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">drop</span><span class="p">(</span><span class="n">drop_idx</span><span class="p">)</span>
   
   <span class="n">lm32</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;S ~ C(E) + X + C(M)&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">salary_table</span><span class="p">,</span> <span class="n">subset</span><span class="o">=</span><span class="n">idx</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   
   <span class="k">print</span><span class="p">(</span><span class="n">lm32</span><span class="o">.</span><span class="n">summary</span><span class="p">())</span>
   <span class="k">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
   
   <span class="n">interX_lm32</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;S ~ C(E) * X + C(M)&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">salary_table</span><span class="p">,</span> <span class="n">subset</span><span class="o">=</span><span class="n">idx</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   
   <span class="k">print</span><span class="p">(</span><span class="n">interX_lm32</span><span class="o">.</span><span class="n">summary</span><span class="p">())</span>
   <span class="k">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
   
   
   <span class="n">table3</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">lm32</span><span class="p">,</span> <span class="n">interX_lm32</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="n">table3</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
   
   
   <span class="n">interM_lm32</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;S ~ X + C(E) * C(M)&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">salary_table</span><span class="p">,</span> <span class="n">subset</span><span class="o">=</span><span class="n">idx</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   
   <span class="n">table4</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">lm32</span><span class="p">,</span> <span class="n">interM_lm32</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="n">table4</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</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>
   226
   
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-395-a8a74da84db4&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> drop_idx <span class="ansiblue">=</span> abs<span class="ansiblue">(</span>resid<span class="ansiblue">)</span><span class="ansiblue">.</span>argmax<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>drop_idx<span class="ansiblue">)</span>  <span class="ansired"># zero-based index</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 3</span><span class="ansired"> </span>idx <span class="ansiblue">=</span> salary_table<span class="ansiblue">.</span>index<span class="ansiblue">.</span>drop<span class="ansiblue">(</span>drop_idx<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span> <span class="ansiblue"></span>
   <span class="ansigreen">      5</span> lm32 <span class="ansiblue">=</span> ols<span class="ansiblue">(</span><span class="ansiblue">&apos;S ~ C(E) + X + C(M)&apos;</span><span class="ansiblue">,</span> data<span class="ansiblue">=</span>salary_table<span class="ansiblue">,</span> subset<span class="ansiblue">=</span>idx<span class="ansiblue">)</span><span class="ansiblue">.</span>fit<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;salary_table&apos; is not defined</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> Replot the residuals</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[17]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="k">try</span><span class="p">:</span>
       <span class="n">resid</span> <span class="o">=</span> <span class="n">interM_lm32</span><span class="o">.</span><span class="n">get_influence</span><span class="p">()</span><span class="o">.</span><span class="n">summary_frame</span><span class="p">()[</span><span class="s1">&#39;standard_resid&#39;</span><span class="p">]</span>
   <span class="k">except</span><span class="p">:</span>
       <span class="n">resid</span> <span class="o">=</span> <span class="n">interM_lm32</span><span class="o">.</span><span class="n">get_influence</span><span class="p">()</span><span class="o">.</span><span class="n">summary_frame</span><span class="p">()[</span><span class="s1">&#39;standard_resid&#39;</span><span class="p">]</span>
   
   <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
   <span class="k">for</span> <span class="n">values</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_groups</span><span class="p">:</span>
       <span class="n">i</span><span class="p">,</span><span class="n">j</span> <span class="o">=</span> <span class="n">values</span>
       <span class="n">idx</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">index</span>
       <span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">X</span><span class="p">[</span><span class="n">idx</span><span class="p">],</span> <span class="n">resid</span><span class="p">[</span><span class="n">idx</span><span class="p">],</span> <span class="n">marker</span><span class="o">=</span><span class="n">symbols</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span>
               <span class="n">s</span><span class="o">=</span><span class="mi">144</span><span class="p">,</span> <span class="n">edgecolors</span><span class="o">=</span><span class="s1">&#39;black&#39;</span><span class="p">)</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;X[~[32]]&#39;</span><span class="p">);</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;standardized resids&#39;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-396-b457d7767b76&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      2</span>     resid <span class="ansiblue">=</span> interM_lm32<span class="ansiblue">.</span>get_influence<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">.</span>summary_frame<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">[</span><span class="ansiblue">&apos;standard_resid&apos;</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> <span class="ansigreen">except</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 4</span><span class="ansired">     </span>resid <span class="ansiblue">=</span> interM_lm32<span class="ansiblue">.</span>get_influence<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">.</span>summary_frame<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">[</span><span class="ansiblue">&apos;standard_resid&apos;</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   <span class="ansigreen">      5</span> <span class="ansiblue"></span>
   <span class="ansigreen">      6</span> plt<span class="ansiblue">.</span>figure<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">6</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;interM_lm32&apos; is not defined</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> Plot the fitted values</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[18]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">lm_final</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;S ~ X + C(E)*C(M)&#39;</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">salary_table</span><span class="o">.</span><span class="n">drop</span><span class="p">([</span><span class="n">drop_idx</span><span class="p">]))</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="n">mf</span> <span class="o">=</span> <span class="n">lm_final</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">orig_exog</span>
   <span class="n">lstyle</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;-&#39;</span><span class="p">,</span><span class="s1">&#39;--&#39;</span><span class="p">]</span>
   
   <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
   <span class="k">for</span> <span class="n">values</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_groups</span><span class="p">:</span>
       <span class="n">i</span><span class="p">,</span><span class="n">j</span> <span class="o">=</span> <span class="n">values</span>
       <span class="n">idx</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">index</span>
       <span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">X</span><span class="p">[</span><span class="n">idx</span><span class="p">],</span> <span class="n">S</span><span class="p">[</span><span class="n">idx</span><span class="p">],</span> <span class="n">marker</span><span class="o">=</span><span class="n">symbols</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span>
                   <span class="n">s</span><span class="o">=</span><span class="mi">144</span><span class="p">,</span> <span class="n">edgecolors</span><span class="o">=</span><span class="s1">&#39;black&#39;</span><span class="p">)</span>
       <span class="c1"># drop NA because there is no idx 32 in the final model</span>
       <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">mf</span><span class="o">.</span><span class="n">X</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span><span class="o">.</span><span class="n">dropna</span><span class="p">(),</span> <span class="n">lm_final</span><span class="o">.</span><span class="n">fittedvalues</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span><span class="o">.</span><span class="n">dropna</span><span class="p">(),</span>
               <span class="n">ls</span><span class="o">=</span><span class="n">lstyle</span><span class="p">[</span><span class="n">j</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Experience&#39;</span><span class="p">);</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Salary&#39;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-397-25e9e43f896a&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>lm_final <span class="ansiblue">=</span> ols<span class="ansiblue">(</span><span class="ansiblue">&apos;S ~ X + C(E)*C(M)&apos;</span><span class="ansiblue">,</span> data <span class="ansiblue">=</span> salary_table<span class="ansiblue">.</span>drop<span class="ansiblue">(</span><span class="ansiblue">[</span>drop_idx<span class="ansiblue">]</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue">.</span>fit<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> mf <span class="ansiblue">=</span> lm_final<span class="ansiblue">.</span>model<span class="ansiblue">.</span>data<span class="ansiblue">.</span>orig_exog<span class="ansiblue"></span>
   <span class="ansigreen">      3</span> lstyle <span class="ansiblue">=</span> <span class="ansiblue">[</span><span class="ansiblue">&apos;-&apos;</span><span class="ansiblue">,</span><span class="ansiblue">&apos;--&apos;</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span> <span class="ansiblue"></span>
   <span class="ansigreen">      5</span> plt<span class="ansiblue">.</span>figure<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">6</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;salary_table&apos; is not defined</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>From our first look at the data, the difference between Master&#39;s and PhD in the management group is different than in the non-management group. This is an interaction between the two qualitative variables management,M and education,E. We can visualize this by first removing the effect of experience, then plotting the means within each of the 6 groups using interaction.plot.</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[19]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">U</span> <span class="o">=</span> <span class="n">S</span> <span class="o">-</span> <span class="n">X</span> <span class="o">*</span> <span class="n">interX_lm32</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;X&#39;</span><span class="p">]</span>
   
   <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
   <span class="n">interaction_plot</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">M</span><span class="p">,</span> <span class="n">U</span><span class="p">,</span> <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;red&#39;</span><span class="p">,</span><span class="s1">&#39;blue&#39;</span><span class="p">],</span> <span class="n">markers</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;^&#39;</span><span class="p">,</span><span class="s1">&#39;D&#39;</span><span class="p">],</span>
           <span class="n">markersize</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">plt</span><span class="o">.</span><span class="n">gca</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-398-1bfcb96c9336&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>U <span class="ansiblue">=</span> S <span class="ansiblue">-</span> X <span class="ansiblue">*</span> interX_lm32<span class="ansiblue">.</span>params<span class="ansiblue">[</span><span class="ansiblue">&apos;X&apos;</span><span class="ansiblue">]</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> <span class="ansiblue"></span>
   <span class="ansigreen">      3</span> plt<span class="ansiblue">.</span>figure<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">6</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span> interaction_plot(E, M, U, colors=[&apos;red&apos;,&apos;blue&apos;], markers=[&apos;^&apos;,&apos;D&apos;],
   <span class="ansigreen">      5</span>         markersize=10, ax=plt.gca())
   
   <span class="ansired">NameError</span>: name &apos;S&apos; is not defined</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="minority-employment-data">Minority Employment Data</h2>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[20]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="k">try</span><span class="p">:</span>
       <span class="n">minority_table</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_table</span><span class="p">(</span><span class="s1">&#39;minority.table&#39;</span><span class="p">)</span>
   <span class="k">except</span><span class="p">:</span>  <span class="c1"># don&#39;t have data already</span>
       <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;http://stats191.stanford.edu/data/minority.table&#39;</span>
       <span class="n">minority_table</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_table</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
   
   <span class="n">factor_group</span> <span class="o">=</span> <span class="n">minority_table</span><span class="o">.</span><span class="n">groupby</span><span class="p">([</span><span class="s1">&#39;ETHN&#39;</span><span class="p">])</span>
   
   <span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
   <span class="n">colors</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;purple&#39;</span><span class="p">,</span> <span class="s1">&#39;green&#39;</span><span class="p">]</span>
   <span class="n">markers</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;o&#39;</span><span class="p">,</span> <span class="s1">&#39;v&#39;</span><span class="p">]</span>
   <span class="k">for</span> <span class="n">factor</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_group</span><span class="p">:</span>
       <span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">group</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">],</span> <span class="n">group</span><span class="p">[</span><span class="s1">&#39;JPERF&#39;</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span>
                   <span class="n">marker</span><span class="o">=</span><span class="n">markers</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span> <span class="n">s</span><span class="o">=</span><span class="mi">12</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
   <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">&#39;TEST&#39;</span><span class="p">);</span>
   <span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;JPERF&#39;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">URLError</span>                                  Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-399-83c26c0c5424&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      3</span> <span class="ansigreen">except</span><span class="ansiblue">:</span>  <span class="ansired"># don&apos;t have data already</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span>     url <span class="ansiblue">=</span> <span class="ansiblue">&apos;http://stats191.stanford.edu/data/minority.table&apos;</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 5</span><span class="ansired">     </span>minority_table <span class="ansiblue">=</span> pd<span class="ansiblue">.</span>read_table<span class="ansiblue">(</span>url<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      6</span> <span class="ansiblue"></span>
   <span class="ansigreen">      7</span> factor_group <span class="ansiblue">=</span> minority_table<span class="ansiblue">.</span>groupby<span class="ansiblue">(</span><span class="ansiblue">[</span><span class="ansiblue">&apos;ETHN&apos;</span><span class="ansiblue">]</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/pandas/io/parsers.pyc</span> in <span class="ansicyan">parser_f</span><span class="ansiblue">(filepath_or_buffer, sep, dialect, compression, doublequote, escapechar, quotechar, quoting, skipinitialspace, lineterminator, header, index_col, names, prefix, skiprows, skipfooter, skip_footer, na_values, true_values, false_values, delimiter, converters, dtype, usecols, engine, delim_whitespace, as_recarray, na_filter, compact_ints, use_unsigned, low_memory, buffer_lines, warn_bad_lines, error_bad_lines, keep_default_na, thousands, comment, decimal, parse_dates, keep_date_col, dayfirst, date_parser, memory_map, float_precision, nrows, iterator, chunksize, verbose, encoding, squeeze, mangle_dupe_cols, tupleize_cols, infer_datetime_format, skip_blank_lines)</span>
   <span class="ansigreen">    496</span>                     skip_blank_lines=skip_blank_lines)
   <span class="ansigreen">    497</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 498</span><span class="ansired">         </span><span class="ansigreen">return</span> _read<span class="ansiblue">(</span>filepath_or_buffer<span class="ansiblue">,</span> kwds<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    499</span> <span class="ansiblue"></span>
   <span class="ansigreen">    500</span>     parser_f<span class="ansiblue">.</span>__name__ <span class="ansiblue">=</span> name<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/pandas/io/parsers.pyc</span> in <span class="ansicyan">_read</span><span class="ansiblue">(filepath_or_buffer, kwds)</span>
   <span class="ansigreen">    260</span>     filepath_or_buffer, _, compression = get_filepath_or_buffer(filepath_or_buffer,
   <span class="ansigreen">    261</span>                                                                 encoding<span class="ansiblue">,</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 262</span><span class="ansired">                                                                 compression=kwds.get(&apos;compression&apos;, None))
   </span><span class="ansigreen">    263</span>     kwds<span class="ansiblue">[</span><span class="ansiblue">&apos;compression&apos;</span><span class="ansiblue">]</span> <span class="ansiblue">=</span> inferred_compression <span class="ansigreen">if</span> compression <span class="ansiblue">==</span> <span class="ansiblue">&apos;infer&apos;</span> <span class="ansigreen">else</span> compression<span class="ansiblue"></span>
   <span class="ansigreen">    264</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/pandas/io/common.pyc</span> in <span class="ansicyan">get_filepath_or_buffer</span><span class="ansiblue">(filepath_or_buffer, encoding, compression)</span>
   <span class="ansigreen">    256</span> <span class="ansiblue"></span>
   <span class="ansigreen">    257</span>     <span class="ansigreen">if</span> _is_url<span class="ansiblue">(</span>filepath_or_buffer<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 258</span><span class="ansired">         </span>req <span class="ansiblue">=</span> _urlopen<span class="ansiblue">(</span>str<span class="ansiblue">(</span>filepath_or_buffer<span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    259</span>         <span class="ansigreen">if</span> compression <span class="ansiblue">==</span> <span class="ansiblue">&apos;infer&apos;</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    260</span>             content_encoding <span class="ansiblue">=</span> req<span class="ansiblue">.</span>headers<span class="ansiblue">.</span>get<span class="ansiblue">(</span><span class="ansiblue">&apos;Content-Encoding&apos;</span><span class="ansiblue">,</span> None<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">urlopen</span><span class="ansiblue">(url, data, timeout, cafile, capath, cadefault, context)</span>
   <span class="ansigreen">    152</span>     <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    153</span>         opener <span class="ansiblue">=</span> _opener<span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 154</span><span class="ansired">     </span><span class="ansigreen">return</span> opener<span class="ansiblue">.</span>open<span class="ansiblue">(</span>url<span class="ansiblue">,</span> data<span class="ansiblue">,</span> timeout<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    155</span> <span class="ansiblue"></span>
   <span class="ansigreen">    156</span> <span class="ansigreen">def</span> install_opener<span class="ansiblue">(</span>opener<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">open</span><span class="ansiblue">(self, fullurl, data, timeout)</span>
   <span class="ansigreen">    427</span>             req <span class="ansiblue">=</span> meth<span class="ansiblue">(</span>req<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    428</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 429</span><span class="ansired">         </span>response <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_open<span class="ansiblue">(</span>req<span class="ansiblue">,</span> data<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    430</span> <span class="ansiblue"></span>
   <span class="ansigreen">    431</span>         <span class="ansired"># post-process response</span><span class="ansiblue"></span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">_open</span><span class="ansiblue">(self, req, data)</span>
   <span class="ansigreen">    445</span>         protocol <span class="ansiblue">=</span> req<span class="ansiblue">.</span>get_type<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    446</span>         result = self._call_chain(self.handle_open, protocol, protocol +
   <span class="ansigreen">--&gt; 447</span><span class="ansired">                                   &apos;_open&apos;, req)
   </span><span class="ansigreen">    448</span>         <span class="ansigreen">if</span> result<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    449</span>             <span class="ansigreen">return</span> result<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">_call_chain</span><span class="ansiblue">(self, chain, kind, meth_name, *args)</span>
   <span class="ansigreen">    405</span>             func <span class="ansiblue">=</span> getattr<span class="ansiblue">(</span>handler<span class="ansiblue">,</span> meth_name<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    406</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 407</span><span class="ansired">             </span>result <span class="ansiblue">=</span> func<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    408</span>             <span class="ansigreen">if</span> result <span class="ansigreen">is</span> <span class="ansigreen">not</span> None<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    409</span>                 <span class="ansigreen">return</span> result<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">http_open</span><span class="ansiblue">(self, req)</span>
   <span class="ansigreen">   1226</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1227</span>     <span class="ansigreen">def</span> http_open<span class="ansiblue">(</span>self<span class="ansiblue">,</span> req<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1228</span><span class="ansired">         </span><span class="ansigreen">return</span> self<span class="ansiblue">.</span>do_open<span class="ansiblue">(</span>httplib<span class="ansiblue">.</span>HTTPConnection<span class="ansiblue">,</span> req<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1229</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1230</span>     http_request <span class="ansiblue">=</span> AbstractHTTPHandler<span class="ansiblue">.</span>do_request_<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">do_open</span><span class="ansiblue">(self, http_class, req, **http_conn_args)</span>
   <span class="ansigreen">   1196</span>         <span class="ansigreen">except</span> socket<span class="ansiblue">.</span>error<span class="ansiblue">,</span> err<span class="ansiblue">:</span> <span class="ansired"># XXX what error?</span><span class="ansiblue"></span>
   <span class="ansigreen">   1197</span>             h<span class="ansiblue">.</span>close<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1198</span><span class="ansired">             </span><span class="ansigreen">raise</span> URLError<span class="ansiblue">(</span>err<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1199</span>         <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   1200</span>             <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansired">URLError</span>: &lt;urlopen error [Errno -2] Name or service not known&gt;</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[21]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">min_lm</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;JPERF ~ TEST&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">minority_table</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="k">print</span><span class="p">(</span><span class="n">min_lm</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-400-9d22ebbe63c2&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>min_lm <span class="ansiblue">=</span> ols<span class="ansiblue">(</span><span class="ansiblue">&apos;JPERF ~ TEST&apos;</span><span class="ansiblue">,</span> data<span class="ansiblue">=</span>minority_table<span class="ansiblue">)</span><span class="ansiblue">.</span>fit<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>min_lm<span class="ansiblue">.</span>summary<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;minority_table&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[22]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">));</span>
   <span class="k">for</span> <span class="n">factor</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_group</span><span class="p">:</span>
       <span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">group</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">],</span> <span class="n">group</span><span class="p">[</span><span class="s1">&#39;JPERF&#39;</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span>
                   <span class="n">marker</span><span class="o">=</span><span class="n">markers</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span> <span class="n">s</span><span class="o">=</span><span class="mi">12</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
   
   <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">&#39;TEST&#39;</span><span class="p">)</span>
   <span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;JPERF&#39;</span><span class="p">)</span>
   <span class="n">fig</span> <span class="o">=</span> <span class="n">abline_plot</span><span class="p">(</span><span class="n">model_results</span> <span class="o">=</span> <span class="n">min_lm</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-401-d9e4c8602668&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> fig<span class="ansiblue">,</span> ax <span class="ansiblue">=</span> plt<span class="ansiblue">.</span>subplots<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">6</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue">;</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 2</span><span class="ansired"> </span><span class="ansigreen">for</span> factor<span class="ansiblue">,</span> group <span class="ansigreen">in</span> factor_group<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span>     ax.scatter(group[&apos;TEST&apos;], group[&apos;JPERF&apos;], color=colors[factor],
   <span class="ansigreen">      4</span>                 marker=markers[factor], s=12**2)
   <span class="ansigreen">      5</span> <span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;factor_group&apos; is not defined</pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>
   Error in callback &lt;function post_execute at 0x7fb786441500&gt; (for post_execute):
   
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">RuntimeError</span>                              Traceback (most recent call last)
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/pyplot.pyc</span> in <span class="ansicyan">post_execute</span><span class="ansiblue">()</span>
   <span class="ansigreen">    145</span>             <span class="ansigreen">def</span> post_execute<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    146</span>                 <span class="ansigreen">if</span> matplotlib<span class="ansiblue">.</span>is_interactive<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 147</span><span class="ansired">                     </span>draw_all<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    148</span> <span class="ansiblue"></span>
   <span class="ansigreen">    149</span>             <span class="ansired"># IPython &gt;= 2</span><span class="ansiblue"></span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/_pylab_helpers.pyc</span> in <span class="ansicyan">draw_all</span><span class="ansiblue">(cls, force)</span>
   <span class="ansigreen">    148</span>         <span class="ansigreen">for</span> f_mgr <span class="ansigreen">in</span> cls<span class="ansiblue">.</span>get_all_fig_managers<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    149</span>             <span class="ansigreen">if</span> force <span class="ansigreen">or</span> f_mgr<span class="ansiblue">.</span>canvas<span class="ansiblue">.</span>figure<span class="ansiblue">.</span>stale<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 150</span><span class="ansired">                 </span>f_mgr<span class="ansiblue">.</span>canvas<span class="ansiblue">.</span>draw_idle<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    151</span> <span class="ansiblue"></span>
   <span class="ansigreen">    152</span> atexit<span class="ansiblue">.</span>register<span class="ansiblue">(</span>Gcf<span class="ansiblue">.</span>destroy_all<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backend_bases.pyc</span> in <span class="ansicyan">draw_idle</span><span class="ansiblue">(self, *args, **kwargs)</span>
   <span class="ansigreen">   2024</span>         <span class="ansigreen">if</span> <span class="ansigreen">not</span> self<span class="ansiblue">.</span>_is_idle_drawing<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   2025</span>             <span class="ansigreen">with</span> self<span class="ansiblue">.</span>_idle_draw_cntx<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 2026</span><span class="ansired">                 </span>self<span class="ansiblue">.</span>draw<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   2027</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2028</span>     <span class="ansigreen">def</span> draw_cursor<span class="ansiblue">(</span>self<span class="ansiblue">,</span> event<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self)</span>
   <span class="ansigreen">    472</span> <span class="ansiblue"></span>
   <span class="ansigreen">    473</span>         <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 474</span><span class="ansired">             </span>self<span class="ansiblue">.</span>figure<span class="ansiblue">.</span>draw<span class="ansiblue">(</span>self<span class="ansiblue">.</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    475</span>         <span class="ansigreen">finally</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    476</span>             RendererAgg<span class="ansiblue">.</span>lock<span class="ansiblue">.</span>release<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/figure.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer)</span>
   <span class="ansigreen">   1157</span>         dsu<span class="ansiblue">.</span>sort<span class="ansiblue">(</span>key<span class="ansiblue">=</span>itemgetter<span class="ansiblue">(</span><span class="ansicyan">0</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1158</span>         <span class="ansigreen">for</span> zorder<span class="ansiblue">,</span> a<span class="ansiblue">,</span> func<span class="ansiblue">,</span> args <span class="ansigreen">in</span> dsu<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1159</span><span class="ansired">             </span>func<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1160</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1161</span>         renderer<span class="ansiblue">.</span>close_group<span class="ansiblue">(</span><span class="ansiblue">&apos;figure&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axes/_base.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer, inframe)</span>
   <span class="ansigreen">   2322</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2323</span>         <span class="ansigreen">for</span> zorder<span class="ansiblue">,</span> a <span class="ansigreen">in</span> dsu<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 2324</span><span class="ansired">             </span>a<span class="ansiblue">.</span>draw<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   2325</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2326</span>         renderer<span class="ansiblue">.</span>close_group<span class="ansiblue">(</span><span class="ansiblue">&apos;axes&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axis.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer, *args, **kwargs)</span>
   <span class="ansigreen">   1106</span>         ticks_to_draw <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_update_ticks<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1107</span>         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   <span class="ansigreen">-&gt; 1108</span><span class="ansired">                                                                 renderer)
   </span><span class="ansigreen">   1109</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1110</span>         <span class="ansigreen">for</span> tick <span class="ansigreen">in</span> ticks_to_draw<span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axis.pyc</span> in <span class="ansicyan">_get_tick_bboxes</span><span class="ansiblue">(self, ticks, renderer)</span>
   <span class="ansigreen">   1056</span>         <span class="ansigreen">for</span> tick <span class="ansigreen">in</span> ticks<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   1057</span>             <span class="ansigreen">if</span> tick<span class="ansiblue">.</span>label1On <span class="ansigreen">and</span> tick<span class="ansiblue">.</span>label1<span class="ansiblue">.</span>get_visible<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1058</span><span class="ansired">                 </span>extent <span class="ansiblue">=</span> tick<span class="ansiblue">.</span>label1<span class="ansiblue">.</span>get_window_extent<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1059</span>                 ticklabelBoxes<span class="ansiblue">.</span>append<span class="ansiblue">(</span>extent<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1060</span>             <span class="ansigreen">if</span> tick<span class="ansiblue">.</span>label2On <span class="ansigreen">and</span> tick<span class="ansiblue">.</span>label2<span class="ansiblue">.</span>get_visible<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/text.pyc</span> in <span class="ansicyan">get_window_extent</span><span class="ansiblue">(self, renderer, dpi)</span>
   <span class="ansigreen">    959</span>             <span class="ansigreen">raise</span> RuntimeError<span class="ansiblue">(</span><span class="ansiblue">&apos;Cannot get window extent w/o renderer&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    960</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 961</span><span class="ansired">         </span>bbox<span class="ansiblue">,</span> info<span class="ansiblue">,</span> descent <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_get_layout<span class="ansiblue">(</span>self<span class="ansiblue">.</span>_renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    962</span>         x<span class="ansiblue">,</span> y <span class="ansiblue">=</span> self<span class="ansiblue">.</span>get_unitless_position<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    963</span>         x<span class="ansiblue">,</span> y <span class="ansiblue">=</span> self<span class="ansiblue">.</span>get_transform<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">.</span>transform_point<span class="ansiblue">(</span><span class="ansiblue">(</span>x<span class="ansiblue">,</span> y<span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/text.pyc</span> in <span class="ansicyan">_get_layout</span><span class="ansiblue">(self, renderer)</span>
   <span class="ansigreen">    350</span>         tmp, lp_h, lp_bl = renderer.get_text_width_height_descent(&apos;lp&apos;,
   <span class="ansigreen">    351</span>                                                          self<span class="ansiblue">.</span>_fontproperties<span class="ansiblue">,</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 352</span><span class="ansired">                                                          ismath=False)
   </span><span class="ansigreen">    353</span>         offsety <span class="ansiblue">=</span> <span class="ansiblue">(</span>lp_h <span class="ansiblue">-</span> lp_bl<span class="ansiblue">)</span> <span class="ansiblue">*</span> self<span class="ansiblue">.</span>_linespacing<span class="ansiblue"></span>
   <span class="ansigreen">    354</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.pyc</span> in <span class="ansicyan">get_text_width_height_descent</span><span class="ansiblue">(self, s, prop, ismath)</span>
   <span class="ansigreen">    227</span>             fontsize <span class="ansiblue">=</span> prop<span class="ansiblue">.</span>get_size_in_points<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    228</span>             w, h, d = texmanager.get_text_width_height_descent(s, fontsize,
   <span class="ansigreen">--&gt; 229</span><span class="ansired">                                                                renderer=self)
   </span><span class="ansigreen">    230</span>             <span class="ansigreen">return</span> w<span class="ansiblue">,</span> h<span class="ansiblue">,</span> d<span class="ansiblue"></span>
   <span class="ansigreen">    231</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/texmanager.pyc</span> in <span class="ansicyan">get_text_width_height_descent</span><span class="ansiblue">(self, tex, fontsize, renderer)</span>
   <span class="ansigreen">    673</span>         <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    674</span>             <span class="ansired"># use dviread. It sometimes returns a wrong descent.</span><span class="ansiblue"></span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 675</span><span class="ansired">             </span>dvifile <span class="ansiblue">=</span> self<span class="ansiblue">.</span>make_dvi<span class="ansiblue">(</span>tex<span class="ansiblue">,</span> fontsize<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    676</span>             dvi <span class="ansiblue">=</span> dviread<span class="ansiblue">.</span>Dvi<span class="ansiblue">(</span>dvifile<span class="ansiblue">,</span> <span class="ansicyan">72</span> <span class="ansiblue">*</span> dpi_fraction<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    677</span>             <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/texmanager.pyc</span> in <span class="ansicyan">make_dvi</span><span class="ansiblue">(self, tex, fontsize)</span>
   <span class="ansigreen">    420</span>                      <span class="ansiblue">&apos;string:\n%s\nHere is the full report generated by &apos;</span><span class="ansiblue"></span>
   <span class="ansigreen">    421</span>                      <span class="ansiblue">&apos;LaTeX: \n\n&apos;</span> <span class="ansiblue">%</span> repr<span class="ansiblue">(</span>tex<span class="ansiblue">.</span>encode<span class="ansiblue">(</span><span class="ansiblue">&apos;unicode_escape&apos;</span><span class="ansiblue">)</span><span class="ansiblue">)</span> <span class="ansiblue">+</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 422</span><span class="ansired">                      report))
   </span><span class="ansigreen">    423</span>             <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    424</span>                 mpl<span class="ansiblue">.</span>verbose<span class="ansiblue">.</span>report<span class="ansiblue">(</span>report<span class="ansiblue">,</span> <span class="ansiblue">&apos;debug&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">RuntimeError</span>: LaTeX was not able to process the following string:
   &apos;lp&apos;
   Here is the full report generated by LaTeX: 
   
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   
   
   <div class="output_text output_subarea ">
   <pre>
   &lt;matplotlib.figure.Figure at 0x7fb773a65410&gt;
   </pre>
   </div>
   
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[23]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">min_lm2</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;JPERF ~ TEST + TEST:ETHN&#39;</span><span class="p">,</span>
           <span class="n">data</span><span class="o">=</span><span class="n">minority_table</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   
   <span class="k">print</span><span class="p">(</span><span class="n">min_lm2</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-402-f6a4c64c17ca&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> min_lm2 = ols(&apos;JPERF ~ TEST + TEST:ETHN&apos;,
   <span class="ansigreen">----&gt; 2</span><span class="ansired">         data=minority_table).fit()
   </span><span class="ansigreen">      3</span> <span class="ansiblue"></span>
   <span class="ansigreen">      4</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>min_lm2<span class="ansiblue">.</span>summary<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;minority_table&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[24]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">));</span>
   <span class="k">for</span> <span class="n">factor</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_group</span><span class="p">:</span>
       <span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">group</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">],</span> <span class="n">group</span><span class="p">[</span><span class="s1">&#39;JPERF&#39;</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span>
                   <span class="n">marker</span><span class="o">=</span><span class="n">markers</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span> <span class="n">s</span><span class="o">=</span><span class="mi">12</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
   
   <span class="n">fig</span> <span class="o">=</span> <span class="n">abline_plot</span><span class="p">(</span><span class="n">intercept</span> <span class="o">=</span> <span class="n">min_lm2</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;Intercept&#39;</span><span class="p">],</span>
                    <span class="n">slope</span> <span class="o">=</span> <span class="n">min_lm2</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">],</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">&#39;purple&#39;</span><span class="p">);</span>
   <span class="n">fig</span> <span class="o">=</span> <span class="n">abline_plot</span><span class="p">(</span><span class="n">intercept</span> <span class="o">=</span> <span class="n">min_lm2</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;Intercept&#39;</span><span class="p">],</span>
           <span class="n">slope</span> <span class="o">=</span> <span class="n">min_lm2</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">]</span> <span class="o">+</span> <span class="n">min_lm2</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;TEST:ETHN&#39;</span><span class="p">],</span>
           <span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">&#39;green&#39;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-403-f8432b7c2f24&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> fig<span class="ansiblue">,</span> ax <span class="ansiblue">=</span> plt<span class="ansiblue">.</span>subplots<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">6</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue">;</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 2</span><span class="ansired"> </span><span class="ansigreen">for</span> factor<span class="ansiblue">,</span> group <span class="ansigreen">in</span> factor_group<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span>     ax.scatter(group[&apos;TEST&apos;], group[&apos;JPERF&apos;], color=colors[factor],
   <span class="ansigreen">      4</span>                 marker=markers[factor], s=12**2)
   <span class="ansigreen">      5</span> <span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;factor_group&apos; is not defined</pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>
   Error in callback &lt;function post_execute at 0x7fb786441500&gt; (for post_execute):
   
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">RuntimeError</span>                              Traceback (most recent call last)
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/pyplot.pyc</span> in <span class="ansicyan">post_execute</span><span class="ansiblue">()</span>
   <span class="ansigreen">    145</span>             <span class="ansigreen">def</span> post_execute<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    146</span>                 <span class="ansigreen">if</span> matplotlib<span class="ansiblue">.</span>is_interactive<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 147</span><span class="ansired">                     </span>draw_all<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    148</span> <span class="ansiblue"></span>
   <span class="ansigreen">    149</span>             <span class="ansired"># IPython &gt;= 2</span><span class="ansiblue"></span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/_pylab_helpers.pyc</span> in <span class="ansicyan">draw_all</span><span class="ansiblue">(cls, force)</span>
   <span class="ansigreen">    148</span>         <span class="ansigreen">for</span> f_mgr <span class="ansigreen">in</span> cls<span class="ansiblue">.</span>get_all_fig_managers<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    149</span>             <span class="ansigreen">if</span> force <span class="ansigreen">or</span> f_mgr<span class="ansiblue">.</span>canvas<span class="ansiblue">.</span>figure<span class="ansiblue">.</span>stale<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 150</span><span class="ansired">                 </span>f_mgr<span class="ansiblue">.</span>canvas<span class="ansiblue">.</span>draw_idle<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    151</span> <span class="ansiblue"></span>
   <span class="ansigreen">    152</span> atexit<span class="ansiblue">.</span>register<span class="ansiblue">(</span>Gcf<span class="ansiblue">.</span>destroy_all<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backend_bases.pyc</span> in <span class="ansicyan">draw_idle</span><span class="ansiblue">(self, *args, **kwargs)</span>
   <span class="ansigreen">   2024</span>         <span class="ansigreen">if</span> <span class="ansigreen">not</span> self<span class="ansiblue">.</span>_is_idle_drawing<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   2025</span>             <span class="ansigreen">with</span> self<span class="ansiblue">.</span>_idle_draw_cntx<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 2026</span><span class="ansired">                 </span>self<span class="ansiblue">.</span>draw<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   2027</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2028</span>     <span class="ansigreen">def</span> draw_cursor<span class="ansiblue">(</span>self<span class="ansiblue">,</span> event<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self)</span>
   <span class="ansigreen">    472</span> <span class="ansiblue"></span>
   <span class="ansigreen">    473</span>         <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 474</span><span class="ansired">             </span>self<span class="ansiblue">.</span>figure<span class="ansiblue">.</span>draw<span class="ansiblue">(</span>self<span class="ansiblue">.</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    475</span>         <span class="ansigreen">finally</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    476</span>             RendererAgg<span class="ansiblue">.</span>lock<span class="ansiblue">.</span>release<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/figure.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer)</span>
   <span class="ansigreen">   1157</span>         dsu<span class="ansiblue">.</span>sort<span class="ansiblue">(</span>key<span class="ansiblue">=</span>itemgetter<span class="ansiblue">(</span><span class="ansicyan">0</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1158</span>         <span class="ansigreen">for</span> zorder<span class="ansiblue">,</span> a<span class="ansiblue">,</span> func<span class="ansiblue">,</span> args <span class="ansigreen">in</span> dsu<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1159</span><span class="ansired">             </span>func<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1160</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1161</span>         renderer<span class="ansiblue">.</span>close_group<span class="ansiblue">(</span><span class="ansiblue">&apos;figure&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axes/_base.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer, inframe)</span>
   <span class="ansigreen">   2322</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2323</span>         <span class="ansigreen">for</span> zorder<span class="ansiblue">,</span> a <span class="ansigreen">in</span> dsu<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 2324</span><span class="ansired">             </span>a<span class="ansiblue">.</span>draw<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   2325</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2326</span>         renderer<span class="ansiblue">.</span>close_group<span class="ansiblue">(</span><span class="ansiblue">&apos;axes&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axis.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer, *args, **kwargs)</span>
   <span class="ansigreen">   1106</span>         ticks_to_draw <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_update_ticks<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1107</span>         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   <span class="ansigreen">-&gt; 1108</span><span class="ansired">                                                                 renderer)
   </span><span class="ansigreen">   1109</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1110</span>         <span class="ansigreen">for</span> tick <span class="ansigreen">in</span> ticks_to_draw<span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axis.pyc</span> in <span class="ansicyan">_get_tick_bboxes</span><span class="ansiblue">(self, ticks, renderer)</span>
   <span class="ansigreen">   1056</span>         <span class="ansigreen">for</span> tick <span class="ansigreen">in</span> ticks<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   1057</span>             <span class="ansigreen">if</span> tick<span class="ansiblue">.</span>label1On <span class="ansigreen">and</span> tick<span class="ansiblue">.</span>label1<span class="ansiblue">.</span>get_visible<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1058</span><span class="ansired">                 </span>extent <span class="ansiblue">=</span> tick<span class="ansiblue">.</span>label1<span class="ansiblue">.</span>get_window_extent<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1059</span>                 ticklabelBoxes<span class="ansiblue">.</span>append<span class="ansiblue">(</span>extent<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1060</span>             <span class="ansigreen">if</span> tick<span class="ansiblue">.</span>label2On <span class="ansigreen">and</span> tick<span class="ansiblue">.</span>label2<span class="ansiblue">.</span>get_visible<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/text.pyc</span> in <span class="ansicyan">get_window_extent</span><span class="ansiblue">(self, renderer, dpi)</span>
   <span class="ansigreen">    959</span>             <span class="ansigreen">raise</span> RuntimeError<span class="ansiblue">(</span><span class="ansiblue">&apos;Cannot get window extent w/o renderer&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    960</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 961</span><span class="ansired">         </span>bbox<span class="ansiblue">,</span> info<span class="ansiblue">,</span> descent <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_get_layout<span class="ansiblue">(</span>self<span class="ansiblue">.</span>_renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    962</span>         x<span class="ansiblue">,</span> y <span class="ansiblue">=</span> self<span class="ansiblue">.</span>get_unitless_position<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    963</span>         x<span class="ansiblue">,</span> y <span class="ansiblue">=</span> self<span class="ansiblue">.</span>get_transform<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">.</span>transform_point<span class="ansiblue">(</span><span class="ansiblue">(</span>x<span class="ansiblue">,</span> y<span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/text.pyc</span> in <span class="ansicyan">_get_layout</span><span class="ansiblue">(self, renderer)</span>
   <span class="ansigreen">    350</span>         tmp, lp_h, lp_bl = renderer.get_text_width_height_descent(&apos;lp&apos;,
   <span class="ansigreen">    351</span>                                                          self<span class="ansiblue">.</span>_fontproperties<span class="ansiblue">,</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 352</span><span class="ansired">                                                          ismath=False)
   </span><span class="ansigreen">    353</span>         offsety <span class="ansiblue">=</span> <span class="ansiblue">(</span>lp_h <span class="ansiblue">-</span> lp_bl<span class="ansiblue">)</span> <span class="ansiblue">*</span> self<span class="ansiblue">.</span>_linespacing<span class="ansiblue"></span>
   <span class="ansigreen">    354</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.pyc</span> in <span class="ansicyan">get_text_width_height_descent</span><span class="ansiblue">(self, s, prop, ismath)</span>
   <span class="ansigreen">    227</span>             fontsize <span class="ansiblue">=</span> prop<span class="ansiblue">.</span>get_size_in_points<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    228</span>             w, h, d = texmanager.get_text_width_height_descent(s, fontsize,
   <span class="ansigreen">--&gt; 229</span><span class="ansired">                                                                renderer=self)
   </span><span class="ansigreen">    230</span>             <span class="ansigreen">return</span> w<span class="ansiblue">,</span> h<span class="ansiblue">,</span> d<span class="ansiblue"></span>
   <span class="ansigreen">    231</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/texmanager.pyc</span> in <span class="ansicyan">get_text_width_height_descent</span><span class="ansiblue">(self, tex, fontsize, renderer)</span>
   <span class="ansigreen">    673</span>         <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    674</span>             <span class="ansired"># use dviread. It sometimes returns a wrong descent.</span><span class="ansiblue"></span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 675</span><span class="ansired">             </span>dvifile <span class="ansiblue">=</span> self<span class="ansiblue">.</span>make_dvi<span class="ansiblue">(</span>tex<span class="ansiblue">,</span> fontsize<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    676</span>             dvi <span class="ansiblue">=</span> dviread<span class="ansiblue">.</span>Dvi<span class="ansiblue">(</span>dvifile<span class="ansiblue">,</span> <span class="ansicyan">72</span> <span class="ansiblue">*</span> dpi_fraction<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    677</span>             <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/texmanager.pyc</span> in <span class="ansicyan">make_dvi</span><span class="ansiblue">(self, tex, fontsize)</span>
   <span class="ansigreen">    420</span>                      <span class="ansiblue">&apos;string:\n%s\nHere is the full report generated by &apos;</span><span class="ansiblue"></span>
   <span class="ansigreen">    421</span>                      <span class="ansiblue">&apos;LaTeX: \n\n&apos;</span> <span class="ansiblue">%</span> repr<span class="ansiblue">(</span>tex<span class="ansiblue">.</span>encode<span class="ansiblue">(</span><span class="ansiblue">&apos;unicode_escape&apos;</span><span class="ansiblue">)</span><span class="ansiblue">)</span> <span class="ansiblue">+</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 422</span><span class="ansired">                      report))
   </span><span class="ansigreen">    423</span>             <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    424</span>                 mpl<span class="ansiblue">.</span>verbose<span class="ansiblue">.</span>report<span class="ansiblue">(</span>report<span class="ansiblue">,</span> <span class="ansiblue">&apos;debug&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">RuntimeError</span>: LaTeX was not able to process the following string:
   &apos;lp&apos;
   Here is the full report generated by LaTeX: 
   
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   
   
   <div class="output_text output_subarea ">
   <pre>
   &lt;matplotlib.figure.Figure at 0x7fb773510710&gt;
   </pre>
   </div>
   
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[25]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">min_lm3</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;JPERF ~ TEST + ETHN&#39;</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">minority_table</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="k">print</span><span class="p">(</span><span class="n">min_lm3</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-404-5f2d6b39420c&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>min_lm3 <span class="ansiblue">=</span> ols<span class="ansiblue">(</span><span class="ansiblue">&apos;JPERF ~ TEST + ETHN&apos;</span><span class="ansiblue">,</span> data <span class="ansiblue">=</span> minority_table<span class="ansiblue">)</span><span class="ansiblue">.</span>fit<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>min_lm3<span class="ansiblue">.</span>summary<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;minority_table&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[26]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="mi">6</span><span class="p">));</span>
   <span class="k">for</span> <span class="n">factor</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_group</span><span class="p">:</span>
       <span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">group</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">],</span> <span class="n">group</span><span class="p">[</span><span class="s1">&#39;JPERF&#39;</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span>
                   <span class="n">marker</span><span class="o">=</span><span class="n">markers</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span> <span class="n">s</span><span class="o">=</span><span class="mi">12</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
   
   <span class="n">fig</span> <span class="o">=</span> <span class="n">abline_plot</span><span class="p">(</span><span class="n">intercept</span> <span class="o">=</span> <span class="n">min_lm3</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;Intercept&#39;</span><span class="p">],</span>
                    <span class="n">slope</span> <span class="o">=</span> <span class="n">min_lm3</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">],</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">&#39;purple&#39;</span><span class="p">);</span>
   <span class="n">fig</span> <span class="o">=</span> <span class="n">abline_plot</span><span class="p">(</span><span class="n">intercept</span> <span class="o">=</span> <span class="n">min_lm3</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;Intercept&#39;</span><span class="p">]</span> <span class="o">+</span> <span class="n">min_lm3</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;ETHN&#39;</span><span class="p">],</span>
           <span class="n">slope</span> <span class="o">=</span> <span class="n">min_lm3</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">],</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">&#39;green&#39;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-405-3e445d581db3&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> fig<span class="ansiblue">,</span> ax <span class="ansiblue">=</span> plt<span class="ansiblue">.</span>subplots<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">6</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue">;</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 2</span><span class="ansired"> </span><span class="ansigreen">for</span> factor<span class="ansiblue">,</span> group <span class="ansigreen">in</span> factor_group<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span>     ax.scatter(group[&apos;TEST&apos;], group[&apos;JPERF&apos;], color=colors[factor],
   <span class="ansigreen">      4</span>                 marker=markers[factor], s=12**2)
   <span class="ansigreen">      5</span> <span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;factor_group&apos; is not defined</pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>
   Error in callback &lt;function post_execute at 0x7fb786441500&gt; (for post_execute):
   
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">RuntimeError</span>                              Traceback (most recent call last)
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/pyplot.pyc</span> in <span class="ansicyan">post_execute</span><span class="ansiblue">()</span>
   <span class="ansigreen">    145</span>             <span class="ansigreen">def</span> post_execute<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    146</span>                 <span class="ansigreen">if</span> matplotlib<span class="ansiblue">.</span>is_interactive<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 147</span><span class="ansired">                     </span>draw_all<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    148</span> <span class="ansiblue"></span>
   <span class="ansigreen">    149</span>             <span class="ansired"># IPython &gt;= 2</span><span class="ansiblue"></span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/_pylab_helpers.pyc</span> in <span class="ansicyan">draw_all</span><span class="ansiblue">(cls, force)</span>
   <span class="ansigreen">    148</span>         <span class="ansigreen">for</span> f_mgr <span class="ansigreen">in</span> cls<span class="ansiblue">.</span>get_all_fig_managers<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    149</span>             <span class="ansigreen">if</span> force <span class="ansigreen">or</span> f_mgr<span class="ansiblue">.</span>canvas<span class="ansiblue">.</span>figure<span class="ansiblue">.</span>stale<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 150</span><span class="ansired">                 </span>f_mgr<span class="ansiblue">.</span>canvas<span class="ansiblue">.</span>draw_idle<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    151</span> <span class="ansiblue"></span>
   <span class="ansigreen">    152</span> atexit<span class="ansiblue">.</span>register<span class="ansiblue">(</span>Gcf<span class="ansiblue">.</span>destroy_all<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backend_bases.pyc</span> in <span class="ansicyan">draw_idle</span><span class="ansiblue">(self, *args, **kwargs)</span>
   <span class="ansigreen">   2024</span>         <span class="ansigreen">if</span> <span class="ansigreen">not</span> self<span class="ansiblue">.</span>_is_idle_drawing<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   2025</span>             <span class="ansigreen">with</span> self<span class="ansiblue">.</span>_idle_draw_cntx<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 2026</span><span class="ansired">                 </span>self<span class="ansiblue">.</span>draw<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   2027</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2028</span>     <span class="ansigreen">def</span> draw_cursor<span class="ansiblue">(</span>self<span class="ansiblue">,</span> event<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self)</span>
   <span class="ansigreen">    472</span> <span class="ansiblue"></span>
   <span class="ansigreen">    473</span>         <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 474</span><span class="ansired">             </span>self<span class="ansiblue">.</span>figure<span class="ansiblue">.</span>draw<span class="ansiblue">(</span>self<span class="ansiblue">.</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    475</span>         <span class="ansigreen">finally</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    476</span>             RendererAgg<span class="ansiblue">.</span>lock<span class="ansiblue">.</span>release<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/figure.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer)</span>
   <span class="ansigreen">   1157</span>         dsu<span class="ansiblue">.</span>sort<span class="ansiblue">(</span>key<span class="ansiblue">=</span>itemgetter<span class="ansiblue">(</span><span class="ansicyan">0</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1158</span>         <span class="ansigreen">for</span> zorder<span class="ansiblue">,</span> a<span class="ansiblue">,</span> func<span class="ansiblue">,</span> args <span class="ansigreen">in</span> dsu<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1159</span><span class="ansired">             </span>func<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1160</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1161</span>         renderer<span class="ansiblue">.</span>close_group<span class="ansiblue">(</span><span class="ansiblue">&apos;figure&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axes/_base.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer, inframe)</span>
   <span class="ansigreen">   2322</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2323</span>         <span class="ansigreen">for</span> zorder<span class="ansiblue">,</span> a <span class="ansigreen">in</span> dsu<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 2324</span><span class="ansired">             </span>a<span class="ansiblue">.</span>draw<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   2325</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2326</span>         renderer<span class="ansiblue">.</span>close_group<span class="ansiblue">(</span><span class="ansiblue">&apos;axes&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axis.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer, *args, **kwargs)</span>
   <span class="ansigreen">   1106</span>         ticks_to_draw <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_update_ticks<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1107</span>         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   <span class="ansigreen">-&gt; 1108</span><span class="ansired">                                                                 renderer)
   </span><span class="ansigreen">   1109</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1110</span>         <span class="ansigreen">for</span> tick <span class="ansigreen">in</span> ticks_to_draw<span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axis.pyc</span> in <span class="ansicyan">_get_tick_bboxes</span><span class="ansiblue">(self, ticks, renderer)</span>
   <span class="ansigreen">   1056</span>         <span class="ansigreen">for</span> tick <span class="ansigreen">in</span> ticks<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   1057</span>             <span class="ansigreen">if</span> tick<span class="ansiblue">.</span>label1On <span class="ansigreen">and</span> tick<span class="ansiblue">.</span>label1<span class="ansiblue">.</span>get_visible<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1058</span><span class="ansired">                 </span>extent <span class="ansiblue">=</span> tick<span class="ansiblue">.</span>label1<span class="ansiblue">.</span>get_window_extent<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1059</span>                 ticklabelBoxes<span class="ansiblue">.</span>append<span class="ansiblue">(</span>extent<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1060</span>             <span class="ansigreen">if</span> tick<span class="ansiblue">.</span>label2On <span class="ansigreen">and</span> tick<span class="ansiblue">.</span>label2<span class="ansiblue">.</span>get_visible<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/text.pyc</span> in <span class="ansicyan">get_window_extent</span><span class="ansiblue">(self, renderer, dpi)</span>
   <span class="ansigreen">    959</span>             <span class="ansigreen">raise</span> RuntimeError<span class="ansiblue">(</span><span class="ansiblue">&apos;Cannot get window extent w/o renderer&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    960</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 961</span><span class="ansired">         </span>bbox<span class="ansiblue">,</span> info<span class="ansiblue">,</span> descent <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_get_layout<span class="ansiblue">(</span>self<span class="ansiblue">.</span>_renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    962</span>         x<span class="ansiblue">,</span> y <span class="ansiblue">=</span> self<span class="ansiblue">.</span>get_unitless_position<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    963</span>         x<span class="ansiblue">,</span> y <span class="ansiblue">=</span> self<span class="ansiblue">.</span>get_transform<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">.</span>transform_point<span class="ansiblue">(</span><span class="ansiblue">(</span>x<span class="ansiblue">,</span> y<span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/text.pyc</span> in <span class="ansicyan">_get_layout</span><span class="ansiblue">(self, renderer)</span>
   <span class="ansigreen">    350</span>         tmp, lp_h, lp_bl = renderer.get_text_width_height_descent(&apos;lp&apos;,
   <span class="ansigreen">    351</span>                                                          self<span class="ansiblue">.</span>_fontproperties<span class="ansiblue">,</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 352</span><span class="ansired">                                                          ismath=False)
   </span><span class="ansigreen">    353</span>         offsety <span class="ansiblue">=</span> <span class="ansiblue">(</span>lp_h <span class="ansiblue">-</span> lp_bl<span class="ansiblue">)</span> <span class="ansiblue">*</span> self<span class="ansiblue">.</span>_linespacing<span class="ansiblue"></span>
   <span class="ansigreen">    354</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.pyc</span> in <span class="ansicyan">get_text_width_height_descent</span><span class="ansiblue">(self, s, prop, ismath)</span>
   <span class="ansigreen">    227</span>             fontsize <span class="ansiblue">=</span> prop<span class="ansiblue">.</span>get_size_in_points<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    228</span>             w, h, d = texmanager.get_text_width_height_descent(s, fontsize,
   <span class="ansigreen">--&gt; 229</span><span class="ansired">                                                                renderer=self)
   </span><span class="ansigreen">    230</span>             <span class="ansigreen">return</span> w<span class="ansiblue">,</span> h<span class="ansiblue">,</span> d<span class="ansiblue"></span>
   <span class="ansigreen">    231</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/texmanager.pyc</span> in <span class="ansicyan">get_text_width_height_descent</span><span class="ansiblue">(self, tex, fontsize, renderer)</span>
   <span class="ansigreen">    673</span>         <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    674</span>             <span class="ansired"># use dviread. It sometimes returns a wrong descent.</span><span class="ansiblue"></span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 675</span><span class="ansired">             </span>dvifile <span class="ansiblue">=</span> self<span class="ansiblue">.</span>make_dvi<span class="ansiblue">(</span>tex<span class="ansiblue">,</span> fontsize<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    676</span>             dvi <span class="ansiblue">=</span> dviread<span class="ansiblue">.</span>Dvi<span class="ansiblue">(</span>dvifile<span class="ansiblue">,</span> <span class="ansicyan">72</span> <span class="ansiblue">*</span> dpi_fraction<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    677</span>             <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/texmanager.pyc</span> in <span class="ansicyan">make_dvi</span><span class="ansiblue">(self, tex, fontsize)</span>
   <span class="ansigreen">    420</span>                      <span class="ansiblue">&apos;string:\n%s\nHere is the full report generated by &apos;</span><span class="ansiblue"></span>
   <span class="ansigreen">    421</span>                      <span class="ansiblue">&apos;LaTeX: \n\n&apos;</span> <span class="ansiblue">%</span> repr<span class="ansiblue">(</span>tex<span class="ansiblue">.</span>encode<span class="ansiblue">(</span><span class="ansiblue">&apos;unicode_escape&apos;</span><span class="ansiblue">)</span><span class="ansiblue">)</span> <span class="ansiblue">+</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 422</span><span class="ansired">                      report))
   </span><span class="ansigreen">    423</span>             <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    424</span>                 mpl<span class="ansiblue">.</span>verbose<span class="ansiblue">.</span>report<span class="ansiblue">(</span>report<span class="ansiblue">,</span> <span class="ansiblue">&apos;debug&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">RuntimeError</span>: LaTeX was not able to process the following string:
   &apos;lp&apos;
   Here is the full report generated by LaTeX: 
   
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   
   
   <div class="output_text output_subarea ">
   <pre>
   &lt;matplotlib.figure.Figure at 0x7fb773587390&gt;
   </pre>
   </div>
   
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[27]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">min_lm4</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;JPERF ~ TEST * ETHN&#39;</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">minority_table</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="k">print</span><span class="p">(</span><span class="n">min_lm4</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-406-45bd21e99036&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>min_lm4 <span class="ansiblue">=</span> ols<span class="ansiblue">(</span><span class="ansiblue">&apos;JPERF ~ TEST * ETHN&apos;</span><span class="ansiblue">,</span> data <span class="ansiblue">=</span> minority_table<span class="ansiblue">)</span><span class="ansiblue">.</span>fit<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>min_lm4<span class="ansiblue">.</span>summary<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;minority_table&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[28]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">6</span><span class="p">));</span>
   <span class="k">for</span> <span class="n">factor</span><span class="p">,</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">factor_group</span><span class="p">:</span>
       <span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">group</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">],</span> <span class="n">group</span><span class="p">[</span><span class="s1">&#39;JPERF&#39;</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span>
                   <span class="n">marker</span><span class="o">=</span><span class="n">markers</span><span class="p">[</span><span class="n">factor</span><span class="p">],</span> <span class="n">s</span><span class="o">=</span><span class="mi">12</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
   
   <span class="n">fig</span> <span class="o">=</span> <span class="n">abline_plot</span><span class="p">(</span><span class="n">intercept</span> <span class="o">=</span> <span class="n">min_lm4</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;Intercept&#39;</span><span class="p">],</span>
                    <span class="n">slope</span> <span class="o">=</span> <span class="n">min_lm4</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">],</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">&#39;purple&#39;</span><span class="p">);</span>
   <span class="n">fig</span> <span class="o">=</span> <span class="n">abline_plot</span><span class="p">(</span><span class="n">intercept</span> <span class="o">=</span> <span class="n">min_lm4</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;Intercept&#39;</span><span class="p">]</span> <span class="o">+</span> <span class="n">min_lm4</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;ETHN&#39;</span><span class="p">],</span>
           <span class="n">slope</span> <span class="o">=</span> <span class="n">min_lm4</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;TEST&#39;</span><span class="p">]</span> <span class="o">+</span> <span class="n">min_lm4</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;TEST:ETHN&#39;</span><span class="p">],</span>
           <span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">&#39;green&#39;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-407-2572d5e3e956&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> fig<span class="ansiblue">,</span> ax <span class="ansiblue">=</span> plt<span class="ansiblue">.</span>subplots<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">8</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue">;</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 2</span><span class="ansired"> </span><span class="ansigreen">for</span> factor<span class="ansiblue">,</span> group <span class="ansigreen">in</span> factor_group<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span>     ax.scatter(group[&apos;TEST&apos;], group[&apos;JPERF&apos;], color=colors[factor],
   <span class="ansigreen">      4</span>                 marker=markers[factor], s=12**2)
   <span class="ansigreen">      5</span> <span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;factor_group&apos; is not defined</pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_stream output_stdout output_text">
   <pre>
   Error in callback &lt;function post_execute at 0x7fb786441500&gt; (for post_execute):
   
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   <div class="output_subarea output_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">RuntimeError</span>                              Traceback (most recent call last)
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/pyplot.pyc</span> in <span class="ansicyan">post_execute</span><span class="ansiblue">()</span>
   <span class="ansigreen">    145</span>             <span class="ansigreen">def</span> post_execute<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    146</span>                 <span class="ansigreen">if</span> matplotlib<span class="ansiblue">.</span>is_interactive<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 147</span><span class="ansired">                     </span>draw_all<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    148</span> <span class="ansiblue"></span>
   <span class="ansigreen">    149</span>             <span class="ansired"># IPython &gt;= 2</span><span class="ansiblue"></span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/_pylab_helpers.pyc</span> in <span class="ansicyan">draw_all</span><span class="ansiblue">(cls, force)</span>
   <span class="ansigreen">    148</span>         <span class="ansigreen">for</span> f_mgr <span class="ansigreen">in</span> cls<span class="ansiblue">.</span>get_all_fig_managers<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    149</span>             <span class="ansigreen">if</span> force <span class="ansigreen">or</span> f_mgr<span class="ansiblue">.</span>canvas<span class="ansiblue">.</span>figure<span class="ansiblue">.</span>stale<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 150</span><span class="ansired">                 </span>f_mgr<span class="ansiblue">.</span>canvas<span class="ansiblue">.</span>draw_idle<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    151</span> <span class="ansiblue"></span>
   <span class="ansigreen">    152</span> atexit<span class="ansiblue">.</span>register<span class="ansiblue">(</span>Gcf<span class="ansiblue">.</span>destroy_all<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backend_bases.pyc</span> in <span class="ansicyan">draw_idle</span><span class="ansiblue">(self, *args, **kwargs)</span>
   <span class="ansigreen">   2024</span>         <span class="ansigreen">if</span> <span class="ansigreen">not</span> self<span class="ansiblue">.</span>_is_idle_drawing<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   2025</span>             <span class="ansigreen">with</span> self<span class="ansiblue">.</span>_idle_draw_cntx<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 2026</span><span class="ansired">                 </span>self<span class="ansiblue">.</span>draw<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   2027</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2028</span>     <span class="ansigreen">def</span> draw_cursor<span class="ansiblue">(</span>self<span class="ansiblue">,</span> event<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self)</span>
   <span class="ansigreen">    472</span> <span class="ansiblue"></span>
   <span class="ansigreen">    473</span>         <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 474</span><span class="ansired">             </span>self<span class="ansiblue">.</span>figure<span class="ansiblue">.</span>draw<span class="ansiblue">(</span>self<span class="ansiblue">.</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    475</span>         <span class="ansigreen">finally</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    476</span>             RendererAgg<span class="ansiblue">.</span>lock<span class="ansiblue">.</span>release<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/figure.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer)</span>
   <span class="ansigreen">   1157</span>         dsu<span class="ansiblue">.</span>sort<span class="ansiblue">(</span>key<span class="ansiblue">=</span>itemgetter<span class="ansiblue">(</span><span class="ansicyan">0</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1158</span>         <span class="ansigreen">for</span> zorder<span class="ansiblue">,</span> a<span class="ansiblue">,</span> func<span class="ansiblue">,</span> args <span class="ansigreen">in</span> dsu<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1159</span><span class="ansired">             </span>func<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1160</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1161</span>         renderer<span class="ansiblue">.</span>close_group<span class="ansiblue">(</span><span class="ansiblue">&apos;figure&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axes/_base.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer, inframe)</span>
   <span class="ansigreen">   2322</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2323</span>         <span class="ansigreen">for</span> zorder<span class="ansiblue">,</span> a <span class="ansigreen">in</span> dsu<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 2324</span><span class="ansired">             </span>a<span class="ansiblue">.</span>draw<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   2325</span> <span class="ansiblue"></span>
   <span class="ansigreen">   2326</span>         renderer<span class="ansiblue">.</span>close_group<span class="ansiblue">(</span><span class="ansiblue">&apos;axes&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/artist.pyc</span> in <span class="ansicyan">draw_wrapper</span><span class="ansiblue">(artist, renderer, *args, **kwargs)</span>
   <span class="ansigreen">     59</span>     <span class="ansigreen">def</span> draw_wrapper<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">     60</span>         before<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">---&gt; 61</span><span class="ansired">         </span>draw<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">,</span> <span class="ansiblue">*</span>args<span class="ansiblue">,</span> <span class="ansiblue">**</span>kwargs<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     62</span>         after<span class="ansiblue">(</span>artist<span class="ansiblue">,</span> renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">     63</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axis.pyc</span> in <span class="ansicyan">draw</span><span class="ansiblue">(self, renderer, *args, **kwargs)</span>
   <span class="ansigreen">   1106</span>         ticks_to_draw <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_update_ticks<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1107</span>         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   <span class="ansigreen">-&gt; 1108</span><span class="ansired">                                                                 renderer)
   </span><span class="ansigreen">   1109</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1110</span>         <span class="ansigreen">for</span> tick <span class="ansigreen">in</span> ticks_to_draw<span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/axis.pyc</span> in <span class="ansicyan">_get_tick_bboxes</span><span class="ansiblue">(self, ticks, renderer)</span>
   <span class="ansigreen">   1056</span>         <span class="ansigreen">for</span> tick <span class="ansigreen">in</span> ticks<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   1057</span>             <span class="ansigreen">if</span> tick<span class="ansiblue">.</span>label1On <span class="ansigreen">and</span> tick<span class="ansiblue">.</span>label1<span class="ansiblue">.</span>get_visible<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1058</span><span class="ansired">                 </span>extent <span class="ansiblue">=</span> tick<span class="ansiblue">.</span>label1<span class="ansiblue">.</span>get_window_extent<span class="ansiblue">(</span>renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1059</span>                 ticklabelBoxes<span class="ansiblue">.</span>append<span class="ansiblue">(</span>extent<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1060</span>             <span class="ansigreen">if</span> tick<span class="ansiblue">.</span>label2On <span class="ansigreen">and</span> tick<span class="ansiblue">.</span>label2<span class="ansiblue">.</span>get_visible<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/text.pyc</span> in <span class="ansicyan">get_window_extent</span><span class="ansiblue">(self, renderer, dpi)</span>
   <span class="ansigreen">    959</span>             <span class="ansigreen">raise</span> RuntimeError<span class="ansiblue">(</span><span class="ansiblue">&apos;Cannot get window extent w/o renderer&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    960</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 961</span><span class="ansired">         </span>bbox<span class="ansiblue">,</span> info<span class="ansiblue">,</span> descent <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_get_layout<span class="ansiblue">(</span>self<span class="ansiblue">.</span>_renderer<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    962</span>         x<span class="ansiblue">,</span> y <span class="ansiblue">=</span> self<span class="ansiblue">.</span>get_unitless_position<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    963</span>         x<span class="ansiblue">,</span> y <span class="ansiblue">=</span> self<span class="ansiblue">.</span>get_transform<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">.</span>transform_point<span class="ansiblue">(</span><span class="ansiblue">(</span>x<span class="ansiblue">,</span> y<span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/text.pyc</span> in <span class="ansicyan">_get_layout</span><span class="ansiblue">(self, renderer)</span>
   <span class="ansigreen">    350</span>         tmp, lp_h, lp_bl = renderer.get_text_width_height_descent(&apos;lp&apos;,
   <span class="ansigreen">    351</span>                                                          self<span class="ansiblue">.</span>_fontproperties<span class="ansiblue">,</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 352</span><span class="ansired">                                                          ismath=False)
   </span><span class="ansigreen">    353</span>         offsety <span class="ansiblue">=</span> <span class="ansiblue">(</span>lp_h <span class="ansiblue">-</span> lp_bl<span class="ansiblue">)</span> <span class="ansiblue">*</span> self<span class="ansiblue">.</span>_linespacing<span class="ansiblue"></span>
   <span class="ansigreen">    354</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.pyc</span> in <span class="ansicyan">get_text_width_height_descent</span><span class="ansiblue">(self, s, prop, ismath)</span>
   <span class="ansigreen">    227</span>             fontsize <span class="ansiblue">=</span> prop<span class="ansiblue">.</span>get_size_in_points<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    228</span>             w, h, d = texmanager.get_text_width_height_descent(s, fontsize,
   <span class="ansigreen">--&gt; 229</span><span class="ansired">                                                                renderer=self)
   </span><span class="ansigreen">    230</span>             <span class="ansigreen">return</span> w<span class="ansiblue">,</span> h<span class="ansiblue">,</span> d<span class="ansiblue"></span>
   <span class="ansigreen">    231</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/texmanager.pyc</span> in <span class="ansicyan">get_text_width_height_descent</span><span class="ansiblue">(self, tex, fontsize, renderer)</span>
   <span class="ansigreen">    673</span>         <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    674</span>             <span class="ansired"># use dviread. It sometimes returns a wrong descent.</span><span class="ansiblue"></span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 675</span><span class="ansired">             </span>dvifile <span class="ansiblue">=</span> self<span class="ansiblue">.</span>make_dvi<span class="ansiblue">(</span>tex<span class="ansiblue">,</span> fontsize<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    676</span>             dvi <span class="ansiblue">=</span> dviread<span class="ansiblue">.</span>Dvi<span class="ansiblue">(</span>dvifile<span class="ansiblue">,</span> <span class="ansicyan">72</span> <span class="ansiblue">*</span> dpi_fraction<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    677</span>             <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/matplotlib/texmanager.pyc</span> in <span class="ansicyan">make_dvi</span><span class="ansiblue">(self, tex, fontsize)</span>
   <span class="ansigreen">    420</span>                      <span class="ansiblue">&apos;string:\n%s\nHere is the full report generated by &apos;</span><span class="ansiblue"></span>
   <span class="ansigreen">    421</span>                      <span class="ansiblue">&apos;LaTeX: \n\n&apos;</span> <span class="ansiblue">%</span> repr<span class="ansiblue">(</span>tex<span class="ansiblue">.</span>encode<span class="ansiblue">(</span><span class="ansiblue">&apos;unicode_escape&apos;</span><span class="ansiblue">)</span><span class="ansiblue">)</span> <span class="ansiblue">+</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 422</span><span class="ansired">                      report))
   </span><span class="ansigreen">    423</span>             <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    424</span>                 mpl<span class="ansiblue">.</span>verbose<span class="ansiblue">.</span>report<span class="ansiblue">(</span>report<span class="ansiblue">,</span> <span class="ansiblue">&apos;debug&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">RuntimeError</span>: LaTeX was not able to process the following string:
   &apos;lp&apos;
   Here is the full report generated by LaTeX: 
   
   </pre>
   </div>
   </div>
   
   <div class="output_area"><div class="prompt"></div>
   
   
   <div class="output_text output_subarea ">
   <pre>
   &lt;matplotlib.figure.Figure at 0x7fb7784a4e10&gt;
   </pre>
   </div>
   
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[29]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="c1"># is there any effect of ETHN on slope or intercept?</span>
   <span class="n">table5</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">min_lm</span><span class="p">,</span> <span class="n">min_lm4</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="n">table5</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-408-129d94cb4fbc&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> <span class="ansired"># is there any effect of ETHN on slope or intercept?</span><span class="ansiblue"></span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 2</span><span class="ansired"> </span>table5 <span class="ansiblue">=</span> anova_lm<span class="ansiblue">(</span>min_lm<span class="ansiblue">,</span> min_lm4<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>table5<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;min_lm&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[30]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="c1"># is there any effect of ETHN on intercept</span>
   <span class="n">table6</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">min_lm</span><span class="p">,</span> <span class="n">min_lm3</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="n">table6</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-409-c31cb02af7ce&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> <span class="ansired"># is there any effect of ETHN on intercept</span><span class="ansiblue"></span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 2</span><span class="ansired"> </span>table6 <span class="ansiblue">=</span> anova_lm<span class="ansiblue">(</span>min_lm<span class="ansiblue">,</span> min_lm3<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>table6<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;min_lm&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[31]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="c1"># is there any effect of ETHN on slope</span>
   <span class="n">table7</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">min_lm</span><span class="p">,</span> <span class="n">min_lm2</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="n">table7</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-410-8848959d255f&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> <span class="ansired"># is there any effect of ETHN on slope</span><span class="ansiblue"></span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 2</span><span class="ansired"> </span>table7 <span class="ansiblue">=</span> anova_lm<span class="ansiblue">(</span>min_lm<span class="ansiblue">,</span> min_lm2<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>table7<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;min_lm&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[32]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="c1"># is it just the slope or both?</span>
   <span class="n">table8</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">min_lm2</span><span class="p">,</span> <span class="n">min_lm4</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="n">table8</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-411-b62ed8a937ec&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> <span class="ansired"># is it just the slope or both?</span><span class="ansiblue"></span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 2</span><span class="ansired"> </span>table8 <span class="ansiblue">=</span> anova_lm<span class="ansiblue">(</span>min_lm2<span class="ansiblue">,</span> min_lm4<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>table8<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;min_lm2&apos; is not defined</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="one-way-anova">One-way ANOVA</h2>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[33]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="k">try</span><span class="p">:</span>
       <span class="n">rehab_table</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s1">&#39;rehab.table&#39;</span><span class="p">)</span>
   <span class="k">except</span><span class="p">:</span>
       <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;http://stats191.stanford.edu/data/rehab.csv&#39;</span>
       <span class="n">rehab_table</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_table</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">delimiter</span><span class="o">=</span><span class="s2">&quot;,&quot;</span><span class="p">)</span>
       <span class="n">rehab_table</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span><span class="s1">&#39;rehab.table&#39;</span><span class="p">)</span>
   
   <span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
   <span class="n">fig</span> <span class="o">=</span> <span class="n">rehab_table</span><span class="o">.</span><span class="n">boxplot</span><span class="p">(</span><span class="s1">&#39;Time&#39;</span><span class="p">,</span> <span class="s1">&#39;Fitness&#39;</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span> <span class="n">grid</span><span class="o">=</span><span class="bp">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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">URLError</span>                                  Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-412-f592f2c5b222&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      3</span> <span class="ansigreen">except</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span>     url <span class="ansiblue">=</span> <span class="ansiblue">&apos;http://stats191.stanford.edu/data/rehab.csv&apos;</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 5</span><span class="ansired">     </span>rehab_table <span class="ansiblue">=</span> pd<span class="ansiblue">.</span>read_table<span class="ansiblue">(</span>url<span class="ansiblue">,</span> delimiter<span class="ansiblue">=</span><span class="ansiblue">&quot;,&quot;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      6</span>     rehab_table<span class="ansiblue">.</span>to_csv<span class="ansiblue">(</span><span class="ansiblue">&apos;rehab.table&apos;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      7</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/pandas/io/parsers.pyc</span> in <span class="ansicyan">parser_f</span><span class="ansiblue">(filepath_or_buffer, sep, dialect, compression, doublequote, escapechar, quotechar, quoting, skipinitialspace, lineterminator, header, index_col, names, prefix, skiprows, skipfooter, skip_footer, na_values, true_values, false_values, delimiter, converters, dtype, usecols, engine, delim_whitespace, as_recarray, na_filter, compact_ints, use_unsigned, low_memory, buffer_lines, warn_bad_lines, error_bad_lines, keep_default_na, thousands, comment, decimal, parse_dates, keep_date_col, dayfirst, date_parser, memory_map, float_precision, nrows, iterator, chunksize, verbose, encoding, squeeze, mangle_dupe_cols, tupleize_cols, infer_datetime_format, skip_blank_lines)</span>
   <span class="ansigreen">    496</span>                     skip_blank_lines=skip_blank_lines)
   <span class="ansigreen">    497</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 498</span><span class="ansired">         </span><span class="ansigreen">return</span> _read<span class="ansiblue">(</span>filepath_or_buffer<span class="ansiblue">,</span> kwds<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    499</span> <span class="ansiblue"></span>
   <span class="ansigreen">    500</span>     parser_f<span class="ansiblue">.</span>__name__ <span class="ansiblue">=</span> name<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/pandas/io/parsers.pyc</span> in <span class="ansicyan">_read</span><span class="ansiblue">(filepath_or_buffer, kwds)</span>
   <span class="ansigreen">    260</span>     filepath_or_buffer, _, compression = get_filepath_or_buffer(filepath_or_buffer,
   <span class="ansigreen">    261</span>                                                                 encoding<span class="ansiblue">,</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 262</span><span class="ansired">                                                                 compression=kwds.get(&apos;compression&apos;, None))
   </span><span class="ansigreen">    263</span>     kwds<span class="ansiblue">[</span><span class="ansiblue">&apos;compression&apos;</span><span class="ansiblue">]</span> <span class="ansiblue">=</span> inferred_compression <span class="ansigreen">if</span> compression <span class="ansiblue">==</span> <span class="ansiblue">&apos;infer&apos;</span> <span class="ansigreen">else</span> compression<span class="ansiblue"></span>
   <span class="ansigreen">    264</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/pandas/io/common.pyc</span> in <span class="ansicyan">get_filepath_or_buffer</span><span class="ansiblue">(filepath_or_buffer, encoding, compression)</span>
   <span class="ansigreen">    256</span> <span class="ansiblue"></span>
   <span class="ansigreen">    257</span>     <span class="ansigreen">if</span> _is_url<span class="ansiblue">(</span>filepath_or_buffer<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 258</span><span class="ansired">         </span>req <span class="ansiblue">=</span> _urlopen<span class="ansiblue">(</span>str<span class="ansiblue">(</span>filepath_or_buffer<span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    259</span>         <span class="ansigreen">if</span> compression <span class="ansiblue">==</span> <span class="ansiblue">&apos;infer&apos;</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    260</span>             content_encoding <span class="ansiblue">=</span> req<span class="ansiblue">.</span>headers<span class="ansiblue">.</span>get<span class="ansiblue">(</span><span class="ansiblue">&apos;Content-Encoding&apos;</span><span class="ansiblue">,</span> None<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">urlopen</span><span class="ansiblue">(url, data, timeout, cafile, capath, cadefault, context)</span>
   <span class="ansigreen">    152</span>     <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    153</span>         opener <span class="ansiblue">=</span> _opener<span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 154</span><span class="ansired">     </span><span class="ansigreen">return</span> opener<span class="ansiblue">.</span>open<span class="ansiblue">(</span>url<span class="ansiblue">,</span> data<span class="ansiblue">,</span> timeout<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    155</span> <span class="ansiblue"></span>
   <span class="ansigreen">    156</span> <span class="ansigreen">def</span> install_opener<span class="ansiblue">(</span>opener<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">open</span><span class="ansiblue">(self, fullurl, data, timeout)</span>
   <span class="ansigreen">    427</span>             req <span class="ansiblue">=</span> meth<span class="ansiblue">(</span>req<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    428</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 429</span><span class="ansired">         </span>response <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_open<span class="ansiblue">(</span>req<span class="ansiblue">,</span> data<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    430</span> <span class="ansiblue"></span>
   <span class="ansigreen">    431</span>         <span class="ansired"># post-process response</span><span class="ansiblue"></span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">_open</span><span class="ansiblue">(self, req, data)</span>
   <span class="ansigreen">    445</span>         protocol <span class="ansiblue">=</span> req<span class="ansiblue">.</span>get_type<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    446</span>         result = self._call_chain(self.handle_open, protocol, protocol +
   <span class="ansigreen">--&gt; 447</span><span class="ansired">                                   &apos;_open&apos;, req)
   </span><span class="ansigreen">    448</span>         <span class="ansigreen">if</span> result<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    449</span>             <span class="ansigreen">return</span> result<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">_call_chain</span><span class="ansiblue">(self, chain, kind, meth_name, *args)</span>
   <span class="ansigreen">    405</span>             func <span class="ansiblue">=</span> getattr<span class="ansiblue">(</span>handler<span class="ansiblue">,</span> meth_name<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    406</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 407</span><span class="ansired">             </span>result <span class="ansiblue">=</span> func<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    408</span>             <span class="ansigreen">if</span> result <span class="ansigreen">is</span> <span class="ansigreen">not</span> None<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    409</span>                 <span class="ansigreen">return</span> result<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">http_open</span><span class="ansiblue">(self, req)</span>
   <span class="ansigreen">   1226</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1227</span>     <span class="ansigreen">def</span> http_open<span class="ansiblue">(</span>self<span class="ansiblue">,</span> req<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1228</span><span class="ansired">         </span><span class="ansigreen">return</span> self<span class="ansiblue">.</span>do_open<span class="ansiblue">(</span>httplib<span class="ansiblue">.</span>HTTPConnection<span class="ansiblue">,</span> req<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1229</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1230</span>     http_request <span class="ansiblue">=</span> AbstractHTTPHandler<span class="ansiblue">.</span>do_request_<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">do_open</span><span class="ansiblue">(self, http_class, req, **http_conn_args)</span>
   <span class="ansigreen">   1196</span>         <span class="ansigreen">except</span> socket<span class="ansiblue">.</span>error<span class="ansiblue">,</span> err<span class="ansiblue">:</span> <span class="ansired"># XXX what error?</span><span class="ansiblue"></span>
   <span class="ansigreen">   1197</span>             h<span class="ansiblue">.</span>close<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1198</span><span class="ansired">             </span><span class="ansigreen">raise</span> URLError<span class="ansiblue">(</span>err<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1199</span>         <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   1200</span>             <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansired">URLError</span>: &lt;urlopen error [Errno -2] Name or service not known&gt;</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[34]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">rehab_lm</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;Time ~ C(Fitness)&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">rehab_table</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="n">table9</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">rehab_lm</span><span class="p">)</span>
   <span class="k">print</span><span class="p">(</span><span class="n">table9</span><span class="p">)</span>
   
   <span class="k">print</span><span class="p">(</span><span class="n">rehab_lm</span><span class="o">.</span><span class="n">model</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">orig_exog</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-413-ba617da218fc&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>rehab_lm <span class="ansiblue">=</span> ols<span class="ansiblue">(</span><span class="ansiblue">&apos;Time ~ C(Fitness)&apos;</span><span class="ansiblue">,</span> data<span class="ansiblue">=</span>rehab_table<span class="ansiblue">)</span><span class="ansiblue">.</span>fit<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> table9 <span class="ansiblue">=</span> anova_lm<span class="ansiblue">(</span>rehab_lm<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>table9<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span> <span class="ansiblue"></span>
   <span class="ansigreen">      5</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>rehab_lm<span class="ansiblue">.</span>model<span class="ansiblue">.</span>data<span class="ansiblue">.</span>orig_exog<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;rehab_table&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[35]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="k">print</span><span class="p">(</span><span class="n">rehab_lm</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-414-2b2c1df214c7&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span><span class="ansigreen">print</span><span class="ansiblue">(</span>rehab_lm<span class="ansiblue">.</span>summary<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;rehab_lm&apos; is not defined</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="two-way-anova">Two-way ANOVA</h2>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[36]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="k">try</span><span class="p">:</span>
       <span class="n">kidney_table</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_table</span><span class="p">(</span><span class="s1">&#39;./kidney.table&#39;</span><span class="p">)</span>
   <span class="k">except</span><span class="p">:</span>
       <span class="n">url</span> <span class="o">=</span> <span class="s1">&#39;http://stats191.stanford.edu/data/kidney.table&#39;</span>
       <span class="n">kidney_table</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_table</span><span class="p">(</span><span class="n">url</span><span class="p">,</span> <span class="n">delimiter</span><span class="o">=</span><span class="s2">&quot; *&quot;</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">URLError</span>                                  Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-415-b6b45eb9c5b0&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      3</span> <span class="ansigreen">except</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span>     url <span class="ansiblue">=</span> <span class="ansiblue">&apos;http://stats191.stanford.edu/data/kidney.table&apos;</span><span class="ansiblue"></span>
   <span class="ansigreen">----&gt; 5</span><span class="ansired">     </span>kidney_table <span class="ansiblue">=</span> pd<span class="ansiblue">.</span>read_table<span class="ansiblue">(</span>url<span class="ansiblue">,</span> delimiter<span class="ansiblue">=</span><span class="ansiblue">&quot; *&quot;</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/pandas/io/parsers.pyc</span> in <span class="ansicyan">parser_f</span><span class="ansiblue">(filepath_or_buffer, sep, dialect, compression, doublequote, escapechar, quotechar, quoting, skipinitialspace, lineterminator, header, index_col, names, prefix, skiprows, skipfooter, skip_footer, na_values, true_values, false_values, delimiter, converters, dtype, usecols, engine, delim_whitespace, as_recarray, na_filter, compact_ints, use_unsigned, low_memory, buffer_lines, warn_bad_lines, error_bad_lines, keep_default_na, thousands, comment, decimal, parse_dates, keep_date_col, dayfirst, date_parser, memory_map, float_precision, nrows, iterator, chunksize, verbose, encoding, squeeze, mangle_dupe_cols, tupleize_cols, infer_datetime_format, skip_blank_lines)</span>
   <span class="ansigreen">    496</span>                     skip_blank_lines=skip_blank_lines)
   <span class="ansigreen">    497</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 498</span><span class="ansired">         </span><span class="ansigreen">return</span> _read<span class="ansiblue">(</span>filepath_or_buffer<span class="ansiblue">,</span> kwds<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    499</span> <span class="ansiblue"></span>
   <span class="ansigreen">    500</span>     parser_f<span class="ansiblue">.</span>__name__ <span class="ansiblue">=</span> name<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/pandas/io/parsers.pyc</span> in <span class="ansicyan">_read</span><span class="ansiblue">(filepath_or_buffer, kwds)</span>
   <span class="ansigreen">    260</span>     filepath_or_buffer, _, compression = get_filepath_or_buffer(filepath_or_buffer,
   <span class="ansigreen">    261</span>                                                                 encoding<span class="ansiblue">,</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 262</span><span class="ansired">                                                                 compression=kwds.get(&apos;compression&apos;, None))
   </span><span class="ansigreen">    263</span>     kwds<span class="ansiblue">[</span><span class="ansiblue">&apos;compression&apos;</span><span class="ansiblue">]</span> <span class="ansiblue">=</span> inferred_compression <span class="ansigreen">if</span> compression <span class="ansiblue">==</span> <span class="ansiblue">&apos;infer&apos;</span> <span class="ansigreen">else</span> compression<span class="ansiblue"></span>
   <span class="ansigreen">    264</span> <span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/dist-packages/pandas/io/common.pyc</span> in <span class="ansicyan">get_filepath_or_buffer</span><span class="ansiblue">(filepath_or_buffer, encoding, compression)</span>
   <span class="ansigreen">    256</span> <span class="ansiblue"></span>
   <span class="ansigreen">    257</span>     <span class="ansigreen">if</span> _is_url<span class="ansiblue">(</span>filepath_or_buffer<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 258</span><span class="ansired">         </span>req <span class="ansiblue">=</span> _urlopen<span class="ansiblue">(</span>str<span class="ansiblue">(</span>filepath_or_buffer<span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    259</span>         <span class="ansigreen">if</span> compression <span class="ansiblue">==</span> <span class="ansiblue">&apos;infer&apos;</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    260</span>             content_encoding <span class="ansiblue">=</span> req<span class="ansiblue">.</span>headers<span class="ansiblue">.</span>get<span class="ansiblue">(</span><span class="ansiblue">&apos;Content-Encoding&apos;</span><span class="ansiblue">,</span> None<span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">urlopen</span><span class="ansiblue">(url, data, timeout, cafile, capath, cadefault, context)</span>
   <span class="ansigreen">    152</span>     <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    153</span>         opener <span class="ansiblue">=</span> _opener<span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 154</span><span class="ansired">     </span><span class="ansigreen">return</span> opener<span class="ansiblue">.</span>open<span class="ansiblue">(</span>url<span class="ansiblue">,</span> data<span class="ansiblue">,</span> timeout<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    155</span> <span class="ansiblue"></span>
   <span class="ansigreen">    156</span> <span class="ansigreen">def</span> install_opener<span class="ansiblue">(</span>opener<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">open</span><span class="ansiblue">(self, fullurl, data, timeout)</span>
   <span class="ansigreen">    427</span>             req <span class="ansiblue">=</span> meth<span class="ansiblue">(</span>req<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    428</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 429</span><span class="ansired">         </span>response <span class="ansiblue">=</span> self<span class="ansiblue">.</span>_open<span class="ansiblue">(</span>req<span class="ansiblue">,</span> data<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    430</span> <span class="ansiblue"></span>
   <span class="ansigreen">    431</span>         <span class="ansired"># post-process response</span><span class="ansiblue"></span><span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">_open</span><span class="ansiblue">(self, req, data)</span>
   <span class="ansigreen">    445</span>         protocol <span class="ansiblue">=</span> req<span class="ansiblue">.</span>get_type<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    446</span>         result = self._call_chain(self.handle_open, protocol, protocol +
   <span class="ansigreen">--&gt; 447</span><span class="ansired">                                   &apos;_open&apos;, req)
   </span><span class="ansigreen">    448</span>         <span class="ansigreen">if</span> result<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    449</span>             <span class="ansigreen">return</span> result<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">_call_chain</span><span class="ansiblue">(self, chain, kind, meth_name, *args)</span>
   <span class="ansigreen">    405</span>             func <span class="ansiblue">=</span> getattr<span class="ansiblue">(</span>handler<span class="ansiblue">,</span> meth_name<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    406</span> <span class="ansiblue"></span>
   <span class="ansigreen">--&gt; 407</span><span class="ansired">             </span>result <span class="ansiblue">=</span> func<span class="ansiblue">(</span><span class="ansiblue">*</span>args<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">    408</span>             <span class="ansigreen">if</span> result <span class="ansigreen">is</span> <span class="ansigreen">not</span> None<span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">    409</span>                 <span class="ansigreen">return</span> result<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">http_open</span><span class="ansiblue">(self, req)</span>
   <span class="ansigreen">   1226</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1227</span>     <span class="ansigreen">def</span> http_open<span class="ansiblue">(</span>self<span class="ansiblue">,</span> req<span class="ansiblue">)</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1228</span><span class="ansired">         </span><span class="ansigreen">return</span> self<span class="ansiblue">.</span>do_open<span class="ansiblue">(</span>httplib<span class="ansiblue">.</span>HTTPConnection<span class="ansiblue">,</span> req<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1229</span> <span class="ansiblue"></span>
   <span class="ansigreen">   1230</span>     http_request <span class="ansiblue">=</span> AbstractHTTPHandler<span class="ansiblue">.</span>do_request_<span class="ansiblue"></span>
   
   <span class="ansigreen">/usr/lib/python2.7/urllib2.pyc</span> in <span class="ansicyan">do_open</span><span class="ansiblue">(self, http_class, req, **http_conn_args)</span>
   <span class="ansigreen">   1196</span>         <span class="ansigreen">except</span> socket<span class="ansiblue">.</span>error<span class="ansiblue">,</span> err<span class="ansiblue">:</span> <span class="ansired"># XXX what error?</span><span class="ansiblue"></span>
   <span class="ansigreen">   1197</span>             h<span class="ansiblue">.</span>close<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">-&gt; 1198</span><span class="ansired">             </span><span class="ansigreen">raise</span> URLError<span class="ansiblue">(</span>err<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">   1199</span>         <span class="ansigreen">else</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   <span class="ansigreen">   1200</span>             <span class="ansigreen">try</span><span class="ansiblue">:</span><span class="ansiblue"></span>
   
   <span class="ansired">URLError</span>: &lt;urlopen error [Errno -2] Name or service not known&gt;</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>Explore the dataset</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[37]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">kidney_table</span><span class="o">.</span><span class="n">groupby</span><span class="p">([</span><span class="s1">&#39;Weight&#39;</span><span class="p">,</span> <span class="s1">&#39;Duration&#39;</span><span class="p">])</span><span class="o">.</span><span class="n">size</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-416-2e414de92632&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>kidney_table<span class="ansiblue">.</span>groupby<span class="ansiblue">(</span><span class="ansiblue">[</span><span class="ansiblue">&apos;Weight&apos;</span><span class="ansiblue">,</span> <span class="ansiblue">&apos;Duration&apos;</span><span class="ansiblue">]</span><span class="ansiblue">)</span><span class="ansiblue">.</span>size<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;kidney_table&apos; is not defined</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>Balanced panel</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[38]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">kt</span> <span class="o">=</span> <span class="n">kidney_table</span>
   <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">6</span><span class="p">))</span>
   <span class="n">fig</span> <span class="o">=</span> <span class="n">interaction_plot</span><span class="p">(</span><span class="n">kt</span><span class="p">[</span><span class="s1">&#39;Weight&#39;</span><span class="p">],</span> <span class="n">kt</span><span class="p">[</span><span class="s1">&#39;Duration&#39;</span><span class="p">],</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">kt</span><span class="p">[</span><span class="s1">&#39;Days&#39;</span><span class="p">]</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span>
           <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;red&#39;</span><span class="p">,</span> <span class="s1">&#39;blue&#39;</span><span class="p">],</span> <span class="n">markers</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;D&#39;</span><span class="p">,</span><span class="s1">&#39;^&#39;</span><span class="p">],</span> <span class="n">ms</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">plt</span><span class="o">.</span><span class="n">gca</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-417-e6704152aff6&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>kt <span class="ansiblue">=</span> kidney_table<span class="ansiblue"></span>
   <span class="ansigreen">      2</span> plt<span class="ansiblue">.</span>figure<span class="ansiblue">(</span>figsize<span class="ansiblue">=</span><span class="ansiblue">(</span><span class="ansicyan">8</span><span class="ansiblue">,</span><span class="ansicyan">6</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      3</span> fig = interaction_plot(kt[&apos;Weight&apos;], kt[&apos;Duration&apos;], np.log(kt[&apos;Days&apos;]+1),
   <span class="ansigreen">      4</span>         colors=[&apos;red&apos;, &apos;blue&apos;], markers=[&apos;D&apos;,&apos;^&apos;], ms=10, ax=plt.gca())
   
   <span class="ansired">NameError</span>: name &apos;kidney_table&apos; is not defined</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>You have things available in the calling namespace available in the formula evaluation namespace</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[39]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">kidney_lm</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;np.log(Days+1) ~ C(Duration) * C(Weight)&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">kt</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   
   <span class="n">table10</span> <span class="o">=</span> <span class="n">anova_lm</span><span class="p">(</span><span class="n">kidney_lm</span><span class="p">)</span>
   
   <span class="k">print</span><span class="p">(</span><span class="n">anova_lm</span><span class="p">(</span><span class="n">ols</span><span class="p">(</span><span class="s1">&#39;np.log(Days+1) ~ C(Duration) + C(Weight)&#39;</span><span class="p">,</span>
                   <span class="n">data</span><span class="o">=</span><span class="n">kt</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">(),</span> <span class="n">kidney_lm</span><span class="p">))</span>
   <span class="k">print</span><span class="p">(</span><span class="n">anova_lm</span><span class="p">(</span><span class="n">ols</span><span class="p">(</span><span class="s1">&#39;np.log(Days+1) ~ C(Duration)&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">kt</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">(),</span>
                  <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;np.log(Days+1) ~ C(Duration) + C(Weight, Sum)&#39;</span><span class="p">,</span>
                      <span class="n">data</span><span class="o">=</span><span class="n">kt</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()))</span>
   <span class="k">print</span><span class="p">(</span><span class="n">anova_lm</span><span class="p">(</span><span class="n">ols</span><span class="p">(</span><span class="s1">&#39;np.log(Days+1) ~ C(Weight)&#39;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">kt</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">(),</span>
                  <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;np.log(Days+1) ~ C(Duration) + C(Weight, Sum)&#39;</span><span class="p">,</span>
                      <span class="n">data</span><span class="o">=</span><span class="n">kt</span><span class="p">)</span><span class="o">.</span><span class="n">fit</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-418-a2ff4752a520&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">----&gt; 1</span><span class="ansired"> </span>kidney_lm <span class="ansiblue">=</span> ols<span class="ansiblue">(</span><span class="ansiblue">&apos;np.log(Days+1) ~ C(Duration) * C(Weight)&apos;</span><span class="ansiblue">,</span> data<span class="ansiblue">=</span>kt<span class="ansiblue">)</span><span class="ansiblue">.</span>fit<span class="ansiblue">(</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      2</span> <span class="ansiblue"></span>
   <span class="ansigreen">      3</span> table10 <span class="ansiblue">=</span> anova_lm<span class="ansiblue">(</span>kidney_lm<span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span> <span class="ansiblue"></span>
   <span class="ansigreen">      5</span> print(anova_lm(ols(&apos;np.log(Days+1) ~ C(Duration) + C(Weight)&apos;,
   
   <span class="ansired">NameError</span>: name &apos;kt&apos; is not defined</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="sum-of-squares">Sum of squares</h2>
   <p> Illustrates the use of different types of sums of squares (I,II,II)
    and how the Sum contrast can be used to produce the same output between
    the 3.</p>
   <p> Types I and II are equivalent under a balanced design.</p>
   <p> Don&#39;t use Type III with non-orthogonal contrast - ie., Treatment</p>
   </div>
   </div>
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[40]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">sum_lm</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;np.log(Days+1) ~ C(Duration, Sum) * C(Weight, Sum)&#39;</span><span class="p">,</span>
               <span class="n">data</span><span class="o">=</span><span class="n">kt</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   
   <span class="k">print</span><span class="p">(</span><span class="n">anova_lm</span><span class="p">(</span><span class="n">sum_lm</span><span class="p">))</span>
   <span class="k">print</span><span class="p">(</span><span class="n">anova_lm</span><span class="p">(</span><span class="n">sum_lm</span><span class="p">,</span> <span class="n">typ</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
   <span class="k">print</span><span class="p">(</span><span class="n">anova_lm</span><span class="p">(</span><span class="n">sum_lm</span><span class="p">,</span> <span class="n">typ</span><span class="o">=</span><span class="mi">3</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-419-46f87d0de498&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> sum_lm = ols(&apos;np.log(Days+1) ~ C(Duration, Sum) * C(Weight, Sum)&apos;,
   <span class="ansigreen">----&gt; 2</span><span class="ansired">             data=kt).fit()
   </span><span class="ansigreen">      3</span> <span class="ansiblue"></span>
   <span class="ansigreen">      4</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>anova_lm<span class="ansiblue">(</span>sum_lm<span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      5</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>anova_lm<span class="ansiblue">(</span>sum_lm<span class="ansiblue">,</span> typ<span class="ansiblue">=</span><span class="ansicyan">2</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;kt&apos; is not defined</pre>
   </div>
   </div>
   
   </div>
   </div>
   
   </div>
   <div class="cell border-box-sizing code_cell rendered">
   <div class="input">
   <div class="prompt input_prompt">In&nbsp;[41]:</div>
   <div class="inner_cell">
       <div class="input_area">
   <div class="highlight"><pre><span class="n">nosum_lm</span> <span class="o">=</span> <span class="n">ols</span><span class="p">(</span><span class="s1">&#39;np.log(Days+1) ~ C(Duration, Treatment) * C(Weight, Treatment)&#39;</span><span class="p">,</span>
               <span class="n">data</span><span class="o">=</span><span class="n">kt</span><span class="p">)</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
   <span class="k">print</span><span class="p">(</span><span class="n">anova_lm</span><span class="p">(</span><span class="n">nosum_lm</span><span class="p">))</span>
   <span class="k">print</span><span class="p">(</span><span class="n">anova_lm</span><span class="p">(</span><span class="n">nosum_lm</span><span class="p">,</span> <span class="n">typ</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
   <span class="k">print</span><span class="p">(</span><span class="n">anova_lm</span><span class="p">(</span><span class="n">nosum_lm</span><span class="p">,</span> <span class="n">typ</span><span class="o">=</span><span class="mi">3</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_text output_pyerr">
   <pre>
   <span class="ansired">---------------------------------------------------------------------------</span>
   <span class="ansired">NameError</span>                                 Traceback (most recent call last)
   <span class="ansigreen">&lt;ipython-input-420-f63f83741440&gt;</span> in <span class="ansicyan">&lt;module&gt;</span><span class="ansiblue">()</span>
   <span class="ansigreen">      1</span> nosum_lm = ols(&apos;np.log(Days+1) ~ C(Duration, Treatment) * C(Weight, Treatment)&apos;,
   <span class="ansigreen">----&gt; 2</span><span class="ansired">             data=kt).fit()
   </span><span class="ansigreen">      3</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>anova_lm<span class="ansiblue">(</span>nosum_lm<span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      4</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>anova_lm<span class="ansiblue">(</span>nosum_lm<span class="ansiblue">,</span> typ<span class="ansiblue">=</span><span class="ansicyan">2</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   <span class="ansigreen">      5</span> <span class="ansigreen">print</span><span class="ansiblue">(</span>anova_lm<span class="ansiblue">(</span>nosum_lm<span class="ansiblue">,</span> typ<span class="ansiblue">=</span><span class="ansicyan">3</span><span class="ansiblue">)</span><span class="ansiblue">)</span><span class="ansiblue"></span>
   
   <span class="ansired">NameError</span>: name &apos;kt&apos; is not defined</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>