
    'YHh5                     ~    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y)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                         | j                  j
                  }|j                  |       t        t        j                  |j                        |       t        t        j                  |j                        |       t        t        j                  |j                        |       y )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	            m/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/tsa/statespace/tests/test_initialization.pycheck_initializationr       s    _NAtUAvD)$E:& GG&&(##377>>#:''%%K4 BHH[667@BHH[BBCYOBHH[::;ZH    c            
      :   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             y )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   "   s     HHRLE
//%y
1C #,,3%@DdSE277A3<!F #,,MDdQC!rwws|D #,,3%)+!7DdSE277A3<!F HHRLE
//%y
1C #,,3+FDdS$K!Q!Q* #,,)+!S):<DdQFBGGQFO!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             y )	Nr#   r$   r&   diffuser   r%   r/   r0   )	r   r3   r   r4   r   r5   r    eyer6   r7   s      r   test_global_diffuser=   L   s     HHRLE
//%y
1C#,,	2DdQCBGGQCLA HHRLE
//%y
1C#,,	2DdQFBFF1Irww1v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         y )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    HHRLE
//%y
1C#,,(=>DdQC!rvvay3G#,,(=NDdSE277A3<SI#,,(=7;=DdQC!rvvay47GH HHRLE
//%y
1C#,,(=>DdQFBGGQFORVVAY_M#,,(=$';0DdS$K!QS* #,,(=7;=DdQFBGGQFORVVAY=MNr!   c            
      |   t        j                  d      } t        j                  | dd      }d}d}d}|j	                  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}|j	                  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}|j	                  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}|j	                  t         j
                  |||f          t        |j                  d      }t         j                  j                  t        j                  d
      |z
        j                  |dg      }	t        |||	t        j                  ddg      |       y )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      sh    HHRLE
//%y
<C I
CFJJruuYV+,-#,,5DdQC!V+q36z:< I
CFJJruuYV+,-#,,5DdY!c'%:$;RWWaS\V+q36z:< HHRLE
//%y
<C I+CFJJruuYV+,-#,,5D
3() 	A
A)!Q/KdQFBGGQFO[I I+CFJJruuYV+,-#,,5D		bffQi!m488)QHd$5rww1v$&r!   c            
      ~	   t        j                  d      } t        j                  | d      }ddg}d}|j	                  t         j
                  ||f          t        |j                        }|j                  ddd	g
       |j                  dddg
       t        ||d	dgt        j                  ddg      t        j                  ddg             |j                  d       |j                  dd       t        ||d	dgt        j                  ddg      t        j                  ddg             |j                  d       |j                  dd       t        ||d	dgt        j                  ddg      t        j                  ddg             |j                  d       |j                  dd       t        ||d	dgt        j                  ddg      t        j                  ddg             t        |j                        }|j                  ddt        j                  dg             |j                  dd       t        ||ddgt        j                  ddg      t        j                  ddg             t        |j                        }|j                  ddd	gt        j                  dg             |j                  dd       t        ||d	dgt        j                  ddg      t        j                  ddg             t        j                  d      } t        j                  | d      }t        |j                        }|j                  ddd	dg
       |j                  dd       t        ||g dt        j                  g d      t        j                  g d             t        |j                        }|j                  ddt        j                  ddg             |j                  dd       t        ||g dt        j                  g d      t        j                  g d             t        |j                        }|j                  ddd	dgt        j                  ddg             |j                  dd       t        ||g dt        j                  g d      t        j                  g d             y )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   
 HHRLE
//%y
1C+CFJJruuS&[!" #,,'DHHQ3%H( 	HHQ4&H)dS$K!Q!Q* 	JJqMHHQ	dS!Hbggq!forww1vO 	JJqMHHQ%&dS!Hbggq!fo!S*, 	JJqMHHQdS!Hbggq!forww1vO #,,'DHHQH5HHQ	dQFBGGQFORWWaV_M #,,'DHHQ3%HEHHQ	dS!Hbggq!forww1vO HHRLE
//%y
1C #,,'DHHVWT{H3HHQ	dNBGGI4F+- #,,'DHHVWRWWaX->H?HHQ	dIrwwy/A-/ #,,'DHHVWT{GGQH-  /HHQ	dNBGGI4F-/r!   c            
      @	   t        j                  d      } t        j                  | d      }ddg}d}|j	                  t         j
                  ||f          t        |j                        }|j                  dd       |j                  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      |       |j                          |j                  dd       |j                  dd
       |j                  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      |       |j                          |j                  dd       |j                  dd
       |j                  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
                  ||	j%                         t         j&                  j)                  |
      |   f   }|j	                  |       t        |j                  d
      }t         j&                  j+                  t        j,                  d      |	z
  |      }t        |	|
      }t        |||t        j                  ddg      |       |j                  d d       t        ||ddgt        j,                  d      t        j                  ddg             |j/                  d        |j                  dd
       |j                  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      |       y )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   HHRLE
//%y
1C+CFJJruuS&[!"#,,'DHHQ	HHV\"((6"K
3() 	A
A1!Q7KABdIrwwy/A;OJJLHHQ	HHQHHQ%&
3%A
A''1bjj)@A)FGMNKdIrwwy/A;OJJLHHQ	HHQHHQKdIrwwy/A;O HHWE
--V
.CdIC;:' (J
((S$K3K! "C??1DUU9j..099%%c*401 2FJJv #,,5D		q	J(>	J)*c:Kd$5rww1v$& 	HHT9dQFBFF1Irww1vG 	JJtHHQHHQ_NAtU"1Z-=)=>"1Z-=)=>@''3t9Jt,<a,?(?@t9Jt,<a,?(?@B CKd$5rww1v$&r!   c            	         t        j                  d      } t        j                  | d      }g d}d}|j	                  t         j
                  ||f          t        d      }t        dd      }t        d	d
d      }|j                  d|       |j                  d|       t        d      }t        d	dd	gdgg      }|j                  d|       t        d	d      }	|j                  d	|	       t        d	d
      }
|j                  d|
       t        d      }|j                  d|       |j                  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      |       y )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  s   HHRLE
//%y
1C
)CFJJruuS&[!" QGq,/Iq"7<?AIKK	"KK9QGq'QC"OIKK9q),IKK9q"78IKK9!DHHVWHHVW ((6"K
3() 	A
61+a& 	A1!Q7KBQBKKKd$6!3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       | j                  d d       t        t        | j                  dd       | j                          | j                  dd       t        t        | j                  d d       | j                          t        t        | j                  d       t        d      } t        t        |        t        dd      } t        t        |        y )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*naAO*na"#Q)*na9*naA3G*na!M !D*dhhI6*djj"-*dhh95*dhhY7*djj#.*dhh	9=*djj)4HHT9*dhh95JJLHHQ	*dhhl;JJL*djj!, !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      sS     0 6 D 8I"',TH$OD1&hH/VD&N'&T $r!   