
    Vfdj                        d Z ddl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mZ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 ej        ej        ej        ej        dZej         ej!        ej"        ej#        dZ$ej%        &                    ej%        '                    e(                    Z) G d d          Z* G d de*          Z+ G d de*          Z, G d de*          Z- G d de*          Z. G d de*          Z/ G d de*          Z0 G d de0          Z1 G d de0          Z2 G d de0          Z3 G d  d!e*          Z4 G d" d#          Z5 G d$ d%e5          Z6 G d& d'e5          Z7 G d( d)e5          Z8 G d* d+e8          Z9 G d, d-e8          Z: G d. d/e8          Z; G d0 d1e5          Z<e=fd2Z>e=fd3Z?d4 Z@dS )5a  
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.
    N)find_best_blas_type)solve_discrete_lyapunov)MEMORY_NO_FORECASTMEMORY_NO_PREDICTEDMEMORY_CONSERVE)MLEModel)_representation_kalman_filter   )results_kalman_filter)assert_almost_equalassert_allclose)sdczc                   t    e Zd ZdZeeddfd            Zed             Zed             Zd Z	d Z
d Zd	 Zd
S )	Clark1987a>  
    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.
    r   c           
      L   t           j        | _        t          j        | j        d                   | _        t          j        | j        d         t          j        ddd          dg          }t          j        |d                   |d	<   || _	        || _
        t          j        |d	         d
|d          | _        dx| _        }t          j        |ddf|d          | _        g d| j        d d d d df<   t          j        |df|d          | _        t          j        ||df|d          | _        dx| _        }t          j        ||df|d          | _        g d| j        g dg dg df<   t          j        |df|d          | _        t          j        t          j        |          d d d d d f         |          | _        t          j        ||df|d          | _        t          j        |f|d          | _        t          j        t          j        |          dz  |          | _        t          j        | j        d         |          \  }}}	}
}|
|g| j        ddgdd
gddgf<   |d
z  |d
z  d|	d
z  g| j        t          j        |          t          j        |t8                    fz   <   t          j        t          j        t          j        | j        d d d d df         | j                  | j        d d d d df         j                            | _        d S )Nstatesdata
1947-01-01
1995-07-01QSfreqGDPindexcolumnslgdp   Fndmindtypeorderr      r&   r'   )r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r"      )r   r*   r   r"   r   r*   )r   r   r   r   r   r   r&   d   
parameters)r   uc_unitruepd	DataFrametrue_states
date_rangenplogconserve_memoryloglikelihood_burnarrayobsk_endogzerosdesignobs_interceptobs_covk_states
transitionstate_interceptasfortranarrayeye	selection	state_covinitial_stateinitial_state_covdiag_indicesintdotT)clsr&   r6   r7   r   r:   r?   sigma_vsigma_esigma_wphi_1phi_2s               Llib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pysetup_classzClark1987.setup_class:   sy   (/,sx'9:: |HV-lFFFG
 
 

 vd5k**V .!3 (4<qSIII !"!gXw1oU#FFF
*ll
111aaa7Hgq\cJJJh!4EMMM #$#x8Xq"9(-S: : : 0B/A/A 	*********, 	- !h!}EMMM)"&*:*:111aaa:*F057 7 7 (Ha!8',C9 9 9 Hh[SIII " 1"&2B2B32F8=!? !? !? 57HH\"%5
 5
 5
1'7E5 5:5>AAA/0 QJ
AwzK
 	OH%%rx'D'D'D&FF	H !# 1Fs~aaaAg.0EFFqqq!!!Qw') !
 !
    c           
      d   t          | j        f          }t          |d                  } || j        | j        | j        | j        | j        | j        | j        | j	                  }|
                    | j        | j                   t          |d                  } ||| j        | j                  }||fS Nr   )r6   r7   r   r9   prefix_statespace_mapr<   r=   r>   r@   rA   rD   rE   initialize_knownrF   rG   prefix_kalman_filter_mapr6   r7   rL   prefixklassmodelkfilters        rR   init_filterzClark1987.init_filter        %cgZ00%fQi0 GSZ!2CKNC/M
 

 	s0#2GHHH )3%s/B+.+AC C C g~rT   c                 t                                         fdt          j         j         j                  dS )Nc                 P    t          j        j        j        | d                    S Nr4   sumfilterloglikelihoodburnrL   s    rR   <lambda>z&Clark1987.run_filter.<locals>.<lambda>       BF3:+CDEE+J$K$K rT   loglikestaterg   r4   r8   filtered_staterL   s   `rR   
