
p7]c           @   s  d  d l  Z d  d l Z d  d l m Z m Z m Z d  d l m	 Z	 m
 Z
 m Z m Z m Z m Z m Z d  d l m Z e j d d d d d	 d
 d d d d d d d d d d d d d d g  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d  e f d!     YZ d S("   iN(   t   assert_almost_equalt   assert_raisest   assert_equal(   t   omni_normtestt   jarque_berat   durbin_watsont   _medcouple_1dt	   medcouplet   robust_kurtosist   robust_skewness(   t	   normal_adg_vOgBiqg o_y?g/$g47ؿg^K=Ϳg}?5^gZӼ˿gׁsF?g6<R?gGr׿g	?gz6ÿg7[ Ag2U0*g$~?gea?gJY8Ϳgc]KgCl?c          C   s   d }  t  t t  |  d  d }  t  t t d  |  d  d }  t  t t d d t d   |  d  d	 }  t  t t d d
 t d   |  d  d }  t  t t d d t d   |  d  d  S(   Ng{r??i   gF@bӱ?i   g.Bk?i   g      ?ig?g?gP|?g?(   R    R   t   x(   t   st_R(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_durbin_watson   s    &&c          C   s  d d l  m }  t j d d d g d d d g g  } t t  } t | | d  d   d	 f d
  |  j t  } t | | d  d   d f d
  |  j t  } t | | d  d   d f d  t j d d d g d d d g g  } t d } t |  } t | | d  d   d	 f d  |  j |  } t | | d  d   d f d  |  j |  } t | | d  d   d f d  d  S(   Ni(   t   statsg<N@g?PcgͰHa?g{Ӯ_?gr䭏?g^ZTc?i    i   i   i   i   gpBA@g/%?ѷ@gEi@g   (a>g  >g ?i   (	   t   scipyR   t   npt   arrayR   R   R    t   skewtestt   kurtosistest(   R   t   st_pv_Rt   ntt   stt   ktt   x2(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_omni_normtest.   s(       
  c         C   sr   t  j j d d  } t |  } t | d d } t | j d d } t | | d d t | | d d d  S(   Ni   i   t   axisi    i   t   decimali   (   R   t   randomt   randnR   t   TR    (   t   reset_randomstateR   t   nt1t   nt2t   nt3(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_omni_normtest_axisO   s    c          C   s   t  j d d g  }  t t  d  } t | |  d  t  j d d g  }  t t d  d  } t | |  d  t  j d d	 g  }  t t  j t d   d  } t | |  d  t  j d
 d g  }  t t  j t d   d  } t | |  d  d  S(   Ng@$u?gV?i   i   gS]S@g        i   gVl@g5{j?gΐ	1@g1%>?(   R   R   R   R   R    t   logt   exp(   R   t   jb(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_jarque_beraY   s    c          C   s
  d d l  m }  t j d d g  } |  t  } t | | d  t j d d g  } |  t d	  t j d
 d g  } t | | d  t j d d g  } |  t j t d	   } t | | d  t j d d g  } |  t j t d	   } t | | d  d  S(   Ni(   t   shapirog  Z?gU+?i   g   ?g~ؾ>g     @i   i   i   g   ЎZ?g
?g   80?gYd=
Z?gw3gӒ?(   t   scipy.statsR(   R   R   R   R    R$   R%   (   R(   R   t   sh(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_shapirol   s    #c          C   s  g  }  t  j d d g  } t t  } t | | d  |  j |  t  j d d g  } t t d  } t | | d  |  j |  t  j d d	 g  } t t  j t d   } t | | d  |  j |  t  j d
 d g  } t t  j t d   } t | | d  |  j |  t t  j t t d t  j t d  t  j t d  f  j	 d d } t | t  j |   d  d  S(   Ng op?gVd?i   g\d@g+ww>i   i   gsO?gD>0?gY[?g!.،D?R   i   (
   R   R   R
   R   R    t   appendR$   R%   t   column_stackR   (   t   st_pvR   t   ad(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_adnorm   s(    @	c         C   sD   t  j j d  } t j |  } t t |  t |  d d d  S(   Ni2   R   i   (   R   R   R   t   pdt   SeriesR    R   (   R   R   t   x_series(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_durbin_watson_pandas   s    t   TestStattoolsc           B   s   e  Z e d     Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c      	   C   sy  t  j j d  } t  j | d  \ } } } } } } } t  j | d  \ }	 }
 } t  j | d  \ } } } } t  j } | | | |  t  j |  d  d } | | | | | | d } | | | | k  | | | |	 k   | | | |
 k  | | | |
 k   d } | | | | d } | |  _ t  j | | | | g  |  _ t  j d d d d g  |  _	 d  S(   Ni  g      )@g      9@g     B@g      I@g     @O@g     R@g     U@g      @g     W@g      @g     `X@g      @g      @gܝ?gˎ@gQį,?@(   g      )@g      9@g     B@g      I@g     @O@g     R@g     U@(   g      @g      I@g     W@(   g      @g      9@g     R@g     `X@(
   R   R   t   standard_normalt
   percentilet   meant   stdt
   kurtosis_xR   t   expected_kurtosist   kurtosis_constants(   t   clsR   t   e1t   e2t   e3t   e4t   e5t   e6t   e7t   c05t   c50t   c95t   f025t   f25t   f75t   f975R8   t   kr1t   kr2t   kr3t   kr4(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   setup_class   s    '	+V	c         C   sJ   t  j t  j d  d  } t | d d  } t | t | j     d  S(   Ng      Y@i2   i   R   (   i2   i   (   R   t   reshapet   arangeR   t   NoneR    t   ravel(   t   selfR   t   mc(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_medcouple_no_axis   s    c         C   s/   t  j t  j d  d  } t t t |  d  S(   Ng      Y@i2   i   (   i2   i   (   R   RQ   RR   R   t
   ValueErrorR   (   RU   R   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_medcouple_1d   s    c         C   s&   t  t j d   } t | d  d  S(   Ng      @i    (   R   R   RR   R    (   RU   RV   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_medcouple_symmetric   s    c         C   s5   t  t j d d d d d g   } t | d  d  S(   Ni   i   i   i	   g      $@g1UUտ(   R   R   R   R    (   RU   RV   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_medcouple_nonzero   s    $c         C   sY   t  t j d d d d d g   } t  t j d d d d d g   } t | |  d  S(   Ni   i   i   i	   i
   g      $@(   R   R   R   R   (   RU   t   mc1t   mc2(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_medcouple_int   s    $$c         C   s@   t  j j d  } t |  } t |  } t | | d  d  S(   Nid   i    (   R   R   R6   R   R    (   RU   R   R   t   mcpt   mcn(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_medcouple_symmetry   s    c         C   s?   t  j d d d d d g  } t |  } t | d d  d  S(   Ni   i   i   i   g      ?g      @(   R   R   R   R    (   RU   R   R   RV   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_medcouple_ties   s    c         C   sR   t  j j d  } t t  j |  d  t  j | |  } t | t |   d  S(   Nid   g       @(   R   R   R6   t   sumt   difft   dotR    R   (   RU   R   R   t   dw(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyR      s    )c         C   s   d } t  j j d  } t t  j |  d  t  j | |  } t  j | d  d   d  f |  } t t  j	 | t  j
 |   t |   d  S(   Ni   i
   id   g       @(   i   i
   (   R   R   R6   Rc   Rd   Re   t   tileRS   R    t   squeezet   onesR   (   RU   R   t   shapeR   Rf   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_durbin_watson_2d   s
    )"c         C   s   d } t  j j d  } t t  j |  d  t  j | |  } t  j | d  d  d   d  f |  } t t  j	 | t  j
 |   t | d d  d  S(   Ni
   i   id   g       @R   (   i
   i   i
   (   R   R   R6   Rc   Rd   Re   Rg   RS   R    Rh   Ri   R   (   RU   R   Rj   R   Rf   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_durbin_watson_3d   s
    )%c         C   s>   t  j d  } t |  } t t  j |  t  j d   d  S(   Ng      5@i   (   R   RR   R	   R    R   t   zeros(   RU   R   t   sk(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_robust_skewness_1d   s    c         C   si   t  j j d  } | d  d   d  f } t |  } t | d d  } t t  j |  t  j |   d  S(   Ni   R   (   R   R   R   RS   R	   R    R   (   RU   R   R   t   yt   sk_xt   sk_y(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_robust_skewness_1d_2d   s
    c         C   sc   t  j j d  } t  j | t  j d  | g  } t |  } t t  j |  t  j d   d  S(   Nid   i   i   (   R   R   R6   t   hstackRm   R	   R    R   (   RU   R   R   Rn   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_robust_skewness_symmetric   s    "c         C   s   t  j j d  } t  j | t  j d  | g  } t  j | d  } t | d d } t  j d  } x | D] } t | |  qn Wd  S(   Nid   i   i
   R   i   (   i
   i
   i   (   i
   i
   (   R   R   R6   Rt   Rm   Rg   R	   R    (   RU   R   R   t   sk_3dt   resultRn   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_robust_skewness_3d   s    "c         C   si   t  j j d  } | d  d   d  f } t  j t |   } t  j t | d d   } t | |  d  S(   Nid   R   (   R   R   R   RS   R   R   R    (   RU   R   R   Rp   t   kr_xt   kr_y(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_robust_kurtosis_1d_2d  s
    c         C   s,   |  j  } t t j t |   |  j  d  S(   N(   R:   R    R   R   R   R;   (   RU   R   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_robust_kurtosis  s    	c         C   sr   t  j |  j d  } t  j t | d d  } x; t |  j  D]* \ } } t | t  j d  | |  q@ Wd  S(   Ni
   i   R   i   (   i
   i
   i   (   i
   i
   (	   R   Rg   R:   R   R   t	   enumerateR;   R    Ri   (   RU   R   t   kurtosist   it   r(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_robust_kurtosis_3d  s    c         C   sE   |  j  } |  j |  j } t j t | d t  } t | |  d  S(   Nt   excess(   R:   R;   R<   R   R   R   t   FalseR    (   RU   R   t   expectedR~   (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt!   test_robust_kurtosis_excess_false  s    	c         C   s   |  j  } d \ } } t |  j  d | | f d t } t j | | t j | d |  k  t j | | t j | |  k   } t j | | t j | d |  k  t j | | t j | |  k   } t | d | |  d  S(   Ng      $@g     F@t   abR   g      Y@i   (   g      $@g     F@(   R:   R   R   R   R8   R7   R    (   RU   R   t   alphat   betaR~   t   numt   denom(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_robust_kurtosis_ab  s    	!LLc         C   s   |  j  } d
 \ } } t |  j  d | | f d t } t j | | d | | d | g  } t | d | d | d | d | d	  d  S(   Ng      $@g     F@t   dgR   g      Y@i   i   i    i   (   g      $@g     F@(   R:   R   R   R   R7   R    (   RU   R   t   deltat   gammaR~   t   q(    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   test_robust_kurtosis_dg&  s
    	!&(   t   __name__t
   __module__t   classmethodRP   RW   RY   RZ   R[   R^   Ra   Rb   R   Rk   Rl   Ro   Rs   Ru   Rx   R{   R|   R   R   R   R   (    (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyR5      s*   																					(   t   numpyR   t   pandasR1   t   numpy.testingR    R   R   t   statsmodels.stats.stattoolsR   R   R   R   R   R   R	   t   statsmodels.stats._adnormR
   R   R   R   R   R#   R'   R+   R0   R4   t   objectR5   (    (    (    sF   lib/python2.7/site-packages/statsmodels/stats/tests/test_statstools.pyt   <module>   s   4		!	
				