
p7]c           @   sb  d  d l  m Z d  d l m Z d  d l m Z d  d l Z d  d l m	 Z	 m
 Z
 m Z m Z m Z m Z d  d l Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z d  d l m Z d  d l m Z d  d	 l m Z d
 g d d g d d g d d d g g Z  d
 g d d g d d g d d d g g Z! d Z" d   Z# d   Z$ d   Z% d   Z& d   Z' d   Z( e j) j* d e   e j) j* d e!  e j) j* d e j+ j, g  d      Z- d   Z. d   Z/ e j) j* d e   e j) j* d e!  d     Z0 e j) j* d e   e j) j* d e!  d     Z1 d   Z2 d  e f d!     YZ3 d S("   i(   t   range(   t   ARMA(   t   TestCaseN(   t   assert_array_almost_equalt   assert_almost_equalt   assert_allcloset   assert_equalt   assert_raisest   assert_(	   t   arma_generate_samplet
   arma_acovft   arma_acft   arma_impulse_responset	   lpol_fiart	   lpol_fimat   ArmaProcesst
   lpol2indext
   index2lpol(   t   ArmaFft(   t   armarep(   t   results_arma_acfg      ?i   gg?g333333?g333333ӿi   c          C   sv   d }  d } d } t  d | g d g |   } g  t |   D]$ } d | | | d | d ^ q; } t | |  d  S(   Ni   g?i   g      ?i   (   R
   R    R   (   t   Nt   phit   sigmat   rep1t   it   rep2(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_arma_acovf!   s    7c          C   s   t  j d d g  }  t  j d g  } t |  |  } | j d  } d d d } d t  j d  } | | } t | j d  t | |  d  S(   Ni   gCli
   gCl?i   g2DN_?(   t   npt   arrayR   t   acovft   arangeR   t   ndimR   (   t   art   mat   processt   rest   sig2t   corrst   expected(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_arma_acovf_persistent-   s    
c          C   s   d }  d } d } t  d | g d g |   } t j g  t |   D]$ } d | | | d | d ^ qA  } | d d | d } t | |  d  S(   Ni   g?i   g      ?i   (   R   R   R   R    R   (   R   R   R   R   R   R   R   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_arma_acf@   s    @c          C   s  t  d d d g d d g  }  t |  t j  t  d d d g d d d g  } t | t j  t  d d d g d d d d g  } t | t j  t  d d d g d d d d d g  } t | t j  t  d d d g d d d d d d g  } t | t j  t  d d d d g d d d g  } t | t j  t  d d d d d g d d d g  } t | t j	  t  d d d d d d	 g d d d g  } t | t j
  d  S(
   Ni   ig      ?g?g333333?gffffffֿgg?g{Gz(   R   R   R   t   bd_example_3_3_2t   custom_example_1t   custom_example_2t   custom_example_3t   custom_example_4t   custom_example_5t   custom_example_6t   custom_example_7(   R*   t	   example_1t	   example_2t	   example_3t	   example_4t	   example_5t	   example_6t	   example_7(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_arma_acf_compare_R_ARMAacfM   s     !$'*$'*c          C   s~   d d  }  t  t d d g d d g  |  d d g d d g   t  t d d g d d g  |  d d g d d g   d  S(   Ni
   c      	   S   s3  t  j t  j |   d  d k r8 t d d |  } n t d d |  } t |  | d | } x3 | d d k r | d
 9} t |  | d | } qc W| d k r| d k  rt |  } t  j g  t |  D]/ } t  j | | | |  | | | | ! ^ q  } n# t  j	 | | d  t |  d } | |  S(   Ni   g?i  i   id   t   leadsii   gh㈵>i
   iP  i  t   fullg-C6
