
    M/Ph5                         d Z ddl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 d Zd Zd	 Zd
 Zd Zd Zd Zd Zd ZdS )zG
Tests for initialization

Author: Chad Fulton
License: Simplified-BSD
    N)solve_discrete_lyapunov)sarimaxvarmax)Initialization)assert_allcloseassert_raisesc                 $    ||           \  }}}t          ||           t          ||           t          ||           | j                                         |                    | j        j                   | j        j        }|                    |           t          t          j        |j	                  |           t          t          j        |j
                  |           t          t          j        |j                  |           d S )Nmodel)prefix)r   ssm_initialize_representation_initialize_initializationr   _statespace
initializenparrayinitial_stateinitial_diffuse_state_covinitial_state_cov)	modinita_true	Pinf_true
Pstar_trueaPinfPstarr   s	            t/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_initialization.pycheck_initializationr       s    T___NAtUAvD)$$$E:&&& G&&(((##37>#:::'%K4   BH[677@@@BH[BCCYOOOBH[:;;ZHHHHH    c            
      8   t          j        d          } t          j        | d          }t	          |j        ddg          }t          ||dgt          j        dg          t          j        dg                     t	          |j        dt          j        dg          	          }t          ||dgt          j        dg          t          j        dg                     t	          |j        ddgt          j        dg          
          }t          ||dgt          j        dg          t          j        dg                     t          j        d          } t          j        | d          }t	          |j        dddg          }t          ||ddgt          j        ddg          t          j        ddg                     t	          |j        dt          j        ddg          	          }t          ||ddgt          j        ddg          t          j        ddg                     t	          |j        dddgt          j        ddg          
          }t          ||ddgt          j        ddg          t          j        ddg                     d S )N
      r   r   orderknown      ?constantr   r%   stationary_covr+   r-      r   r   皙ɿ@)r   zerosr   SARIMAXr   k_statesr    diagendogr   r   s      r   test_global_knownr9   "   sj    HRLLE
/%y
1
1
1C #,3%@@@DdSE27A3<<!FFF #,MMMDdQC!rws||DDD #,3%)+!7 7 7DdSE27A3<<!FFF HRLLE
/%y
1
1
1C #,3+FFFDdS$K!Q!Q* * * #,)+!S):):< < <DdQFBGQFOO!S**, , , #,3+)+!S):):< < <DdS$K!Q!S**, , , , ,r!   c            
         t          j        d          } t          j        | d          }t	          |j        d          }t          ||dgt          j        d          t          j        dg                     t          j        d          } t          j        | d          }t	          |j        d          }t          ||ddgt          j        d          t          j        ddg                     d S )	Nr#   r$   r&   diffuser   r%   r/   r0   )	r   r3   r   r4   r   r5   r    eyer6   r7   s      r   test_global_diffuser=   L   s     HRLLE
/%y
1
1
1C#,	22DdQCBGQCLLAAA HRLLE
/%y
1
1
1C#,	22DdQFBF1IIrw1vGGGGGr!   c            	         t          j        d          } t          j        | d          }t	          |j        d          }t          ||dgt          j        dg          t          j        d          dz             t	          |j        ddg	          }t          ||dgt          j        dg          t          j        d          dz             t	          |j        dd
          }t          ||dgt          j        dg          t          j        d          d
z             t          j        d          } t          j        | d          }t	          |j        d          }t          ||ddgt          j        ddg          t          j        d          dz             t	          |j        dddg	          }t          ||ddgt          j        ddg          t          j        d          dz             t	          |j        dd
          }t          ||ddgt          j        ddg          t          j        d          d
z             d S )Nr#   r$   r&   approximate_diffuser   r%       .A333333?r*   g    _Bapproximate_diffuse_variancer/   r0   r1   )	r   r3   r   r4   r   r5   r    r6   r<   r7   s      r   test_global_approximate_diffuserD   ^   s    HRLLE
/%y
1
1
1C#,(=>>DdQC!rvayy3GGG#,(=NNNDdSE27A3<<SIII#,(=7;= = =DdQC!rvayy47GHHH HRLLE
/%y
1
1
1C#,(=>>DdQFBGQFOORVAYY_MMM#,(=$';0 0 0DdS$K!QS* * * #,(=7;= = =DdQFBGQFOORVAYY=MNNNNNr!   c            
         t          j        d          } t          j        | dd          }d}d}d}|                    t           j        |||f                    t          |j        d          }t          ||dgt          j	        dg          t          j
        d	          |z  d	|d
z  z
  z             d}d}d}|                    t           j        |||f                    t          |j        d          }t          |||d	|z
  z  gt          j	        dg          t          j
        d	          |z  d	|d
