ó
įp7]c           @` sd  d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l Z d d l Z	 d d l
 m Z m Z d d l Z d d l Z d d l m Z d d l m Z d d l m Z e j j e j j e   Z e j j d	 d
  Z e j e j j e e   Z e j j d	 d  Z e j e j j e e   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 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  e+ f d!     YZ, d" e+ f d#     YZ- d$   Z. d%   Z/ d&   Z0 d'   Z1 d S((   sF   
Tests for VARMAX models

Author: Chad Fulton
License: Simplified-BSD
i    (   t   divisiont   absolute_importt   print_functionN(   t   assert_equalt   assert_allclose(   t   varmax(   t   forgi   (   t   results_varmaxt   resultss   results_var_stata.csvs   results_varmax_stata.csvt   CheckVARMAXc           B` s}   e  Z d  Z d   Z e j j d    Z e j j d    Z d   Z	 d   Z
 d   Z d d  Z d d	  Z d
   Z RS(   s³   
    Test Vector Autoregression against Stata's `dfactor` code (Stata's
    `var` function uses OLS and not state space / MLE, so we can't get
    equivalent log-likelihoods)
    c         C` sø   t  j d t    t  j d  |  j j d d d t  } t |  j _ t |  j _ |  j j | j	 d d d d d t } t |  j _ t |  j _ t
 | j |  j j d	 d
 Wd  QXd  S(   Nt   recordt   alwayst   maxiterid   t   dispt   methodt   nmič  t   rtolgńhćµųä>(   t   warningst   catch_warningst   Truet   simplefiltert   modelt   fitt   Falset   enforce_stationarityt   enforce_invertibilityt   paramsR   t   llfR   (   t   selfR   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_mle&   s    	c         C` s»   |  j  } | j | j  t | j  t | j  k s= t  | j | j | j   } t | | j  t	 | _
 t	 | _ | j | j | j   } t | _
 t | _ t | | j  d  S(   N(   R   t   filtert   start_paramst   lent   param_namest   AssertionErrort   transform_paramst   untransform_paramsR   R   R   R   R   (   R   R   t   actual(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_params5   s    	$				c         C` s¬  |  j  j   |  j } | j d k rĢ t j |  j  j | j  } | j | j	 | j	 | j  } t j g  t
 | j  D]7 } | d  | j	  | | j	 | d | j	  f ^ qv  } t |  j  j |  n t |  j  j d   | j d k rt j |  j  j | j  } | j | j	 | j	 | j  } t j g  t
 | j  D]7 } | d  | j	  | | j	 | d | j	  f ^ q? } t |  j  j |  n t |  j  j d   d  S(   Ni    i   (   R   t   summaryR   t   k_art   npt   arrayR   t
   _params_art   reshapet   k_endogt   rangeR   t   coefficient_matrices_vart   Nonet   k_mat
   _params_mat   coefficient_matrices_vma(   R   R   t	   params_art   coefficientst   it   coefficient_matricest	   params_ma(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_resultsN   s,    	M
M
c         C` s$   t  |  j j |  j d d d d  S(   Nt   loglikeR   gķµ ÷Ę°>(   R   R   R   t   true(   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_logliker   s    c         C` s$   t  |  j j |  j d d d d  S(   Nt   aict   atoli   (   R   R   R=   R;   (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_aicu   s    c         C` s$   t  |  j j |  j d d d d  S(   Nt   bicR>   i   (   R   R   R@   R;   (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_bicy   s    gķµ ÷Ę°>c         K` s0   t  |  j j d | |  |  j d d | d  S(   Nt   endt   predictR>   (   R   R   RC   R;   (   R   RB   R>   t   kwargs(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_predict}   s    c         K` s6   t  |  j j d | d | |  |  j d d | d  S(   NRB   t   dynamict   dynamic_predictR>   (   R   R   RC   R;   (   R   RB   RF   R>   RD   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_dynamic_predict   s    c         C` s5   |  j  j } d  |  j  _ |  j  j } t | |  d  S(   N(   R   t   standardized_forecasts_errorR0   t   _standardized_forecasts_errorR   (   R   t
   cython_sfet
   python_sfe(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt!   test_standardized_forecasts_error   s    (   t   __name__t
   __module__t   __doc__R   t   pytestt   markt   smokeR&   R9   R<   R?   RA   RE   RH   RM   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR	      s   	$			t   CheckLutkepohlc           B` s8   e  Z e d  d d d g d   Z d   Z d   Z RS(   t   approxt   dln_invt   dln_inct   dln_consumpc   
   
   K` sü   | |  _  t j t j d d d d g d t j d d d d	 } t j | d  j   | d
 <t j | d  j   | d <t j | d  j   | d <| j	 d d  | f }	 t
 j |	 d | d | d | | |  _ |  j j | d d | |  _ d  S(   Nt   columnst   invt   inct   consumpt   indexs
   1960-01-01s
   1982-10-01t   freqt   QSRV   RW   RX   s
   1960-04-01s
   1978-10-01t   ordert   trendt   error_cov_typeR   t   cov_type(   R;   t   pdt	   DataFrameR   t   lutkepohl_datat
   date_rangeR)   t   logt   difft   locR   t   VARMAXR   t   smoothR   (
   t   clsR;   R`   Ra   Rb   Rc   t   included_varsRD   t   dtat   endog(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   setup_class   s    	c         K` s    t  t |   j d d |  d  S(   NRB   s
   1982-10-01(   t   superRT   RE   (   R   RD   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRE   Ø   s    c         K` s&   t  t |   j d d d d |  d  S(   NRB   s
   1982-10-01RF   s
   1961-01-01(   Rr   RT   RH   (   R   RD   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRH   «   s    (   RN   RO   t   classmethodRq   RE   RH   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRT      s
   	t   TestVARc           B` s2   e  Z e d     Z d   Z d   Z d   Z RS(   c         C` sw   t  j j   } t j d d d d g | d <t j d d d d g | d	 <t t |   j | d
 d d d d d d  S(   Ni   t	   predict_1t	   predict_2t	   predict_3RC   t   dyn_predict_1t   dyn_predict_2t   dyn_predict_3RG   R`   i    Ra   t   nRb   t   unstructured(   i   i    (   R   t   lutkepohl_var1t   copyt   var_resultst   ilocRr   Rt   Rq   (   Rm   R;   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq   ²   s    c         C` s;   |  j  j   j   d } t | d |  j d d d d  S(   Ng      ą?i   t   var_oimR>   g-Cėā6?(   R   t   _cov_params_approxt   diagonalR   R;   (   R   t   bse(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_bse_approxæ   s    c         C` s;   |  j  j   j   d } t | d |  j d d d d  S(   Ng      ą?i   R   R>   g{®Gįz?(   R   t   _cov_params_oimR   R   R;   (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_bse_oimĆ   s    c   	      C` s  |  j  j   } g  | j D] } t |  ^ q } |  j d } t j d | d  sZ t  xń t |  j	 j
  D]Ż } | |  j	 j
 } | | d } |  j	 j | } t j d | |  s½ t  t | j d   d k sŽ t  t j d | | d |  st  t j d	 | | d
 |  s&t  t j d | | d |  sm t  qm W| d } t j d |  spt  t | j d   d k st  | |  j	 j } |  j	 j |  j	 j } xD t t |   D]0 } t j d | | | | f |  sŹt  qŹWd  S(   NR   s   Model:.*VAR\(1\)i    i   s   Results for equation %ss   
i   s   L1.dln_inv +%.4fs   L1.dln_inc +%.4fi   s   L1.dln_consump +%.4fi’’’’s   Error covariance matrixi   s   %s +%.4f(   R   R'   t   tablest   strR;   t   ret   searchR"   R.   R   R-   t   endog_namesR    t   splitt   _params_state_covR!   (	   R   R'   t   tableR   R   R6   t   offsett   namet   names(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_summaryĒ   s*    "!$$
!(   RN   RO   Rs   Rq   R   R   R   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRt   ±   s   		t   TestVAR_diagonalc           B` s2   e  Z e d     Z d   Z d   Z d   Z RS(   c         C` sw   t  j j   } t j d d d d g | d <t j d d d d g | d	 <t t |   j | d
 d d d d d d  S(   Ni   t   predict_diag1t   predict_diag2t   predict_diag3RC   t   dyn_predict_diag1t   dyn_predict_diag2t   dyn_predict_diag3RG   R`   i    Ra   R{   Rb   R   (   i   i    (   R   t   lutkepohl_var1_diagR~   R   R   Rr   R   Rq   (   Rm   R;   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq   ķ   s    c         C` s;   |  j  j   j   d } t | d |  j d d d d  S(   Ng      ą?i   R   R>   gńhćµųä>(   R   R   R   R   R;   (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   ś   s    c         C` s;   |  j  j   j   d } t | d |  j d d d d  S(   Ng      ą?i   R   R>   g{®Gįz?(   R   R   R   R   R;   (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   ž   s    c   	      C` s  |  j  j   } g  | j D] } t |  ^ q } |  j d } t j d | d  sZ t  xń t |  j	 j
  D]Ż } | |  j	 j
 } | | d } |  j	 j | } t j d | |  s½ t  t | j d   d k sŽ t  t j d | | d |  st  t j d	 | | d
 |  s&t  t j d | | d |  sm t  qm W| d } t j d |  spt  t | j d   d k st  | |  j	 j } |  j	 j |  j	 j } xD t t |   D]0 } t j d | | | | f |  sŹt  qŹWd  S(   NR   s   Model:.*VAR\(1\)i    i   s   Results for equation %ss   
i   s   L1.dln_inv +%.4fs   L1.dln_inc +%.4fi   s   L1.dln_consump +%.4fi’’’’s   Error covariance matrixs   %s +%.4f(   R   R'   R   R   R;   R   R   R"   R.   R   R-   R   R    R   R   R!   (	   R   R'   R   R   R   R6   R   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR     s*    "!$$
!(   RN   RO   Rs   Rq   R   R   R   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   ģ   s   		t   TestVAR_measurement_errorc           B` s\   e  Z d  Z e d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(	   sŻ  
    Notes
    -----
    There does not appear to be a way to get Stata to estimate a VAR with
    measurement errors. Thus this test is mostly a smoke test that measurement
    errors are setup correctly: it uses the same params from TestVAR_diagonal
    and sets the measurement errors variance params to zero to check that the
    loglike and predict are the same.

    It also checks that the state-space representation with positive
    measurement errors is correct.
    c      
   C` sĀ   t  j j   } t j d d d d g | d <t j d d d d g | d	 <t t |   j | d
 d d d d d d t d d d g |  _	 t
 j | d d  |  j	 f } |  j j |  |  _ d  S(   Ni   R   R   R   RC   R   R   R   RG   R`   i    Ra   R{   Rb   R   t   measurement_errorg      š?g       @g      @R   iż’’’(   i   i    (   R   t   lutkepohl_var1_diag_measR~   R   R   Rr   R   Rq   R   t    true_measurement_error_variancesR)   t   r_R   Rl   t   results2(   Rm   R;   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq   4  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   G  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   L  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   Q  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR?   U  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRA   Z  s    c         C` s·   x° |  j  j j j   D] } | d k r+ q | d k r |  j j j } t j |  j	  d  d   d  d   t j
 f } t | |  q t t |  j j |  t |  j j |   q Wd  S(   Nt   obst   obs_cov(   R   t   ssmt   shapest   keysR”   t   filter_resultsR£   R)   t   diagR   t   newaxisR   t   getattrR   (   R   R   R%   t   desired(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_representation_  s    (c   	      C` s'  |  j  j   } g  | j D] } t |  ^ q } |  j d } t j d | d  sZ t  xt |  j	 j
  D]} | |  j	 j
 } | | d } |  j	 j | } t j d | |  s½ t  t | j d   d k sŽ t  t j d | | d |  st  t j d	 | | d
 |  s&t  t j d | | d |  sJt  t j d | | d
 |  sm t  qm W| d } t j d |  st  t | j d   d k s¶t  | |  j	 j } |  j	 j |  j	 j } xD t t |   D]0 } t j d | | | | f |  sļt  qļWd  S(   NR   s   Model:.*VAR\(1\)i    i   s   Results for equation %ss   
i	   s   L1.dln_inv +%.4fs   L1.dln_inc +%.4fi   s   L1.dln_consump +%.4fs   measurement_variance +%.4gi’’’’s   Error covariance matrixi   s   %s +%.4f(   R   R'   R   R   R;   R   R   R"   R.   R   R-   R   R    R   R   R!   (	   R   R'   R   R   R   R6   R   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   n  s.    "!$$
!(   RN   RO   RP   Rs   Rq   R   R   R   R?   RA   R¬   R   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   '  s   						t   TestVAR_obs_interceptc           B` s;   e  Z e d     Z d   Z d   Z d   Z d   Z RS(   c         C` s   t  j j   } t j d d d d g | d <t j d d d d g | d	 <t t |   j | d
 d d d d d d | d d  S(   Ni   t   predict_int1t   predict_int2t   predict_int3RC   t   dyn_predict_int1t   dyn_predict_int2t   dyn_predict_int3RG   R`   i    Ra   R{   Rb   R   t   obs_intercept(   i   i    (   R   t   lutkepohl_var1_obs_interceptR~   R   R   Rr   R­   Rq   (   Rm   R;   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq     s    c         C` s;   |  j  j   j   d } t | d |  j d d d d  S(   Ng      ą?i   R   R>   g-Cėā6?(   R   R   R   R   R;   (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   £  s    c         C` s;   |  j  j   j   d } t | d |  j d d d d  S(   Ng      ą?i   R   R>   g{®Gįz?(   R   R   R   R   R;   (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   §  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR?   «  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRA   °  s    (   RN   RO   Rs   Rq   R   R   R?   RA   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR­     s
   			t   TestVAR_exogc           B` sh   e  Z e 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  j j   } t j d d !d d d g | d <d | d j d d  d   f <t j d d d	 d
 g | d <t j d  d } t t |   j	 | d d d d d d d | d d d d d  S(   Ni   iL   t   predict_exog1_1t   predict_exog1_2t   predict_exog1_3RC   i    t   fcast_exog1_dln_invt   fcast_exog1_dln_inct   fcast_exog1_dln_consumpt   fcastiK   i   R`   Ra   R{   Rb   R|   t   exogt   initializationt   approximate_diffuset   loglikelihood_burn(   i   i    (
   R   t   lutkepohl_var1_exogR~   R   R   R)   t   arangeRr   R¶   Rq   (   Rm   R;   R¾   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq   ¹  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   É  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR?   Ģ  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRA   Š  s    c         C` s?   |  j  j   j   d } t | d  d |  j d d d d  S(   Ng      ą?iś’’’i   R   R>   gńhćµųä>(   R   R   R   R   R;   (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   Ō  s    c         C` s?   |  j  j   j   d } t | d  d |  j d d d d  S(   Ng      ą?iś’’’i   R   R>   gńhćµųä>(   R   R   R   R   R;   (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   Ł  s    c         C` s#   t  t |   j d d d d  d  S(   NRB   s
   1978-10-01R>   gü©ńŅMbP?(   Rr   RT   RE   (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRE   Ž  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRH   į  s    c         C` sb   t  j d d	  d d  d   t  j f } |  j j d d d |  } t | |  j d d d d  S(
   NiK   i   i   t   stepsR¾   R½   R>   gķµ ÷Ę°>i[   (   R)   RĆ   R©   R   t   forecastR   R;   (   R   R¾   R«   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_forecastå  s    )c   	      C` s8  |  j  j   } g  | j D] } t |  ^ q } |  j d } t j d | d  sZ t  x't |  j	 j
  D]} | |  j	 j
 } | | d } |  j	 j | } t j d | |  s½ t  t | j d   d k sŽ t  t j d | | d |  st  t j d	 | | d
 |  s&t  t j d | | d |  sJt  t j d t | |  j	 j | d d |  sm t  qm W| d } t j d |  s¦t  t | j d   d k sĒt  | |  j	 j } |  j	 j |  j	 j } xD t t |   D]0 } t j d | | | | f |  s t  q Wd  S(   NR   s   Model:.*VARX\(1\)i    i   s   Results for equation %ss   
i	   s   L1.dln_inv +%.4fs   L1.dln_inc +%.4fi   s   L1.dln_consump +%.4fs	   beta.x1 +t   preci   i’’’’s   Error covariance matrixi   s   %s +%.4f(   R   R'   R   R   R;   R   R   R"   R.   R   R-   R   R    R   R   t   _params_regressionR   R!   (	   R   R'   R   R   R   R6   R   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   ÷  s2    "!$$
!(   RN   RO   Rs   Rq   R   R?   RA   R   R   RE   RH   RĘ   R   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR¶   ¶  s   								t   TestVAR_exog2c           B` s_   e  Z e d     Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(	   c         C` så   t  j j   } t j d d !d d d g | d <d | d j d d  d   f <t j d d d	 d
 g | d <t j t j d  t j d  d d  d   t j	 f f } t
 t |   j | d d d d d d d | d d d d d  S(   Ni   iL   t   predict_exog2_1t   predict_exog2_2t   predict_exog2_3RC   i    t   fcast_exog2_dln_invt   fcast_exog2_dln_inct   fcast_exog2_dln_consumpR½   iK   i   R`   Ra   R{   Rb   R|   R¾   Ræ   RĄ   RĮ   (   iK   i   (   i   i    (   R   t   lutkepohl_var1_exog2R~   R   R   R)   t   c_t   onesRĆ   R©   Rr   RÉ   Rq   (   Rm   R;   R¾   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq   %  s    <c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   5  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR?   8  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRA   ;  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   >  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   A  s    c         C` s#   t  t |   j d d d d  d  S(   NRB   s
   1978-10-01R>   gü©ńŅMbP?(   Rr   RT   RE   (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRE   D  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRH   G  s    c         C` sx   t  j t  j d
  t  j d d  d d  d   t  j f f } |  j j d d d |  } t | |  j d d d	 d  S(   Ni   i   iK   i   RÄ   R¾   R½   R>   gķµ ÷Ę°>(   i   i   i[   (	   R)   RŃ   RŅ   RĆ   R©   R   RÅ   R   R;   (   R   R¾   R«   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRĘ   K  s    -(   RN   RO   Rs   Rq   R   R?   RA   R   R   RE   RH   RĘ   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRÉ      s   							t   TestVAR2c           B` s2   e  Z e d     Z d   Z d   Z d   Z RS(   c         C` s}   t  j j   } t j d d d g | d <t j d d d g | d <t t |   j | d d d d d d d d d g d  S(   Ni   t   predict_var2_1t   predict_var2_2RC   t   dyn_predict_var2_1t   dyn_predict_var2_2RG   R`   i   i    Ra   R{   Rb   R|   Rn   RV   RW   (   i   i    (   R   t   lutkepohl_var2R~   R   R   Rr   RÓ   Rq   (   Rm   R;   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq   U  s    c         C` sC   |  j  j   j   d } t | d  d |  j d d  d d d  S(   Ng      ą?iż’’’i   R   R>   gńhćµųä>(   R   R   R   R   R;   (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   `  s    c         C` sC   |  j  j   j   d } t | d  d |  j d d  d d d  S(   Ng      ą?iż’’’i   R   R>   g{®Gįz?(   R   R   R   R   R;   (   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   e  s    c   	      C` s0  |  j  j   } g  | j D] } t |  ^ q } |  j d } t j d | d  sZ t  xt |  j	 j
  D]} | |  j	 j
 |  j	 j } | | d } |  j	 j | } t j d | |  sĒ t  t | j d   d k sč t  t j d | | d |  st  t j d	 | | d
 |  s0t  t j d | | d |  sTt  t j d | | d |  sm t  qm W| d } t j d |  st  t | j d   d k sæt  | |  j	 j } |  j	 j |  j	 j } xD t t |   D]0 } t j d | | | | f |  sųt  qųWd  S(   NR   s   Model:.*VAR\(2\)i    i   s   Results for equation %ss   
i	   s   L1.dln_inv +%.4fs   L1.dln_inc +%.4fi   s   L2.dln_inv +%.4fs   L2.dln_inc +%.4fi   i’’’’s   Error covariance matrixi   s   %s +%.4f(   R   R'   R   R   R;   R   R   R"   R.   R   R-   R(   R   R    R   R   R!   (	   R   R'   R   R   R   R6   R   R   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   j  s*    "!$$$(
!(   RN   RO   Rs   Rq   R   R   R   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRÓ   T  s   		t   CheckFREDManufacturingc           B` s   e  Z e d  d   Z RS(   RU   c         K` s  | |  _  t j j t d d  } t | d   } t j |  }	 Wd  QXt j |	 j	 d d |	 _
 |	 d j   |	 d <|	 d j   |	 d	 <|	 j d
 d   d d	 g f }
 t j d t  9 t j d  t j |
 d | d | d | | |  _ Wd  QX|  j j | d d | |  _ d  S(   NR   s   manufac.dtat   rbR^   t   MSt	   lncaputilt
   dlncaputilt   lnhourst   dlnhourss
   1972-02-01R
   R   R`   Ra   Rb   R   Rc   (   R;   t   ost   patht   joint   current_patht   openRd   t
   read_statat   DatetimeIndext   monthR]   Ri   Rj   R   R   R   R   R   Rk   R   Rl   R   (   Rm   R;   R`   Ra   Rb   Rc   RD   Rį   t	   test_dataRo   Rp   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq     s    	(   RN   RO   Rs   Rq   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRŁ     s   t	   TestVARMAc           B` s   e  Z d  Z e d    Z d   Z e j j d  d    Z	 e j j d  d    Z
 d   Z d   Z d   Z d	   Z d
   Z RS(   sN   
    Test against the sspace VARMA example with some params set to zeros.
    c         C` sq   t  j j   } t j d d d g | d <t j d d d g | d <t t |   j | d d d	 d
 d d d  S(   Ni   t   predict_varma11_1t   predict_varma11_2RC   t   dyn_predict_varma11_1t   dyn_predict_varma11_2RG   R`   Ra   R{   Rb   R   (   i   i   (   R   t   fred_varma11R~   t   varmax_resultsR   Rr   Ré   Rq   (   Rm   R;   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq   «  s    
c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   ¶  s    s,   Known failure: standard errors do not match.c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   ¼  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   Į  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR?   Ę  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRA   Ģ  s    c         C` s#   t  t |   j d d d d  d  S(   NRB   s
   2009-05-01R>   g-Cėā6?(   Rr   Ré   RE   (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRE   Ņ  s    c         C` s#   t  t |   j d d d d  d  S(   NRB   s
   2009-05-01RF   s
   2000-01-01(   Rr   Ré   RH   (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRH   Õ  s    c   
      C` s  |  j  j   } g  | j D] } t |  ^ q } |  j d } t j d | d  sZ t  xmt |  j	 j
  D]Y} | |  j	 j
 } |  j	 j
 d |  j	 j | |  j	 j
 } | | d } |  j	 j | } t j d | |  så t  t | j d   d k st  t j d t | | d d	 d
 |  s6t  t j d t | | d d	 d
 |  sft  t j d t | | d d	 d
 |  st  t j d t | | d d	 d
 |  sm t  qm W| d } t j d |  sģt  t | j d   d k st  | |  j	 j } |  j	 j |  j	 j }	 xP t t |	   D]< } t j d |	 | t | | d	 d
 f |  sFt  qFWd  S(   NR   s   Model:.*VARMA\(1,1\)i    i   s   Results for equation %ss   
i	   s   L1.dlncaputil +RĒ   i   s   L1.dlnhours +i   s   L1.e\(dlncaputil\) +s   L1.e\(dlnhours\) +i’’’’s   Error covariance matrixi   s   %s +%s(   R   R'   R   R   R;   R   R   R"   R.   R   R-   R(   R   R    R   R   R   R!   (
   R   R'   R   R   R   R6   t	   offset_art	   offset_maR   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   Ł  s@    "!
!'(   RN   RO   RP   Rs   Rq   R   RQ   RR   t   skipR   R   R?   RA   RE   RH   R   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRé   ¦  s   					t   TestVMA1c           B` s   e  Z d  Z e d    Z d   Z e j j d  d    Z	 e j j d  d    Z
 d   Z d   Z d   Z d	   Z RS(
   sN   
    Test against the sspace VARMA example with some params set to zeros.
    c         C` sq   t  j j   } t j d d d g | d <t j d d d g | d <t t |   j | d d d
 d d d d  S(   Ni   t   predict_vma1_1t   predict_vma1_2RC   t   dyn_predict_vma1_1t   dyn_predict_vma1_2RG   R`   i    Ra   R{   Rb   R   (   i    i   (   R   t	   fred_vma1R~   Rļ   R   Rr   Ró   Rq   (   Rm   R;   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRq     s    
c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR     s    s,   Known failure: standard errors do not match.c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR     s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR   $  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyR?   )  s    c         C` s   d  S(   N(    (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRA   /  s    c         C` s#   t  t |   j d d d d  d  S(   NRB   s
   2009-05-01R>   g-Cėā6?(   Rr   Ró   RE   (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRE   5  s    c         C` s#   t  t |   j d d d d  d  S(   NRB   s
   2009-05-01RF   s
   2000-01-01(   Rr   Ró   RH   (   R   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRH   8  s    (   RN   RO   RP   Rs   Rq   R   RQ   RR   Rņ   R   R   R?   RA   RE   RH   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyRó   	  s   				c          C` s   t  j d  j d d  }  t  j d  } t j | d t j d d d d } t j |  d	 | d
 d t j |  d	 | d
 d d  S(   Ni   i
   i   R]   s
   2000-01-01s
   2009-01-01R^   t   ASR¾   R`   i   i    (   i   i    (   i   i    (   R)   RĆ   R,   Rd   t   SeriesRg   R   Rk   (   Rp   R¾   t   exog2(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_specifications=  s    c          C` sT  i  t  _ t j d  j d d  }  t j t   t  j |  d d d d Wd  QXt j t   t  j |  d d d	 d Wd  QXt j t   t  j |  d d Wd  QXt	 j
 d
 t  ' } t	 j d  t  j |  d d Wd  QXt	 j
 d
 t  L } t	 j d  t  j |  d d d } t | d j  | k s@t  Wd  QXt	 j   d  S(   Ni   i
   i   R`   i   i    Ra   t    Rb   R
   R   sc   Estimation of VARMA(p,q) models is not generically robust, due especially to identification issues.(   i   i    (   i   i    (   i    i    (   i   i   (   i   i   (   R   t   __warningregistry__R)   RĆ   R,   RQ   t   raisest
   ValueErrorRk   R   R   R   R   R   t   messageR"   t   resetwarnings(   Rp   t   wR  (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_misspecificationsK  s"    	%c          C` s  d }  d } t  j j d  t  j j d |  | f  } t  j | d  d  d f <t  j | d d  d f <t  j j d |  d f  } t  j j d |  d f  } t j d	 d
 d d |  } t j | d | } t j | j	   d | } t j | d | } t
 j | d | d d t
 j | d | d d t
 j | d | d d t
 j | d | d d g }	 xx|	 D]p}
 |
 j |
 j d t  } | j   | j   | j d t  | j   t  j j d d |
 j f  } | j d d d |  | j d d d |  t  j j d d  } t j t   | j d d d |  Wd  QXt  j j d d |
 j f  } t j t   | j d d d |  Wd  QXt  j j d d |
 j d f  } t j t   | j d d d |  Wd  QXqlWt j t  ' t
 j | d t  j d  d d Wd  QXd  S(   Ni   i   iø  t   sizei   i    i   i   s
   1970-01-01R^   R_   t   periodsR]   R¾   R`   R   RF   RÄ   i
   (   i   i    (   i   i    (   i   i    (   i   i    (   i
   i   (   i   i    (   R)   t   randomt   seedt   normalt   nanRd   Rg   Re   Rś   t   squeezeR   Rk   R   R   R   R'   RC   R   t   get_predictiont   k_exogRÅ   t   get_forecastRQ   R’   R   t   zeros(   t   nobsR-   Rp   t   exog1Rū   R]   t   endog_pdt   exog1_pdt   exog2_pdt   modelst   modt   rest   oos_exog(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_misc_exogn  sJ    


" c          C` s   t  j j d  t j t  j j d d   }  t j |  d d } | j | j	  } | j
 d d d	 d d
 d g  } | j j t j d g   s t  d  S(   Niē R  i2   i   R`   i   i    t   startRB   R]   t   a(   i2   i   (   i   i    (   R)   R  R  Rd   Re   R	  R   Rk   Rl   R   RC   R]   t   equalst   IndexR"   (   Rp   R  R  t   out(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   test_predict_custom_index¤  s    !(2   RP   t
   __future__R    R   R   Rą   R   R   t   numpyR)   t   numpy.testingR   R   t   pandasRd   RQ   t   statsmodels.tsa.statespaceR   t   statsmodels.iolib.summaryR   R   R   Rį   t   dirnamet   abspatht   __file__Rć   Rā   t   var_patht   read_csvR   t   varmax_pathRļ   t   objectR	   RT   Rt   R   R   R­   R¶   RÉ   RÓ   RŁ   Ré   Ró   Rü   R  R  R  (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pyt   <module>   s@   s;;n!j4;c4		#	6