
    !g.                        d 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 e	j                   j#                         j$                  Z ej(                  ddd	
      e_        ej,                  j/                  dddg      ej,                  j/                  dg d      ej,                  j/                  dddg      ej,                  j/                  dddg      d                             Zej,                  j/                  dddg      ej,                  j/                  dg d      d               Zd Zej,                  j/                  dddg      d        Zy)zg
Tests for decomposition of objects in state space models

Author: Chad Fulton
License: Simplified-BSD
    N)assert_allclose)datasets)sarimaxvarmaxdynamic_factor_mq)TVSS1959Q12009Q3Q)startendfrequse_exogFTtrend)nctconcentrate_scalemeasurement_errorc                    t        j                  dt         j                  dddgg      j                  }| rt        j                  g d      nd }dg}dg}dg}dg}	d	g}
g }|d
v r||z  }| r||z  }||z  }|r||	z  }|s||
z  }t	        j
                  |d|| r|nd ||      }t        j                  dg      }t        j                  d      dz  }|j                  j                  ||       |j                  |      }|j                  d      \  }}}}||z   j                  d      |j                  d      z   |j                  d      z   }|j                  d      j                  }t        j                  |j                  j                        }t!        ||d       |j                  |d   d d d d d f   z  j                  d      |d   z   j                  }|j#                  dd      }|j#                  dd      }t!        |d d df   |       |j                  d      \  }}}}||z   j                  d      |j                  d      z   |j                  d      z   }|j                  d      j                  }t!        |d d df   |d       ||d   j                  z   }t!        |d d df   |       y )N皙?333333?333333ӿg         g333333@g333333@        皙?      ?ffffff?皙?r   r   )   r   r   )orderr   exogr   r   皙ٿr#   smoothed_statedecomposition_ofaxisstate_tolevel-q=atoldesignobs_interceptsmoothedTinformation_setsignal_onlyFr   smoothed_signalvariable_to)nparraynanTr   SARIMAXeyessminitialize_knownsmoothget_smoothed_decompositionsumunstackvaluesstatesr4   r   predict)r   r   r   r   endogr%   trend_params	ar_paramsexog_paramsmeas_err_params
cov_paramsparamsmod
prior_mean	prior_covrescdcoicsicpcsssscsfs_sigsfcs_sigs                             l/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/tests/test_decompose.py#test_smoothed_decomposition_sarimaxr_      s    HHsBFFCt45688E.6288)*DD5LI%KeOJF
,+
iF/!* //%y'/tT,=,=?C 4&!Jq	CIGGZ3
**V
C
 55) 6 +BS"
 H>>q>!CGGGO3bff!fnDC
++J+
'
.
.C 
#**%%	&BC%( EECM!Q*--222:!"#$1 
 KK
KEE	ZU	CBC1Ir" 55* 6 ,BS"
 Cxnn!n$swwAw6QGF^^-^077FF1a4L%e4 3'))
)CC1Ir"    c                    t        j                  ddgddgddgddgdd	gg      }t         j                  |d
<   t         j                  |dd d f<   t         j                  |d<   | rt        j                  g d      nd }ddg}g d}ddg}g d}g }|dv r||z  }||z  }| r||z  }||z  }t        j                  |d|| r|nd       }	t        j                  ddg      }
t        j                  ddgddgg      }|	j
                  j                  |
|       |	j                  |      }|j                  d      \  }}}}||z   j                  d      |j                  d      z   |j                  d      z   }|j                  d      j                  }t        j                  |j                  j                        }t        ||d       |j                  |	d   d d d d d f   z  j                  d      j                  }|j!                  d d!"      }|j!                  d d#"      }t        ||d       |j                  d$      \  }}}}||z   j                  d      |j                  d      z   |j                  d      z   }|j                  d%      j                  }t        ||d       ||	d&   j                  z   }t        ||       y )'Nr         ?r   g      g{Gz?g?r&   r   g?)r   r   r#   )r   r#   r   )r   gr   r   g       @)rb   r   rb   r"   )r#   r   )r$   r   r%   ?r    333333?g@r'   r(   r*   r,   r-   r/   r0   r2   r4   Tr5   Fr8   r9   r3   )r:   r;   r<   r   VARMAXr@   rA   rB   rC   rD   rE   rF   rG   r4   r   r=   rH   )r   r   rI   r%   rJ   
var_paramsrL   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   s                          r^   "test_smoothed_decomposition_varmaxrg   m   s    HHsCjTlSkSkDk	# $E
 &&E$K&&E!Q$K&&E$K.6288)*DD:L&Jr(KJF
,
jF+
jF --V5%-T49C4+&J3**& 'IGGZ3
**V
C
 55) 6 +BS"
 H>>q>!CGGGO3bff!fnDC