z  z
  z             t          j        d          } t          j        | dd          }d}ddg}d}|                    t           j        |||f                    t          |j        d          }t          j        dd	gddgg          }t          j	        |dg          }t          ||          }t          ||ddgt          j	        ddg          |           d}ddg}d}|                    t           j        |||f                    t          |j        d          }t           j                            t          j
        d
          |z
                                |dg          }	t          |||	t          j	        ddg          |           d S )Nr#   r$   c)r'   trendr         ?       @
stationaryr%   r0   rA   r/   r1   )r   r3   r   r4   updater_r   r5   r    r6   r<   r   r   linalginvdot)
r8   r   	interceptphisigma2r   TQdesired_covdesired_intercepts
             r   test_global_stationaryrW      s    HRLLE
/%y
<
<
<C I
CFJJruYV+,---#,55DdQC!V+q36z:< < < I
CFJJruYV+,---#,55DdY!c'%:$;RWaS\\V+q36z:< < < HRLLE
/%y
<
<
<C I+CFJJruYV+,---#,55D
3() 	 	A
A)!Q//KdQFBGQFOO[III I+CFJJruYV+,---#,55D	bfQii!m4488)QHHd$5rw1v$& & & & &r!   c            
      
   t          j        d          } t          j        | d          }ddg}d}|                    t           j        ||f                    t          |j                  }|                    ddd	g
           |                    dddg
           t          ||d	dgt          j
        ddg          t          j
        ddg                     |                    d           |                    dd           t          ||d	dgt          j
        ddg          t          j
        ddg                     |                    d           |                    dd           t          ||d	dgt          j
        ddg          t          j
        ddg                     |                    d           |                    dd           t          ||d	dgt          j
        ddg          t          j
        ddg                     t          |j                  }|                    ddt          j
        dg                     |                    dd           t          ||ddgt          j
        ddg          t          j
        ddg                     t          |j                  }|                    ddd	gt          j
        dg                     |                    dd           t          ||d	dgt          j
        ddg          t          j
        ddg                     t          j        d          } t          j        | d          }t          |j                  }|                    ddd	dg
           |                    dd           t          ||g dt          j
        g d          t          j
        g d                     t          |j                  }|                    ddt          j
        ddg                     |                    dd           t          ||g dt          j
        g d          t          j
        g d                     t          |j                  }|                    ddd	dgt          j
        ddg                     |                    dd           t          ||g dt          j
        g d          t          j
        g d                     d S )Nr#   r/   r&   rH   r1   rI   r   r(   rA   r*   r%   r;   r?   r@   rJ   r,   r.   )   r   r   r   r0   r0   )rA   r1   r   )r   r   r%   r   r   r   r2   )r%   r2   r   )r   r3   r   r4   rK   rL   r   r5   setr    r6   unset)r8   r   rQ   rR   r   s        r   test_mixed_basicr^      s   
 HRLLE
/%y
1
1
1C+CFJJruS&[!""" #,''DHHQ3%H((( 	HHQ4&H)))dS$K!Q!Q* * * 	JJqMMMHHQ	dS!Hbgq!foorw1vOOO 	JJqMMMHHQ%&&&dS!Hbgq!foo!S**, , , 	JJqMMMHHQdS!Hbgq!foorw1vOOO #,''DHHQH555HHQ	dQFBGQFOORWaV__MMM #,''DHHQ3%HEEEHHQ	dS!Hbgq!foorw1vOOO HRLLE
/%y
1
1
1C #,''DHHVWT{H333HHQ	dNNNBGIII4F4F++- - - #,''DHHVWRWaX->->H???HHQ	dIIIrwyyy/A/A--/ / / #,''DHHVWT{GQH--  / / /HHQ	dNNNBGIII4F4F--/ / / / /r!   c            
      
   t          j        d          } t          j        | d          }ddg}d}|                    t           j        ||f                    t          |j                  }|                    dd           |                    d	d
           t          j        d          }t          j	        ddgddgg          }t          j
        |dg          }t          ||          |dd dd f<   t          ||g dt          j
        g d          |           |                                 |                    dd           |                    dd
           |                    dd           t          j	        dgg          }t          j
        |g          }t          j
        dt          j        t          ||                    dg          }t          ||g dt          j
        g d          |           |                                 |                    dd           |                    dd
           |                    dd
           d|d<   t          ||g dt          j
        g d          |           t          j        d          } t          j        | d          }ddg}t          j	        ddgddgg          }	t          j	        ddgddgg          }
t          j        d          }t           j        ||	                                t           j                            |
          |         f         }|                    |           t          |j        d
          }t           j                            t          j        d          |	z
  |          }t          |	|
          }t          |||t          j
        ddg          |           |                    d d           t          ||ddgt          j        d          t          j
        ddg                     |                    d            |                    dd
           |                    dd
            ||          \  }}}|d         d|	d         z
  z  |d         d|	d         z
  z  g}t          j
        |
d         d|	d         dz  z
  z  |
d         d|	d         dz  z
  z  g          }t          |||t          j
        ddg          |           d S )Nr#   )r0   r%   r   r&   rH   r1   rI   r   r;   )r%   rY   rJ   rY   rY   r%   r[   r$   r0   r?   r@   r0   r0   )r#   r0   )r%   r   r)   g皙?g?rA   gٿg?r
   )r   r   )r%   r%   )r   r3   r   r4   rK   rL   r   r5   r\   r   r6   r   r    clearsqueezer   VARMAXtril_indicesravelrM   choleskysolver<   r]   )r8   r   rQ   rR   r   rU   rS   rT   rP   
transitioncovtrilparamsrV   r   r   r   s                    r   test_mixed_stationaryrn      s   HRLLE
/%y
1
1
1C+CFJJruS&[!"""#,''DHHQ	HHV\"""(6""K
3() 	 	A
A1!Q77KABBdIIIrwyyy/A/A;OOOJJLLLHHQ	HHQHHQ%&&&
3%A
A'1bj)@A)F)FGGMNNKdIIIrwyyy/A/A;OOOJJLLLHHQ	HHQHHQKdIIIrwyyy/A/A;OOO HWE
-V
.
.
.CdIC;:' ( (J
(S$K3K! " "C?1DU9j..009%%c**401 2FJJv #,55D	q		J(>	JJ)*c::Kd$5rw1v$& & & 	HHT9dQFBF1IIrw1vGGG 	JJtHHQHHQT___NAtU"1Z-=)=>"1Z-=)=>@'3t9Jt,<a,?(?@t9Jt,<a,?(?@B C CKd$5rw1v$& & & & &r!   c            	      $   t          j        d          } t          j        | d          }g d}d}|                    t           j        ||f                    t          d          }t          dd          }t          d	d
d          }|                    d|           |                    d|           t          d          }t          d	dd	gdgg          }|                    d|           t          d	d          }	|                    d	|	           t          d	d
          }
