
    M/Ph.                        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        Z ej        ddd	
          e_        ej                            dddg          ej                            dg d          ej                            dddg          ej                            dddg          d                                                 Zej                            dddg          ej                            dg d          d                         Zd Zej                            dddg          d             ZdS )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                            ||           |	                    |          }|
                    d          \  }}}}||z                       d          |                    d          z   |                    d          z   }|                    d          j        }t          j        |j        j                  }t!          ||d           |j        |d         d d d d d f         z                      d          |d         z   j        }|                    dd          }|                    dd          }t!          |d d df         |           |
                    d          \  }}}}||z                       d          |                    d          z   |                    d          z   }|                    d          j        }t!          |d d df         |d           ||d         j        z   }t!          |d d df         |           d S )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                             o/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_decompose.py#test_smoothed_decomposition_sarimaxr_      sE    HsBFCt45668E.6@28)))***DD5LI%KeOJF
, +
iF "/! * /%y'/9ttT,=,=? ? ?C 4&!!Jq		CIGZ333
**V

C
 55) 6 + +BS"
 H>>q>!!CGGGOO3bff!fnnDC
++J+
'
'
.C 
#*%	&	&BC%(((( ECM!!!QQQ*--222::!"#$ 
 KK
KEEE	ZU	C	CBC1Ir""" 55* 6 , ,BS"
 Cxnn!n$$swwAw6QGF^^-^007FF111a4L%e444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                            |
|           |	                    |          }|                    d          \  }}}}||z   	                    d          |	                    d          z   |	                    d          z   }|
                    d          j        }t          j        |j        j                  }t          ||d           |j        |	d         d d d d d f         z  	                    d          j        }|                    d d!"          }|                    d d#"          }t          ||d           |                    d$          \  }}}}||z   	                    d          |	                    d          z   |	                    d          z   }|
                    d%          j        }t          ||d           ||	d&         j        z   }t          ||           d S )'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   sL    HsCjTlSkSkDk	# $ $E
 &E$K&E!QQQ$K&E$K.6@28)))***DD:L&&&Jr(KJF
,
jF +
jF -V5%-7TT49 9 9C4+&&J3**& ' 'IGZ333
**V

C
 55) 6 + +BS"
 H>>q>!!CGGGOO3bff!fnnDC
++J+
'
'
.C 
#*%	&	&BC%(((( 53x=AAAt,,
1
1q
1
9
9
;C KK
KEEE	ZU	C	CBC%(((( 55* 6 , ,BS"
 Cxnn!n$$swwAw6QGF^^-^00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<   ||                                z  }||                                z  }t          j        ||ddd          }g d}|	                    |          }|
                    d          \  }}}	}
||z                       d          |	                    d          z   |
                    d          z   }|                    d          |j                 j        }t          j        |j        j                  }t%          ||d           |j        |d         d d d d d f         z                      d          j        }|j        |j        j        d d d f         z  |j        j        d d d f         z   j        }|                    dd          }|                    dd          }t%          ||d           |
                    d          \  }}}	}
||z                       d          |	                    d          z   |
                    d          z   }|                    d           |j                 j        }t%          ||d           ||d!         j        z   }t%          ||           d S )"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"   oFBSAAAGoFAC@@@GL'**'"&/ / /EL&))4,OOOEEJqMEJqM	UZZ\\E	UZZ\\E 
+uaq     C  F **V

C
 55) 6 + +BS"
 H>>q>!!CGGGOO3bff!fnnDC
++J+
'
'
8
?C 
#*%	&	&BC%(((( 53x=AAAt,,
1
1q
1
9
9
;C53>(D11_#AAAtG,-./ 
 KK
KEEE	ZU	C	CBC%(((( 55* 6 , ,BS"
 Cxnn!n$$swwAw6QGF^^-^00A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        f          |d<   t          j        ddg          }t          j	        d	          }|j
                            ||           | rd
|j
        _        |                    g           }|                    d          \  }}}	}
||z                       d          |	                    d          z   |
                    d          z   }|                    d          |j                 j        }t          j        |j        j                  }t+          ||d           |j        |d         z                      d          j        }||d         j        z   }|                    dd
          }|                    dd          }t+          ||d           t+          ||d           |                    d          \  }}}	}
||z                       d          |	                    d          z   |
                    d          z   }|                    d          |j                 j        }t+          ||d           ||d         j        z   }t+          ||           d S )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     s   HWE&E$K&E!QQQ$K&E$K
u++CY--CL#(3K-LLC3*%%Jq		IGZ333 )$(!
**R..C
 55) 6 + +BS"
 H>>q>!!CGGGOO3bff!fnnDC
++J+
'
'
8
?C 
#*%	&	&BC%(((( ec(m#((a(002F 3')
)C KK
KEEE	ZU	C	CBFE....C%(((( 55* 6 , ,BS"
 Cxnn!n$$swwAw6QGF^^-^00A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      s             ) ) ) ) ) )             I I I I I I I I I I H H H H H H $$&&+BO(sCCC	 eT]33///22,udm<<,udm<<N# N# =< =< 32 43N#b eT]33///22N N 32 43NbK K K\ t}55A A 65A A Ar`   