++J+
'
.
.C 
#**%%	&BC%( 553x=At,,
1
1q
1
9
;
;C KK
KEE	ZU	CBC%( 55* 6 ,BS"
 Cxnn!n$swwAw6QGF^^-^077FFE. 3'))
)CCr`   c                  (   t        j                  ddd      } t        j                  ddd      }t        j                  t        j                  d      | dd	g
      }t        j                  t        j                  d      |ddg
      }d|j
                  d<   d|j
                  d<   ||j                         z  }||j                         z  }t        j                  ||ddd      }g d}|j                  |      }|j                  d      \  }}}	}
||z   j                  d      |	j                  d      z   |
j                  d      z   }|j                  d      |j                     j                  }t        j                  |j                   j"                        }t%        ||d       |j&                  |d   d d d d d f   z  j                  d      j&                  }|j&                  |j(                  j                  d d d f   z  |j*                  j                  d d d f   z   j&                  }|j-                  dd      }|j-                  dd      }t%        ||d       |j                  d      \  }}}	}
||z   j                  d      |	j                  d      z   |
j                  d      z   }|j                  d       |j.                     j                  }t%        ||d       ||d!   j&                  z   }t%        ||       y )"N2000   M)r   periodsr      r   )rj   r   M0M1)indexcolumns)rm   r   Q0Q1rb   r   r#   T)endog_quarterlyfactorsfactor_ordersidiosyncratic_ar1)r   r&   r   rd   gffffff?rb   r   g?g333333?g?g?r   rb   rc   r'   r(   r*   r,   r-   r/   r0   r2   r4   r5   Fr8   r9   r3   )pdperiod_range	DataFramer:   zerosilocmeanr   DynamicFactorMQrB   rC   rD   rE   state_namesrF   r;   rG   r4   r   r=   
_endog_std_endog_meanrH   endog_names)index_Mindex_Qdta_Mdta_QrP   rO   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   s                    r^   "test_smoothed_decomposition_dfm_mqr      s   ooFBSAGooFAC@GLL'*'"&/ELL&)4,OEEJJqMEJJqM	UZZ\E	UZZ\E 
+
+uaq CF **V
C
 55) 6 +BS"
 H>>q>!CGGGO3bff!fnDC
++J+
'
8
?
?C 
#**%%	&BC%( 553x=At,,
1
1q
1
9
;
;C553>>((D11__##AtG,-./a 
 KK
KEE	ZU	CBC%( 55* 6 ,BS"
 Cxnn!n$swwAw6QGF^^-^0AHHFFE. 3'))
)CCr`   
univariatec                    t        j                  d      }t         j                  |d<   t         j                  |dd d f<   t         j                  |d<   t        |      }t         j                  j                  |j                  |j                  f      |d<   t        j                  ddg      }t        j                  d	      }|j                  j                  ||       | rd
|j                  _        |j                  g       }|j                  d      \  }}}	}
||z   j                  d      |	j                  d      z   |
j                  d      z   }|j!                  d      |j"                     j$                  }t        j                  |j&                  j(                        }t+        ||d       |j,                  |d   z  j                  d      j,                  }||d   j,                  z   }|j/                  dd
      }|j/                  dd      }t+        ||d       t+        ||d       |j                  d      \  }}}	}
||z   j                  d      |	j                  d      z   |
j                  d      z   }|j!                  d      |j0                     j$                  }t+        ||d       ||d   j,                  z   }t+        ||       y )N)
      )   r      )   r#   )sizestate_interceptr   r!   r   Tr'   r(   r#   r*   r,   r-   r/   r0   r2   r3   r4   r5   Fr8   r9   )r:   r{   r<   r   randomnormalk_statesnobsr;   r?   r@   rA   filter_univariaterB   rC   rD   rE   r   rF   rG   r4   r   r=   rH   r   )r   reset_randomstaterI   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r]   rZ   r[   r\   s                    r^    test_smoothed_decomposition_TVSSr     sy   HHWE&&E$K&&E!Q$K&&E$K
u+CYY--CLL#((3K-LC3*%Jq	IGGZ3$(!
**R.C
 55) 6 +BS"
 H>>q>!CGGGO3bff!fnDC
++J+
'
8
?
?C 
#**%%	&BC%( eec(m#((a(022F 3'))
)C KK
KEE	ZU	CBFE.C%( 55* 6 ,BS"
 Cxnn!n$swwAw6QGF^^-^0AHHFFE. 3'))
)CCr`   )__doc__pytestnumpyr:   pandasrx   numpy.testingr   statsmodelsr   statsmodels.tsa.statespacer   r   r   7statsmodels.tsa.statespace.tests.test_impulse_responsesr   	macrodataload_pandasdatadtary   rp   markparametrizer_   rg   r   r    r`   r^   <module>r      sN      )   I I H $$&++BOO(sC	 eT]3/2,udm<,udm<N# = = 3 4N#b eT]3/2N 3 4NbK\ t}5A 6Ar`   