
p7]c           @   s  d  Z  d d l j 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 d d l m Z d d	 l m Z d d l Z d d l Z d d l
 j Z d d
 l m Z m Z m Z m Z d Z d Z d Z d e f d     YZ  d e  f d     YZ! d e  f d     YZ" d e f d     YZ# d e f d     YZ$ d   Z% d   Z& e j' j( d    Z) e j' j( d    Z* d   Z+ d   Z, d   Z- d S(   s   
Test AR Model
iN(   t   range(   t   AR(   t   ARMA(   t   assert_almost_equalt   assert_allcloset   assert_(   t   assert_equali   (   t
   results_ar(   t   Seriest   Indext
   date_ranget   period_rangei   i   i   t   CheckARMixinc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s    t  |  j j |  j j t  d  S(   N(   R   t   res1t   paramst   res2t	   DECIMAL_6(   t   self(    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_params   s    c         C   sW   t  j t  j |  j j     } t | |  j j t  t |  j j	 |  j j
 t  d  S(   N(   t   npt   sqrtt   diagR   t
   cov_paramsR   R   t	   bse_stataR   t   bset	   bse_gretlt	   DECIMAL_5(   R   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_bse   s    !c         C   s    t  |  j j |  j j t  d  S(   N(   R   R   t   llfR   R   (   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_llf"   s    c         C   s    t  |  j j |  j j t  d  S(   N(   R   R   t   fpeR   R   (   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_fpe%   s    c         C   ss   d d l  m } |   } |  j j |  | j d d  |  j j j |  } t |  t |  j  k so t  d  S(   Ni(   t   BytesIOi    (	   t   statsmodels.compat.pythonR    R   t   savet   seekt	   __class__t   loadt   typet   AssertionError(   R   R    t   fht   res_unpickled(    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_pickle(   s    	(   t   __name__t
   __module__R   R   R   R   R*   (    (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyR      s
   				t   TestAROLSConstantc           B   s&   e  Z d  Z e d    Z d   Z RS(   s-   
    Test AR fit by OLS with a constant.
    c         C   sU   t  j j j d t  } t | j  j d d d d  |  _ t	 j
 d t  |  _ d  S(   Nt	   as_pandast   maxlagi	   t   methodt   cmlet   constant(   t   smt   datasetst   sunspotsR%   t   FalseR   t   endogt   fitR   R   t   ARResultsOLSt   TrueR   (   t   clst   data(    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   setup_class6   s    $c         C   s  |  j  j } |  j  j } t | j |  |  j j t  t | j |  |  j j t  t | j | d d |  j j	 t  t | j | d d d d |  j j
 t  t | j | d d d d |  j j t  t | j | d d d d |  j j t  t | j | d d d d	 |  j j t  t | j |  |  j j t  t | j | d d d d
 |  j j t  t | j | d d d d |  j j t  d  S(   Nt   startid   i	   t   endi   i  i4  i  i6  i<  iG  (   R   t   modelR   R   t   predictR   t   FVOLSnneg1start0t	   DECIMAL_4t   FVOLSnneg1start9t   FVOLSnneg1start100t   FVOLSn200start0t   FVOLSn200start200t   FVOLSn100start325t   FVOLSn301start9t   FVOLSdefaultt   FVOLSn4start312t   FVOLSn15start312(   R   R@   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_predict<   s,    (   R+   R,   t   __doc__t   classmethodR=   RM   (    (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyR-   2   s   t   TestAROLSNoConstantc           B   s/   e  Z d  Z e d    Z d   Z d   Z RS(   s1   f
    Test AR fit by OLS without a constant.
    c         C   s[   t  j j j d t  } t | j  j d d d d d d  |  _ t	 j
 d t  |  _ d  S(	   NR.   R/   i	   R0   R1   t   trendt   ncR2   (   R3   R4   R5   R%   R6   R   R7   R8   R   R   R9   R   (   R;   R<   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyR=   [   s    *c         C   s  |  j  j } |  j  j } t | j |  |  j j t  t | j |  |  j j t  t | j | d d |  j j	 t  t | j | d d d d |  j j
 t  t | j | d d d d |  j j t  t | j | d d d d |  j j t  t | j | d d d d	 |  j j t  t | j |  |  j j t  t | j | d d d d
 |  j j t  t | j | d d d d |  j j t  d  S(   NR>   id   i	   R?   i   i  i4  i  i6  i<  iG  (   R   R@   R   R   RA   R   RB   RC   RD   RE   RF   RG   RH   RI   RJ   RK   RL   (   R   R@   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyRM   a   s,    c      	   C   s   |  j  } | j j } t |  j d d d d d d d d  } t | j d	 | j d	 d
 d t | d  j d d d d d d  } t | j | j d d t | j d	 | j d	 d
 d d  S(   NR/   i	   R0   t   mleRQ   RR   t   dispi    it   rtolgQ?t   atolgh㈵>g-C6?(   i	   i    (	   R   R@   R7   R   R8   R   t   fittedvaluesR   R   (   R   R   R7   t   res0t   res_arma(    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_mle{   s    	*'(   R+   R,   RN   RO   R=   RM   RZ   (    (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyRP   W   s   	t   TestARMLEConstantc           B   s)   e  Z e d     Z d   Z d   Z RS(   c         C   s[   t  j j j d t  } t | j  j d d d d d d  |  _ t	 j
 d t  |  _ d  S(	   NR.   R/   i	   R0   RS   RT   iR2   (   R3   R4   R5   R%   R6   R   R7   R8   R   R   t   ARResultsMLER:   R   (   R;   R<   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyR=      s    *c         C   s  |  j  j } t j d d d d d d d d d	 d
 g
  } t | j |  |  j j t  t | j | d d d d |  j j	 t  t | j | d d d d |  j j
 t  t | j | d d d d |  j j t  t d | j | d d d d d |  j j t  t d | j | d d d d d |  j j t  t | j | d d d d |  j j t  t | j | d d |  j j t  t | j | d d d d |  j j t  t | j | d d d d |  j j t  d  S(   Ng[|U6@gwZ_E?gx:MٿgJſgA?gߴ*g	B?g'9ԭ?ggbxg0'?R>   i	   R?   i4  id   i    i   g      ?iM  i5  i-  i   i8  i   i   (   R   R@   R   t   arrayR   RA   R   t   FVMLEdefaultRC   t   FVMLEstart9end308t   FVMLEstart100end308t   FVMLEstart0end200t   FVMLEstart200end334t   FVMLEstart308end334t   FVMLEstart9end309t   FVMLEstart0end301t   FVMLEstart4end312t   FVMLEstart2end7(   R   R@   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyRM      s2    		c         C   s-  t  j d d d d d d d d d	 d
 g
  } |  j } |  j } d } d \ } } | j j | | | d t } t | | j | | d !d | d \ } } | j j | | | d t } t | | j | | d !d | d \ } } | j j | | | d t } t | | j | | d !d | d \ } } | j j | | | d t } t | | j	 | | d !d | d \ } } | j j | | | d t } t | | j	 | | d !d | d \ } } | j j | | | d t } t | | j	 | | d !d | d \ } } | j j | | | d t } t | | j
 | | d !d | d \ } } | j j | | | d t } t | | j
 | | d !d | d \ } } | j j | | | d t } t | | j | | d !d | d \ } } | j j | d t } t | | j d d !d | d  S(    Ng[|U6@gwZ_E?gx:MٿgJſgA?gߴ*g	B?g'9ԭ?ggbxg0'?g>i	   i3   t   dynamici   RU   i4  iM  id   i   i5  (   i	   i3   (   i	   i4  (   i	   iM  (   id   i   (   id   i4  (   id   iM  (   i4  i4  (   i4  iM  (   i5  iM  (   NN(   R   R]   R   R   R@   RA   R:   R   t   fcdynt   fcdyn2t   fcdyn3t   fcdyn4t   None(   R   R   R   R   RU   R>   R?   t   fv(    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_dynamic_predict   sJ    				!!!!!!!!!(   R+   R,   RO   R=   RM   Ro   (    (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyR[      s   	 t   TestAutolagARc           B   s    e  Z e d     Z d   Z RS(   c         C   s  t  j j j d t  } | j } g  } xt d d
  D] } | d | } t |  j d |  } | j	 } | j
 } t j | j  }	 | j }
 |
 |	 d | d | | }
 |
 |	 7}
 | j } | |	 d | d | | } | |	 7} | j } | |	 d | d | | } | |	 7} | j |
 | | | j g  q7 Wt j |  j j d d d d } | |  _ t j d	  j |  _ d  S(   NR.   i   i   R/   i   it   ordert   Ct   consti   (   R3   R4   R5   R%   R6   R7   R    R   R8   t   k_art   k_trendR   t   logt   sigma2t   aict   hqict   bict   appendR   t   asarrayt   Tt   reshapeR   R   t   ARLagResultst   icR   (   R;   R<   R7   t   resultst   lagt	   endog_tmpt   rRt   Ru   t
   log_sigma2Rx   Ry   Rz   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyR=      s,    				
	
	
 $	c         C   s   t  j |  j |  j t  d  S(   N(   t   nptR   R   R   R   (   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_ic  s    (   R+   R,   RO   R=   R   (    (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyRp      s   c          C   s   t  j j j d t  }  t d d d t |  j  d d  } t |  j d | } t  j	 j
 | d d j d d	 d
 d d d  } | j d d d d  } t d d d d d d  d  } t | j j |  t | j |  d  S(   NR.   R>   t   1700t   periodst   freqt   At   indexR/   i	   R0   RS   RT   it   2005R?   t   2015t   2016i   (   R3   R4   R5   R%   R6   R
   t   lenR7   R   t   tsaR   R8   RA   R   R<   t   predict_datesR   (   R<   t   datesR7   t   ar_modelt   predR   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_ar_dates  s    $0c         C   s   t  d d d d d d  } t t j j d  d d d	 | } t j j |  j d
  } t	 | j
 j j t d d d g    d  S(   NR>   s   2011-1R   iH   R   t   Mt   namet   foobarR   i   Rs   s	   L1.foobars	   L2.foobar(   R   R   R   t   randomt   randnR3   R   R   R8   R   R   R   t   equalsR	   (   t   reset_randomstateR   t   yR   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_ar_named_series"  s
    $c          C   s\   t  j j j d t  }  t |  j  j d d d d t j	 d  d d d	 d
 d d  } d  S(   NR.   R/   i	   t   start_paramsg?i
   R0   RS   RT   it   maxiterid   (
   R3   R4   R5   R%   R6   R   R7   R8   R   t   ones(   R<   t   res(    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_ar_start_params*  s    +c          C   sr   t  j j j   j d j   j   }  t d d d t |   d d  } | |  _	 t
 |   j d d  } | j d  S(	   Nt   cpiR>   t   1959Q1R   R   t   Qt   maxlagsi   (   R3   R4   t	   macrodatat   load_pandasR<   t   difft   dropnaR   R   R   R   R8   R   (   t   dtaR   t   ar(    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_ar_series2  s
    %!	c       
   C   s   t  j j d  t j j d d d g d g d  }  t |  d t d d d	 d d
 d  } t |  } | j	 d d d d  } t
 | d k  d  S(   Ni90  i   g      g333333?id   R   R>   s   1/1/1990R   R   R   R/   i   R   Rx   i   (   R   R   t   seedR3   R   t   arma_generate_sampleR   R
   R   t   select_orderR   (   R   t   tsR   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_ar_select_order<  s    $c       
   C   s   t  j j d  }  d } |  j |  } t | d t d d d | d d  } t |  } | j d	 d
 d d  } t | d  d  S(   Ni{   i   R   R>   s   1/1/1990R   R   R   R/   i   R   s   t-stati    (	   R   R   t   RandomStateR   R   R
   R   R   R   (   t   rst   tauR   R   R   R   (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_ar_select_order_tstatH  s    c          C   s   t  j d d d d d d d d d d g
  }  t |   } t j t d d  | j d d	  Wd  QX| j d d
  } | j d k s t  | j	 d k s t  t
 | j  d k s t  | j d d d d  } t  j d d d g  } t | |  d  S(   Ng   ?g   ?g   ]?g   `?g   ?t   matchs   trend='c' is not allowedRQ   t   cRR   i    i   R>   i
   R?   i   g$T?go0?gy=?(   R   R]   R   t   pytestt   raisest
   ValueErrorR8   Ru   R'   Rt   R   R   RA   R   (   t   sampleR@   R   R   t   expected(    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   test_constant_column_trendT  s    			(.   RN   t   statsmodels.apit   apiR3   R!   R    t   statsmodels.tsa.ar_modelR   t   statsmodels.tsa.arima_modelR   t   numpy.testingR   R   R   t   statsmodels.tools.testingR   R   R   R   t   numpyR   t   testingR   t   pandasR   R	   R
   R   R   R   RC   t   objectR   R-   RP   R[   Rp   R   R   t   markt   smokeR   R   R   R   R   (    (    (    s<   lib/python2.7/site-packages/statsmodels/tsa/tests/test_ar.pyt   <module>   s4   "%2g%		
		