?(
   R   t   abst   sumt   maxR   t   lenR   R    t   dott	   correlate(   R!   R"   t   nobst   nobs_irt   irt   endt   tR   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   arma_acovf_historicalg   s    "
	E#i   g      g?gGz(   R   R
   (   RG   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt,   test_arma_acov_compare_theoretical_arma_acova   s
    c   	   
   C   s  t  |  } |  d  d  d  }  | d  d  d  } t  |   t  |  } } d g t | |  } x t |  D] } | | } | r | t j | | |   7} n  | r | t j d g | | t | t d | |  | ! |  7} n  | j |  qn Wt j | t | |   S(   Nii    (   R?   R>   R    R   R@   t   listt   appendR   (	   R!   R"   t   etat   Tt   pt   qR   RF   t   yt(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   _manual_arma_generate_sample~   s    
BR!   R"   t   distc   	      C   s   d } t  j j d  |  |  } t  j j d  t | | | d |  } d t  j | d  } t  j | d  } t | | |  } t | | d  d  S(   Nid   i  t   distrvsii   i   (   R   t   randomt   seedR	   R   RP   R   (	   RQ   R!   R"   RL   RK   R   t	   ar_paramst	   ma_paramsR   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_arma_generate_sample   s    c          C   sG   d }  t  t d d |  d g |   } t | t d d |  d  d  S(   Nid   g?t   ni   i   (   R   R   R   R   (   RX   t   mafromar(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_fi   s    !c          C   su   t  t j t j d d d }  t  t j t j d d d } t t j j   | d  t t j j   |  d  d  S(   NR:   i   i   i   (   R   R   R"   R!   R   t   marept   ravelt   arrep(   R]   R[   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_arma_impulse_response   s    c      	   C   s   d } t  j d t  j | d t } t |  | d  } | j |  \ } } | j | d  \ } } | j | d  \ }	 }
 t | |  t | |  t	 | |
 |  d d t	 | |	 |  d d d	 d
 |  | f t	 | | d d d	 d |  | f d  S(   Ni   i    t   endpointi   i   t   decimali   i   t   err_msgs   spdr spdd not equal for %s, %ss   spdr spdp not equal for %s, %s(
   R   t   linspacet   pit   FalseR   t   spdrootst   spdpolyt	   spddirectR   R   (   R!   R"   t   nfreqt   wt   armat   spdrt   wrt   spdpt   wpt   spddt   wd(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_spectrum   s    c      	   C   s   d } t  j d t  j | d t } t |  | d  } | j d  d  } | j d  d  } t | | d d d d	 |  | f d  S(
   Ni   i    R_   i   i
   t   atolgV瞯<Ra   s   acovf not equal for %s, %s(   R   Rb   Rc   Rd   R   t   invpowerspdR   R   (   R!   R"   Rh   Ri   Rj   t   ac1t   ac2(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_armafft   s    c          C   s   t  d d d d g  }  t |  j  \ } } t | d g  t | d g  t  d d d d g  }  t |  j  \ } } t | d d d g  t | d d d g  t | |  } t |  j |  d  S(   Ni   i    gg?i   g?g(   R   R   t   arcoefsR   R   R   (   R#   t   coefst   locsR!   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_lpol2index_index2lpol   s    t   TestArmaProcessc           B   s}   e  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   s   t    } t | j t j g    t | j t j g    t  d d g  } t | j t j d g   t | j t j g    t  d d d g  } t | j t j g    t | j t j d g   d  S(   Ni   gg?R"   (   R   R   Rw   R   R   t   macoefs(   t   selfR#   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_empty_coeff   s    	c         C   s
  d d g } d g } t  j t j |  t j |   } | j d d  | j d d  d t j |  } | } t  | |  } t | j | j  t | j | j  t | j | j  t | j	 | j	  t | j
 | j
  t | j | j  t | j | j  d  S(   Ng?gg333333?i    ii   (   R   t   from_coeffsR   R   t   insertR   Rw   R|   RB   t   marootst   arrootst   isinvertiblet   isstationary(   R}   R!   R"   R#   t   ar_pt   ma_pt   process_direct(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_from_coeff   s    	$c         C   s   t  d d g d d g d  } d } t j j d  } | j | d d d | j } t | d
  j d	 t  } t  j	 |  } t  j
 | j | j |  } t | j | j  t | j | j  t | j | j  t | j | j  t | j | j  d  S(   Ni   gg333333?i  i90  t   burninid   RR   t   disp(   i   i   (   R   R   RS   t   RandomStatet   generate_samplet   standard_normalR   t   fitRd   t   from_estimationR   t   arparamst   maparamsR   Rw   R|   RB   R   R   (   R}   R#   RF   t   rst   yR$   t   process_modelt   process_coef(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_from_model  s    c         C   sQ  t  j d g  } t  j d g  } | | } t | j t j d d g   t | j t j g    t  j d g d g  } t  j d g  } | | } t | j t j d d	 g   t | j t j d g   t  j d g d g  } | t j d d g  t j d g  f } t | j t j d d
 g   t t | j	 d g  d  S(   Ng?gffffff?g?gffffffg?g      ?i   g)\(g)\(g)\((
   R   R   R   Rw   R   R   R|   R   t	   TypeErrort   __mul__(   R}   t   process1t   process2t   process3(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_process_multiplication  s    

+c         C   s   t  j d g d g  } | j   } | GHt | j d  d k  t | j d  d k  | j   } t | j d  d k  t | j d t t t |     d k  d  S(   Ng?g?s   AR: [1.0, -0.9]is   MA: [1.0, 0.2]s   nobs=100s   at (	   R   R   t   __str__R   t   findt   __repr__t   strt   hext   id(   R}   R   t   out(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_str_repr%  s    c         C   st   t  j d g  } | j d  } t j d  t j d  } t | |  | j   } t | j d | j	 k  d  S(   Ng?i
   g      $@i    (
   R   R   t   acfR   R   R   R   R   t   shapeRB   (   R}   R   R   R'   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_acf0  s    c         C   sx   t  j d g  } | j d  } t j d d g d g d  } t | |  | j   } t | j d | j k  d  S(   Ng?i
   i   i    i   (	   R   R   t   pacfR   R   R   R   R   RB   (   R}   R   R   R'   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt	   test_pacf9  s     c         C   s   t  j d g  } t | j t  t  j d d g  } t | j t  t  j d d g  } t j | j  GHt | j t  d  S(   Ng?g?gg      ?g      (	   R   R   R   R   Rd   t   TrueR   R<   R   (   R}   R   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_isstationaryB  s    c         C   sB   t  j g  d g  } | j d  } t | d t j d   d  S(   Ng?id   gg      Y@(   R   R   t   arma2arR   R   R   (   R}   R   t   vals(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_arma2arM  s    c         C   s   t  j g  d g  } | j t  } t | j t j d d g   t  j g  d g  } | j t  } t | j t j d d g   t  j g  d g  } | j t  \ } } t	 | t  t | t j d d g   d  S(   Ng      @g      ?g?i   (
   R   R   t   invertrootsR   R   R"   R   R   Rd   R   (   R}   R   R   t   rootst
   invertable(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_invertrootsR  s    c         C   sY  t  j d g  } t j j d  | j   } t j j d  t j j d  } x5 t d d  D]$ } d | | d | | | | <q` Wt | |  t  j d d g  } t j j d  | j   } t j j d  t j j d  } d | d | d | d <xE t d d  D]4 } d | | d d | | d | | | | <qWt | |  t  j d d g  } t j j d  | j d	 d  } t j j d  t j j d
  } d | d | d | d <xE t d d
  D]4 } d | | d d | | d | | | | <qWt | | d  t j j d  | j d d  } t	 | j
 d  d  S(   Ng?i90  id   i   g?gi    i   R   i   t   nsamplei   (   id   i   (   id   i   (   R   R   R   RS   RT   R   t   randnR    R   R   R   (   R}   R#   t   sampleR'   R   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_generate_sample`  s:    "22c         C   s?   t  j d g  } | j d  } t | d t j d   d  S(   Ng?i
   (   R   R   t   impulse_responseR   R   R   (   R}   R#   RD   (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_impulse_response  s    c         C   sq   t    } | j   } t | d t j d t j d t   t | d t j d t j  d t j d   d  S(   Ni    id   i   i   (	   R   t   periodogramR   R   Rb   Rc   Rd   t   sqrtt   ones(   R}   R#   t   pg(    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   test_periodogram  s    	&(   t   __name__t
   __module__R~   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyR{      s   													"	(4   t   statsmodels.compat.pythonR    t   statsmodels.tsa.arima_modelR   t   unittestR   t   numpyR   t   numpy.testingR   R   R   R   R   R   t   pytestt   statsmodels.tsa.arima_processR	   R
   R   R   R   R   R   R   R   t   statsmodels.sandbox.tsa.fftarmaR   t-   statsmodels.tsa.tests.results.results_processR   t   statsmodels.tsa.tests.resultsR   t   arlistt   malistt	   DECIMAL_4R   R(   R)   R9   RH   RP   t   markt   parametrizeRS   R   RW   RZ   R^   Rq   Rv   Rz   R{   (    (    (    sG   lib/python2.7/site-packages/statsmodels/tsa/tests/test_arima_process.pyt   <module>   sF   .@										-		!!	