
p7]c           @   su  d  d l  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 m Z m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z m Z m Z m Z m Z d  d	 l m Z m  Z  m! Z! d  d
 l" m# Z# d  d l$ m% Z% d  d l& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 d Z6 d Z7 d Z8 d Z9 d Z: d Z; d Z< e j= d  d    Z> d e? f d     YZ@ d e@ f d     YZA d e@ f d     YZB d e@ f d     YZC d e@ f d     YZD d  e@ f d!     YZE d" e@ f d#     YZF d$ e? f d%     YZG d& eG f d'     YZH d( eG f d)     YZI d* eG f d+     YZJ d, eG f d-     YZK d. e? f d/     YZL d0 eL f d1     YZM d2   ZN d3   ZO d4   ZP d5 e? f d6     YZQ d7 e? f d8     YZR d9 eR f d:     YZS d;   ZT d<   ZU e jV jW d= eX eY g  e jV jW d> eX eY g  d?     ZZ e jV j[ e jV j\ d@     Z] dA   Z^ dB   Z_ dC   Z` e jV jW dD dE dF dG dH g  e jV jW dI eY eX g  e jV jW d= eX eY g  e jV jW d> eX eY g  dJ       Za e jV jW dD dE dF g  e jV jW dI eY eX g  e jV jW d= eX eY g  e jV jW d> eX eY g  dK       Zb dL   Zc dM   Zd dN   Ze dO   Zf dP   Zg dQ   Zh dR   Zi dS   Zj dT   Zk dU   Zl dV   Zm dW   Zn dX   Zo dY   Zp dZ   Zq d[   Zr d\   Zs d S(]   iN(   t   assert_almost_equalt   assert_equalt   assert_raisest   assert_t   assert_allclose(   t   Seriest
   date_ranget	   DataFrame(   t   lstsq(   t   assert_index_equal(   t   PLATFORM_WIN(   t   lrange(   t	   macrodatat   sunspotst   nilet   randhiet
   modechoice(   t   CollinearityWarningt   MissingDataErrort   InterpolationWarning(   t
   arma_acovf(   t   SARIMAX(   t   adfullert   acft   pacf_ywt   pacf_olst   pacft   grangercausalitytestst   cointt   acovft   kpsst   arma_order_select_ict   levinson_durbint   levinson_durbin_pacft	   pacf_burgt   innovations_algot   innovations_filteri   i   i   i   i   i   i   t   modulec          C   s   t  j j d  }  |  j d  S(   Ni90  i   (   t   npt   randomt   RandomStatet   randn(   t   rnd(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt
   acovf_data%   s    t   CheckADFc           B   sd   e  Z d  Z d d d g Z e j   Z e j d j Z e j d j Z	 d   Z
 d   Z d   Z RS(	   sI   
    Test Augmented Dickey-Fuller

    Test values taken from Stata.
    s   1%s   5%s   10%t   realgdpt   inflc         C   s   t  |  j d |  j t  d  S(   Ni    (   R    t   res1t   teststatt	   DECIMAL_5(   t   self(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_teststat6   s    c         C   s   t  |  j d |  j t  d  S(   Ni   (   R    R/   t   pvalueR1   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_pvalue9   s    c         C   s>   g  |  j  D] } |  j d | ^ q
 } t | |  j t  d  S(   Ni   (   t   levelsR/   R    t
   critvaluest	   DECIMAL_2(   R2   t   levR7   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_critvalues<   s    '(   t   __name__t
   __module__t   __doc__R6   R   t   load_pandast   datat   valuest   xt   yR3   R5   R:   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyR,   +   s   		t   TestADFConstantc           B   s   e  Z d  Z e d    Z RS(   s*   
    Dickey-Fuller test for unit root
    c         C   sL   t  |  j d d d d  d d |  _ d |  _ d |  _ d d	 d
 g |  _ d  S(   Nt
   regressiont   ct   autolagt   maxlagi   g"]3?gf?g+gMbg/$(   R   RA   t   NoneR/   R0   R4   R7   (   t   cls(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   setup_classE   s
    		(   R;   R<   R=   t   classmethodRJ   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRC   A   s   t   TestADFConstantTrendc           B   s   e  Z d  Z e d    Z RS(   s   
    c         C   sL   t  |  j d d d d  d d |  _ d |  _ d |  _ d d	 d
 g |  _ d  S(   NRD   t   ctRF   RG   i   g|kɴg?gI+g"~gjt	(   R   RA   RH   R/   R0   R4   R7   (   RI   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ   Q   s
    		(   R;   R<   R=   RK   RJ   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRL   N   s   t   TestADFNoConstantc           B   s   e  Z d  Z e d    Z RS(   s   
    c         C   sL   t  |  j d d d d  d d |  _ d |  _ d |  _ d d	 d
 g |  _ d  S(   NRD   t   ncRF   RG   i   gwr.@gwJ?gV-g333333gZd;(   R   RA   RH   R/   R0   R4   R7   (   RI   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ   d   s
    		(   R;   R<   R=   RK   RJ   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRN   a   s   t   TestADFConstant2c           B   s   e  Z e d     Z RS(   c         C   sL   t  |  j d d d d  d d |  _ d |  _ d |  _ d d	 d
 g |  _ d  S(   NRD   RE   RF   RG   i   g
@HVgRjN=V9?g+gMbg/$(   R   RB   RH   R/   R0   R4   R7   (   RI   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ   u   s
    		(   R;   R<   RK   RJ   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRP   t   s   t   TestADFConstantTrend2c           B   s   e  Z e d     Z RS(   c         C   sL   t  |  j d d d d  d d |  _ d |  _ d |  _ d d	 d
 g |  _ d  S(   NRD   RM   RF   RG   i   gSKgZ`?g/$g"~gjt	(   R   RB   RH   R/   R0   R4   R7   (   RI   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ      s
    		(   R;   R<   RK   RJ   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRQ   ~   s   t   TestADFNoConstant2c           B   s    e  Z e d     Z d   Z RS(   c      
   C   s   t  |  j d d d d  d d |  _ d |  _ d |  _ d d	 d
 g |  _ t  |  j d d d d  d d d t \ } } } |  _ d  S(   NRD   RO   RF   RG   i   g'6zgKXc'?gV-g333333gZd;t   store(	   R   RB   RH   R/   R0   R4   R7   t   TrueRS   (   RI   t   _t   _1t   _2(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ      s    		c         C   s   t  |  j j   d  d  S(   Ns$   Augmented Dickey-Fuller Test Results(   R   RS   t   __str__(   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_store_str   s    (   R;   R<   RK   RJ   RY   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRR      s   t   CheckCorrGramc           B   s^   e  Z d  Z e j   Z e j d Z e j j	 e j j
 e   d Z e j e d d Z RS(   s%   
    Set up for ACF, PACF tests.
    R-   s   /results/results_corrgram.csvt	   delimitert   ,(   R;   R<   R=   R   R>   R?   RA   t   ost   patht   dirnamet   abspatht   __file__t   filenamet   pdt   read_csvt   results(    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRZ      s   t   TestACFc           B   s8   e  Z d  Z e d    Z d   Z d   Z d   Z RS(   s'   
    Test Autocorrelation Function
    c      
   C   sg   |  j  d |  _ |  j  d |  _ t |  j d d d t d d d t |  _ |  j  d	 d
 g j |  _ d  S(   Nt   acvart   Q1t   nlagsi(   t   qstatt   alphag?t   fftt   acvar_lbt   acvar_ub(	   Re   R   Rj   RA   RT   t   FalseR/   R@   t   confint_res(   RI   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ      s    *c         C   s%   t  |  j d d d !|  j t  d  S(   Ni    i   i)   (   R    R/   R   t	   DECIMAL_8(   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acf   s    c         C   sO   |  j  d |  j  d j d  d  d   d  f } t | d d !|  j t  d  S(   Ni   i)   (   R/   t   meanRH   R    Rp   Rq   (   R2   t   centered(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_confint   s    1c         C   s"   t  |  j d d  |  j t  d  S(   Ni   i(   (   R    R/   Rj   t	   DECIMAL_3(   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt
   test_qstat   s    (   R;   R<   R=   RK   RJ   Rr   Ru   Rw   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRf      s
   		t   TestACF_FFTc           B   s)   e  Z e d     Z d   Z d   Z RS(   c         C   sH   |  j  d |  _ |  j  d |  _ t |  j d d d t d t |  _ d  S(   Nt   acvarfftRh   Ri   i(   Rj   Rl   (   Re   R   Rj   RA   RT   R/   (   RI   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ      s    c         C   s"   t  |  j d d |  j t  d  S(   Ni    i   (   R    R/   R   Rq   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRr      s    c         C   s   t  |  j d |  j t  d  S(   Ni   (   R    R/   Rj   Rv   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRw      s    (   R;   R<   RK   RJ   Rr   Rw   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRx      s   	t   TestACFMissingc           B   sD   e  Z e d     Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s  t  j t  j t  j g  |  j f  |  _ |  j d |  _ |  j d |  _ t |  j d d d t d d d d	 d
 t	 |  _
 t |  j d d d t d d d
 t	 d d |  _ t  j d  t  j |  _ t  j d  t  j |  _ t |  j d d d t d d d d d
 t	 |  _ d  S(   NRg   Rh   Ri   i(   Rj   Rk   g?t   missingt   dropRl   t   conservativet   none(   R&   t   concatenatet   arrayt   nanRA   Re   R   Rj   RT   Ro   t   res_dropt   res_conservativet   emptyt   acf_nonet
   qstat_nonet   res_none(   RI   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ      s    *c         C   sE   t  j t  0 t |  j d d d t d t d d d d Wd  QXd  S(	   NRi   i(   Rj   Rl   Rk   g?R{   t   raise(   t   pytestt   raisesR   R   RA   RT   Ro   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt
   test_raise   s    $c         C   s%   t  |  j d d d !|  j t  d  S(   Ni    i   i)   (   R    R   R   Rq   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acf_none   s    c         C   s%   t  |  j d d d !|  j t  d  S(   Ni    i   i)   (   R    R   R   Rq   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acf_drop   s    c         C   s%   t  |  j d d d !|  j t  d  S(   Ni    i   i)   (   R    R   R   Rq   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acf_conservative   s    c         C   s   t  |  j d |  j t  d  S(   Ni   (   R    R   R   Rv   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_qstat_none   s    (	   R;   R<   RK   RJ   R   R   R   R   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRz      s   				t   TestPACFc           B   s;   e  Z e d     Z d   Z d   Z d   Z d   Z RS(   c         C   s$   |  j  d |  _ |  j  d |  _ d  S(   Nt   PACOLSt   PACYW(   Re   t   pacfolst   pacfyw(   RI   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ      s    c         C   s   t  |  j d d d d d d \ } } t | d |  j t  | | j d  d  d   d  f } d d	 g g d } t | d d
 !| t  t | d d d g  t | d d d g  t | d d  d  S(   NRi   i(   Rk   g?t   methodt   olsi   gS㥛gS㥛?i)   i    g        (   R   RA   R    R   t	   DECIMAL_6Rs   RH   R   (   R2   R   t   confintRt   t   res(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_ols  s    '#c   	      C   s$  d } t  |  j d | d t } |  j j   } | | j   8} | j d } t j | d d f  } | d } t j | d  } d | d <x} t	 |  D]o } | d | d | d !| d  d   | f <t
 | d  d   d  | d  f | d d  d d | | d <q Wt | | d	 d
 d  S(   Ni   Ri   t	   efficienti    i   g      ?t   rcondit   atolg:0yE>(   R   RA   Ro   t   copyRs   t   shapeR&   t   zerosR   t   rangeR   RH   R   (	   R2   t   lag_lenR   RA   t   nt   lagst   leadt   directt   i(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_ols_inefficient  s    

*Cc         C   s6   t  |  j d d d d } t | d |  j t  d  S(   NRi   i(   R   t   mlei   (   R   RA   R    R   Rq   (   R2   R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_yw  s    c         C   s   t  |  j d d d d } t |  j d d d d } t | | t  t |  j d d d d } t |  j d d d d } t | | t  d  S(   NRi   i(   R   R   t   ldbt   ywt   ldu(   R   RA   R   R    Rq   (   R2   R   t   pacfld(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_ld!  s    (   R;   R<   RK   RJ   R   R   R   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyR      s
   			t
   CheckCointc           B   sR   e  Z d  Z d d d g Z e j   Z e j d j Z e j d j Z	 d   Z
 RS(   sa   
    Test Cointegration Test Results for 2-variable system

    Test values taken from Stata
    s   1%s   5%s   10%t   realconsR-   c         C   s   t  |  j |  j t  d  S(   N(   R    t   coint_tR0   t	   DECIMAL_4(   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt
   test_tstat6  s    (   R;   R<   R=   R6   R   R>   R?   R@   t   y1t   y2R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyR   +  s   t   TestCoint_tc           B   s   e  Z d  Z e d    Z RS(   s*   
    Get AR(1) parameter on residuals
    c      	   C   sD   t  |  j |  j d d d d d d  d |  _ d |  _ d |  _ d  S(   Nt   trendRE   RG   i    RF   g{(vT"g9_aH(   R   R   R   RH   R   R0   (   RI   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyRJ   ?  s    .	(   R;   R<   R=   RK   RJ   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyR   ;  s   c       
   C   s  d }  d } d d d d g } t  j j d  t  j j |   j   } | t  j j |  d  } | d  d   d  d  f c | d  d   d  f 7<| | 7} t  j | d  } x+g  D]#} d | f GHt | d  d   d f | d  d   d f d	 | d
 d d d  GHt | d  d   d f | d  d   d d  f d	 | d
 d d d  GHt | d  d   d f | d  d   d d   f d	 | d
 d d d  GHt | d  d   d f | d  d   d d   f d	 | d
 d d d  GHq Wi  } i  } | d <d d d d g | d <d d d d g | d <d d d d g | d <d d d d g | d <i  } | d <d d d d g | d <d  | d d <d! d" d# d$ g | d <d% d" d# d$ g | d <d& d' d( d) g | d <i  } | d* <d+ d, d- d. g | d <d/ d0 d1 d2 g | d <d3 d0 d1 d2 g | d <d4 d5 d6 d7 g | d <i  } | d8 <t  j } d9 | | | g | d <d: | | | g | d <d; | | | g | d <d< | | | g | d <xd d d* d8 g D]} i  }	 t | d  d   d f | d  d   d f d	 | d
 d d d  |	 d <t | d  d   d f | d  d   d d  f d	 | d
 d d d  |	 d <t | d  d   d f | d  d   d d   f d	 | d
 d d d  |	 d <t | d  d   d f | d  d   d d   f d	 | d
 d d d  |	 d <xv t	 d  D]h }
 | | } t
 |	 |
 d | |
 d d= d> | |
 d } |	 |
 d } t
 | | d= d d? d@ qWqWt | d  d   d f | d  d   d f d	 d d
 d } t
 | d | d d d d= d d? d@ t
 | d  dA dB g d= dC d? dD d  S(E   Ni   i   i    g      ?i{   i   i   s   
R   RG   RF   i   RM   g\yvg LٟgӯgAg;,g0Wg ng bgA>"g3x֚gUgUpg$RE   g$
gpʐȝg!
g҆gSZg%Igkţ/wgσjEgć!6g1;];gg+ggg`Ezt   cttgSsgo$/ggx\tjig3grqg!gL'g]ɬJ	gkgȨK3g!S4Mg0RO   g权ng8gȁgMncdt   rtolgdy=R   gv!>gIwvc+gq:i}f:g|=g<6S:(   R&   R'   t   seedR)   t   cumsumRH   t   roundR   R   R   R   (   t   nobst   scale_et   constt   unitRB   R   t   res_egrangerR   R   R/   R   t   r2t   r1t   res1_0(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt
   test_cointG  sn    2
@FFJ	E>KK
#!;)c          C   s   d }  d } t  j j d  | t  j j |   } t j d t  t j t  & t	 | | d d d d d	 d  } Wd  QXt | d d
  t t  j | d   d  S(   Ni   i   i{   t   alwaysR   RE   RG   i    RF   g        (   R&   R'   R   R)   t   warningst   simplefilterR   R   t   warnsR   RH   R   R   t   isneginf(   R   R   RB   RE   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_coint_identical_series  s    'c          C   s   d }  d } t  j j d  | t  j j |  d  } d | j d d  d t  j j |   } t j d t  t j d t	  ( } t
 | | d	 d
 d d d d  } Wd  QXt | d d  t t  j | d   d  S(   Ni   i   i{   i   t   axisgHz>R   t   recordR   RE   RG   i    RF   g        (   R&   R'   R   R)   t   sumR   R   R   t   catch_warningsRT   R   RH   R   R   R   (   R   R   RA   RB   t   wRE   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_coint_perfect_collinearity  s    *'t   TestGrangerCausalityc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  j   j } | d d g j } | j t  } t j t j |  d d } d d d d g } t	 | d  d   d	 d  d
  f d d t
 } t | | d d d d d t | d d d | d d d d d d  S(   NR-   R   R   i    g,`p?gV?i   i   i   it   verboset	   ssr_ftestt   decimali   t   params_ftest(   R   R>   R?   R@   t   astypet   floatR&   t   difft   logR   Ro   R    (   R2   t   mdataR?   t   r_resultt   gr(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_grangercausality  s    .$c         C   sE   t  j j d d  } t | d d t t t t | d d t d  S(   Ni
   i   R   i   (   R&   R'   t   randR   Ro   R   t
   ValueError(   R2   t   reset_randomstatet   X(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt    test_granger_fails_on_nobs_check  s    (   R;   R<   R   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyR     s   	t	   SetupKPSSc           B   s$   e  Z e j   Z e j d  j Z RS(   R-   (   R;   R<   R   R>   R?   R@   RA   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyR     s   t   TestKPSSc           B   sh   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z RS(   s   
    R-code
    ------
    library(tseries)
    kpss.stat(x, "Level")
    kpss.stat(x, "Trend")

    In this context, x is the vector containing the
    macrodata['realgdp'] series.
    c         C   sR   t  j t   t |  j d d Wd  QXt j j d d  } t t	 t |  d  S(   NR   t   legacyi   i   (
   R   R   R   R   RA   R&   R'   R   R   R   (   R2   R   RA   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_fail_nonvector_input  s    c         C   s   t  j t   t |  j d d d Wd  QXt  j t   t |  j d d d Wd  QXt  j t   t |  j d d d Wd  QXt  j t   t |  j d d d Wd  QXt t t |  j d d d d  S(   NRE   R   R   t   CRM   t   CTs   unclear hypothesis(   R   R   R   R   RA   R   R   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_fail_unclear_hypothesis  s    c      	   C   s   t  j t  & t |  j d d  \ } } } } Wd  QXt | d t  t  j t  & t |  j d d  \ } } } } Wd  QXt | d t  d  S(   NRE   i   g5;N@RM   g?W[?(   R   R   R   R   RA   R    Rv   (   R2   t	   kpss_statt   pvalR   t   crits(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyR3     s    ''c      	   C   s   t  j t  & t |  j d d  \ } } } } Wd  QXt | d  t  j t  & t |  j d d  \ } } } } Wd  QXt | d  d  S(   NRE   i   g{Gz?RM   (   R   R   R   R   RA   R   (   R2   R   R   R   R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt	   test_pval  s    ''c      	   C   sg   t  j t  ) t |  j d d t  \ } } } } Wd  QXt | j t |  j   t | j	 d  d  S(   NRE   i   (
   R   R   R   R   RA   RT   R   R   t   lenR   (   R2   R   R   t   critRS   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt
   test_store  s    *c         C   s]  t  j t   t |  j d d d } Wd  QXt | d d  t t j t  j	 d d d d } t | d d  t  j t  * t t
 j t  j	 d d d d } Wd  QXt | d d	  t  j t  * t t j t  j	 d
 d d d } Wd  QXt | d d  t  j t  * t t j t  j	 d d d d } Wd  QXt | d d  d  S(   NRE   R   t   autoi   i	   t   SUNACTIVITYi   t   volumei   t   lncoinsRM   iK   t   invti   (   R   R   R   R   RA   R   R   t   loadRT   R?   R   R   R   (   R2   R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt	   test_lags  s    %+++c      	   C   sW   t  |  j  } d j | |  } t j t d |  t |  j d d | Wd  QXd  S(   Ns3   lags \({}\) must be < number of observations \({}\)t   matchRE   R   (   R   RA   t   formatR   R   R   R   (   R2   R   t   msg(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_kpss_fails_on_nobs_check  s
    c      	   C   sC   t  j t   t |  j d d d } Wd  QXt | d d  d  S(   NRE   R   R   i   i   (   R   R   R   R   RA   R   (   R2   R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_legacy_lags'  s    c      	   C   s0   t  j t   t |  j d d d Wd  QXd  S(   NRE   R   t   unknown(   R   R   R   R   RA   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_unknown_lags-  s    c         C   s*   t  j t   t |  j d  Wd  QXd  S(   NRE   (   R   R   t   FutureWarningR   RA   (   R2   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_deprecation2  s    (   R;   R<   R=   R   R   R3   R   R   R   R   R   R   R  (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyR     s   
										
		c          C   sA   t  t d d   }  t t |  d t t |  j d t  d  S(   Ni   i   Rl   (   R   R   R    R   Ro   R@   (   t   s(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_pandasacovf7  s    c         C   s   t  j   j } t d d d d d d  d  | _ | d =t | d	 t } t | t | j d	 t  t	 j
 j
 d  } t j t   t | d	 t Wd  QXd  S(   Nt   startt   1700t   endt   2009t   freqt   Ai5  t   YEARRl   i
   i   (   i
   i   (   R   R>   R?   R   t   indexR   Ro   R   R@   R&   R'   R   R   R   (   R   t   dtaR   RA   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acovf2d<  s    "t   demeant   unbiasedc         C   sx   t  j j d  t  j j d d  } t | d |  d | d t } t | d |  d | d t } t | | d d d  S(	   Ni   t   sizeid   R  R  Rl   R   i   (   R&   R'   R   t   normalR   RT   Ro   R    (   R  R  t   qt   F1t   F2(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acovf_fft_vs_convolutionG  s
    c       
   C   s  d d l  m }  t j d d g  } t j d d g  } t j d | f } t j d | f } d } t j j d	  |  | | |  } t | d
 d d g d d } t j t j d d g d d d g d d d g d d d g d d d g g  } t j t j d d g d d  d! g d" d# d$ g d% d& d' g d( d) d* g g  } t	 | d+ t
 d,  d- t
 d.  }	 t	 | d+ t
 d,  d- t
 d.  }
 t | j j |	 j d,  t | j j |
 j d,  t | j d6  t | j d7  t | j j j |	 j   t | j j j |	 j   t | j j j |
 j   t | j j j |
 j   t j d0 d1 d2 d3 t |  } t j | d+ | } t | d4 d/ d5 d d
 d d g d d } t | j j |	 j d  d.  d  d/  f d,  t | j j |
 j d  d.  d  d/  f d,  t | j d8  t | j d9  t | d
 d d d } t | j j |	 j d,  t | j j j |	 j   t | j j j |	 j   t | j d:  d  S(;   Ni(   t   arma_generate_sampleg      ?g      пg?gffffff?i   i   i  t   ict   aict   bicR   RO   gsE@gλD~@gAߐ@gQX~@gAPA~@gGߦ@gVm.~@gTJ~@gв@~@gW`"~@g=~@g!(~@g1_g=~@g4Zf]~@g17~@g͹~@g 7Ɂ@gkX@g6~@gA,@g	
@g!Yl8@gxOJ"@g<@g"j@g˞%D7@gGv@g@R  i   t   columnsi   i   s   2000-1-1R	  t   Mt   periodst   max_art   max_ma(   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   t   statsmodels.tsa.arima_processR  R&   R   t   r_R'   R   R   R   R   R   R    R  R@   R  R   t   aic_min_ordert   bic_min_orderR   R  t   equalsR  Rc   R   R   R   (   R  t   arparamst   maparamst   maparamR   RB   R   t   aic_xt   bic_xR  R  R  t   y_seriest   res_pd(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_arma_order_select_icR  sT    $$!//c          C   s   t  j d d d d d d d d d	 d
 d d d d d d d d d d g  }  d d  l } | j    | j d  t |   } Wd  QXd  S(   Ng /6?gM[!M?g?g k?g39&?gEw?gbD<?gM?gKZ?gѿgx?οgXUοgk
u)пg)s&=˿g(9thĿgI?g
mQ-?gg^:?gV0*̸?gN*t?it   ignore(   R&   R   R   R   R   R   (   RB   R   R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt!   test_arma_order_select_ic_failure  s    c          C   s6   t  t j   j d g d t }  t |  j d  d  S(   NR   Rl   i   (   R   R   R>   R?   RT   R   t   ndim(   t   result(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acf_fft_dataframe  s    "c          C   s   d }  d } |  t  j d  } t | | d t \ } } } } } t | d |  d  t | t  j |  g d g | d  d d	 t | t  j d |  g d g | d  d d	 d  S(
   Ng?i   i   t   isacovi   i   i    R   g:0yE>(   R&   t   arangeR    RT   R   R   (   t   rhot   mt   acovt
   sigma2_epst   arR   RU   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_levinson_durbin_acov  s    $.R{   R}   R|   R   R~   Rl   c         C   sc   t  |  d | d | d | d | } t  |  d | d | d | d | d d } t | d  |  d  S(   NR  R  Rl   R{   t   nlagi
   i   (   R   R   (   R+   R  R  Rl   R{   t   fullt   limited(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acovf_nlags  s
    	c         C   s   |  j    }  t j |  d d +t |  d | d | d | d | } t |  d | d | d | d | d d } t | d	  |  d  S(
   Ni   i   R  R  Rl   R{   R:  i
   i   (   R   R&   R   R   R   (   R+   R  R  Rl   R{   R;  R<  (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acovf_nlags_missing  s    	c      
   C   s0   t  j t   t |  d d d t Wd  QXd  S(   NR:  i   Rl   (   R   R   R   R   Ro   (   R+   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acovf_error  s    c         C   s$   t  j t   t |   Wd  QXd  S(   N(   R   R   R  R   (   R+   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acovf_warns  s    c         C   s*   t  j t   t |  d d Wd  QXd  S(   NRi   i(   (   R   R   R  R   (   R+   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_acf_warns  s    c          C   s   t  j d  }  d |  d <d |  d <t |   \ } } t | d t  j d   t | |  d d d t |  d d	 \ } } t | d t  j d
   t | |  d d !d d d  S(   Ni
   i   i    g?g      $@R   g:0yE>Ri   i   g      @i   (   R&   R   R!   R   R3  (   R   R8  R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_pacf2acf_ar  s    

c       
   C   s   d t  j d  }  d |  d <t |   \ } } t | d d t \ } } } } } t | | d d t |  | d d d	 d
 d d d d d d d d g
 } t | | d d d  S(   Ng?g      &@i   i    i
   R2  R   g:0yE>g7¤g4@"geX,gJ+1gUN1gd]F,g/$#gꕲqg=yXg_vOֿg-C6?(   R&   R3  R!   R    RT   R   (   R   R8  R   RU   t   ar_ldt   pacf_ldt	   ar_from_r(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_pacf2acf_levinson_durbin  s    
$c          C   s   d t  j d  }  d |  d <t j t   t |  d d Wd  QXt j t   t |  d   Wd  QXt j t   t t  j d   Wd  QXt j t   t t  j d	   Wd  QXd  S(
   Ng?g      &@i   i    Ri   i   i
   i   (   i
   i   (   R&   R3  R   R   R   R!   R   (   R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_pacf2acf_errors  s    
c    	      C   s   t  j j d  }  |  j d  } | d d | d  } t | d  \ } } t | d  } t | | d d | | j   } | j |  d	 } d
 | d
 <| t  j	 d | d  } t | | d d d  S(   Ni90  i'  i   g      ?ii
   R   gMb@?i'  i    i   gMbP?(
   R&   R'   R(   R)   R"   R   R   Rs   t   dott   cumprod(	   R*   t   eRB   R   t   sigma2t   yw_pacft   yet   s2yt   sigma2_direct(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_pacf_burg  s    
c           C   s\   t  j t   t t j d  d  Wd  QXt  j t   t t j d  d  Wd  QXd  S(   Ni   i   i
   id   ie   (   i   i   (   R   R   R   R"   R&   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_pacf_burg_error  s    c          C   s   d }  t  j d |  d |  g  } t | d d \ } } t  j d g d g d g d	 g g  } t | | d
 d t | d d d d g d
 d t | d d \ } } t | d |   t | d d  d  S(   Ngi   i   R   i   i    g߿gkw#g6>W[R   g-C6?g(\?g?g r?g#J{/L?i  ig      ?(   ii    (   R&   R   R#   R   (   t   maR   t   thetaRK  t	   exp_theta(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt%   test_innovations_algo_brockwell_davis  s    'c          C   s   t  j d d g  }  t  j d |  d j   |  d |  d |  d |  d g  } t | d d \ } } t | d d d d	 \ } } t | |  t | |  d  S(
   Ngg      ?i   i   i    R   i  R   g:0yE>(   R&   R   R   R#   R   (   RR  R   RS  RK  t   theta_2t   sigma2_2(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_innovations_algo_rtol!  s    >c          C   s   d }  t  j d |  d |  g  } t j t   t | d d Wd  QXt j t   t | d d Wd  QXt j t   t t  j d	   Wd  QXt j t   t | d d Wd  QXd  S(
   Ngi   i   R   g@iR   R~   (   i   i   (   R&   R   R   R   R   R#   R   (   RR  R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_innovations_errors*  s    c   
      C   s   d } t  j d | d | g  } t | d d \ } } t  j j d  } | d | | d  } t | |  } | d g } x> t d d  D]- }	 | j | |	 | |	 d f | d  q Wt  j |  } t | |  d  S(	   Ngi   i   R   i   i   ii    (	   R&   R   R#   R'   R)   R$   R   t   appendR   (
   R   RR  R   RS  RU   RJ  t   endogt   residt   expectedR   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt'   test_innovations_filter_brockwell_davis7  s    +c   	      C   s   t  j d d g  } t  j d | d j   | d | d | d | d g  } t | d d \ } } t  j j d  } t j | d t j d	 d
 d } t	 | |  } t	 | |  } t
 | | j  t | j | j  d  S(   Ngg      ?i   i   i    R   i
   R  s
   2000-01-01R  (   R&   R   R   R#   R'   R)   Rc   R   R   R$   R   R@   R	   R  (	   R   RR  R   RS  RU   R[  t   endog_pdR\  t   resid_pd(    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_innovations_filter_pandasE  s    >c          C   s   d }  t  j d |  d |  g  } t | d d \ } } t j t   t t  j d  |  Wd  QXt j t   t t  j d  | d   Wd  QXt j t  $ t t j	 t  j d   |  Wd  QXd  S(	   Ngi   i   R   i   i(   i   i   (   i   i   (
   R&   R   R#   R   R   R   R$   R   Rc   R   (   RR  R   RS  RU   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_innovations_filter_errorsR  s     c         C   s  t  j d g  } t  j d g  } d } t  j j d d  } t t  j d | f t  j d | f d t |  } t |  \ } } t | |  } d | d | | d t  j	 d t  j
 |  }	 t | d	 t |  d
 t |  f }
 |
 j t  j | | | f  } t rd n d } t | | j d
 d | t | d d   d
 f | j j d
 d
 d  d  f d | t |	 | j d | d  S(   Ng      ?g?i   R  i
   R   g      i   t   orderi    gư>g        R   i(   R&   R   R'   R  R   R!  R   R#   R$   R   t   piR   t   filterR
   R   t   forecasts_errort   filter_resultst   kalman_gaint   llf_obs(   R   t	   ar_paramst	   ma_paramsRK  R[  R   RS  t   vt   uRi  t   modR   R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt*   test_innovations_algo_filter_kalman_filter^  s     '2'5c      	   C   s   t  j j d  } t | d t } | d j d k s= t  t  j j d  } t j t	 d d  t |  Wd  QXt  j j d  } t j t	 d d  t | d	 d
 Wd  QXd  S(   Ni   RS   ii   i   R   s   sample size is too shorti   RD   RM   (
   R&   R'   t   standard_normalR   RT   RG   t   AssertionErrorR   R   R   (   R   RB   R   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_adfuller_short_series~  s    c         C   sB   t  j j d  } t j t d d  t | d d Wd  QXd  S(   Nid   R   s   maxlag must be less thanRG   i3   (   R&   R'   Rp  R   R   R   R   (   R   RB   (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   test_adfuller_maxlag_too_large  s    (t   R]   R   t   numpyR&   t   pandasRc   R   t   numpy.testingR    R   R   R   R   R   R   R   t   statsmodels.compat.numpyR   t   statsmodels.compat.pandasR	   t   statsmodels.compat.platformR
   t   statsmodels.compat.pythonR   t   statsmodels.datasetsR   R   R   R   R   t   statsmodels.tools.sm_exceptionsR   R   R   R   R   t"   statsmodels.tsa.statespace.sarimaxR   t   statsmodels.tsa.stattoolsR   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   Rq   R   R1   R   Rv   R8   t	   DECIMAL_1t   fixtureR+   t   objectR,   RC   RL   RN   RP   RQ   RR   RZ   Rf   Rx   Rz   R   R   R   R   R   R   R   R   R   R  R  t   markt   parametrizeRT   Ro   R  t   smoket   slowR,  R.  R1  R9  R=  R>  R?  R@  RA  RB  RF  RG  RP  RQ  RU  RX  RY  R^  Ra  Rb  Ro  Rr  Rs  (    (    (    sC   lib/python2.7/site-packages/statsmodels/tsa/tests/test_stattools.pyt   <module>   s   ((d

)/	N		l		'
	3			-	-																 	