
p7]c        d   @   s"  d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l Z	 d d l
 Z
 d d l m Z m Z m Z m Z m Z d d l m Z d d l m Z m Z m Z d Z d Z d	 Z d
 Z e j d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d gc  Z e j d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d gc  Z e e  Z e e  Z e e  Z e e  Z e	 j e e  d d d d d d Z  d8 e  _! e	 j e e  d d d d d d Z" d9 e" _! e" d j# d    e" d <e	 j e e  d d d d d d Z$ d d g e$ _! e	 j e e  d d  d d d d Z% d! d" d# d$ d% g e% _! x( d: D]  Z& e% e& j# d&    e% e& <qTWe% j' d' d( d) g Z( d* d+  Z) d, e* f d-     YZ+ d. e+ f d/     YZ, d0 e, f d1     YZ- d2 e+ f d3     YZ. d4 e+ f d5     YZ/ d6 e+ f d7     YZ0 d S(;   s>   

Created on Wed Mar 28 15:34:18 2012

Author: Josef Perktold
i(   t   BytesIOt   asbytest   rangeN(   t   assert_t   assert_allcloset   assert_almost_equalt   assert_equalt   assert_raises(   t   qsturng(   t   tukeyhsdt   pairwise_tukeyhsdt   MultiComparisons/    43.9  1   1
  39.0  1   2
  46.7  1   3
  43.8  1   4
  44.2  1   5
  47.7  1   6
  43.6  1   7
  38.9  1   8
  43.6  1   9
  40.0  1  10
  89.8  2   1
  87.1  2   2
  92.7  2   3
  90.6  2   4
  87.7  2   5
  92.4  2   6
  86.1  2   7
  88.1  2   8
  90.8  2   9
  89.1  2  10
  68.4  3   1
  69.3  3   2
  68.5  3   3
  66.4  3   4
  70.0  3   5
  68.1  3   6
  70.6  3   7
  65.2  3   8
  63.8  3   9
  69.2  3  10
  36.2  4   1
  45.2  4   2
  40.7  4   3
  40.5  4   4
  39.3  4   5
  40.3  4   6
  43.2  4   7
  38.7  4   8
  40.9  4   9
  39.7  4  10se  1     mental               2
2     mental               2
3     mental               3
4     mental               4
5     mental               4
6     mental               5
7     mental               3
8     mental               4
9     mental               4
10    mental               4
11  physical               4
12  physical               4
13  physical               3
14  physical               5
15  physical               4
16  physical               1
17  physical               1
18  physical               2
19  physical               3
20  physical               3
21   medical               1
22   medical               2
23   medical               2
24   medical               2
25   medical               3
26   medical               2
27   medical               3
28   medical               1
29   medical               3
30   medical               1sh   1 24.5
1 23.5
1 26.4
1 27.1
1 29.9
2 28.4
2 34.2
2 29.5
2 32.2
2 30.1
3 26.1
3 28.3
3 24.3
3 26.2
3 27.8s   2 - 3	4.340	0.691	7.989	***
2 - 1	4.600	0.951	8.249	***
3 - 2	-4.340	-7.989	-0.691	***
3 - 1	0.260	-3.389	3.909	-
1 - 2	-4.600	-8.249	-0.951	***
1 - 3	-0.260	-3.909	3.389	-
i   i   i   t   USAt   Francet   Japant   Germanyt   Swedent   seps   \s+t   headert   enginet   pythont   Rustt   Brandt   Replicationt   idxt	   Treatmentt   StressReductionc         C   s   |  j  d  S(   Ns   utf-8(   t   encode(   t   v(    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   <lambda>   t    t   Reliefs   \tt   pairt   meant   lowert   uppert   sigc         C   s   |  j  d  S(   Ns   utf-8(   R   (   R   (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyR      R   i   i   i   g?c         C   s   t  j |  j j   d t |  j  } |  j j } |  j j } t | | | d d  d | d t
 d | t |  | d j    } |  j j   | d j   | d j   } t | | d d | S(	   Nt   ddoft   dft   alphat   q_criti   g      ?t   decimali   (   t   npt   vart
   groupstatst   groupdemeant   lent   groupsuniquet	   groupmeant	   groupnobsR	   t   NoneR   t   sumt   groupvarwithinR   (   t   mciR'   t   var_t   meanst   nobst   resit   var2(    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   get_thsd   s    ')t   CheckTuckeyHSDMixinc           B   sS   e  Z e d     Z d   Z d   Z d   Z e j j	 e j j
 d     Z RS(   c         C   s7   t  |  j |  j  |  _ |  j j d |  j  |  _ d  S(   NR'   (   R   t   endogt   groupst   mcR	   R'   t   res(   t   cls(    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   setup_class_   s    c         C   sR   t  |  j j |  j d d t  |  j j |  j d d t |  j j |  j  d  S(   NR)   i   i   (	   R   R@   t	   meandiffst	   meandiff2t   confintt   confint2R   t   rejectt   reject2(   t   self(    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   test_multicomptukey   s    c         C   s6   t  |  j d |  j } t | d |  j d d d  S(   NR'   i   R)   i   (   R;   R?   R'   R   RF   (   RI   t   res_t(    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   test_group_tukey   s    c         C   s>   t  |  j |  j d |  j } t | j |  j j d d d  S(   NR'   R)   i   (   R
   R=   R>   R'   R   RE   R@   (   RI   R@   (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   test_shortcut_function   s    c         C   s4   |  j  j   |  j  j d } |  j  j d |  d  S(   Ni   t   comparison_name(   R@   t   _simultaneous_ciR/   t   plot_simultaneous(   RI   t   close_figurest	   reference(    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   test_plot_simultaneous_ci   s    (   t   __name__t
   __module__t   classmethodRB   RJ   RL   RM   t   pytestt   markt   smoket
   matplotlibRS   (    (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyR<      s   				t   TestTuckeyHSD2c           B   s)   e  Z e d     Z d   Z d   Z RS(   c         C   s   t  d |  _ t  d |  _ d |  _ |  j   t j d d d d d d	 d
 d d d d d g  j d d d d } | d  d   d f |  _ | d  d   d d  f |  _	 | d  d   d f } | d k  |  _
 d  S(   NR   R   g?g      ?i   g      gwIQ?gm]ƿg@,gTUh m@gTUh m@gD1uW?gg֬?gES?gz?i   i   t   ordert   Fi    (   t   dta2R=   R>   R'   RB   R*   t   arrayt   reshapeRD   RF   RH   (   RA   t
   tukeyhsd2st   pvals(    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   setup_class   s    	
c         C   sy   |  j  j } d d d	 g } xW t d d  D]F } | | d j } | | d j } t | | f | | d k  q+ Wd  S(
   Nt   medicalt   mentalt   physicali   i   i    (   Rd   Re   (   Rd   Rf   (   Re   Rf   (   R@   t   _results_tableR   t   dataR   (   RI   t   tt   expected_ordert   it   first_groupt   second_group(    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt$   test_table_names_default_group_order   s    	c         C   s   t  |  j |  j d d d d g } | j d |  j  } | j } d	 d
 d g } xW t d d  D]F } | | d j } | | d j } t | | f | | d k  qa Wd  S(   Nt   group_orderRf   Rd   Re   R'   i   i   i    (   Rf   Rd   (   Rf   Re   (   Rd   Re   (	   R   R=   R>   R	   R'   Rg   R   Rh   R   (   RI   R?   R@   Ri   Rj   Rk   Rl   Rm   (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt#   test_table_names_custom_group_order   s    		(   RT   RU   RV   Rc   Rn   Rp   (    (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyR[      s   	t   TestTuckeyHSD2Pandasc           B   s    e  Z e d     Z d   Z RS(   c         C   sG   t  t |   j   t j |  j  |  _ t j |  j d t |  _ d  S(   Nt   dtype(   t   superRq   Rc   t   pdt   SeriesR=   R>   t   object(   RA   (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyRc      s    c         C   s  t  t t t j d g d  d d g d  t  t t t j d g d  d d g d  t  t t t j d g d  d g d  t j d t  J } t j d  t  t t t j d g d  d d g d d	 d g Wd  QXt j	 d
  } t j
 d d d g d  } t j d t  g } t j d  t t j |  | d	 d d g } t t |  d  t | d j t  st  Wd  QX| j d d  } t t j | d   | d   } | j d d  } d d d d d d d d d d d g } xC | D]; }	 |	 d }
 t t | |	  t | |	  d d d |
 qWd d d d d d  d! d" g } xC | D]; }	 |	 d }
 t t | |	  t | |	  d d d |
 q]Wd  S(#   Ni   i
   i   i   i   t   recordt   alwaysi   Ro   i   i   i    R'   g{Gz?RE   Rh   t   df_totalR>   R/   RC   R(   RG   RH   t	   std_pairst   variancet   failedt   rtolg+=t   err_msgt   datalit   groupintlabt   ngroupsR8   t   pairindices(   R   t
   ValueErrorR   R*   R_   t   warningst   catch_warningst   Truet   simplefiltert   aranget   repeatR   R.   t
   issubclasst   categoryt   UserWarningt   AssertionErrorR	   R   t   getattr(   RI   t   wRh   R>   t   mod1t   res1t   mod2t   res2t
   attributest   attR~   (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   test_incorrect_output  s<    --* $" 	
$
$(   RT   RU   RV   Rc   R   (    (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyRq      s   t   TestTuckeyHSD2sc           B   s   e  Z e d     Z RS(   c         C   s   t  d d d !|  _ t  d d d !|  _ d |  _ |  j   t j d d d d	 d
 d d d d d d d g  j d d d d } | d  d   d f |  _ | d  d   d d  f |  _	 | d  d   d f } | d k  |  _
 d  S(   NR   i   i   R   g{Gz?g88?gqq?igr>E?g-zg8Krgɏk@g˻@ghZ?ghM>g?g;Ug$B?g+4?i   R\   R]   i    i   (   R^   R=   R>   R'   RB   R*   R_   R`   RD   RF   RH   (   RA   Ra   Rb   (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyRc   /  s    	
(   RT   RU   RV   Rc   (    (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyR   .  s   t   TestTuckeyHSD3c           B   s   e  Z e d     Z RS(   c         C   s   t  d |  _ t  d |  _ d |  _ |  j   t d |  _ t d d g j t  j	 j
 d  |  _ t d	 t d
  k |  _ d  S(   NR   R   g?R!   R"   R#   i   i   R$   s   ***(   i   i   (   t   dta3R=   R>   R'   RB   t   sas_RD   t   astypet   floatt   valuesR`   RF   R   RH   (   RA   (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyRc   E  s    	
((   RT   RU   RV   Rc   (    (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyR   C  s   t   TestTuckeyHSD4c           B   s    e  Z e d     Z d   Z RS(   c         C   s  t  |  _ t |  _ d |  _ |  j   |  j j   t j	 d d d d d g  |  _
 t j	 d d d	 d
 d d d d d d
 g
  |  _ t j	 d d d d d d d d d d d d d d d d d  d! d" d# g  j d$ d%  |  _ t j	 t t t t t t t t t t g
  |  _ d  S(&   Ng?gf]?gX?g茠:,?gR0@gaZ?g qq?g ?g        g&~FQ@g llg qq̿ga @g gm5x@@gЏg<	@g\gá@g>5Og>5O@gMzT~,?g@g+Hg{?g<gȻ;@g}.?gc@gSL
gv*i@gf|Ip?g4|&

@g0)gī aL@i
   i   (   t	   cylindersR=   t
   cyl_labelsR>   R'   RB   R@   RO   R*   R_   t
   halfwidth2RD   R`   RF   t   FalseR   RH   (   RA   (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyRc   U  s     			
	c         C   s   t  |  j j |  j d  d  S(   Ni   (   R   R@   t
   halfwidthsR   (   RI   (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   test_hochberg_intervalsk  s    (   RT   RU   RV   Rc   R   (    (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyR   S  s   (   R   R   R   (   R   R   R   (   R    R$   (1   t   __doc__t   statsmodels.compat.pythonR    R   R   R   t   numpyR*   t   pandasRt   RW   t   numpy.testingR   R   R   R   R   t   statsmodels.stats.libqsturngR   t   statsmodels.stats.multicompR	   R
   R   t   sst   ss2t   ss3t   ss5R_   R   R   t   read_csvR2   t   dtat   columnsR^   t   mapR   t   dta5t   colt   ilocR   R;   Rv   R<   R[   Rq   R   R   R   (    (    (    sD   lib/python2.7/site-packages/statsmodels/stats/tests/test_pairwise.pyt   <module>   s^   (+!	TQQB'*!*$*$*'	'	''16