ó
áp7]c           @` sf  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 Z d d l m Z d d l m Z m Z m Z d d l m Z m Z d d l m Z d d	 l m Z m Z m Z m Z e j j e j j 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( e j) j* d ƒ d e& f d „  ƒ  Yƒ 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 „  ƒ  YZ0 d e. f d  „  ƒ  YZ1 d! e& f d" „  ƒ  YZ2 d# e% f d$ „  ƒ  YZ3 d% e3 f d& „  ƒ  YZ4 d' e3 f d( „  ƒ  YZ5 d) e3 f d* „  ƒ  YZ6 d+ e6 f d, „  ƒ  YZ7 d- e6 f d. „  ƒ  YZ8 d/ e6 f d0 „  ƒ  YZ9 d1 e3 f d2 „  ƒ  YZ: d3 e3 f d4 „  ƒ  YZ; d5 „  Z< d6 „  Z= d7 „  Z> d8 „  Z? d9 „  Z@ d: „  ZA d; „  ZB d< „  ZC d= „  ZD d> „  ZE d? „  ZF d@ „  ZG dA „  ZH d S(B   s?  
Tests for python wrapper of state space representation and filtering

Author: Chad Fulton
License: Simplified-BSD

References
----------

Kim, Chang-Jin, and Charles R. Nelson. 1999.
"State-Space Models with Regime Switching:
Classical and Gibbs-Sampling Approaches with Applications".
MIT Press Books. The MIT Press.
i    (   t   divisiont   absolute_importt   print_functionN(   t   Representation(   t   KalmanFiltert   FilterResultst   PredictionResults(   t   toolst   sarimaxi   (   t   results_kalman_filter(   t   assert_equalt   assert_almost_equalt   assert_raisest   assert_allcloset   resultss   results_clark1989_R.csvt	   Clark1987c           B` sA   e  Z d  Z e e d „ ƒ Z e d „  ƒ Z d „  Z d „  Z RS(   s>  
    Clark's (1987) univariate unobserved components model of real GDP (as
    presented in Kim and Nelson, 1999)

    Test data produced using GAUSS code described in Kim and Nelson (1999) and
    found at http://econ.korea.ac.kr/~cjkim/SSMARKOV.htm

    See `results.results_kalman_filter` for more information.
    c      
   K` s  t  j |  _ t j |  j d ƒ |  _ t j |  j d d t j d d d d ƒd d	 g ƒ} t j | d	 ƒ | d
 <d } t	 d d d | |  |  _
 |  j
 j | d
 j ƒ d d d d g |  j
 j d  d  … d  d  … d f <d d d d d d g |  j
 j d d d d d d g d d d d d d g d d d d d d g f <t j |  j
 j ƒ |  j
 _ t j |  j d ƒ \ } } } } }	 | |	 g |  j
 j d d g d d g d d g f <| d | d d | d g |  j
 j t j | ƒ t j | d t ƒf <t j | f ƒ }
 t j | ƒ d } t j t j |  j
 j d  d  … d  d  … d f | ƒ |  j
 j d  d  … d  d  … d f j ƒ } |  j
 j |
 | ƒ d  S(   Nt   statest   datat   indexs
   1947-01-01s
   1995-07-01t   freqt   QSt   columnst   GDPt   lgdpi   t   k_endogi   t   k_statesi    i   i   t
   parameterst   dtypeid   (   R	   t   uc_unit   truet   pdt	   DataFramet   true_statest
   date_ranget   npt   logR   t   modelt   bindt   valuest   designt
   transitiont   eyeR   t	   selectiont   arrayt	   state_covt   diag_indicest   zerost   intt   dott   Tt   initialize_known(   t   clsR   t   kwargsR   R   t   sigma_vt   sigma_et   sigma_wt   phi_1t   phi_2t   initial_statet   initial_state_cov(    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   setup_class0   s.    1a1G.+c         C` s   |  j  j ƒ  S(   N(   R$   t   filter(   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt
   run_filter]   s    c         C` s2   t  |  j j |  j d j ƒ  |  j d d ƒ d  S(   Nt   startt   loglikei   (   R   R   t   llf_obsR   t   sum(   t   self(    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_loglikeb   s    c         C` sµ   t  |  j j d |  j d |  j j d  d  … d f d ƒ t  |  j j d |  j d |  j j d  d  … d f d ƒ t  |  j j d |  j d |  j j d  d  … d f d ƒ d  S(   Ni    R?   i   i   i   i   (   R   R   t   filtered_stateR   R    t   iloc(   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_filtered_stateh   s      (	   t   __name__t
   __module__t   __doc__t   classmethodt   floatR<   R>   RD   RG   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR   &   s   	,	t   TestClark1987Singlec           B` s   e  Z d  Z e d „  ƒ Z RS(   sP   
    Basic single precision test for the loglikelihood and filtered states.
    c         C` sB   t  j d ƒ t t |  ƒ j d t j d d ƒ |  j ƒ  |  _ d  S(   Ns   Not implementedR   t   conserve_memoryi    (	   t   pytestt   skipt   superRM   R<   R"   t   float32R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   {   s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRM   w   s   t   TestClark1987Doublec           B` s   e  Z d  Z e d „  ƒ Z RS(   sP   
    Basic double precision test for the loglikelihood and filtered states.
    c         C` s2   t  t |  ƒ j d t d d ƒ |  j ƒ  |  _ d  S(   NR   RN   i    (   RQ   RS   R<   RL   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   ˆ   s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRS   „   s   s   Not implementedt   TestClark1987SingleComplexc           B` s   e  Z d  Z e d „  ƒ Z RS(   s\   
    Basic single precision complex test for the loglikelihood and filtered
    states.
    c         C` s5   t  t |  ƒ j d t j d d ƒ |  j ƒ  |  _ d  S(   NR   RN   i    (   RQ   RT   R<   R"   t	   complex64R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   –   s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRT      s   t   TestClark1987DoubleComplexc           B` s   e  Z d  Z e d „  ƒ Z RS(   s\   
    Basic double precision complex test for the loglikelihood and filtered
    states.
    c         C` s2   t  t |  ƒ j d t d d ƒ |  j ƒ  |  _ d  S(   NR   RN   i    (   RQ   RV   R<   t   complexR>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   £   s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRV   ž   s   t   TestClark1987Conservec           B` s   e  Z d  Z e d „  ƒ Z RS(   sM   
    Memory conservation test for the loglikelihood and filtered states.
    c         C` s2   t  t |  ƒ j d t d d ƒ |  j ƒ  |  _ d  S(   NR   RN   i   i   i   (   RQ   RX   R<   RL   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   ¯   s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRX   «   s   t   Clark1987Forecastc           B` s/   e  Z d  Z e e d d d „ ƒ Z d „  Z RS(   sE   
    Forecasting test for the loglikelihood and filtered states.
    id   i    c         C` s™   t  t |  ƒ j d | d | ƒ | |  _ t j t j |  j j d d  d  … f t j	 g | f d d d | d d ƒ|  j _ |  j j j
 d |  j _ d  S(	   NR   RN   i    t   ndmini   t   ordert   Fi   (   RQ   RY   R<   t	   nforecastR"   R+   t   r_R$   t   endogt   nant   shapet   nobs(   R3   R   R]   RN   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   »   s    	3c         C` sÊ   t  |  j j d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j j d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j j d |  j d |  j !|  j j d  d  … d f d ƒ d  S(   Ni    R?   i   i   i   i   (   R   R   RE   R   R]   R    RF   (   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRG   É   s      (   RH   RI   RJ   RK   RL   R<   RG   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRY   ·   s   t   TestClark1987ForecastDoublec           B` s   e  Z d  Z e d „  ƒ Z RS(   sR   
    Basic double forecasting test for the loglikelihood and filtered states.
    c         C` s&   t  t |  ƒ j ƒ  |  j ƒ  |  _ d  S(   N(   RQ   Rc   R<   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   Ü   s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRc   Ø   s   t"   TestClark1987ForecastDoubleComplexc           B` s   e  Z d  Z e d „  ƒ Z RS(   s^   
    Basic double complex forecasting test for the loglikelihood and filtered
    states.
    c         C` s,   t  t |  ƒ j d t ƒ |  j ƒ  |  _ d  S(   NR   (   RQ   Rd   R<   RW   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   ç   s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRd   â   s   t   TestClark1987ForecastConservec           B` s   e  Z d  Z e d „  ƒ Z RS(   s]   
    Memory conservation forecasting test for the loglikelihood and filtered
    states.
    c         C` s2   t  t |  ƒ j d t d d ƒ |  j ƒ  |  _ d  S(   NR   RN   i   i   i   (   RQ   Re   R<   RL   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   ô   s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRe   ï   s   t   TestClark1987ConserveAllc           B` s/   e  Z d  Z e d „  ƒ Z d „  Z d „  Z RS(   s]   
    Memory conservation forecasting test for the loglikelihood and filtered
    states.
    c         C` sE   t  t |  ƒ j d t d d
 ƒ |  j d |  j _ |  j ƒ  |  _ d  S(   NR   RN   i   i   i   i   R?   i   i   i   (	   RQ   Rf   R<   RL   R   R$   t   loglikelihood_burnR>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<     s    c         C` s%   t  |  j j d |  j d d ƒ d  S(   Ni    R@   i   (   R   R   RA   R   (   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRD   	  s    c         C` sx   |  j  j d } t |  j j d d |  j  j | d d f d ƒ t |  j j d d |  j  j | d d f d ƒ d  S(   Ni    iÿÿÿÿi   i   (   R    Ra   R   R   RE   RF   (   RC   t   end(    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRG     s    (   RH   RI   RJ   RK   R<   RD   RG   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRf   ü   s   	t	   Clark1989c           B` sA   e  Z d  Z e e d „ ƒ Z e d „  ƒ Z d „  Z d „  Z RS(   sj  
    Clark's (1989) bivariate unobserved components model of real GDP (as
    presented in Kim and Nelson, 1999)

    Tests two-dimensional observation data.

    Test data produced using GAUSS code described in Kim and Nelson (1999) and
    found at http://econ.korea.ac.kr/~cjkim/SSMARKOV.htm

    See `results.results_kalman_filter` for more information.
    c         K` sN  t  j |  _ t j |  j d ƒ |  _ t j |  j d d t j d d d d ƒd d	 d
 g ƒd } t j | d	 ƒ | d	 <| d
 d | d
 <d } t	 d d d | |  |  _
 |  j
 j t j | j ƒ ƒ d d d d d d g d d d d d d g g |  j
 j d  d  … d  d  … d f <d d d d d d d d g |  j
 j d d d d d d d d g d d d d d d d d g d d d d d d d d g f <t j |  j
 j ƒ |  j
 _ t j |  j d ƒ \
 } } } } }	 }
 } } } } | | | g |  j
 j d d d g d d d g d d d g f <|
 | g |  j
 j d d g d d g d d g f <|	 d |  j
 j d <| d | d d d | d | d g |  j
 j t j | ƒ t j | d t ƒf <t j | f ƒ } t j | ƒ d } t j t j |  j
 j d  d  … d  d  … d f | ƒ |  j
 j d  d  … d  d  … d f j ƒ } |  j
 j | | ƒ d  S(   NR   R   R   s
   1947-01-01s
   1995-07-01R   R   R   R   t   UNEMPi   id   i   R   i   R   i   i    i   i   R   R   (   i   i   i    (   R	   t   uc_biR   R   R   R    R!   R"   R#   R   R$   R%   t   ascontiguousarrayR&   R'   R(   R)   R   R*   R+   t   obs_covR,   R-   R.   R/   R0   R1   R2   (   R3   R   R4   R   R   R5   R6   R7   t   sigma_vlt   sigma_ecR8   R9   t   alpha_1t   alpha_2t   alpha_3R:   R;   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   &  s6    Oy.=1Q.+c         C` s   |  j  j ƒ  S(   N(   R$   R=   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR>   [  s    c         C` s+   t  |  j j d j ƒ  |  j d d ƒ d  S(   Ni    R@   i   (   R   R   RA   RB   R   (   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRD   `  s    c         C` sð   t  |  j j d |  j d |  j j d  d  … d f d ƒ t  |  j j d |  j d |  j j d  d  … d f d ƒ t  |  j j d |  j d |  j j d  d  … d f d ƒ t  |  j j d |  j d |  j j d  d  … d f d ƒ d  S(   Ni    R?   i   i   i   i   i   (   R   R   RE   R   R    RF   (   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRG   g  s       (	   RH   RI   RJ   RK   RL   R<   R>   RD   RG   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRi     s   4	t   TestClark1989c           B` s&   e  Z d  Z e d „  ƒ Z d „  Z RS(   s|   
    Basic double precision test for the loglikelihood and filtered
    states with two-dimensional observation vector.
    c         C` s2   t  t |  ƒ j d t d d ƒ |  j ƒ  |  _ d  S(   NR   RN   i    (   RQ   Rs   R<   RL   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<     s    c         C` s9   t  |  j j j d d ƒ j d d ƒ t d d d ƒd  S(   Nt   axisi   i    t   V1t   atolg-Cëâ6?(   R   R   t   kalman_gainRB   t   clark1989_results(   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_kalman_gain„  s    $(   RH   RI   RJ   RK   R<   Ry   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRs   z  s   t   TestClark1989Conservec           B` s   e  Z d  Z e d „  ƒ Z RS(   sy   
    Memory conservation test for the loglikelihood and filtered states with
    two-dimensional observation vector.
    c         C` s2   t  t |  ƒ j d t d d ƒ |  j ƒ  |  _ d  S(   NR   RN   i   i   i   (   RQ   Rz   R<   RL   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   Ž  s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRz   ‰  s   t   Clark1989Forecastc           B` s/   e  Z d  Z e e d d d „ ƒ Z d „  Z RS(   sy   
    Memory conservation test for the loglikelihood and filtered states with
    two-dimensional observation vector.
    id   i    c         C` s±   t  t |  ƒ j d | d | ƒ | |  _ t j t j |  j j t j	 t j
 t j
 g | j d | ƒ f d d d | d d ƒ|  j _ |  j j j d |  j _ |  j ƒ  |  _ d  S(   NR   RN   i   RZ   R[   R\   i   (   RQ   R{   R<   R]   R"   R+   t   c_R$   R_   R^   R`   t   reshapeRa   Rb   R>   R   (   R3   R   R]   RN   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   ›  s    		-c         C` s  t  |  j j d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j j d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j j d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j j d |  j d |  j !|  j j d  d  … d f d ƒ d  S(   Ni    R?   i   i   i   i   i   (   R   R   RE   R   R]   R    RF   (   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRG   ®  s       (   RH   RI   RJ   RK   RL   R<   RG   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR{   –  s   t   TestClark1989ForecastDoublec           B` s   e  Z d  Z e d „  ƒ Z RS(   sR   
    Basic double forecasting test for the loglikelihood and filtered states.
    c         C` s&   t  t |  ƒ j ƒ  |  j ƒ  |  _ d  S(   N(   RQ   R~   R<   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   Å  s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR~   Á  s   t"   TestClark1989ForecastDoubleComplexc           B` s   e  Z d  Z e d „  ƒ Z RS(   s^   
    Basic double complex forecasting test for the loglikelihood and filtered
    states.
    c         C` s,   t  t |  ƒ j d t ƒ |  j ƒ  |  _ d  S(   NR   (   RQ   R   R<   RW   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   Ð  s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR   Ë  s   t   TestClark1989ForecastConservec           B` s   e  Z d  Z e d „  ƒ Z RS(   s]   
    Memory conservation forecasting test for the loglikelihood and filtered
    states.
    c         C` s2   t  t |  ƒ j d t d d ƒ |  j ƒ  |  _ d  S(   NR   RN   i   i   i   (   RQ   R€   R<   RL   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   Ý  s    (   RH   RI   RJ   RK   R<   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR€   Ø  s   t   TestClark1989ConserveAllc           B` s/   e  Z d  Z e d „  ƒ Z d „  Z d „  Z RS(   s]   
    Memory conservation forecasting test for the loglikelihood and filtered
    states.
    c         C` s>   t  t |  ƒ j d t d d
 ƒ d |  j _ |  j ƒ  |  _ d  S(   NR   RN   i   i   i   i   i    i   i   i   (   RQ   R   R<   RL   R$   Rg   R>   R   (   R3   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<   ê  s    c         C` s%   t  |  j j d |  j d d ƒ d  S(   Ni    R@   i   (   R   R   RA   R   (   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRD   ó  s    c         C` sÜ   |  j  j d } t |  j j d d |  j  j | d d f d ƒ t |  j j d d |  j  j | d d f d ƒ t |  j j d d |  j  j | d d f d ƒ t |  j j d d |  j  j | d d f d ƒ d  S(   Ni    iÿÿÿÿi   i   i   i   i   (   R    Ra   R   R   RE   RF   (   RC   Rh   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRG   ø  s    (   RH   RI   RJ   RK   R<   RD   RG   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR   å  s   		t   TestClark1989PartialMissingc           B` s2   e  Z e d  „  ƒ Z d „  Z d „  Z d „  Z RS(   c         C` s[   t  t |  ƒ j ƒ  |  j j } t j | d d d  … f <|  j j | ƒ |  j ƒ  |  _	 d  S(   Ni   iÍÿÿÿ(
   RQ   R‚   R<   R$   R_   R"   t   NaNR%   R>   R   (   R3   R_   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR<     s
    c         C` s!   t  |  j j d j ƒ  d ƒ d  S(   Ni    g$FÏ-t@“@(   R   R   RA   RB   (   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRD     s    c         C` s   d  S(   N(    (   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRG     s    c         C` s=   t  |  j j j d t j d  d  … d d  … f d d ƒd  S(   Ni   Rv   g:Œ0âŽyE>(   R   R   t   predicted_stateR1   Rx   RF   (   RC   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_predicted_state  s    /(   RH   RI   RK   R<   RD   RG   R…   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR‚     s   			c          ` s†  t  j d ƒ d }  t d d d d ƒ ‰  ˆ  j |  ƒ ‡  f d †  } ‡  f d †  } ‡  f d	 †  } t t | ƒ t t | ƒ t t | ƒ t t ‡  f d
 †  ƒ t t ‡  f d †  ƒ t t ‡  f d †  ƒ t ˆ  j d d ƒ d ˆ  d <t ˆ  d j ƒ  d ƒ t ˆ  j d d ƒ t ˆ  d d ƒ t  j	 ˆ  d j
 ƒ ˆ  d <t ˆ  j d d ƒ d ˆ  d <t ˆ  j d d ƒ t ˆ  d d ƒ d  S(   Ni
   g      ð?R   i   R   i   c           ` s   d ˆ  d <d  S(   Ni   t   designs(    (    (   t   mod(    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   set_designs.  s    c           ` s   d ˆ  d <d  S(   Ni   R†   i    (   R†   i    i    (    (    (   R‡   (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   set_designs21  s    c           ` s   d ˆ  d <d  S(   Ni   i    (    (    (   R‡   (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   set_designs34  s    c           ` s   ˆ  d S(   NR†   (    (    (   R‡   (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   <lambda><  t    c           ` s   ˆ  d S(   NR†   i    (   R†   i    i    i    (    (    (   R‡   (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR‹   =  RŒ   c           ` s   ˆ  d S(   Ni    (    (    (   R‡   (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR‹   >  RŒ   i    R'   (   i    i    i    (   R'   i    i    i    (   i    i    i    (   R'   i    i    i    (   i    i    (   R'   i    i    (   i    i    (   R'   i    i    (   R"   t   arangeR   R%   R   t
   IndexErrorR
   R'   RB   R.   Ra   (   R_   Rˆ   R‰   RŠ   (    (   R‡   sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_slice_notation%  s,    

c          C` s1  d „  }  t  t |  ƒ d „  } t  t | ƒ d } d } t j | | ƒ j | | ƒ d } t j | ƒ } t | d d ƒ} t | j | ƒ t | j	 | ƒ d } d } t j | | ƒ j | | ƒ d } t | d d ƒ} t | j | ƒ t | j	 | ƒ t | j
 d  ƒ | j ƒ  t | j
 d  k	 t ƒ d  S(   Nc           S` s   t  d d ƒ d  S(   Ni   i    (   R   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   zero_kstatesS  s    c          S` s#   t  j d ƒ }  t |  d d ƒd  S(   Ni    R   i   (   i    i    (   R"   R.   R   (   R_   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   empty_endogX  s    i
   i   g      ð?R   (   R   t
   ValueErrorR"   R   R}   t   asfortranarrayR   R
   Rb   R   t   _statespacet   Nonet   _initialize_representationt   True(   R   R‘   Rb   R   t   arrR_   R‡   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_representationO  s(    		##
c        
   ` s  t  d d d ƒ‰  t t ‡  f d †  ƒ ˆ  j t j d ƒ j d ƒ d ƒ t ˆ  j d ƒ ˆ  j t j	 d d t j
 ƒƒ t j t ƒ . ˆ  j t j d	 ƒ j d d d
 ƒ d ƒ Wd  QXˆ  j t j t j d ƒ j d d ƒ ƒ ƒ t ˆ  j d ƒ ˆ  j t j d ƒ j d d ƒ ƒ t ˆ  j d ƒ t j t ƒ 0 ˆ  j t j t j d ƒ j d d ƒ ƒ ƒ Wd  QXt t ‡  f d †  ƒ d  S(   Ni   R   c           ` s   ˆ  j  d d d d g ƒ S(   Ni   i   i   i   (   R%   (    (   R‡   (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR‹   |  RŒ   i
   i   g      ð?i    R   i   i   c           ` s"   ˆ  j  t j d ƒ j d d ƒ ƒ S(   Ni
   i   i   (   R%   R"   R   R}   (    (   R‡   (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR‹   –  RŒ   (   i   i   (   i    i   (   R   R   R’   R%   R"   R   R}   R
   Rb   R.   t   float64RO   t   raisesR“   (    (    (   R‡   sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt	   test_bindv  s    #/+"1c       	   ` sL  t  d d d ƒ‰  t t ‡  f d †  ƒ t j d ƒ d }  t j d ƒ d } ˆ  j |  | ƒ t ˆ  j j	 j
 ƒ  d ƒ t ˆ  j j j ƒ  j
 ƒ  d ƒ t j d	 ƒ }  t j t ƒ  ˆ  j |  | ƒ Wd  QXt j d
 ƒ }  t j t ƒ  ˆ  j |  | ƒ Wd  QXt j d ƒ d }  t j d ƒ } t j t ƒ  ˆ  j |  | ƒ Wd  QXd  S(   Ni   R   i   c           ` s
   ˆ  j  ƒ  S(   N(   t   _initialize_state(    (   R‡   (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyR‹   Ÿ  RŒ   g      ø?g      @i   i   i
   (   i
   i
   (   R   R   t   RuntimeErrorR"   R.   R)   R2   R
   t   initializationt   constantRB   t   stationary_covt   diagonalRO   R›   R’   (   R:   R;   (    (   R‡   sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_initialization™  s"    c          C` sC   t  d d d d ƒ }  t t |  j ƒ |  j ƒ  t t |  j ƒ d  S(   NR   i   R   (   R   R   Rž   t   _initialize_filtert   initialize_approximate_diffuseR=   (   R‡   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_no_endog·  s    
c          C` s#  xÙ t  j j ƒ  D]È \ }  } t j d d d d | ƒ} t d d d d d | ƒ } | j | ƒ | j ƒ  t | j	 |  ƒ t | j
 | ƒ t |  | j k t ƒ | j |  } t | t  j |  ƒ sÈ t ‚ t | j | ƒ q Wt d d d d ƒ } t | j	 d ƒ t | j
 t j ƒ t | j d  ƒ t j t j d d	 g d t j ƒƒ } | j | ƒ | j ƒ  | j d } | j | ƒ | j ƒ  t | j | ƒ t j d
 ƒ | _ | j ƒ  t | j | k t ƒ | j d } t j t j d d	 g d t j ƒƒ } | j | ƒ t | j | k t ƒ d  S(   Ng      ð?RZ   i   R   R   i   R   t   dg       @(   i   i   i   (   R   t   prefix_dtype_mapt   itemsR"   R+   R   R%   R¤   R
   t   prefixR   t   _kalman_filtersR—   t
   isinstancet   prefix_kalman_filter_mapt   AssertionErrort   _kalman_filterRš   R•   Rl   R.   R'   t   Falset
   complex128(   Rª   R   R_   R‡   t   kf(    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_cythonÄ  s:    
'


'c          C` s   t  j d	 ƒ }  t |  d d d d ƒ} d | d d  d  … f <d | d d  d  … f <d | d d  d  … f <| j ƒ  } t t | t ƒ t ƒ d  S(
   Ni
   i   R   RŸ   t   approximate_diffuseR'   R*   R,   (   i
   i   (   R"   t   onesR   R=   R
   R¬   R   R—   (   R_   R‡   t   res(    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_filterÿ  s    c          C` s–   t  j d	 ƒ }  t |  d d d d ƒ} d | d d  d  … f <d | d d  d  … f <d | d d  d  … f <t | _ t t | j ƒ t t | j ƒ d  S(
   Ni
   i   R   RŸ   R´   R'   R*   R,   (   i
   i   (	   R"   Rµ   R   R—   t   memory_no_likelihoodR   Rž   R@   t
   loglikeobs(   R_   R‡   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyRD     s    	c          C` s>  t  j d ƒ t j d ƒ }  t |  d d d d ƒ} d | d d  d  … f <t j d ƒ | d <d | d	 d  d  … f <d | d
 d  d  … f <t | _ | j ƒ  } t	 t
 | j ƒ t | _ t | _ | j ƒ  } t	 t
 | j ƒ t | _ | j ƒ  } t	 t
 | j d d ƒt	 t
 | j d d d d ƒt	 t
 | j d d ƒt  j d t ƒ = } | j d d d d ƒ d } t t | d j ƒ | ƒ Wd  QXt  j d t ƒ L } | j d d d d d t j d ƒ ƒ d } t t | d j ƒ | ƒ Wd  QXt  j d t ƒ S } | j d | j d d t d t j d ƒ ƒ d } t t | d j ƒ | ƒ Wd  QXt	 t
 | j d | j d ƒt	 t
 | j d | j d d t j d ƒ ƒt	 t
 | j d | j d d t j d ƒ ƒt | j ƒ  j j d | j f ƒ | j d t ƒ | j d d d d ƒ } t t | t ƒ t ƒ t | j j d ƒ t | j j d ƒ t | j j d  ƒ t | j j d! ƒ t | j j d" ƒ t | j j d# ƒ t | j j d$ ƒ t | j j d% ƒ t | j j d& ƒ t | j j d' ƒ t | j j d( ƒ t | j  j d) ƒ t | j! j d* ƒ t | j" j d+ ƒ t | j# j d, ƒ t | j$ j d- ƒ t	 t% t& | d ƒ t |  d d d d ƒ} d | d d  d  … f <t j d. ƒ | d <d | d	 d  d  … f <d | d
 d  d  … f <| j ƒ  } t	 t
 | j d | j d d t j d/ ƒ ƒt	 t
 | j d | j d d t j d0 ƒ ƒd  S(1   Nt   alwaysi
   i   R   RŸ   R´   R'   t   obs_interceptR*   R,   R?   iÿÿÿÿi   Rh   t   dynamict   recordsX   Dynamic prediction specified to begin after the end of prediction, and so has no effect.i    i   sd   Dynamic prediction specified to begin during out-of-sample forecasting period, and so has no effect.s]   Model has time-invariant design matrix, so the design argument to `predict` has been ignored.i   i   t   testRm   (   i
   i   (   i   i
   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i
   (   i   i   (   i   i   i   ('   t   warningst   simplefilterR"   Rµ   R   R.   R—   t   memory_no_forecastR=   R   R’   t   predictR°   t   memory_no_predictedt   catch_warningsR
   t   strt   messageRb   t	   forecastsRa   R¬   R   R_   R»   R'   Rm   t   state_interceptR(   R*   R,   t   forecasts_errorRE   R„   t   forecasts_error_covt   filtered_state_covt   predicted_state_covt   AttributeErrort   getattr(   R_   R‡   R¶   t   wRÆ   t   prediction_results(    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_predict  sˆ    				 %  "c          C` sÁ   t  j }  t j |  d d t j d d d d ƒd d g ƒ} t j | d ƒ | d	 <t j | d	 d
 d ƒ} | j	 d d ƒ } | j
 j d t j | j
 j d ƒ } t | j
 j d | ƒ d  S(   NR   R   s
   1947-01-01s
   1995-07-01R   R   R   R   R   R[   i   i    t   dispiÿÿÿÿ(   i   i   i    (   i    i    (   R	   R   R   R   R!   R"   R#   R   t   SARIMAXt   fitt   filter_resultsRÉ   t   sqrtRÊ   R   t   standardized_forecasts_error(   R   R   R‡   R¶   R×   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt!   test_standardized_forecasts_error¥  s    	
c       	   C` s§  d d l  m }  d } d } t j | ƒ } t j j d | d d | ƒ } t d d	 d
 d	 ƒ } d | d  <d | d! <d | d" <| j | d | d | ƒd j ƒ  } t j	 d t j
 | ƒ d  f } t | | ƒ t d d	 d
 d	 ƒ } d | d# <d | d$ <d | d% <| j | d t j | ƒ d | ƒd j ƒ  } t j	 d	 t j
 | ƒ d  d	 f } t | | ƒ t d d	 d
 d	 ƒ } d | d& <d | d' <d | d( <d | d) <d | d* <| j | d t j | ƒ d | ƒd j ƒ  } t j	 d+ t j
 | d ƒ d  d	 d f } t | | ƒ t d d	 d
 d	 d d ƒ } t j d ƒ d j d	 d ƒ | d <d | d, <d | d- <d | d. <| j | d | d | ƒd j ƒ  } t j	 d t j
 | ƒ d  t j d	 d ƒ f } t | | ƒ t d d	 d
 d	 d d ƒ } t j d ƒ d j d	 d ƒ | d <d | d/ <d | d0 <d | d1 <t t | j | d	 | | ƒ d } d }	 t j d g d d2 ƒ} | j t j	 | |	 | f ƒ | j j | d | d | d t j | j ƒ ƒd j ƒ  } |  d	 |	 g d	 | g t j	 d | d  f ƒ } t | | ƒ t j d d d g d d3 d d4 ƒ} | j d d d d d	 g ƒ }
 |
 j | d | d | d t j | j ƒ ƒ} |  |
 j |
 j t j	 d | d  f ƒ } t | | ƒ d  S(5   Ni    (   t   lfilteri
   i   t   scaleg      à?t   sizeR   i   R   g      ð?R'   R(   R*   t   measurement_shockst   state_shocksiÿÿÿÿg      @R»   g       ÀRÈ   i   Rb   gš™™™™™¹?R[   R:   gš™™™™™É¿t   seasonal_orderi   gš™™™™™É?g333333Ó¿(   R'   i    i    (   R(   i    i    (   R*   i    i    (   R'   i    i    (   R(   i    i    (   R*   i    i    (   R»   i    i    (   R'   i    i    (   RÈ   i    i    (   R(   i    i    (   R*   i    i    i   (   R'   i    i    (   R(   i    i    (   R*   i    i    (   R'   i    i    (   R(   i    i    (   R*   i    i    (   i   i    i   (   i   i    i   (   i   i    i   i   (   t   scipy.signalRÙ   R"   R.   t   randomt   normalR   t   simulatet   squeezeR^   t   cumsumR   Rµ   R   R}   R   R’   R   RÓ   t   updatet   ssmR   R=   t   polynomial_reduced_mat   polynomial_reduced_ar(   RÙ   t   nsimulationst   sigma2RÜ   RÝ   R‡   t   actualt   desiredt   phit   thetaR¶   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_simulateÂ  sŽ    


 


$




,#


0#


	0	c       	   C` só  t  d d d d ƒ }  d |  d <d |  d <d |  d <d	 |  d <|  j d d ƒ } t j d ƒ } t | | ƒ t  d d d d ƒ }  d |  d  <d |  d! <d |  d" <d	 |  d# <|  j d d d d g ƒ } t j d$ ƒ d } t | | ƒ t  d d d d ƒ }  d |  d% <d |  d& <d |  d' <d	 |  d( <|  j d d d t ƒ } t j d) ƒ d* } t | | ƒ t  d d d d ƒ }  d |  d+ <d |  d, <d |  d- <d	 |  d. <|  j d d d t d t ƒ } t j t j d/ ƒ d0 ƒ d  d  … t j f } |  j d d d d g d t d t ƒ } t j t j d1 ƒ d2 ƒ d  d  … t j f } t | | ƒ t  d d d d ƒ }  d |  d3 <d |  d4 <d |  d5 <d |  d6 <d |  d7 <d	 |  d8 <|  j d d ƒ } t j d9 ƒ } t | | ƒ t  d d d d ƒ }  t t	 |  j d d ƒt t	 |  j d d d g ƒt t	 |  j d g  ƒt  d d d d ƒ }  d |  d d d d … f <t j
 d ƒ |  d d  d  … d  d  … f <t j
 d ƒ |  d d  d  … d  d  … f <t j
 d ƒ |  d
 d  d  … d  d  … f <t j d: ƒ } |  j d d d d ƒ } t | | ƒ |  j d d d d d g ƒ } t | | ƒ |  j d d d d ƒ } t | | ƒ |  j d d d d d g ƒ } t | | ƒ |  j d d d d d t ƒ } t | | ƒ |  j d d d d d g d t ƒ } t | | ƒ |  j d d d d d g d t ƒ } t | | ƒ t  d d d d ƒ }  d |  d d d d … f <t j
 d ƒ |  d d  d  … d  d  … f <t j
 d ƒ |  d d  d  … d  d  … f <t j d d g d d g g ƒ |  d
 d  d  … d  d  … f <t j d; ƒ } |  j d d d d ƒ } t | | ƒ |  j d d d d ƒ } t | | ƒ |  j d d d d d t ƒ } t | | | d ƒ |  j d d d d d t ƒ } t | | ƒ t  d d d d ƒ }  t j
 d ƒ |  d d  d  … d  d  … f <t j
 d ƒ |  d d  d  … d  d  … f <t j
 d ƒ |  d d  d  … d  d  … f <t j d d g d d g g ƒ |  d
 d  d  … d  d  … f <t j d< ƒ } t j d= ƒ } |  j d d d d ƒ } t | t j | | f ƒ |  j d d d d ƒ } t | t j | | f ƒ |  j d d d d d t ƒ } t | t j | | d f ƒ |  j d d d d d t ƒ } t | t j | | f ƒ t j d d d g d d> ƒ}  d } |  j | d g ƒ t j t j d | g d f ƒ } |  j j d d ƒ } t | d  d  … d f | ƒ |  j | d g ƒ } | j d d ƒ } t | | ƒ d  S(?   NR   i   R   g      ð?R'   i    R(   R*   g       @R,   t   stepsi
   i   t   impulsei   t   orthogonalizedg      à?t
   cumulativeg      Y@RÈ   g     @ÀR»   g      ô?gš™™™™™¹?gš™™™™™É¿R[   (   R'   i    i    (   R(   i    i    (   R*   i    i    (   R,   i    i    (   i   i   (   R'   i    i    (   R(   i    i    (   R*   i    i    (   R,   i    i    (   i   i   (   R'   i    i    (   R(   i    i    (   R*   i    i    (   R,   i    i    (   i   i   gÍ;fž ö?(   R'   i    i    (   R(   i    i    (   R*   i    i    (   R,   i    i    (   i   i   gÍ;fž ö?(   i   i   gÍ;fž ö?(   RÈ   i    (   R'   i    i    (   R»   i    (   R(   i    i    (   R*   i    i    (   R,   i    i    (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i    i    (   R   t   impulse_responsesR"   Rµ   R   R—   Rä   t   newaxisR   R’   R)   R+   R.   R|   R   RÓ   Rå   t   cumprodR^   Ræ   R=   (   R‡   Rë   Rì   Rµ   R.   Rí   R¶   (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_impulse_responses.  sÜ    















	/	/





(((		((:(((:#c    	      C` sL  t  j d ƒ j d d ƒ }  t  j t  j |  j ƒ  t  j |  j ƒ  t  j |  |  f ƒ } t  j t  j |  |  |  j ƒ  t  j |  j ƒ  t  j f ƒ } t  j t  j |  |  j ƒ  t  j |  |  j ƒ  t  j f ƒ } t t  j t  j |  |  f ƒ d d d d ƒ} d | d d  d  … d  d  … f <t  j | j	 ƒ d | d d  d  … d  d  … f <d | d	 d  d  … d  d  … f <d | d
 d  d  … d  d  … f <d | d d  d  … d  d  … f <| j
 ƒ  } t | d d d d ƒ} d | d d  d  … d  d  … f <t  j | j	 ƒ d | d d  d  … d  d  … f <d | d	 d  d  … d  d  … f <d | d
 d  d  … d  d  … f <d | d d  d  … d  d  … f <| j
 ƒ  } t | | ƒ t | d d d d ƒ} d | d d  d  … d  d  … f <t  j | j	 ƒ d | d d  d  … d  d  … f <d | d	 d  d  … d  d  … f <d | d
 d  d  … d  d  … f <d | d d  d  … d  d  … f <| j
 ƒ  } t | | ƒ t | d d d d ƒ} d | d d  d  … d  d  … f <t  j | j	 ƒ d | d d  d  … d  d  … f <d | d	 d  d  … d  d  … f <d | d
 d  d  … d  d  … f <d | d d  d  … d  d  … f <| j
 ƒ  } t | | ƒ d  S(   Ni
   i   R   RŸ   R´   R'   g      à?Rm   R(   R*   R,   (   R"   R   R}   Rl   R|   t   copyR`   R   R)   R   R¹   R   (	   R_   t   endog_pre_nat   endog_post_nat   endog_inject_naR‡   t   llft
   llf_pre_nat   llf_post_nat   llf_inject_na(    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   test_missingã  sT    000%	/	/	/	/(I   RJ   t
   __future__R    R   R   t   osR¿   t   numpyR"   t   pandasR   RO   t)   statsmodels.tsa.statespace.representationR   t(   statsmodels.tsa.statespace.kalman_filterR   R   R   t   statsmodels.tsa.statespaceR   R   R   R	   t   numpy.testingR
   R   R   R   t   patht   dirnamet   abspatht   __file__t   current_patht   joint   clark1989_patht   read_csvRx   t   objectR   RM   RS   t   markRP   RT   RV   RX   RY   Rc   Rd   Re   Rf   Ri   Rs   Rz   R{   R~   R   R€   R   R‚   R   R™   Rœ   R£   R¦   R³   R·   RD   RÑ   RØ   Rï   R÷   R   (    (    (    sS   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_representation.pyt   <module>   s`   "Q!
`+
'	*	'	#			;			‰		l	µ