run_filterzClark1987.run_filter   B     	

 LKKKXcj788
 
 	
rT   c                 |    t           | j        d         | j        d                   | j        d         d           d S )Nrn   start   r   resultr/   selfs    rR   test_loglikezClark1987.test_loglike   sD    "DK	"49W#566	)8La	
 	
 	
 	
 	
rT   c                    t          | j        d         d         | j        d         d          | j        j        d d df         d           t          | j        d         d         | j        d         d          | j        j        d d df         d           t          | j        d         d         | j        d         d          | j        j        d d df         d           d S Nro   r   rv   r(   r   r*   r"   r   ry   r/   r2   ilocrz   s    rR   test_filtered_statezClark1987.test_filtered_state   s    K #DIg$6$7$78!!!!Q$'	
 	
 	
 	K #DIg$6$7$78!!!!Q$'	
 	
 	
 	K #DIg$6$7$78!!!!Q$'	
 	
 	
 	
 	
rT   c                    t          j        t          j        | j                            }|                                   |             t	          t                    t	          |          k    sJ t          t          j        | j        j                  t          j        |j                             t          t          j        | j        j	                  t          j        |j	                             d S rd   )
pickleloadsdumpsrg   idr   r4   r8   rq   rh   )r{   pickleds     rR   test_pickled_filterzClark1987.test_pickled_filter   s    ,v|DK8899			&zzR[[((((!;<<!788	: 	: 	:!:;;!677	9 	9 	9 	9 	9rT   c                    t          j        | j                  }|                                   |             t          t                    t          |          k    sJ t	          t          j        | j        j                  t          j        |j                             t	          t          j        | j        j                  t          j        |j                             d S rd   )	copydeepcopyrg   r   r   r4   r8   rq   rh   )r{   copieds     rR   test_copied_filterzClark1987.test_copied_filter   s    t{++&zzRZZ''''!;<<!677	9 	9 	9 	!:;;!566	8 	8 	8 	8 	8rT   N)__name__
__module____qualname____doc__classmethodfloatrS   r`   rs   r|   r   r   r    rT   rR   r   r   0   s          $aA H
 H
 H
 [H
T   [( 
 
 [

 
 


 
 

9 
9 
98 8 8 8 8rT   r   c                   >     e Zd ZdZe fd            Zd Zd Z xZS )TestClark1987SinglezP
    Basic single precision test for the loglikelihood and filtered states.
    c                    t          j        d           t          t          |                               t
          j        d           |                                 \  | _        | _	        | 
                                | _        d S NzNot implementedr   r&   r6   )pytestskipsuperr   rS   r4   float32r`   r^   rg   rs   ry   rL   	__class__s    rR   rS   zTestClark1987Single.setup_class   st     	%&&&!3''33*a 	4 	
 	
 	
 !$ 1 1	3:^^%%


rT   c                 ~    t           | j        d         | j        d                   | j        d         d           d S Nrn   rv   gMbP?)rtolr   ry   r/   rz   s    rR   r|   z TestClark1987Single.test_loglike   J    "DK	"49W#566	)8L	
 	
 	
 	
 	
 	
rT   c                    t          | j        d         d         | j        d         d          | j        j        d d df         d           t          | j        d         d         | j        d         d          | j        j        d d df         d           t          | j        d         d         | j        d         d          | j        j        d d df         d           d S 	Nro   r   rv   g{Gz?atolr   r*   r"   r   ry   r/   r2   r   rz   s    rR   r   z'TestClark1987Single.test_filtered_state      K #DIg$6$7$78!!!!Q$'	
 	
 	
 	

 	K #DIg$6$7$78!!!!Q$'	
 	
 	
 	

 	K #DIg$6$7$78!!!!Q$'	
 	
 	
 	
 	
 	
rT   	r   r   r   r   r   rS   r|   r   __classcell__r   s   @rR   r   r      sl          & & & & [&
 
 

 
 
 
 
 
 
rT   r   c                   2     e Zd ZdZe fd            Z xZS )TestClark1987DoublezP
    Basic double precision test for the loglikelihood and filtered states.
    c                     t          t          |                               t          d           |                                 \  | _        | _        |                                 | _        d S Nr   r   )	r   r   rS   r   r`   r^   rg   rs   ry   r   s    rR   rS   zTestClark1987Double.setup_class   s_    !3''33 	4 	
 	
 	
 !$ 1 1	3:^^%%


rT   r   r   r   r   r   rS   r   r   s   @rR   r   r      sN          & & & & [& & & & &rT   r   c                   >     e Zd ZdZe fd            Zd Zd Z xZS )TestClark1987SingleComplexz\
    Basic single precision complex test for the loglikelihood and filtered
    states.
    c                    t          j        d           t          t          |                               t
          j        d           |                                 \  | _        | _	        | 
                                | _        d S r   )r   r   r   r   rS   r4   	complex64r`   r^   rg   rs   ry   r   s    rR   rS   z&TestClark1987SingleComplex.setup_class
  st     	%&&&(#..::, 	; 	
 	
 	
 !$ 1 1	3:^^%%


rT   c                 ~    t           | j        d         | j        d                   | j        d         d           d S r   r   rz   s    rR   r|   z'TestClark1987SingleComplex.test_loglike  r   rT   c                    t          | j        d         d         | j        d         d          | j        j        d d df         d           t          | j        d         d         | j        d         d          | j        j        d d df         d           t          | j        d         d         | j        d         d          | j        j        d d df         d           d S r   r   rz   s    rR   r   z.TestClark1987SingleComplex.test_filtered_state  r   rT   r   r   s   @rR   r   r     sl          & & & & [&
 
 

 
 
 
 
 
 
rT   r   c                   2     e Zd ZdZe fd            Z xZS )TestClark1987DoubleComplexz\
    Basic double precision complex test for the loglikelihood and filtered
    states.
    c                     t          t          |                               t          d           |                                 \  | _        | _        |                                 | _        d S r   )	r   r   rS   complexr`   r^   rg   rs   ry   r   s    rR   rS   z&TestClark1987DoubleComplex.setup_class1  s_    (#..::1 	; 	
 	
 	
 !$ 1 1	3:^^%%


rT   r   r   s   @rR   r   r   ,  N          & & & & [& & & & &rT   r   c                   2     e Zd ZdZe fd            Z xZS )TestClark1987ConservezM
    Memory conservation test for the loglikelihood and filtered states.
    c                     t          t          |                               t          t          t
          z             |                                 \  | _        | _        | 	                                | _
        d S Nr   )r   r   rS   r   r   r   r`   r^   rg   rs   ry   r   s    rR   rS   z!TestClark1987Conserve.setup_class>  f    #S))55.1DD 	6 	
 	
 	
 !$ 1 1	3:^^%%


rT   r   r   s   @rR   r   r   :  sN          & & & & [& & & & &rT   r   c                   @     e Zd ZdZeeddf fd	            Zd Z xZS )Clark1987ForecastzE
    Forecasting test for the loglikelihood and filtered states.
    r,   r   c                    t          t          |                               ||           || _        | j        | _        t          j        t          j        | j        dd d f         t          j	        g|z  f         d|d          | _        d S )Nr   r"   r#   r$   )
r   r   rS   	nforecastr9   _obsr4   r8   r_nanrL   r&   r   r6   r   s       rR   rS   zClark1987Forecast.setup_classL  s    %%11?	
 	
 	
 " 7(25AAA0B!BC!"%s< < <rT   c                    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 r~   r   ry   r/   r   r2   r   rz   s    rR   r   z%Clark1987Forecast.test_filtered_stateX  s    K #DIg$6$FG!!!!Q$'	
 	
 	
 	K #DIg$6$FG!!!!Q$'	
 	
 	
 	K #DIg$6$FG!!!!Q$'	
 	
 	
 	
 	
rT   	r   r   r   r   r   r   rS   r   r   r   s   @rR   r   r   H  si          $Q 	< 	< 	< 	< 	< [	<
 
 
 
 
 
 
rT   r   c                   2     e Zd ZdZe fd            Z xZS )TestClark1987ForecastDoubleR
    Basic double forecasting test for the loglikelihood and filtered states.
    c                     t          t          |                                            |                                 \  | _        | _        |                                 | _        d S rd   )r   r   rS   r`   r^   rg   rs   ry   r   s    rR   rS   z'TestClark1987ForecastDouble.setup_classk  M    )3//;;=== # 1 1	3:^^%%


rT   r   r   s   @rR   r   r   g  N          & & & & [& & & & &rT   r   c                   2     e Zd ZdZe fd            Z xZS )"TestClark1987ForecastDoubleComplex^
    Basic double complex forecasting test for the loglikelihood and filtered
    states.
    c                     t          t          |                               t                     |                                 \  | _        | _        |                                 | _        d S Nr+   )	r   r   rS   r   r`   r^   rg   rs   ry   r   s    rR   rS   z.TestClark1987ForecastDoubleComplex.setup_classw  ^    0#66BB 	C 	
 	
 	
 !$ 1 1	3:^^%%


rT   r   r   s   @rR   r   r   r  r   rT   r   c                   2     e Zd ZdZe fd            Z xZS )TestClark1987ForecastConserve]
    Memory conservation forecasting test for the loglikelihood and filtered
    states.
    c                     t          t          |                               t          t          t
          z             |                                 \  | _        | _        | 	                                | _
        d S r   )r   r   rS   r   r   r   r`   r^   rg   rs   ry   r   s    rR   rS   z)TestClark1987ForecastConserve.setup_class  f    +S11==.1DD 	> 	
 	
 	
 !$ 1 1	3:^^%%


rT   r   r   s   @rR   r   r     N          & & & & [& & & & &rT   r   c                   >     e Zd ZdZe fd            Zd Zd Z xZS )TestClark1987ConserveAllr   c                    t          t          |                               t          t                     | j        d         | _        |                                 \  | _        | _	        | 
                                | _        d S )Nr   rv   )r   r   rS   r   r   r/   r7   r`   r^   rg   rs   ry   r   s    rR   rS   z$TestClark1987ConserveAll.setup_class  sn    &,,88 	9 	
 	
 	
 "%'!2 # 1 1	3:^^%%


rT   c                 f    t           | j        d         d          | j        d         d           d S )Nrn   r   rw   rx   rz   s    rR   r|   z%TestClark1987ConserveAll.test_loglike  =    "DK	"1%%ty';Q	
 	
 	
 	
 	
rT   c                    | j         j        d         }t          | j        d         d         d         | j         j        |dz
  df         d           t          | j        d         d         d         | j         j        |dz
  df         d           d S )Nr   ro   r   r(   r2   shaper   ry   r   r{   ends     rR   r   z,TestClark1987ConserveAll.test_filtered_state  s    $Q'K #B'!#a%(+Q	
 	
 	
 	K #B'!#a%(+Q	
 	
 	
 	
 	
rT   r   r   s   @rR   r   r     sl          & & & & [&
 
 

	
 	
 	
 	
 	
 	
 	
rT   r   c                   h    e Zd ZdZeeddfd            Zed             Zed             Zd Z	d Z
dS )		Clark1989aj  
    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.
    r   c           
         t           j        | _        t          j        | j        d                   | _        t          j        | j        d         t          j        ddd          ddg	          d
d          }t          j        |d                   |d<   |d         dz  |d<   t          j	        |d|d          j
        | _        dx| _        }dx| _        }|| _        || _        t          j        ||df|d          | _        g dg dg| j        d d d d df<   t          j        |df|d          | _        t          j        ||df|d          | _        t          j        ||df|d          | _        g d| j        g dg dg df<   t          j        |df|d          | _        t          j        t          j        |          d d d d d f         |          | _        t          j        ||df|d          | _        t          j        |f|          | _        t          j        t          j        |          dz  |          | _        t          j	        | j        d         |          \
  }}}	}
}}}}}}|||g| j        g dg dg df<   ||g| j        ddgddgddgf<   |dz  | j        d<   |dz  |dz  dd|	dz  |
dz  g| j        t          j        |          t          j        |t:                    fz   <   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   r   r   r   r   UNEMPr   r(   r,   r"   Cr$      r   r#   r)   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r"   r*   r(   rw   )r   r(   r   r"   r   r"   r(   rw   )r   r   r   r   r   r   r   r   r+   r-   )r   r   r   )r   r"   r*   )r   r   r   )r   r   r   )r   uc_bir/   r0   r1   r2   r3   r4   r5   r8   rK   r9   r:   r?   r6   r7   r;   r<   r=   r>   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   )rL   r&   r6   r7   r   r:   r?   rM   rN   rO   sigma_vlsigma_ecrP   rQ   alpha_1alpha_2alpha_3s                    rR   rS   zClark1989.setup_class  s   (.,sx'9:: |HV-lFFFG$
 
 
 ""	
 fT%[))Ugs*W (4qSAAAC !"!g"##x-!3
 Xw!4EMMM
1113E3E3EF
111aaa7Hgq\cJJJh!4EMMM
 8Xq"9(-S: : : 6N5M5M 	0000000002 	3 !h!}EMMM)"&*:*:111aaa:*F057 7 7 (Ha!8',C9 9 9 Hh[>>> " 1"&2B2B32F8=!? !? !?
 57HH\"%5
 5
 5
	2'7Hh	w Wg9

IIIyyy)))45 5:5>AAA/0'{G QJ
Aq'1*hkK
 	OH%%rx'D'D'D&FF	H !# 1Fs~aaaAg.0EFFqqq!!!Qw') !
 !
rT   c           
      d   t          | j        f          }t          |d                  } || j        | j        | j        | j        | j        | j        | j        | j	                  }|
                    | j        | j                   t          |d                  } ||| j        | j                  }||fS rV   rW   r[   s        rR   r`   zClark1989.init_filter  ra   rT   c                 t                                         fdt          j         j         j                  dS )Nc                 P    t          j        j        j        | d                    S rd   re   ri   s    rR   rk   z&Clark1989.run_filter.<locals>.<lambda>)  rl   rT   rm   rp   rr   s   `rR   rs   zClark1989.run_filter"  rt   rT   c                 f    t           | j        d         d          | j        d         d           d S Nrn   r   r"   rx   rz   s    rR   r|   zClark1989.test_loglike-  s>    "DK	"1%%Ii !	
 	
 	
 	
 	
rT   c                 N   t          | j        d         d         | j        d         d          | j        j        d d df         d           t          | j        d         d         | j        d         d          | j        j        d d df         d           t          | j        d         d         | j        d         d          | j        j        d d df         d           t          | j        d         d         | j        d         d          | j        j        d d df         d           d S 	Nro   r   rv   r(   r   r"   rw   r*   r   rz   s    rR   r   zClark1989.test_filtered_state4  s>   K #DIg$6$7$78!!!!Q$'	
 	
 	
 	K #DIg$6$7$78!!!!Q$'	
 	
 	
 	K #DIg$6$7$78!!!!Q$'	
 	
 	
 	K #DIg$6$7$78!!!!Q$'	
 	
 	
 	
 	
rT   N)r   r   r   r   r   r   rS   r`   rs   r|   r   r   rT   rR   r   r     s        
 
 $aA P
 P
 P
 [P
d   [( 
 
 [

 
 

 
 
 
 
rT   r   c                   2     e Zd ZdZe fd            Z xZS )TestClark1989z|
    Basic double precision test for the loglikelihood and filtered
    states with two-dimensional observation vector.
    c                     t          t          |                               t          d           |                                 \  | _        | _        |                                 | _        d S r   )	r   r   rS   r   r`   r^   rg   rs   ry   r   s    rR   rS   zTestClark1989.setup_classL  sS    mS!!--E1-MMM # 1 1	3:^^%%


rT   r   r   s   @rR   r   r   G  sN          & & & & [& & & & &rT   r   c                   2     e Zd ZdZe fd            Z xZS )TestClark1989Conservey
    Memory conservation test for the loglikelihood and filtered states with
    two-dimensional observation vector.
    c                     t          t          |                               t          t          t
          z             |                                 \  | _        | _        | 	                                | _
        d S r   )r   r  rS   r   r   r   r`   r^   rg   rs   ry   r   s    rR   rS   z!TestClark1989Conserve.setup_classX  r   rT   r   r   s   @rR   r  r  S  r   rT   r  c                   @     e Zd ZdZeeddf fd	            Zd Z xZS )Clark1989Forecastr  r,   r   c                    t          t          |                               ||           || _        | j        | _        t          j        t          j        | j        t          j	        t          j
        t          j
        g|z                               d|          f         d|d          | _        |                                 \  | _        | _        |                                 | _        d S )Nr"   r#   r$   )r   r  rS   r   r9   r   r4   r8   c_r   r   reshaper`   r^   rg   rs   ry   r   s       rR   rS   zClark1989Forecast.setup_classg  s    %%11%III! 7(Ervrv&y0199!YGGH 5
 
 
 !$ 1 1	3:^^%%


rT   c                 ~   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 r   r   rz   s    rR   r   z%Clark1989Forecast.test_filtered_statey  sJ   K #DIg$6$FG!!!!Q$'	
 	
 	
 	K #DIg$6$FG!!!!Q$'	
 	
 	
 	K #DIg$6$FG!!!!Q$'	
 	
 	
 	K #DIg$6$FG!!!!Q$'	
 	
 	
 	
 	
rT   r   r   s   @rR   r  r  b  si          $Q & & & & & [&"
 
 
 
 
 
 
rT   r  c                   2     e Zd ZdZe fd            Z xZS )TestClark1989ForecastDoubler   c                     t          t          |                                            |                                 \  | _        | _        |                                 | _        d S rd   )r   r  rS   r`   r^   rg   rs   ry   r   s    rR   rS   z'TestClark1989ForecastDouble.setup_class  r   rT   r   r   s   @rR   r  r    r   rT   r  c                   2     e Zd ZdZe fd            Z xZS )"TestClark1989ForecastDoubleComplexr   c                     t          t          |                               t                     |                                 \  | _        | _        |                                 | _        d S r   )	r   r  rS   r   r`   r^   rg   rs   ry   r   s    rR   rS   z.TestClark1989ForecastDoubleComplex.setup_class  r   rT   r   r   s   @rR   r  r    r   rT   r  c                   2     e Zd ZdZe fd            Z xZS )TestClark1989ForecastConserver   c                     t          t          |                               t          t          t
          z             |                                 \  | _        | _        | 	                                | _
        d S r   )r   r  rS   r   r   r   r`   r^   rg   rs   ry   r   s    rR   rS   z)TestClark1989ForecastConserve.setup_class  r   rT   r   r   s   @rR   r  r    r   rT   r  c                   >     e Zd ZdZe fd            Zd Zd Z xZS )TestClark1989ConserveAllr   c                     t          t          |                               t          t                     d| _        |                                 \  | _        | _        | 	                                | _
        d S )Nr   r   )r   r  rS   r   r   r7   r`   r^   rg   rs   ry   r   s    rR   rS   z$TestClark1989ConserveAll.setup_class  sg    &,,88 	9 	
 	
 	
 "# # 1 1	3:^^%%


rT   c                 f    t           | j        d         d          | j        d         d           d S r   rx   rz   s    rR   r|   z%TestClark1989ConserveAll.test_loglike  r   rT   c                    | j         j        d         }t          | j        d         d         d         | j         j        |dz
  df         d           t          | j        d         d         d         | j         j        |dz
  df         d           t          | j        d         d         d         | j         j        |dz
  df         d           t          | j        d         d         d         | j         j        |dz
  df         d           d S )	Nr   ro   r   r   r(   r"   rw   r*   r   r   s     rR   r   z,TestClark1989ConserveAll.test_filtered_state  s   $Q'K #B'!#a%(+Q	
 	
 	
 	K #B'!#a%(+Q	
 	
 	
 	K #B'!#a%(+Q	
 	
 	
 	K #B'!#a%(+Q	
 	
 	
 	
 	
rT   r   r   s   @rR   r  r    sl          & & & & [&
 
 


 
 
 
 
 
 
rT   r  c                    t          j        d|           }t          |dd          }|j                                         t          j        dg|           }t          j        dg                              |           }t          j        dg                              |           }||d<   ||d	<   t          j        d                              |           |d
<   ||d<   |j        	                                 |j        
                                 |j        j        }t          j        |j                  }t          j        |j                  }t          ||d|d         z
  z             t           j                            t          j        d          |z
                                |          }	t          ||	           t          ||d|dz  z
  z             t          |t%          ||                     d S )N
   r+   r   r?   k_posdefffffff@g?g?rA   r@   rD   rE   )r   r   r"   )r4   r;   r   ssminitialize_stationaryr8   diagastyperC   _initialize_filter_initialize_state_statespacerF   rG   r   linalginvrJ   r   
r&   endogmod	interceptphisigma2r$  rF   rG   desireds
             rR   $check_stationary_initialization_1dimr.    s   HRu%%%E 51q
1
1
1CG!!####e,,,I
'3%..


&
&CWcU^^""5))F&CCvayy''..CCG   G'%KH[677M!>?? M9CI#>???immBF1IIO,,00;;GM7+++ %vS!V'<===%'>sF'K'KLLLLLrT   c                 n   t          j        d|           }t          |dd          }|j                                         t          j        ddg|           }t          j        ddgd	d
gg|           }t          j        dd	gd	dgg|           }||d<   ||d<   t          j        d                              |           |d<   ||d<   |j                                         |j        	                                 |j        j
        }t          j        |j                  }t          j        |j                  }t           j                            t          j        d                              |           |z
  |          }	t          ||	           t!          ||          }	t          ||	d           d S )Nr  r+   r"   r  r  gffffff$g?g?gɿgffffff?gffffff?g      @rA   r@   rD   rE   gh㈵>r   )r4   r;   r   r  r  r8   rC   r!  r"  r#  r$  rF   rG   r%  solver   r   r'  s
             rR   $check_stationary_initialization_2dimr1    s   HRu%%%E
51q
1
1
1CG!!####uU333I
(S#J3K!(-/ / /CXT{c{$+02 2 2F 'CCvayy''..CCG   G'%KH[677M!>??ioobfQii..u55;YGGGM7+++%c622G%wT::::::rT   c                     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 rd   )r.  r4   r   float64r   
complex128r1  r   rT   rR   test_stationary_initializationr5    s    (444(444(666(777(444(444(666(77777rT   )Ar   r   r   numpyr4   pandasr0   osr   scipy.linalg.blasr   scipy.linalgr   (statsmodels.tsa.statespace.kalman_filterr   r   r   #statsmodels.tsa.statespace.mlemodelr   statsmodels.tsa.statespacer	   r
   resultsr   numpy.testingr   r   sStatespacedStatespacecStatespacezStatespacerX   sKalmanFilterdKalmanFiltercKalmanFilterzKalmanFilterrZ   pathdirnameabspath__file__current_pathr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r.  r1  r5  r   rT   rR   <module>rM     s   $           				  1 1 1 1 1 1 0 0 0 0 0 0> > > > > > > > > > 8 8 8 8 8 8 F F F F F F F F * * * * * * > > > > > > > > 
	$?+F		$?+F  
 
	%N,H		%N,H  
 wrwx8899_8 _8 _8 _8 _8 _8 _8 _8D#
 #
 #
 #
 #
) #
 #
 #
L
& 
& 
& 
& 
&) 
& 
& 
&$
 $
 $
 $
 $
 $
 $
 $
N& & & & & & & && & & & &I & & &
 
 
 
 
	 
 
 
>& & & & &"3 & & && & & & &): & & && & & & &$5 & & &
 
 
 
 
y 
 
 
>V
 V
 V
 V
 V
 V
 V
 V
r	& 	& 	& 	& 	&I 	& 	& 	&& & & & &I & & &'
 '
 '
 '
 '
	 '
 '
 '
T& & & & &"3 & & && & & & &): & & && & & & &$5 & & &%
 %
 %
 %
 %
y %
 %
 %
P 05  M  M  M  MF 05 ; ; ; ;<	8 	8 	8 	8 	8rT   