
    M/Phh                        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           
      t   t           j        | _        t          j        | j        d                   | _        t          j        | j        d         t          j        ddd          dg          }t          j        |d                   |d	<   || _	        || _
        t          j        t          j        |d	         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        |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 )Nstatesdata
1947-01-01
1995-07-01QSfreqGDPindexcolumnslgdp   FndmindtypeorderW)requirementsr      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require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&   r8   r9   r   r=   rB   sigma_vsigma_esigma_wphi_1phi_2s               l/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pysetup_classzClark1987.setup_class:   s   (/,sx'9:: |HV-lFFFG
 
 

 vd5k**V .!3 *HT&\%sCCC
 
 
 !"!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   )r8   r9   r   r<   prefix_statespace_mapr?   r@   rA   rC   rD   rG   rH   initialize_knownrI   rJ   prefix_kalman_filter_mapr8   r9   rO   prefixklassmodelkfilters        rU   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~rW   c                 t                                         fdt          j         j         j                  dS )Nc                 P    t          j        j        j        | d                    S Nr6   sumfilterloglikelihoodburnrO   s    rU   <lambda>z&Clark1987.run_filter.<locals>.<lambda>       BF3:+CDEE+J$K$K rW   loglikestaterj   r6   r;   filtered_staterO   s   `rU   
run_filterzClark1987.run_filter   B     	

 LKKKXcj788
 
 	
rW   c                 |    t           | j        d         | j        d                   | j        d         d           d S )Nrq   start   r   resultr1   selfs    rU   test_loglikezClark1987.test_loglike   sD    "DK	"49W#566	)8La	
 	
 	
 	
 	
rW   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 Nrr   r   ry   r*   r   r,   r"   r   r|   r1   r4   ilocr}   s    rU   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$'	
 	
 	
 	
 	
rW   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 rg   )
pickleloadsdumpsrj   idr   r6   r;   rt   rk   )r~   pickleds     rU   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 	9rW   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 rg   )	copydeepcopyrj   r   r   r6   r;   rt   rk   )r~   copieds     rU   test_copied_filterzClark1987.test_copied_filter   s    t{++&zzRZZ''''!;<<!677	9 	9 	9 	!:;;!566	8 	8 	8 	8 	8rW   N)__name__
__module____qualname____doc__classmethodfloatrV   rc   rv   r   r   r   r    rW   rU   r   r   0   s          $aA K
 K
 K
 [K
Z   [( 
 
 [

 
 


 
 

9 
9 
98 8 8 8 8rW   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          j        d           |                                 \  | _        | _        | 	                                | _
        d S NzNot implementedr   r&   r8   )pytestskipsuperrV   r6   float32rc   ra   rj   rv   r|   rO   	__class__s    rU   rV   zTestClark1987Single.setup_class   sm     	%&&&*a 	 	
 	
 	
 !$ 1 1	3:^^%%


rW   c                 ~    t           | j        d         | j        d                   | j        d         d           d S Nrq   ry   gMbP?)rtolr   r|   r1   r}   s    rU   r   z TestClark1987Single.test_loglike   J    "DK	"49W#566	)8L	
 	
 	
 	
 	
 	
rW   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 	Nrr   r   ry   g{Gz?atolr   r,   r"   r   r|   r1   r4   r   r}   s    rU   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$'	
 	
 	
 	
 	
 	
rW   	r   r   r   r   r   rV   r   r   __classcell__r   s   @rU   r   r      sl          & & & & [&
 
 

 
 
 
 
 
 
rW   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          d           |                                 \  | _        | _        |                                 | _        d S Nr   r   r   rV   r   rc   ra   rj   rv   r|   r   s    rU   rV   zTestClark1987Double.setup_class   sX     	 	
 	
 	
 !$ 1 1	3:^^%%


rW   r   r   r   r   r   rV   r   r   s   @rU   r   r      sN          & & & & [& & & & &rW   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          j        d           |                                 \  | _        | _        | 	                                | _
        d S r   )r   r   r   rV   r6   	complex64rc   ra   rj   rv   r|   r   s    rU   rV   z&TestClark1987SingleComplex.setup_class  sm     	%&&&, 	 	
 	
 	
 !$ 1 1	3:^^%%


rW   c                 ~    t           | j        d         | j        d                   | j        d         d           d S r   r   r}   s    rU   r   z'TestClark1987SingleComplex.test_loglike  r   rW   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   r}   s    rU   r   z.TestClark1987SingleComplex.test_filtered_state  r   rW   r   r   s   @rU   r   r     sl          & & & & [&
 
 

 
 
 
 
 
 
rW   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          d           |                                 \  | _        | _        |                                 | _        d S r   r   rV   complexrc   ra   rj   rv   r|   r   s    rU   rV   z&TestClark1987DoubleComplex.setup_class4  sX    1 	 	
 	
 	
 !$ 1 1	3:^^%%


rW   r   r   s   @rU   r   r   /  N          & & & & [& & & & &rW   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          z             |                                 \  | _        | _        |                                 | _	        d S Nr   
r   rV   r   r   r   rc   ra   rj   rv   r|   r   s    rU   rV   z!TestClark1987Conserve.setup_classA  _    .1DD 	 	
 	
 	
 !$ 1 1	3:^^%%


rW   r   r   s   @rU   r   r   =  sN          & & & & [& & & & &rW   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                                          ||           || _        | j        | _        t          j        t
          j        | j        dd d f         t
          j        g|z  f         d|d          | _        d S )Nr   r"   r#   r$   )	r   rV   	nforecastr<   _obsr6   r;   r_nanrO   r&   r   r8   r   s       rU   rV   zClark1987Forecast.setup_classO  s    ?	
 	
 	
 " 7(25AAA0B!BC!"%s< < <rW   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   r|   r1   r   r4   r   r}   s    rU   r   z%Clark1987Forecast.test_filtered_state[  s    K #DIg$6$FG!!!!Q$'	
 	
 	
 	K #DIg$6$FG!!!!Q$'	
 	
 	
 	K #DIg$6$FG!!!!Q$'	
 	
 	
 	
 	
rW   	r   r   r   r   r   r   rV   r   r   r   s   @rU   r   r   K  si          $Q 	< 	< 	< 	< 	< [	<
 
 
 
 
 
 
rW   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                                                       |                                 \  | _        | _        |                                 | _        d S rg   r   rV   rc   ra   rj   rv   r|   r   s    rU   rV   z'TestClark1987ForecastDouble.setup_classn  F     # 1 1	3:^^%%


rW   r   r   s   @rU   r   r   j  N          & & & & [& & & & &rW   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                     |                                 \  | _        | _        |                                 | _        d S Nr-   r   r   s    rU   rV   z.TestClark1987ForecastDoubleComplex.setup_classz  V     	 	
 	
 	
 !$ 1 1	3:^^%%


rW   r   r   s   @rU   r   r   u  r   rW   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          z             |                                 \  | _        | _        |                                 | _	        d S r   r   r   s    rU   rV   z)TestClark1987ForecastConserve.setup_class  r   rW   r   r   s   @rU   r   r     N          & & & & [& & & & &rW   r   c                   >     e Zd ZdZe fd            Zd Zd Z xZS )TestClark1987ConserveAllr   c                     t                                          t          t                     | j        d         | _        |                                 \  | _        | _        | 	                                | _
        d S )Nr   ry   )r   rV   r   r   r1   r9   rc   ra   rj   rv   r|   r   s    rU   rV   z$TestClark1987ConserveAll.setup_class  sg     	 	
 	
 	
 "%'!2 # 1 1	3:^^%%


rW   c                 f    t           | j        d         d          | j        d         d           d S )Nrq   r   rz   r{   r}   s    rU   r   z%TestClark1987ConserveAll.test_loglike  =    "DK	"1%%ty';Q	
 	
 	
 	
 	
rW   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   rr   r   r*   r4   shaper   r|   r   r~   ends     rU   r   z,TestClark1987ConserveAll.test_filtered_state  s    $Q'K #B'!#a%(+Q	
 	
 	
 	K #B'!#a%(+Q	
 	
 	
 	
 	
rW   r   r   s   @rU   r   r     sl          & & & & [&
 
 

	
 	
 	
 	
 	
 	
 	
rW   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*   rz   )r   r*   r   r"   r   r"   r*   rz   )r   r   r   r   r   r   r   r   r-   r/   )r   r   r   )r   r"   r,   )r   r   r   )r   r   r   )r   uc_bir1   r2   r3   r4   r5   r6   r7   r;   rN   r<   r=   rB   r8   r9   r>   r?   r@   rA   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   )rO   r&   r8   r9   r   r=   rB   rP   rQ   rR   sigma_vlsigma_ecrS   rT   alpha_1alpha_2alpha_3s                    rU   rV   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') !
 !
rW   c           
      d   t          | j        f          }t          |d                  } || j        | j        | j        | j        | j        | j        | j        | j	                  }|
                    | j        | j                   t          |d                  } ||| j        | j                  }||fS rY   rZ   r^   s        rU   rc   zClark1989.init_filter  rd   rW   c                 t                                         fdt          j         j         j                  dS )Nc                 P    t          j        j        j        | d                    S rg   rh   rl   s    rU   rn   z&Clark1989.run_filter.<locals>.<lambda>,  ro   rW   rp   rs   ru   s   `rU   rv   zClark1989.run_filter%  rw   rW   c                 f    t           | j        d         d          | j        d         d           d S Nrq   r   r"   r{   r}   s    rU   r   zClark1989.test_loglike0  s>    "DK	"1%%Ii !	
 	
 	
 	
 	
rW   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 	Nrr   r   ry   r*   r   r"   rz   r,   r   r}   s    rU   r   zClark1989.test_filtered_state7  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$'	
 	
 	
 	
 	
rW   N)r   r   r   r   r   r   rV   rc   rv   r   r   r   rW   rU   r   r     s        
 
 $aA P
 P
 P
 [P
d   [( 
 
 [

 
 

 
 
 
 
rW   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          d           |                                 \  | _        | _        |                                 | _        d S r   r   r   s    rU   rV   zTestClark1989.setup_classO  sM    %;;; # 1 1	3:^^%%


rW   r   r   s   @rU   r  r  J  sN          & & & & [& & & & &rW   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          z             |                                 \  | _        | _        |                                 | _	        d S r   r   r   s    rU   rV   z!TestClark1989Conserve.setup_class[  r   rW   r   r   s   @rU   r  r  V  r   rW   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                                          ||           || _        | j        | _        t          j        t
          j        | j        t
          j        t
          j	        t
          j	        g|z           
                    d|          f         d|d          | _        |                                 \  | _        | _        |                                 | _        d S )Nr"   r#   r$   )r   rV   r   r<   r   r6   r;   c_r   r   reshaperc   ra   rj   rv   r|   r   s       rU   rV   zClark1989Forecast.setup_classj  s    E?333! 7(Ervrv&y0199!YGGH 5
 
 
 !$ 1 1	3:^^%%


rW   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   r}   s    rU   r   z%Clark1989Forecast.test_filtered_state|  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$'	
 	
 	
 	
 	
rW   r   r   s   @rU   r  r  e  si          $Q & & & & & [&"
 
 
 
 
 
 
rW   r  c                   2     e Zd ZdZe fd            Z xZS )TestClark1989ForecastDoubler   c                     t                                                       |                                 \  | _        | _        |                                 | _        d S rg   r   r   s    rU   rV   z'TestClark1989ForecastDouble.setup_class  r   rW   r   r   s   @rU   r  r    r   rW   r  c                   2     e Zd ZdZe fd            Z xZS )"TestClark1989ForecastDoubleComplexr   c                     t                                          t                     |                                 \  | _        | _        |                                 | _        d S r   r   r   s    rU   rV   z.TestClark1989ForecastDoubleComplex.setup_class  r   rW   r   r   s   @rU   r  r    r   rW   r  c                   2     e Zd ZdZe fd            Z xZS )TestClark1989ForecastConserver   c                     t                                          t          t          t          z             |                                 \  | _        | _        |                                 | _	        d S r   r   r   s    rU   rV   z)TestClark1989ForecastConserve.setup_class  r   rW   r   r   s   @rU   r  r    r   rW   r  c                   >     e Zd ZdZe fd            Zd Zd Z xZS )TestClark1989ConserveAllr   c                     t                                          t          t                     d| _        |                                 \  | _        | _        |                                 | _	        d S )Nr   r   )
r   rV   r   r   r9   rc   ra   rj   rv   r|   r   s    rU   rV   z$TestClark1989ConserveAll.setup_class  s`     	 	
 	
 	
 "# # 1 1	3:^^%%


rW   c                 f    t           | j        d         d          | j        d         d           d S r  r{   r}   s    rU   r   z%TestClark1989ConserveAll.test_loglike  r   rW   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   rr   r   r   r*   r"   rz   r,   r   r   s     rU   r   z,TestClark1989ConserveAll.test_filtered_state  s   $Q'K #B'!#a%(+Q	
 	
 	
 	K #B'!#a%(+Q	
 	
 	
 	K #B'!#a%(+Q	
 	
 	
 	K #B'!#a%(+Q	
 	
 	
 	
 	
rW   r   r   s   @rU   r  r    sl          & & & & [&
 
 


 
 
 
 
 
 
rW   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   rB   k_posdefffffff@g?g?rD   rC   rG   rH   )r   r   r"   )r6   r>   r   ssminitialize_stationaryr;   diagastyperF   _initialize_filter_initialize_state_statespacerI   rJ   r   linalginvrM   r   
r&   endogmod	interceptphisigma2r*  rI   rJ   desireds
             rU   $check_stationary_initialization_1dimr4    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LrW   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      @rD   rC   rG   rH   gh㈵>r   )r6   r>   r   r$  r%  r;   rF   r'  r(  r)  r*  rI   rJ   r+  solver   r   r-  s
             rU   $check_stationary_initialization_2dimr7    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::::::rW   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 rg   )r4  r6   r   float64r   
complex128r7  r   rW   rU   test_stationary_initializationr;     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7rW   )Ar   r   r   numpyr6   pandasr2   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zStatespacer[   sKalmanFilterdKalmanFiltercKalmanFilterzKalmanFilterr]   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   r4  r7  r;  r   rW   rU   <module>rS     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b8 b8 b8 b8 b8 b8 b8 b8J#
 #
 #
 #
 #
) #
 #
 #
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 	8rW   