ó
áp7]c           @` s¤  d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l m	 Z	 d d l
 Z d d l m Z d d l m Z e j j e j j e ƒ ƒ Z e j e j j e d d	 ƒ ƒ Z e j j e j j e ƒ d ƒ d Z e j e j j e d
 d d ƒ ƒ Z e j e j d d ƒe _ e d d d g j d d !Z  e j! e" e  ƒ ƒ Z# e j$ e j% e" e  ƒ ƒ e# e# d f Z& e j! e" e  ƒ e" e  ƒ d ƒ Z' e j$ e j% d ƒ e' e' d f Z( e j! d e" e  ƒ d ƒ Z) e j! e" e  ƒ d e" e  ƒ d d ƒ Z* e j$ e j% e" e  ƒ ƒ e) e) d f Z+ e j$ e j% d ƒ e* e* d f Z, d d „ Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d „  Z4 d „  Z5 d „  Z6 d S(   sK  
Tests for VAR models (via VARMAX)

These are primarily tests of VAR results from the VARMAX state space approach
compared to the output of estimation via CSS

loglikelihood_burn = k_ar is required, since the loglikelihood reported by the
CSS approach is the conditional loglikelihood.

Author: Chad Fulton
License: Simplified-BSD
i    (   t   divisiont   absolute_importt   print_functionN(   t   assert_allclose(   t   varmaxi   (   t   results_var_Rt   resultss   results_var_R_output.csvt   testss   lutkepohl2.dtat   freqt   Qt   dln_invt   dln_inct   dln_consumpt   1960Q2t   1978i   i
   c         C` s¶  | d } | j  | j } | | j | j | j | j } | | | } t j j | ƒ } | d  k r~ t j	 | d ƒ } n  | t j
 | ƒ | d )| j | ƒ }	 xt d ƒ D]ý }
 t j |
 } g  t j D] } d |  | | f ^ qÎ } t |	 j d |
 ƒ t | ƒ g  t j D] } d |  | | f ^ q} t |	 j d |
 d t ƒt | ƒ g  t j D] } d	 |  | | f ^ q`} |	 j d |
 d t d
 t ƒ} t | t | ƒ q± Wd  S(   Nt	   state_covt   paramsiúÿÿÿi   s   %s.irf.%s.%si
   s   %s.irf.ortho.%s.%st   orthogonalizeds   %s.irf.cumu.%s.%st
   cumulative(   t   nobst   k_art   k_endogt   k_trendt   k_exogt   npt   linalgt   choleskyt   Nonet   copyt   tril_indices_fromt   smootht   ranget   endogt   columnsR   t   impulse_responsest   results_var_R_outputt   True(   t   testt   modR   R   t   Sigma_u_mlet   nobs_effectivet   df_residt   Sigma_ut   Lt   rest   it
   impulse_tot   nameR!   t   result(    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt	   check_irf,   s4    
&&&c          C` s²   d }  t  j } t j t d d d d d d ƒ} | j | d ƒ } t | j | d	 ƒ g  t j D] } d
 |  | f ^ qa } t | j	 d ƒ t
 | j d  ƒ t |  | | ƒ d  S(   Nt   basict   orderi   i    t   trendt   nt   loglikelihood_burnR   t   llfs   %s.fcast.%s.fcsti
   (   i   i    (   R   t	   res_basicR   t   VARMAXR    R   R   R7   R!   t   forecastR#   t   ilocR1   (   R%   R   R&   R,   R/   R!   (    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt   test_var_basicT   s    	!&!c          C` s²   d }  t  j } t j t d d d d d d ƒ} | j | d ƒ } t | j | d ƒ g  t j D] } d	 |  | f ^ qa } t | j	 d
 ƒ t
 | j d
  ƒ t |  | | ƒ d  S(   Nt   cR3   i   i    R4   R6   R   R7   s   %s.fcast.%s.fcsti
   (   i   i    (   R   t   res_cR   R9   R    R   R   R7   R!   R:   R#   R;   R1   (   R%   R   R&   R,   R/   R!   (    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt
   test_var_ch   s    	!&!c          C` s²   d }  t  j } t j t d d d d d d ƒ} | j | d ƒ } t | j | d ƒ g  t j D] } d	 |  | f ^ qa } t | j	 d
 ƒ t
 | j d
  ƒ t |  | | ƒ d  S(   Nt   ctR3   i   i    R4   R6   R   R7   s   %s.fcast.%s.fcsti
   (   i   i    (   R   t   res_ctR   R9   R    R   R   R7   R!   R:   R#   R;   R1   (   R%   R   R&   R,   R/   R!   (    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt   test_var_ct|   s    	!&!c       
   C` sê   d }  t  j } t j t d d d t d  d  … d  d … f d d d d ƒ} | j | d	 ƒ } t | j | d
 ƒ g  t j	 D] } d |  | f ^ q} } t | j
 d d t d  d  … d  d … f ƒt | j d  ƒ t |  | | ƒ d  S(   Nt   ct_as_exog0R3   i   i    t   exogR4   R5   R6   R   R7   s   %s.fcast.%s.fcsti
   (   i   i    (   R   t   res_ct_as_exog0R   R9   R    t   exog0R   R   R7   R!   R:   t   exog0_fcastR#   R;   R1   (   R%   R   R&   R,   R/   R!   (    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt   test_var_ct_as_exog0   s    	4	&+c       
   C` s  d }  t  j } t j t d d d t d  d  … d  d … f d d d d ƒ} | d	 } t j | d
 d !| d
  | d f } | j | ƒ } t	 | j
 | d ƒ g  t j D] } d |  | f ^ q¨ } t	 | j d d t d  d  … d  d … f ƒt | j d  ƒ t |  | | | ƒ d  S(   NR@   R3   i   i    RD   R4   R5   R6   R   i   iúÿÿÿR7   s   %s.fcast.%s.fcsti
   (   i   i    (   R   RA   R   R9   R    t   exog1R   t   r_R   R   R7   R!   R:   t   exog1_fcastR#   R;   R1   (   R%   R   R&   R   R,   R/   R!   (    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt   test_var_ct_as_exog1§   s    	4	
%&+c          C` sà   d }  t  j } t j t d d d d d d ƒ} | d } t j | d d !| d  | d f } | j | ƒ } t | j	 | d ƒ g  t j
 D] } d |  | f ^ qŒ } t | j d ƒ t | j d  ƒ t |  | | | ƒ d  S(   Nt   ctt_as_exog1R3   i   i    R4   t   cttR6   R   i   i	   iúÿÿÿR7   s   %s.fcast.%s.fcsti
   (   i   i    i   iñÿÿÿi   iñÿÿÿ(   R   t   res_ctt_as_exog1R   R9   R    R   RJ   R   R   R7   R!   R:   R#   R;   R1   (   R%   R   R&   R   R,   R/   R!   (    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt   test_var_cttÃ   s    		
%&!c       
   C` sé   d }  t  j } t d j d d !} t d g j d d !} t j t d d d
 | d d d d ƒ} | j | d ƒ } t | j	 | d ƒ g  t j
 D] } d |  | f ^ q’ } t | j d d
 | ƒt | j d  ƒ t |  | | ƒ d  S(   Nt   ct_exogt   incR   R   t   1979Q1t   1981Q2R3   i   i    RD   R4   R@   R6   R   R7   s   %s.fcast.%s.fcsti
   (   i   i    (   R   t   res_ct_exogt   dtat   locR   R9   R    R   R   R7   R!   R:   R#   R;   R1   (   R%   R   RD   t
   exog_fcastR&   R,   R/   R!   (    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt   test_var_ct_exogÜ   s    		&c       
   C` sò   d }  t  j } t d d g j d d !} t d d g j d d !} t j t d d d | d d d d	 ƒ} | j | d ƒ } t | j	 | d ƒ g  t j
 D] } d |  | f ^ q› } t | j d d | ƒt | j d  ƒ t |  | | ƒ d  S(   Nt   c_2exogRR   t   invR   R   RS   RT   R3   i   i    RD   R4   R=   R6   R   R7   s   %s.fcast.%s.fcsti
   (   i   i    (   R   t   res_c_2exogRV   RW   R   R9   R    R   R   R7   R!   R:   R#   R;   R1   (   R%   R   RD   RX   R&   R,   R/   R!   (    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt   test_var_c_2exogô   s    		&(7   t   __doc__t
   __future__R    R   R   t   ost   numpyR   t   numpy.testingR   t   pandast   pdt   statsmodels.tsa.statespaceR   R   R   t   patht   dirnamet   abspatht   __file__t   current_patht   read_csvt   joinR#   t   splitt   up2t
   read_stataRV   t   PeriodIndext   qtrt   indexRW   R    t   aranget   lent   time_trend0t   c_t   onesRF   t   time_trend0_fcastRG   t   time_trend1t   time_trend1_fcastRI   RK   R   R1   R<   R?   RB   RH   RL   RP   RY   R]   (    (    (    sH   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_var.pyt   <module>   s>   &$)"#*)#(							