|                    d|
           t          d          }|                    d|           |                    d|           t          j        d          }t          j        dd	gddgg          }t          j        |dgddgg          }t          ||          |d dd df<   d|d<   d|d<   d|d<   t          ||g dt          j        g d          |           d S )Nr#   )   r   r   r&   )rH   r1   rb           rb   rq   rI   rY   r0   rJ   r%   r?   g    eArB   rZ   r(   r.   r   r;   rp   )r   rY   )rY   rp   )rp   rp   rH   r1   ra   r`   r@   )   rr   )r   r   r   r%   r   r   )r   r   r   r   r%   r   )r   r3   r   r4   rK   rL   r   r\   r   r   r    r6   )r8   r   rQ   rR   init1_1	init1_1_1	init1_1_2init1_2	init1_2_1	init1_2_2	init1_2_3r   rU   rS   rT   s                  r   test_nestedrz   F  sC   HRLLE
/%y
1
1
1C
)
)
)CFJJruS&[!""" QGq,//Iq"7<?A A AIKK	"""KK9QGq'QC"OOOIKK9q),,IKK9q"788IKK9!DHHVWHHVW (6""K
3() 	 	A
61+a& 	 	A1!Q77KBQBKKKd$6$6$6!3!3!344$& & & & &r!   c                     t          t          t          dd           t          t          t          ddddg           t          t          t          ddddg           t          t          t          dd           t          t          t          dddg           t          t          t          ddd	g           t          d          } t          t          | j        d
d           t          t          | j        d
           t          t          | j        dd           t          t          | j        dd           t          t          | j        d           t          t          | j        dd           t          t          | j        d           |                     d d           t          t          | j        dd           |                                  |                     dd           t          t          | j        d d           |                                  t          t          | j        d           t          d          } t          t          |            t          dd          } t          t          |            d S )Nrr    rJ   r%   r0   r*   r,   r(   r   r;   x)r%   r0   rY   )r   
ValueErrorr   r\   r]   rc   )r   s    r   test_invalidr   p  s   *na444*naAOOOO*na"#Q) ) ) )*na999*naA3GGGG*na!MMMM !D*dhI666*dj"---*dh9555*dhY777*dj#...*dh	9===*dj)444HHT9*dh9555JJLLLHHQ	*dhl;;;JJLLL*dj!,,, !D*d###!\**D*d#####r!   )__doc__numpyr   scipy.linalgr   statsmodels.tsa.statespacer   r   )statsmodels.tsa.statespace.initializationr   numpy.testingr   r   r    r9   r=   rD   rW   r^   rn   rz   r    r!   r   <module>r      s        0 0 0 0 0 0 6 6 6 6 6 6 6 6 D D D D D D 8 8 8 8 8 8 8 8I I I"', ', ',TH H H$O O OD1& 1& 1&hH/ H/ H/VD& D& D&N'& '& '&T $  $  $  $  $r!   