
p7]c           @   s   d  Z  d d l m Z m Z d d l Z d d l m Z m Z d d l	 Z	 d d l
 m Z m Z m Z d d l m Z m Z m Z d d l m Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d S(   s>   

Created on Fri Jul 05 14:05:24 2013

Author: Josef Perktold
i(   t   lzipt   rangeN(   t   assert_allcloset   assert_almost_equal(   t   mcnemart
   cochrans_qt   SquareTable(   t   Runst   runstest_1sampt   runstest_2samp(   R   c         C   s@   t  j d d g d d g d d g d d g g |  j   d d S(   s6   expand a 2 by 2 contingency table to observations
    i   i    t   axis(   t   npt   repeatt   ravel(   t   table(    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   _expand_table   s    c          C   s8  t  j d d g d d g g  }  t  j d d g d d g g  } t  j d d g d d g g  } t  j d d g d d g g  } t  j d d	 g d d g g  } t  j d d	 g d	 d g g  } d
 } d } d } d }	 d }
 d } t |  d t } t | j | j g d | g d d t | d t } t | j | j g d | g d d t | d t } t | j | j g d | g d d t | d t } t | j | j g d |	 g d d t | d t } t | j | j g d	 |
 g d d t | d t } t | j | j g d	 | g d d d  S(   Nie   iy   i;   i!   iF   iP   i   i<   i
   g>g:ؗl<?gяS?gr&"`?gKK1b?g      ?t   exactt   decimali   (   R   t   arrayR   t   TrueR   t	   statistict   pvalue(   t   f_obs1t   f_obs2t   f_obs3t   f_obs4t   f_obs5t   f_obs6t   res1t   res2t   res3t   res4t   res5t   res6t   stat(    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   test_mcnemar_exact   s0    !!!!!!%%%%%c          C   s  t  j d d g d d g g  }  t  j d d g d d g g  } t  j d d g d d g g  } d d g } d	 d
 g } d d g } t |  d t } t | j | j g | d d t | d t } t | j | j g | d d t | d t } t | j | j g | d d d d g } d d g } d d g } t |  d t d t } t | j | j g | d d t | d t d t } t | j | j g | d d t | d t d t } t | j | j g | d d d  S(   Nie   iy   i;   i!   iF   iP   g#4@g̴>ga:c?gd:;?g	q@g?R   t   rtolgư>g	[5@g/x >g
?gޭL?gcT狜a	@gx"[+?t
   correction(   R   R   R   t   FalseR   R   R   (   R   R   R   R   R   R   R"   t   res(    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   test_mcnemar_chisquare6   s*    !!!c         C   s  t  j j d d d d
 } t j    t | d t } Wd  QXt j   O t g  t d  D]1 } t | d  d   d  d   | f d t ^ q]   } Wd  QXt	 | | d d t j    t | d t d	 t } Wd  QXt j   U t g  t d  D]7 } t | d  d   d  d   | f d t d	 t ^ q   } Wd  QXt	 | | d d t j    t | d t
 } Wd  QXt j   O t g  t d  D]1 } t | d  d   d  d   | f d t
 ^ q  } Wd  QXt	 | | d d d  S(   Ni   i   t   sizei   i   R   R$   gvIh%<=R%   (   i   i   i   (   R   t   randomt   randintt   pytestt   deprecated_callt	   sbmcnemarR&   R    R   R   R   (   t   reset_randomstatet   ttkR'   t   iR   (    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   test_mcnemar_vectorizedT   s"    PPPc          C   sp  t  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 g  j d d  }  t |  d t j   } t d d	 d
 d d d d d  } t | j | j	 g | d | d
 g d d t d |  d t j   } t d d d
 d d d d d  } t | j | j	 g | d | d
 g d d t  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 g  j d d  }  t |  d t j   } t d d d
 d d d d d  } t | j | j	 g | d | d
 g d d t d |  d t j   } t d d d
 d d d  d d  } t | j | j	 g | d | d
 g d d d  S(!   Ni    i   i   i   i   i   t   shift_zerosR   ge@R   g^5?t
   parametersi
   t   distrt   chi2R$   gHz>gGl@g?i   i   i	   i   gy2@gbS3?gv!>g'$-@gG?(   i
   (   i
   (   i
   (   i
   (
   R   R   t   reshapeR   R&   t   symmetryt   dictR   R   R   (   R   R'   t
   mcnemar5_1t   mcnemar5_1bt
   mcnemar5_2t   mcnemar5_2b(    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   test_symmetry_bowkerj   s8    ?'		?'		c          C   sb  t  j d d d g d d d g d d d g d d d g d d d g d d d g d d d g d d d g d d d g d d d g d d d g d d d g g  }  d } d } t |   } t | j | j g | | g  |  d  d   d  d  f j \ } } t |  d  d   d  d  f  } t j   3 t t	 | | d t
 d t
 | j | j g  Wd  QXd  S(   Ni   i    gffffff@gV%}?i   R   R%   (   R   R   R   R   R   R   t   TR,   R-   R.   R&   (   t   xt	   res_qstatt
   res_pvalueR'   t   at   b(    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   test_cochransq   s*    %"c          C   sY   t  j d j   t  j d d  }  t |   } t | j | j g d d g d d d  S(   Ns   
        0 0 0 1
        0 0 0 1
        0 0 0 1
        1 1 1 1
        1 0 0 1
        0 1 0 1
        1 0 0 1
        0 0 0 1
        0 1 0 0
        0 0 0 0
        1 0 0 1
        0 0 1 1ii   g%I*@gޞp?R$   gư>(	   R   R   t   splitt   intR7   R   R   R   R   (   t   dataR'   (    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   test_cochransq2   s    c          C   s"  d d d d t  f g }  t j d d d d d d d d g |   } t j d d d g d d d g d d d g d d d g d d d g d d d g d d d g d d d g g  } t j d d	 d
 d d	 d d d g  } t j | | d  } t |  } t | j | j g d d g d d d  S(   Nt   At   S1t   Bt   Ct   countt   Fi   t   Ui   i   i   i    i   g{ @gV-?t   atolg-C6
?(   RJ   RK   (   RL   RK   (   RM   RK   (   RO   RO   RO   i   (   RP   RO   RO   i   (   RO   RO   RP   i   (   RP   RO   RP   i   (   RO   RP   RO   i   (   RP   RP   RO   i   (   RO   RP   RP   i   (   RP   RP   RP   i   (   RG   R   R   R   R   R   R   R   (   t   dtt   dtat   casesRN   RH   R'   (    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   test_cochransq3   s*    	'c   	      C   s  t  j d d d d d d d d d d d d d d d d g  } d } d } d } d } d } d } t t  j t |  j d t   | | g d d	 t t | d t | | g d d	 | d
 t  j j d d d t	 |  } t t | d d d t | | g d d	 t t | d d d t | | g d d	 t t | d | j
   d t | | g d d	 t t | d d d t t | d t  j |  d t d d	 d  S(   Ni   i    g㥛 0?gXǰ/?gLq/?gZ1	Z?R%   R   i   g      ?gg?R)   t   cutofft   meant   median(   R   R   R   R   t	   runs_testR&   R   R*   t   uniformt   lenRW   RX   (	   R/   R@   t
   z_twosidedt   pvalue_twosidedt	   z_greatert   pvalue_greatert   z_lesst   pvalue_lesst   x2(    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   test_runstest   s*    ?!)!c    	      C   s   d d d d d d d g }  d d	 d
 d d d g } | d c d 7<t  j t  j t |    t  j t |   f  } t |  |  } d } t | | d d t |  |  } t | | d d t  j |  | f  } t |  } t | | d d t | | j    } t | | d d d  S(   Ng?@gffffff@@gC@i$   i   g     @A@g33333B@g     A@g;@gL5@g8@gYB@igư>g`?3a?g}jm?R$   (   g`?3a?g}jm?(	   R   t   concatenatet   zerosR[   t   onesR	   R   R   RW   (	   R@   t   yt   groupsR'   R   R   t   xyt   res_1st   res2_1s(    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   test_runstest_2sample   s    3(   t   __doc__t   statsmodels.compat.pythonR    R   t   numpyR   t   numpy.testingR   R   R,   t$   statsmodels.stats.contingency_tablesR   R   R   t   statsmodels.sandbox.stats.runsR   R   R	   R.   R   R#   R(   R2   R>   RE   RI   RU   Rc   Rl   (    (    (    sI   lib/python2.7/site-packages/statsmodels/stats/tests/test_nonparametric.pyt   <module>   s"   					$				&