ó
áp7]c           @` s  d  Z  d d l m Z m Z m Z d d l 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 d d l m Z d d l m Z m Z d	 d
 l m Z d d l m Z m Z i e j d 6e j d 6e j d 6e j d 6Z  i e j! d 6e j" d 6e j# d 6e j$ d 6Z% e j& j' e j& j( 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 „  ƒ  YZ0 d e, f d „  ƒ  YZ1 d e, f d „  ƒ  YZ2 d e2 f d „  ƒ  YZ3 d  e2 f d! „  ƒ  YZ4 d" e2 f d# „  ƒ  YZ5 d$ e, f d% „  ƒ  YZ6 d& e+ f d' „  ƒ  YZ7 d( e7 f d) „  ƒ  YZ8 d* e7 f d+ „  ƒ  YZ9 d, e7 f d- „  ƒ  YZ: d. e: f d/ „  ƒ  YZ; d0 e: f d1 „  ƒ  YZ< d2 e: f d3 „  ƒ  YZ= d4 e7 f d5 „  ƒ  YZ> e? d6 „ Z@ e? d7 „ ZA d8 „  ZB d S(9   sŒ  
Tests for _representation and _kalman_filter modules

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.

Hamilton, James D. 1994.
Time Series Analysis.
Princeton, N.J.: Princeton University Press.
i    (   t   divisiont   absolute_importt   print_function(   t   cPickleN(   t   find_best_blas_type(   t   solve_discrete_lyapunov(   t   MLEModel(   t   _representationt   _kalman_filteri   (   t   results_kalman_filter(   t   assert_almost_equalt   assert_allcloset   st   dt   ct   zt	   Clark1987c           B` sh   e  Z d  Z e e d d d „ ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z 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.
    i    c      
   C` 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
 <| |  _	 | |  _
 t j | d
 d d d | d d ƒ|  _ d |  _ } t j | d d f d | d d ƒ|  _ d d d d g |  j d  d  … d  d  … d f <t j | d f d | d d ƒ|  _ t j | | d f d | d d ƒ|  _ d |  _ } t j | | d f d | d d ƒ|  _ d d d d d d g |  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 | d f d | d d ƒ|  _ t j t j | ƒ d  d  … d  d  … d  f d | ƒ|  _ t j | | d f d | d d ƒ|  _ t j | f d | d d ƒ|  _ t j t j | ƒ d d | ƒ|  _ t j |  j d d | ƒ\ } } }	 }
 } |
 | g |  j d d g d d g d d g f <| d | d d |	 d g |  j t j | ƒ t j | d t ƒf <t j t j t j |  j d  d  … d  d  … d f |  j ƒ |  j d  d  … d  d  … d f j ƒ ƒ |  _ d  S(   Nt   statest   datat   indexs
   1947-01-01s
   1995-07-01t   freqt   QSt   columnst   GDPt   lgdpt   ndmini   t   dtypet   ordert   Fi   i   i    i   id   t
   parameters(    R	   t   uc_unit   truet   pdt	   DataFramet   true_statest
   date_ranget   npt   logt   conserve_memoryt   loglikelihood_burnt   arrayt   obst   k_endogt   zerost   designt   obs_interceptt   obs_covt   k_statest
   transitiont   state_interceptt   asfortranarrayt   eyet   Nonet	   selectiont	   state_covt   initial_statet   initial_state_covt   diag_indicest   intt   dott   T(   t   clsR   R&   R'   R   R*   R/   t   sigma_vt   sigma_et   sigma_wt   phi_1t   phi_2(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt   setup_class:   sF    		('.$'^$.!%.D	.c      	   C` s¥   t  |  j f ƒ } t | d } | |  j |  j |  j |  j |  j |  j |  j |  j	 ƒ } | j
 |  j |  j ƒ t | d } | | d |  j d |  j ƒ} | | f S(   Ni    R&   R'   (   R   R)   t   prefix_statespace_mapR,   R-   R.   R0   R1   R5   R6   t   initialize_knownR7   R8   t   prefix_kalman_filter_mapR&   R'   (   R=   t   prefixt   klasst   modelt   kfilter(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt   init_filter…   s    c         ` s4   ˆ  j  ƒ  i ‡  f d †  d 6t j ˆ  j  j ƒ d 6S(   Nc         ` s   t  j ˆ  j j |  ƒ S(   N(   R$   t   sumt   filtert   loglikelihood(   t   burn(   R=   (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt   <lambda>¡   t    t   logliket   state(   RM   R$   R(   t   filtered_state(   R=   (    (   R=   sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt
   run_filterš   s    
c         C` s/   t  |  j d |  j d ƒ |  j d d ƒ d  S(   NRR   t   starti   (   R
   t   resultR   (   t   self(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt   test_loglike¥   s    c         C` s¸   t  |  j d d |  j d |  j j d  d  … d f d ƒ t  |  j d d |  j d |  j j d  d  … d f d ƒ t  |  j d d |  j d |  j j d  d  … d f d ƒ d  S(   NRS   i    RV   i   i   i   i   (   R
   RW   R   R"   t   iloc(   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt   test_filtered_stateª   s      c         C` sž   t  j t  j |  j ƒ ƒ } |  j ƒ  | ƒ  t t ƒ t | ƒ k sJ t ‚ t t j |  j j	 ƒ t j | j	 ƒ ƒ t t j |  j j
 ƒ t j | j
 ƒ ƒ d  S(   N(   R   t   loadst   dumpsRM   t   idt   AssertionErrorR   R$   R(   RT   RN   (   RX   t   pickled(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt   test_pickled_filter¸   s    
c         C` s•   t  j |  j ƒ } |  j ƒ  | ƒ  t t ƒ t | ƒ k sA t ‚ t t j |  j j ƒ t j | j ƒ ƒ t t j |  j j	 ƒ t j | j	 ƒ ƒ d  S(   N(
   t   copyt   deepcopyRM   R^   R_   R   R$   R(   RT   RN   (   RX   t   copied(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt   test_copied_filterÄ   s    
(   t   __name__t
   __module__t   __doc__t   classmethodt   floatRC   RK   RU   RY   R[   Ra   Re   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR   0   s   	J			t   TestClark1987Singlec           B` s/   e  Z d  Z e d „  ƒ Z d „  Z d „  Z RS(   sP   
    Basic single precision test for the loglikelihood and filtered states.
    c         C` sZ   t  j d ƒ t t |  ƒ j d t j d d ƒ |  j ƒ  \ |  _ |  _	 |  j
 ƒ  |  _ d  S(   Ns   Not implementedR   R&   i    (   t   pytestt   skipt   superRk   RC   R$   t   float32RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   Ö   s
    c         C` s2   t  |  j d |  j d ƒ |  j d d d ƒd  S(   NRR   RV   t   rtolgü©ñÒMbP?(   R   RW   R   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRY   ß   s    $c         C` sÁ   t  |  j d d |  j d |  j j d  d  … d f d d ƒt  |  j d d |  j d |  j j d  d  … d f d d ƒt  |  j d d |  j d |  j j d  d  … d f d d ƒd  S(	   NRS   i    RV   t   atolg{®Gáz„?i   i   i   (   R   RW   R   R"   RZ   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR[   å   s    (   Rf   Rg   Rh   Ri   RC   RY   R[   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRk   Ò   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` sJ   t  t |  ƒ j d t d d ƒ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   NR   R&   i    (	   Rn   Rr   RC   Rj   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   û   s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRr   ÷   s   t   TestClark1987SingleComplexc           B` s/   e  Z d  Z e d „  ƒ Z d „  Z d „  Z RS(   s\   
    Basic single precision complex test for the loglikelihood and filtered
    states.
    c         C` sZ   t  j d ƒ t t |  ƒ j d t j d d ƒ |  j ƒ  \ |  _ |  _	 |  j
 ƒ  |  _ d  S(   Ns   Not implementedR   R&   i    (   Rl   Rm   Rn   Rs   RC   R$   t	   complex64RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   	  s
    c         C` s2   t  |  j d |  j d ƒ |  j d d d ƒd  S(   NRR   RV   Rp   gü©ñÒMbP?(   R   RW   R   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRY     s    $c         C` sÁ   t  |  j d d |  j d |  j j d  d  … d f d d ƒt  |  j d d |  j d |  j j d  d  … d f d d ƒt  |  j d d |  j d |  j j d  d  … d f d d ƒd  S(	   NRS   i    RV   Rq   g{®Gáz„?i   i   i   (   R   RW   R   R"   RZ   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR[     s    (   Rf   Rg   Rh   Ri   RC   RY   R[   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRs     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` sJ   t  t |  ƒ j d t d d ƒ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   NR   R&   i    (	   Rn   Ru   RC   t   complexRK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   /  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRu   *  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` sJ   t  t |  ƒ j d t d d ƒ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   NR   R&   i   i   i   (	   Rn   Rw   RC   Rj   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   <  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRw   8  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 | | ƒ | |  _ |  j |  _ t j t j |  j d d  d  … f t j	 g | f d d d | d d ƒ|  _ d  S(   Ni    R   i   R   R   R   (
   Rn   Rx   RC   t	   nforecastR)   t   _obsR$   R(   t   r_t   nan(   R=   R   Ry   R&   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   I  s    
	6c         C` sÍ   t  |  j d d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j d d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j d d |  j d |  j !|  j j d  d  … d f d ƒ d  S(   NRS   i    RV   i   i   i   i   (   R
   RW   R   Ry   R"   RZ   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR[   U  s         (   Rf   Rg   Rh   Ri   Rj   RC   R[   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRx   E  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 ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   N(   Rn   R}   RC   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   h  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR}   d  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` sD   t  t |  ƒ j d t ƒ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   NR   (	   Rn   R~   RC   Rv   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   t  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR~   o  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` sJ   t  t |  ƒ j d t d d ƒ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   NR   R&   i   i   i   (	   Rn   R   RC   Rj   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   ‚  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR   }  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` sZ   t  t |  ƒ j d t d d
 ƒ |  j d |  _ |  j ƒ  \ |  _ |  _ |  j	 ƒ  |  _
 d  S(   NR   R&   i   i   i   i   RV   i   i   i   (   Rn   R€   RC   Rj   R   R'   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC     s
    c         C` s(   t  |  j d d ƒ |  j d d ƒ d  S(   NRR   i    i   (   R
   RW   R   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRY   ™  s    c         C` sz   |  j  j d } t |  j d d d |  j  j | d d f d ƒ t |  j d d d |  j  j | d d f d ƒ d  S(   Ni    RS   iÿÿÿÿi   i   (   R"   t   shapeR
   RW   RZ   (   RX   t   end(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR[   ž  s    (   Rf   Rg   Rh   Ri   RC   RY   R[   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR€   ‹  s   		t	   Clark1989c           B` sV   e  Z d  Z e e d d d „ ƒ Z 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.
    i    c         C` sl  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
 <t j	 | d d d | d d ƒj
 |  _ d |  _ } d |  _ } | |  _ | |  _ t j | | d f d | d d ƒ|  _ d d d d d d g d d d d d d g g |  j d  d  … d  d  … d f <t j | d f d | d d ƒ|  _ t j | | d f d | d d ƒ|  _ t j | | d f d | d d ƒ|  _ d d d d d d d d g |  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 | d f d | d d ƒ|  _ t j t j | ƒ d  d  … d  d  … d  f d | ƒ|  _ t j | | d f d | d d ƒ|  _ t j | f d | ƒ|  _ t j t j | ƒ d d | ƒ|  _ t j	 |  j d d | ƒ\
 } } }	 }
 } } } } } } | | | g |  j d d d g d d d g d d d g f <| | g |  j d d g d d g d d g f <| d |  j d <| d | d d d |	 d |
 d g |  j t j | ƒ t j | d t ƒf <t j t j t j |  j d  d  … d  d  … d f |  j ƒ |  j d  d  … d  d  … d f j
 ƒ ƒ |  _ d  S(   NR   R   R   s
   1947-01-01s
   1995-07-01R   R   R   R   t   UNEMPi   id   R   i   R   R   t   Ci   i   R   i    i   i   R   (   i   i   i    (    R	   t   uc_biR   R    R!   R"   R#   R$   R%   R(   R<   R)   R*   R/   R&   R'   R+   R,   R-   R.   R0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   (   R=   R   R&   R'   R   R*   R/   R>   R?   R@   t   sigma_vlt   sigma_ecRA   RB   t   alpha_1t   alpha_2t   alpha_3(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   ¶  sN    '		'L$'v$.4:.N	.c      	   C` s¥   t  |  j f ƒ } t | d } | |  j |  j |  j |  j |  j |  j |  j |  j	 ƒ } | j
 |  j |  j ƒ t | d } | | d |  j d |  j ƒ} | | f S(   Ni    R&   R'   (   R   R)   RD   R,   R-   R.   R0   R1   R5   R6   RE   R7   R8   RF   R&   R'   (   R=   RG   RH   RI   RJ   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRK   	  s    c         ` s4   ˆ  j  ƒ  i ‡  f d †  d 6t j ˆ  j  j ƒ d 6S(   Nc         ` s   t  j ˆ  j j |  ƒ S(   N(   R$   RL   RM   RN   (   RO   (   R=   (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRP   %  RQ   RR   RS   (   RM   R$   R(   RT   (   R=   (    (   R=   sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRU     s    
c         C` s(   t  |  j d d ƒ |  j d d ƒ d  S(   NRR   i    i   (   R
   RW   R   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRY   )  s    c         C` sô   t  |  j d d |  j d |  j j d  d  … d f d ƒ t  |  j d d |  j d |  j j d  d  … d f d ƒ t  |  j d d |  j d |  j j d  d  … d f d ƒ t  |  j d d |  j d |  j j d  d  … d f d ƒ d  S(	   NRS   i    RV   i   i   i   i   i   (   R
   RW   R   R"   RZ   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR[   0  s       (
   Rf   Rg   Rh   Ri   Rj   RC   RK   RU   RY   R[   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRƒ   ª  s   R	t   TestClark1989c           B` s   e  Z d  Z e d „  ƒ Z RS(   s|   
    Basic double precision test for the loglikelihood and filtered
    states with two-dimensional observation vector.
    c         C` sJ   t  t |  ƒ j d t d d ƒ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   NR   R&   i    (	   Rn   RŒ   RC   Rj   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   H  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRŒ   C  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` sJ   t  t |  ƒ j d t d d ƒ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   NR   R&   i   i   i   (	   Rn   R   RC   Rj   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   T  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR   O  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 | | ƒ | |  _ |  j |  _ t j t j |  j t j	 t j
 t j
 g | j d | ƒ f d d d | d d ƒ|  _ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   Ni   R   R   R   R   (   Rn   RŽ   RC   Ry   R)   Rz   R$   R(   t   c_R{   R|   t   reshapeRK   RI   RM   RU   RW   (   R=   R   Ry   R&   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   b  s    	-c         C` s  t  |  j d d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j d d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j d d |  j d |  j !|  j j d  d  … d f d ƒ t  |  j d d |  j d |  j !|  j j d  d  … d f d ƒ d  S(	   NRS   i    RV   i   i   i   i   i   (   R
   RW   R   Ry   R"   RZ   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR[   t  s           (   Rf   Rg   Rh   Ri   Rj   RC   R[   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.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 ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   N(   Rn   R‘   RC   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   ‹  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.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` sD   t  t |  ƒ j d t ƒ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   NR   (	   Rn   R’   RC   Rv   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   —  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.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` sJ   t  t |  ƒ j d t d d ƒ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _ d  S(   NR   R&   i   i   i   (	   Rn   R“   RC   Rj   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   ¥  s    (   Rf   Rg   Rh   Ri   RC   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.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` sS   t  t |  ƒ j d t d d
 ƒ d |  _ |  j ƒ  \ |  _ |  _ |  j ƒ  |  _	 d  S(   NR   R&   i   i   i   i   i    i   i   i   (
   Rn   R”   RC   Rj   R'   RK   RI   RM   RU   RW   (   R=   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRC   ³  s
    	c         C` s(   t  |  j d d ƒ |  j d d ƒ d  S(   NRR   i    i   (   R
   RW   R   (   RX   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyRY   ½  s    c         C` sà   |  j  j d } t |  j d d d |  j  j | d d f d ƒ t |  j d d d |  j  j | d d f d ƒ t |  j d d d |  j  j | d d f d ƒ t |  j d d d |  j  j | d d f d ƒ d  S(	   Ni    RS   iÿÿÿÿi   i   i   i   i   (   R"   R   R
   RW   RZ   (   RX   R‚   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR[   Â  s    (   Rf   Rg   Rh   Ri   RC   RY   R[   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyR”   ®  s   
	c   
      C` s  t  j d d |  ƒ} t | d d d d ƒ} | j j ƒ  t  j d g d |  ƒ} t  j d g ƒ j |  ƒ } t  j d g ƒ j |  ƒ } | | d	 <| | d
 <t  j d ƒ j |  ƒ | d <| | d <| j j	 ƒ  | j j
 ƒ  | j j } t  j | j ƒ } t  j | j ƒ } t | | d | d ƒ t  j j t  j d ƒ | ƒ j | ƒ }	 t | |	 ƒ t | | d | d ƒ t | t | | ƒ ƒ d  S(   Ni
   R   R/   i   t   k_posdefgffffff@gÍÌÌÌÌÌì?gÍÌÌÌÌÌô?R1   R0   R5   R6   i    i   (   i    i    (   R$   R+   R   t   ssmt   initialize_stationaryR(   t   diagt   astypeR3   t   _initialize_filtert   _initialize_statet   _statespaceR7   R8   R   t   linalgt   invR;   R   (
   R   t   endogt   modt	   interceptt   phit   sigma2Rœ   R7   R8   t   desired(    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt$   check_stationary_initialization_1dimÖ  s(    


(c   
      C` s…  t  j d d |  ƒ} t | d d d d ƒ} | j j ƒ  t  j d d g d |  ƒ} t  j d d	 g d
 d g g d |  ƒ} t  j d d
 g d
 d g g d |  ƒ} | | d <| | d <t  j d ƒ j |  ƒ | d <| | d <| j j ƒ  | j j	 ƒ  | j j
 } t  j | j ƒ } t  j | j ƒ } t  j j t  j d ƒ j |  ƒ | | ƒ }	 t | |	 ƒ t | | ƒ }	 t | |	 d d ƒd  S(   Ni
   R   R/   i   R•   gffffff@gffffff$Àgš™™™™™é?gš™™™™™¹?gš™™™™™É¿gffffffæ?gffffffö?g      @R1   R0   R5   R6   Rq   gñhãˆµøä>(   R$   R+   R   R–   R—   R(   R3   R™   Rš   R›   Rœ   R7   R8   R   t   solveR   R   (
   R   RŸ   R    R¡   R¢   R£   Rœ   R7   R8   R¤   (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt$   check_stationary_initialization_2dimù  s*    


+c           C` sl   t  t j ƒ t  t j ƒ t  t j ƒ t  t j ƒ t t j ƒ t t j ƒ t t j ƒ t t j ƒ d  S(   N(   R¥   R$   Ro   t   float64Rt   t
   complex128R§   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt   test_stationary_initialization  s    (C   Rh   t
   __future__R    R   R   t   statsmodels.compatR   Rb   t   numpyR$   t   pandasR    t   osRl   t   scipy.linalg.blasR   t   scipy.linalgR   t#   statsmodels.tsa.statespace.mlemodelR   t   statsmodels.tsa.statespaceR   R   t   resultsR	   t   numpy.testingR
   R   t   sStatespacet   dStatespacet   cStatespacet   zStatespaceRD   t   sKalmanFiltert   dKalmanFiltert   cKalmanFiltert   zKalmanFilterRF   t   patht   dirnamet   abspatht   __file__t   current_patht   objectR   Rk   Rr   Rs   Ru   Rw   Rx   R}   R~   R   R€   Rƒ   RŒ   R   RŽ   R‘   R’   R“   R”   Rj   R¥   R§   Rª   (    (    (    sK   lib/python2.7/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pyt   <module>   sT   ¢%&™*(#