
    !gh                     x   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j6                  ej8                  ej:                  ej<                  dZej@                  ejB                  ejD                  ejF                  dZ$ejJ                  jM                  ejJ                  jO                  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@y)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                   `    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y
)	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         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| j2                  t        j8                  |      t        j                  |t:              fz   <   t        j,                  t        j<                  t        j<                  | j(                  d d d d df   | j6                        | j(                  d d d d df   j>                              | _        y )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               i/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/tests/test_kalman.pysetup_classzClark1987.setup_class:   s   (//,,sxx'9: ||HHV--lFG

 vvd5k*V .!3 **HHT&\%sC
 !"!gXXw1oU#F
*

1a7HHgq\cJhh!4EM #$#x8Xq"9(-S: 0B 	***, 	- !hh!}EM))"&&*:1a:*F057 (Ha!8',C9 HHh[SI " 1 1"&&2B32F8=!? 57HHHH\"%5
1'7E5 5:5>AAA/0 QJ
AwzK
 	OOH%rxx'D&FF	H !# 1 1FFs~~aAg.0E0EFq!Qw'))!
    c           
         t        | j                  f      }t        |d      } || j                  | 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        %cggZ0%fQi0 GGSZZ!2!2CKKNNC//MM

 	s00#2G2GH )3s/B/B+.+A+AC g~rW   c                       j                           fdt        j                   j                   j                        dS )Nc                 \    t        j                  j                  j                  | d        S Nr6   sumfilterloglikelihoodburnrO   s    rU   <lambda>z&Clark1987.run_filter.<locals>.<lambda>   !    BFF3::+C+CDE+J$K rW   loglikestaterj   r6   r;   filtered_staterO   s   `rU   
run_filterzClark1987.run_filter   4     	

 LXXcjj778
 	
rW   c                 x    t         | j                  d   | j                  d         | j                  d   d       y )Nrq   start   r   resultr1   selfs    rU   test_loglikezClark1987.test_loglike   s3    "DKK	"499W#5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       y Nrr   r   ry   r*   r   r,   r"   r   r|   r1   r4   ilocr}   s    rU   test_filtered_statezClark1987.test_filtered_state   s    KK #DIIg$6$78!!!Q$'	
 	KK #DIIg$6$78!!!Q$'	
 	KK #DIIg$6$78!!!Q$'	
rW   c                    t        j                  t        j                  | j                              }| j                           |        t	        t              t	        |      k7  sJ t        t        j                  | j                  j                        t        j                  |j                               t        t        j                  | j                  j                        t        j                  |j                               y rg   )
pickleloadsdumpsrj   idr   r6   r;   rt   rk   )r~   pickleds     rU   test_pickled_filterzClark1987.test_pickled_filter   s    ,,v||DKK89	&zR[(((!;!;<!7!78	:!:!:;!6!67	9rW   c                    t        j                  | j                        }| j                           |        t        t              t        |      k7  sJ t	        t        j                  | j                  j                        t        j                  |j                               t	        t        j                  | j                  j                        t        j                  |j                               y rg   )	copydeepcopyrj   r   r   r6   r;   rt   rk   )r~   copieds     rU   test_copied_filterzClark1987.test_copied_filter   s    t{{+&zRZ'''!;!;<!6!67	9 	!:!:;!5!56	8rW   N)__name__
__module____qualname____doc__classmethodfloatrV   rc   rv   r   r   r   r    rW   rU   r   r   0   sa     $aA K
 K
Z  ( 
 




98rW   r   c                   8     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       | j                         \  | _        | _        | j                         | _
        y NzNot implementedr   r&   r8   )pytestskipsuperrV   r6   float32rc   ra   rj   rv   r|   rO   	__class__s    rU   rV   zTestClark1987Single.setup_class   sR     	%&**a 	 	
 !$ 1	3:^^%
rW   c                 z    t         | j                  d   | j                  d         | j                  d   d       y Nrq   ry   gMbP?)rtolr   r|   r1   r}   s    rU   r   z TestClark1987Single.test_loglike   4    "DKK	"499W#5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       y 	Nrr   r   ry   g{Gz?atolr   r,   r"   r   r|   r1   r4   r   r}   s    rU   r   z'TestClark1987Single.test_filtered_state       KK #DIIg$6$78!!!Q$'	

 	KK #DIIg$6$78!!!Q$'	

 	KK #DIIg$6$78!!!Q$'	
rW   	r   r   r   r   r   rV   r   r   __classcell__r   s   @rU   r   r      s&     & &

rW   r   c                   ,     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       | j                         \  | _        | _        | j                         | _        y Nr   r   r   rV   r   rc   ra   rj   rv   r|   r   s    rU   rV   zTestClark1987Double.setup_class   s?     	 	
 !$ 1	3:^^%
rW   r   r   r   r   r   rV   r   r   s   @rU   r   r      s     & &rW   r   c                   8     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       | j                         \  | _        | _        | j                         | _
        y r   )r   r   r   rV   r6   	complex64rc   ra   rj   rv   r|   r   s    rU   rV   z&TestClark1987SingleComplex.setup_class  sR     	%&,, 	 	
 !$ 1	3:^^%
rW   c                 z    t         | j                  d   | j                  d         | j                  d   d       y 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       y r   r   r}   s    rU   r   z.TestClark1987SingleComplex.test_filtered_state  r   rW   r   r   s   @rU   r   r     s&     & &

rW   r   c                   ,     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       | j                         \  | _        | _        | j                         | _        y r   r   rV   complexrc   ra   rj   rv   r|   r   s    rU   rV   z&TestClark1987DoubleComplex.setup_class4  s?    1 	 	
 !$ 1	3:^^%
rW   r   r   s   @rU   r   r   /       & &rW   r   c                   ,     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         | j                         \  | _        | _        | j                         | _	        y Nr   
r   rV   r   r   r   rc   ra   rj   rv   r|   r   s    rU   rV   z!TestClark1987Conserve.setup_classA  F    .1DD 	 	
 !$ 1	3:^^%
rW   r   r   s   @rU   r   r   =  s     & &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      | _        y )Nr   r"   r#   r$   )	r   rV   	nforecastr<   _obsr6   r;   r_nanrO   r&   r   r8   r   s       rU   rV   zClark1987Forecast.setup_classO  si    ?	
 " 77((255A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       y r   r   r|   r1   r   r4   r   r}   s    rU   r   z%Clark1987Forecast.test_filtered_state[  s    KK #DIIg$6G!!!Q$'	
 	KK #DIIg$6G!!!Q$'	
 	KK #DIIg$6G!!!Q$'	
rW   	r   r   r   r   r   r   rV   r   r   r   s   @rU   r   r   K  s(     $Q 	< 	<
rW   r   c                   ,     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         |           | j                         \  | _        | _        | j                         | _        y rg   r   rV   rc   ra   rj   rv   r|   r   s    rU   rV   z'TestClark1987ForecastDouble.setup_classn  1     # 1	3:^^%
rW   r   r   s   @rU   r   r   j       & &rW   r   c                   ,     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               | j                         \  | _        | _        | j                         | _        y Nr-   r   r   s    rU   rV   z.TestClark1987ForecastDoubleComplex.setup_classz  =     	 	
 !$ 1	3:^^%
rW   r   r   s   @rU   r   r   u  r   rW   r   c                   ,     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         | j                         \  | _        | _        | j                         | _	        y r   r   r   s    rU   rV   z)TestClark1987ForecastConserve.setup_class  r   rW   r   r   s   @rU   r   r          & &rW   r   c                   8     e Zd ZdZe fd       Zd Zd Z xZS )TestClark1987ConserveAllr   c                     t         |   t        t               | j                  d   | _        | j                         \  | _        | _        | j                         | _
        y )Nr   ry   )r   rV   r   r   r1   r9   rc   ra   rj   rv   r|   r   s    rU   rV   z$TestClark1987ConserveAll.setup_class  sP     	 	
 "%'!2 # 1	3:^^%
rW   c                 ^    t         | j                  d   d      | j                  d   d       y )Nrq   r   rz   r{   r}   s    rU   r   z%TestClark1987ConserveAll.test_loglike  *    "DKK	"1%tyy';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       y )Nr   rr   r   r*   r4   shaper   r|   r   r~   ends     rU   r   z,TestClark1987ConserveAll.test_filtered_state  s    $$Q'KK #B'!!#a%(+Q	
 	KK #B'!!#a%(+Q	
rW   r   r   s   @rU   r   r     s&     & &

	
rW   r   c                   T    e Zd ZdZeeddfd       Zed        Zed        Zd Z	d Z
y)		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           
      Z   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| j2                  t        j8                  |      t        j                   |t:              fz   <   t        j,                  t        j<                  t        j<                  | j(                  d d d d df   | j6                        | j(                  d d d d df   j                              | _        y ) 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  sh   (..,,sxx'9: ||HHV--lFG$
 "	
 ffT%[)Ugs*W ((4qSACC !"!g"##x-!3
 XXw!4EM
13EF

1a7HHgq\cJhh!4EM
 8Xq"9(-S: 6N 	0002 	3 !hh!}EM))"&&*:1a:*F057 (Ha!8',C9 HHh[> " 1 1"&&2B32F8=!?
 57HHHH\"%5
	2'7Hh	w Wg9


Iy)45 5:5>AAA/0'{G QJ
Aq'1*hkK
 	OOH%rxx'D&FF	H !# 1 1FFs~~aAg.0E0EFq!Qw'))!
rW   c           
         t        | j                  f      }t        |d      } || j                  | 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                       j                           fdt        j                   j                   j                        dS )Nc                 \    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                 ^    t         | j                  d   d      | j                  d   d       y Nrq   r   r"   r{   r}   s    rU   r   zClark1989.test_loglike0  s+    "DKK	"1%IIi !	
rW   c                 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       t        | j                  d   d   | j                  d   d  | j                  j                  d d df   d       y 	Nrr   r   ry   r*   r   r"   rz   r,   r   r}   s    rU   r   zClark1989.test_filtered_state7  s   KK #DIIg$6$78!!!Q$'	
 	KK #DIIg$6$78!!!Q$'	
 	KK #DIIg$6$78!!!Q$'	
 	KK #DIIg$6$78!!!Q$'	
rW   N)r   r   r   r   r   r   rV   rc   rv   r   r   r   rW   rU   r   r     sW    
 $aA P
 P
d  ( 
 


rW   r   c                   ,     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       | j                         \  | _        | _        | j                         | _        y r   r   r   s    rU   rV   zTestClark1989.setup_classO  s8    %; # 1	3:^^%
rW   r   r   s   @rU   r  r  J  s     & &rW   r  c                   ,     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         | j                         \  | _        | _        | j                         | _	        y 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     j                  d|      f   d|d      | _        | j                         \  | _        | _        | j                         | _        y )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! 77((EErvvrvv&y0199!YGH 5
 !$ 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       y r  r   r}   s    rU   r   z%Clark1989Forecast.test_filtered_state|  s,   KK #DIIg$6G!!!Q$'	
 	KK #DIIg$6G!!!Q$'	
 	KK #DIIg$6G!!!Q$'	
 	KK #DIIg$6G!!!Q$'	
rW   r   r   s   @rU   r  r  e  s(     $Q & &"
rW   r  c                   ,     e Zd ZdZe fd       Z xZS )TestClark1989ForecastDoubler   c                     t         |           | j                         \  | _        | _        | j                         | _        y rg   r   r   s    rU   rV   z'TestClark1989ForecastDouble.setup_class  r   rW   r   r   s   @rU   r  r    r   rW   r  c                   ,     e Zd ZdZe fd       Z xZS )"TestClark1989ForecastDoubleComplexr   c                     t         |   t               | j                         \  | _        | _        | j                         | _        y r   r   r   s    rU   rV   z.TestClark1989ForecastDoubleComplex.setup_class  r   rW   r   r   s   @rU   r  r    r   rW   r  c                   ,     e Zd ZdZe fd       Z xZS )TestClark1989ForecastConserver   c                     t         |   t        t        t        z         | j                         \  | _        | _        | j                         | _	        y r   r   r   s    rU   rV   z)TestClark1989ForecastConserve.setup_class  r   rW   r   r   s   @rU   r  r    r   rW   r  c                   8     e Zd ZdZe fd       Zd Zd Z xZS )TestClark1989ConserveAllr   c                     t         |   t        t               d| _        | j                         \  | _        | _        | j                         | _	        y )Nr   r   )
r   rV   r   r   r9   rc   ra   rj   rv   r|   r   s    rU   rV   z$TestClark1989ConserveAll.setup_class  sG     	 	
 "# # 1	3:^^%
rW   c                 ^    t         | j                  d   d      | j                  d   d       y 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       y )	Nr   rr   r   r   r*   r"   rz   r,   r   r   s     rU   r   z,TestClark1989ConserveAll.test_filtered_state  s   $$Q'KK #B'!!#a%(+Q	
 	KK #B'!!#a%(+Q	
 	KK #B'!!#a%(+Q	
 	KK #B'!!#a%(+Q	
rW   r   r   s   @rU   r  r    s&     & &


rW   r  c                    t        j                  d|       }t        |dd      }|j                  j	                          t        j
                  dg|       }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   z
  z         t         j                  j!                  t        j                  d      |z
        j#                  |      }	t        ||	       t        ||d|dz  z
  z         t        |t%        ||             y )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   HHRu%E 51q
1CGG!!##e,I
''3%.


&CWWcU^""5)F&CCvvay''.CCGG GG''%%KHH[667M!>!>? M9CI#>?iimmBFF1IO,00;GM7+ %vS!V'<=%'>sF'KLrW   c                 z   t        j                  d|       }t        |dd      }|j                  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      j                  |       |d<   ||d<   |j                  j                          |j                  j                          |j                  j                  }t        j
                  |j                        }t        j
                  |j                        }t         j                  j                  t        j                  d      j                  |       |z
  |      }	t        ||	       t!        ||      }	t        ||	d       y )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    so   HHRu%E
51q
1CGG!!##uU3I
((S#J3K!(-/CXXT{c{$+02F 'CCvvay''.CCGG GG''%%KHH[667M!>!>?iioobffQi..u5;YGGM7+%c6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
                         y rg   )r4  r6   r   float64r   
complex128r7  r   rW   rU   test_stationary_initializationr;     sb    (4(4(6(7(4(4(6(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 0> > 8 F * > 
	$	$?+F+F		$	$?+F+F 
 
	%	%N,H,H		%	%N,H,H 
 wwrwwx89b8 b8J#
) #
L
&) 
&$
 $
N& &&I &
	 
>&"3 &&): &&$5 &
y 
>V
 V
r	&I 	&&I &'
	 '
T&"3 &&): &&$5 &%
y %
P 05  MF 05 ;<	8rW   