
    M/PhLk                        d 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 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 ej                            ej                            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"          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(          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.d. Z/dS )/z
Tests for collapsed observation vector

These tests cannot be run for the Clark 1989 model since the dimension of
observations (2) is smaller than the number of states (6).

Author: Chad Fulton
License: Simplified-BSD
    N)datasets)dynamic_factor)MLEModel)FILTER_UNIVARIATE)SMOOTH_CLASSICALSMOOTH_ALTERNATIVESMOOTH_UNIVARIATE)results_kalman_filter)assert_equalassert_allclosec                       e Zd ZdZeedfd            Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Zej        j        d             Zej        j        d             Zd Zd Zd Zd Zd ZdS )
TrivariatezP
    Tests collapsing three-dimensional observation data to two-dimensional
    Fc                 :   t           j        | _        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         z  |d<   d}t          |fd|i|| _
        | j
        j        | _        |rd| j        _        t          j        | j        j                  | j        d<   t          j        ddgddgddgg          | j        d<   t          j        ddgddgg          | j        d<   t          j        g d          | j        d<   t          j        ddg          | j        d<   | j                                         d S )Ndataz
1947-01-01z
1995-07-01QS)freqGDPUNEMP)indexcolumns   d   X   k_statesT	selection      ?皙?r   g?   g      designg?
transition)r   皙?r   obs_covg       @	state_cov)r
   uc_biresultspd	DataFrame
date_rangenplogexpr   mlemodelssmmodeltiming_init_filteredeyer   arraydiaginitialize_approximate_diffuse)clsdtypealternate_timingkwargsr   r   s         o/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_collapsed.pysetup_classzTrivariate.setup_class"   s   +1 |K-lFFFG$
 
 
 ""	
 fT%[))Ugs*WF4;''$w-7S	BBxB6BBL$	 	2-1CI* "$	(:!;!;	+ !hc
)*c
)*T
(4 5 5	( #%(S#J-.!H,6 #7 #7	,!w77	)!#"a!1!1	+ 		0022222    c                 
   | j         j        rJ | j        j        sJ | j         j        J | j        j        J t	          | j         j        j        d         d           t	          | j        j        j        d         d           d S Nr      r   	results_afilter_collapsed	results_bcollapsed_forecastsr   	forecastsshapeselfs    r9   test_using_collapsedzTrivariate.test_using_collapsedE       
 >2222~....~1999~1===T^-3A6:::T^7=a@!DDDDDr;   c                 v    t          | j        j        dd d f         | j        j        dd d f                    d S Nr   r   r@   rD   rB   rF   s    r9   test_forecastszTrivariate.test_forecastsS   H    N$QT*N$QT*	
 	
 	
 	
 	
r;   c                 v    t          | j        j        dd d f         | j        j        dd d f                    d S rK   r   r@   forecasts_errorrB   rF   s    r9   test_forecasts_errorzTrivariate.test_forecasts_errorY   H    N*1aaa40N*1aaa40	
 	
 	
 	
 	
r;   c                 z    t          | j        j        ddd d f         | j        j        ddd d f                    d S rK   r   r@   forecasts_error_covrB   rF   s    r9   test_forecasts_error_covz#Trivariate.test_forecasts_error_cov_   L    N.q!QQQw7N.q!QQQw7	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S Nr   r@   filtered_staterB   rF   s    r9   test_filtered_statezTrivariate.test_filtered_statee   .    N)N)	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r@   filtered_state_covrB   rF   s    r9   test_filtered_state_covz"Trivariate.test_filtered_state_covk   .    N-N-	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r@   predicted_staterB   rF   s    r9   test_predicted_statezTrivariate.test_predicted_stateq   .    N*N*	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r@   predicted_state_covrB   rF   s    r9   test_predicted_state_covz#Trivariate.test_predicted_state_covw   .    N.N.	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r@   llf_obsrB   rF   s    r9   test_loglikezTrivariate.test_loglike}   .    N"N"	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r@   smoothed_staterB   rF   s    r9   test_smoothed_stateszTrivariate.test_smoothed_states   r^   r;   c                 R    t          | j        j        | j        j        d           d S N-C6?atolr   r@   smoothed_state_covrB   rF   s    r9   test_smoothed_states_covz#Trivariate.test_smoothed_states_cov   6    N-N-	
 	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   )r   r@   smoothed_state_autocovrB   rF   s    r9   test_smoothed_states_autocovz'Trivariate.test_smoothed_states_autocov   s.    N1N1	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r@    smoothed_measurement_disturbancerB   rF   s    r9   %test_smoothed_measurement_disturbancez0Trivariate.test_smoothed_measurement_disturbance   .    N;N;	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r@   $smoothed_measurement_disturbance_covrB   rF   s    r9   )test_smoothed_measurement_disturbance_covz4Trivariate.test_smoothed_measurement_disturbance_cov   .    N?N?	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r@   smoothed_state_disturbancerB   rF   s    r9   test_smoothed_state_disturbancez*Trivariate.test_smoothed_state_disturbance   .    N5N5	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r@   smoothed_state_disturbance_covrB   rF   s    r9   #test_smoothed_state_disturbance_covz.Trivariate.test_smoothed_state_disturbance_cov   .    N9N9	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   )r   sim_asimulated_staterF   s    r9   test_simulation_smoothed_statez)Trivariate.test_simulation_smoothed_state   .    J&J&	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   )r   r   !simulated_measurement_disturbancerF   s    r9   0test_simulation_smoothed_measurement_disturbancez;Trivariate.test_simulation_smoothed_measurement_disturbance   s.    J8J8	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   )r   r   simulated_state_disturbancerF   s    r9   *test_simulation_smoothed_state_disturbancez5Trivariate.test_simulation_smoothed_state_disturbance   .    J2J2	
 	
 	
 	
 	
r;   N)__name__
__module____qualname____doc__classmethodfloatr:   rH   rM   rR   rW   r]   rb   rg   rl   rq   rv   r~   r   pytestmarkskipr   r   r   r   r   r   r    r;   r9   r   r      s         $u  3  3  3 [ 3DE E E
 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 
 [
 
 
 [
 
 

 
 

 
 

 
 

 
 

 
 
 
 
r;   r   c                   2     e Zd Zeef fd	            Z xZS )TestTrivariateConventionalc                     t                      j        |fi | | j        j        }| j        j        }| j        j        }d| j        _        d| j        _        | j                                        | _	        | j        
                    t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d| j        _        | j                                        | _        | j        
                    t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d S NT measurement_disturbance_variatesstate_disturbance_variatesinitial_state_variatesF)superr:   r/   nobsk_endogk_posdeffilter_conventionalrA   smoothrB   simulation_smootherr*   zerosr   sim_br@   r   r5   r6   r8   r   r   r   	__class__s         r9   r:   z&TestTrivariateConventional.setup_class   s3   E,,V,,,y~)#9% )-	%%)	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
	 &+	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
			r;   r   r   r   r   r   r:   __classcell__r   s   @r9   r   r      sJ        $ 
 
 
 
 
 [
 
 
 
 
r;   r   c                   4     e Zd Ze fd            Zd Z xZS )#TestTrivariateConventionalAlternatec                 >     t                      j        |ddi| d S Nr7   Tr   r:   r5   argsr8   r   s      r9   r:   z/TestTrivariateConventionalAlternate.setup_class   ;    $(	4!	4,2	4 	4 	4 	4 	4r;   c                 4    | j         j        j        dk    sJ d S Nr   r/   _kalman_filterfilter_timingrF   s    r9   test_using_alteratez7TestTrivariateConventionalAlternate.test_using_alterate   !    z(6!;;;;;;r;   r   r   r   r   r:   r   r   r   s   @r9   r   r      Q        4 4 4 4 [4< < < < < < <r;   r   c                   2     e Zd Zeef fd	            Z xZS )(TestTrivariateConventionalPartialMissingc                 "    t                      j        |fi | | j        j        }| j        j        }| j        j        }t          j        | j        j        d dddf<   d| j        _	        d| j        _
        | j                                        | _        | j                            t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d| j        _
        | j                                        | _        | j                            t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d S Nr   
      Tr   Fr   r:   r/   r   r   r   r*   nanendogr   rA   r   rB   r   r   r   r   r@   r   r   s         r9   r:   z4TestTrivariateConventionalPartialMissing.setup_class   s]   	 		 	 	y~)#9% ')f	BsF
# )-	%%)	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
	 &+	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
			r;   r   r   s   @r9   r   r      J        $ 
 
 
 
 
 [
 
 
 
 
r;   r   c                   4     e Zd Ze fd            Zd Z xZS )1TestTrivariateConventionalPartialMissingAlternatec                 >     t                      j        |ddi| d S r   r   r   s      r9   r:   z=TestTrivariateConventionalPartialMissingAlternate.setup_class  *    DCTCFCCCCCr;   c                 4    | j         j        j        dk    sJ d S r   r   rF   s    r9   r   zETestTrivariateConventionalPartialMissingAlternate.test_using_alterate  r   r;   r   r   s   @r9   r   r     V        D D D D [D< < < < < < <r;   r   c                   2     e Zd Zeef fd	            Z xZS )$TestTrivariateConventionalAllMissingc                 "    t                      j        |fi | | j        j        }| j        j        }| j        j        }t          j        | j        j        d d ddf<   d| j        _	        d| j        _
        | j                                        | _        | j                            t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d| j        _
        | j                                        | _        | j                            t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d S Nr   r   Tr   Fr   r   s         r9   r:   z0TestTrivariateConventionalAllMissing.setup_class  s]   	 		 	 	y~)#9% &(V	2c6	" )-	%%)	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
	 &+	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
			r;   r   r   s   @r9   r   r     r   r;   r   c                   4     e Zd Ze fd            Zd Z xZS )-TestTrivariateConventionalAllMissingAlternatec                 >     t                      j        |ddi| d S r   r   r   s      r9   r:   z9TestTrivariateConventionalAllMissingAlternate.setup_class;  r   r;   c                 4    | j         j        j        dk    sJ d S r   r   rF   s    r9   r   zATestTrivariateConventionalAllMissingAlternate.test_using_alterate@  r   r;   r   r   s   @r9   r   r   9  Q        4 4 4 4 [4< < < < < < <r;   r   c                   2     e Zd Zeef fd	            Z xZS )TestTrivariateUnivariatec                     t                      j        |fi | | j        j        }| j        j        }| j        j        }d| j        _        d| j        _        | j                                        | _	        | j        
                    t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d| j        _        | j                                        | _        | j        
                    t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d S r   )r   r:   r/   r   r   r   filter_univariaterA   r   rB   r   r*   r   r   r   r@   r   r   s         r9   r:   z$TestTrivariateUnivariate.setup_classE  s3   E,,V,,,y~)#9% '+	#%)	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
	 &+	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
			r;   r   r   s   @r9   r   r   D  sJ        $ 
 
 
 
 
 [
 
 
 
 
r;   r   c                   4     e Zd Ze fd            Zd Z xZS )!TestTrivariateUnivariateAlternatec                 >     t                      j        |ddi| d S r   r   r   s      r9   r:   z-TestTrivariateUnivariateAlternate.setup_classa  r   r;   c                 4    | j         j        j        dk    sJ d S r   r   rF   s    r9   r   z5TestTrivariateUnivariateAlternate.test_using_alteratef  r   r;   r   r   s   @r9   r   r   `  r   r;   r   c                   2     e Zd Zeef fd	            Z xZS )&TestTrivariateUnivariatePartialMissingc                 "    t                      j        |fi | | j        j        }| j        j        }| j        j        }t          j        | j        j        d dddf<   d| j        _	        d| j        _
        | j                                        | _        | j                            t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d| j        _
        | j                                        | _        | j                            t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d S r   r   r:   r/   r   r   r   r*   r   r   r   rA   r   rB   r   r   r   r   r@   r   r   s         r9   r:   z2TestTrivariateUnivariatePartialMissing.setup_classk  s]   	 		 	 	y~)#9% ')f	BsF
# '+	#%)	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
	 &+	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
			r;   r   r   s   @r9   r   r   j  r   r;   r   c                   4     e Zd Ze fd            Zd Z xZS )/TestTrivariateUnivariatePartialMissingAlternatec                 >     t                      j        |ddi| d S r   r   r   s      r9   r:   z;TestTrivariateUnivariatePartialMissingAlternate.setup_class  r   r;   c                 4    | j         j        j        dk    sJ d S r   r   rF   s    r9   r   zCTestTrivariateUnivariatePartialMissingAlternate.test_using_alterate  r   r;   r   r   s   @r9   r   r     r   r;   r   c                   2     e Zd Zeef fd	            Z xZS )"TestTrivariateUnivariateAllMissingc                 "    t                      j        |fi | | j        j        }| j        j        }| j        j        }t          j        | j        j        d d ddf<   d| j        _	        d| j        _
        | j                                        | _        | j                            t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d| j        _
        | j                                        | _        | j                            t          j        ||z            t          j        ||z            t          j        | j        j                            | _        d S r   r   r   s         r9   r:   z.TestTrivariateUnivariateAllMissing.setup_class  s]   	 		 	 	y~)#9% &(V	2c6	" '+	#%)	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
	 &+	"	((**I11-/XdWn-E-E')xx'@'@#%8CI,>#?#? 2 
 
			r;   r   r   s   @r9   r   r     r   r;   r   c                   4     e Zd Ze fd            Zd Z xZS )+TestTrivariateUnivariateAllMissingAlternatec                 >     t                      j        |ddi| d S r   r   r   s      r9   r:   z7TestTrivariateUnivariateAllMissingAlternate.setup_class  r   r;   c                 4    | j         j        j        dk    sJ d S r   r   rF   s    r9   r   z?TestTrivariateUnivariateAllMissingAlternate.test_using_alterate  r   r;   r   r   s   @r9   r  r    r   r;   r  c                   0   e Zd Zed             Zed             Zedd            Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej        j        d             Zej        j        d             Zd Zd Zd Zej        j        d             Zd ZdS )TestDFMc                    t          |fddd|}t          j        ddgddgddgg          |d	<   t          j        t          j        g d
                    |d<   t          j        ddgddgg          |d<   t          j        d          |d<   t          j        ddgddgg          |d<   |                    d           |S )Nr   r   r   JnX<@?kyV1@9jN=l?A!jmR_@r    g&@o?g]ӬN?gB\/M@r#   }^(?{zN?lrr*Q?r!   r   333333?      пr"   r$       .A)r   r*   r2   r3   r1   r4   )r5   obsr8   mods       r9   create_modelzTestDFM.create_model  s     s=Q==f==<"=#.
";#0+">"@ A AH H999::< <IHz:&>'19&=&? @ @L6!99K8c5\&+S\%3 4 4K**3///
r;   c                 P    | j         |fi |}|                    g d           |j        j        }t	          j        |j        |j        f          }t          |j                  D ]?}|	                    ||j        j
        d           t	          j        |j                  ||<   @|S )NT)
return_ssmr   )r  r   r.   _statespacer*   r   r   r   rangeseekr   r2   collapse_obs)r5   r  r8   r  _ssoutts          r9   collapsezTestDFM.collapse  s    cs--f--

2$
'''g!h#,/00sx 	0 	0AHHQ11555Xc.//CFF
r;   mixedc                 z   t           j                                        j        }t	          j        ddd          |_        |g d         }t          j        |          	                                j
        dd          dz  }|dk    r5t          j        |j
        d d	d d f<   t          j        |j
        d
dd d f<   n|dk    r1t          j        |j
        dd	df<   t          j        |j
        d
ddf<   n~|dk    rxt          j        |j
        dd	df<   t          j        |j
        dddf<   t          j        |j
        dddf<   t          j        |j
        d
ddf<   t          j        |j
        d
ddf<    | j        |fi |}|j        | _        | j        j        }| j        j        }	| j        j        }
t          j                            d           t          j                            ||	z            }t          j                            ||
z            }t          j                            | j        j                  }d| j        _        | j                                        | _        | j                                        | _        | j                            |||           d| j        _        | j                                        | _        | j                                        | _        | j                            |||           |                    dd            t?          |fddd|}t          j         ddgddgd d!gg          |d"d d#d df<   t          j!        t          j         g d$                    |d%<   t          j         d&d'gd(d)gg          |d*d dd df<   t          j"        d          |d*dd d df<   t          j"        d          |d+d dd df<   t          j         d,d-gd-d.gg          |d/<   |#                    d0           |j        | _$        |j                                        | _%        d S )1Nz
1959-01-01z	2009-7-01r   )startendr   )realgdprealconsrealinvr   i  all2   w      partialr   r#     F   '   Z   r   i  sizeTr   FrA   r   r  r  r	  r
  r  r  r  r    r>   r  r#   r  r  r  r  r!   r   r  r  r"   r$   r  )&r   	macrodataload_pandasr   r'   r)   r   r*   r+   diffilocr   r  r.   r/   r   r   r   randomseednormalr   rA   r   rB   r   r   simulater@   r   popr   r2   r3   r1   r4   augmented_modelaugmented_results)r5   whichr   r8   dtalevelsr  r  r   r   r   mdvsdvisvs                 r9   r:   zTestDFM.setup_class  sM     ,,..3M&1> > >	7778fVnn!!##(,s2E>>!vCHSbS!!!V#%6CHSWaaaZ  i "CHQrT1W#%6CHSWaZ  g "CHQrT1W!#CHRUAX!#CHRUAX#%6CHSWaZ #%6CHSWaZ cs--f--G	y~)#9%
	tiD7N33iD8O44iCI$677 &*	"	((**I1133		C6925 	 	7 	7 	7
 &+	"	((**I1133		C6925 	 	7 	7 	7
 	

%t,,,s=Q==f== "<*E+6
*C+8+*F*H !I !IHbqb"1" H999::< <I$&Hz:.F/99.E.G %H %HL"1"bqb !$&F1IIL!""bqb !#%6!99K!RaR 8c5\&+S\%3 4 4K 	**3///!g # 0 0r;   c                 
   | j         j        rJ | j        j        sJ | j         j        J | j        j        J t	          | j         j        j        d         d           t	          | j        j        j        d         d           d S r=   r?   rF   s    r9   rH   zTestDFM.test_using_collapsed"  rI   r;   c                 v    t          | j        j        dd d f         | j        j        dd d f                    d S rK   rL   rF   s    r9   rM   zTestDFM.test_forecasts0  rN   r;   c                 v    t          | j        j        dd d f         | j        j        dd d f                    d S rK   rP   rF   s    r9   rR   zTestDFM.test_forecasts_error6  rS   r;   c                 z    t          | j        j        ddd d f         | j        j        ddd d f                    d S rK   rU   rF   s    r9   rW   z TestDFM.test_forecasts_error_cov<  rX   r;   c                 N    t          | j        j        | j        j                   d S rZ   r[   rF   s    r9   r]   zTestDFM.test_filtered_stateB  r^   r;   c                 N    t          | j        j        | j        j                   d S rZ   r`   rF   s    r9   rb   zTestDFM.test_filtered_state_covH  rc   r;   c                 N    t          | j        j        | j        j                   d S rZ   re   rF   s    r9   rg   zTestDFM.test_predicted_stateN  rh   r;   c                 N    t          | j        j        | j        j                   d S rZ   rj   rF   s    r9   rl   z TestDFM.test_predicted_state_covT  rm   r;   c                 N    t          | j        j        | j        j                   d S rZ   ro   rF   s    r9   rq   zTestDFM.test_loglikeZ  rr   r;   c                 N    t          | j        j        | j        j                   d S rZ   rt   rF   s    r9   rv   zTestDFM.test_smoothed_states`  r^   r;   c                 R    t          | j        j        | j        j        d           d S rx   r|   rF   s    r9   r~   z TestDFM.test_smoothed_states_covf  r   r;   c                 ^   t          | j        j        | j        j                   t          | j        j        d d d d ddf         | j        j        d ddd ddf         d           t          | j        j        d d d d ddf         | j        j        d ddd dd f         d	           d S )
Nr      r   r      ry   rz   Hz>)r   r@   r   rB   r?  r}   rF   s    r9   r   z$TestDFM.test_smoothed_states_autocovm  s     	N1N1	
 	
 	
 	=aaaAaCiH.A"1"abb!A#+N!	# 	# 	# 	# 	=aaaAbDjI.A"1"abb!""*M!	# 	# 	# 	# 	# 	#r;   c                 N    t          | j        j        | j        j                   d S rZ   r   rF   s    r9   r   z-TestDFM.test_smoothed_measurement_disturbance  r   r;   c                 N    t          | j        j        | j        j                   d S rZ   r   rF   s    r9   r   z1TestDFM.test_smoothed_measurement_disturbance_cov  r   r;   c                 N    t          | j        j        | j        j                   d S rZ   r   rF   s    r9   r   z'TestDFM.test_smoothed_state_disturbance  r   r;   c                 N    t          | j        j        | j        j                   d S rZ   r   rF   s    r9   r   z+TestDFM.test_smoothed_state_disturbance_cov  r   r;   c                 N    t          | j        j        | j        j                   d S rZ   )r   r   r   r   rF   s    r9   r   z&TestDFM.test_simulation_smoothed_state  r   r;   c                 N    t          | j        j        | j        j                   d S rZ   )r   r   r   r   rF   s    r9   r   z8TestDFM.test_simulation_smoothed_measurement_disturbance  s.    J8J8	
 	
 	
 	
 	
r;   c                 N    t          | j        j        | j        j                   d S rZ   r   r   r   r   rF   s    r9   r   z2TestDFM.test_simulation_smoothed_state_disturbance  r   r;   N)r#  )r   r   r   r   r  r"  r:   rH   rM   rR   rW   r]   rb   rg   rl   rq   rv   r~   r   r   r   r   r   r   r   r   r   r   r   r   r;   r9   r  r    s         [  	 	 [	 B1 B1 B1 [B1HE E E
 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 
# # #( [
 
 
 [
 
 

 
 

 
 

 
 
 [
 
 

 
 
 
 
r;   r  c                   4     e Zd Ze fd            Zd Z xZS )TestDFMClassicalSmoothingc                 H     t                      j        |dt          i| d S )Nsmooth_methodr   r:   r   r   s      r9   r:   z%TestDFMClassicalSmoothing.setup_class  s;    -1	=*	=5;	= 	= 	= 	= 	=r;   c                     t          | j        j        t                     t          | j        j        j        t                     t          | j        j        j        t                     d S rZ   )r   r/   ra  r   _kalman_smoother_smooth_methodrF   s    r9   test_smooth_methodz,TestDFMClassicalSmoothing.test_smooth_method  s`    TZ-/?@@@TZ0>%	' 	' 	'TZ0?%	' 	' 	' 	' 	'r;   r   r   r   r   r:   rf  r   r   s   @r9   r_  r_    sQ        = = = = [=' ' ' ' ' ' 'r;   r_  c                   4     e Zd Ze fd            Zd Z xZS )TestDFMUnivariateSmoothingc                 H     t                      j        |dt          i| d S )Nfilter_method)r   r:   r   r   s      r9   r:   z&TestDFMUnivariateSmoothing.setup_class  s;    .2	>+	>6<	> 	> 	> 	> 	>r;   c                     t          | j        j        d           t          | j        j        j        d           t          | j        j        j        t
                     d S rK   )r   r/   ra  rd  re  r	   rF   s    r9   rf  z-TestDFMUnivariateSmoothing.test_smooth_method  sX    TZ-q111TZ0>BBBTZ0?&	( 	( 	( 	( 	(r;   rg  r   s   @r9   ri  ri    sQ        > > > > [>( ( ( ( ( ( (r;   ri  c                   4     e Zd Ze fd            Zd Z xZS )TestDFMAlternativeSmoothingc                 H     t                      j        ddt          i| d S )Nra  r   )r   r:   r   r   s      r9   r:   z'TestDFMAlternativeSmoothing.setup_class  s=     	8 	8,	806	8 	8 	8 	8 	8r;   c                     t          | j        j        t                     t          | j        j        j        t                     t          | j        j        j        t                     d S rZ   )r   r/   ra  r   rd  re  rF   s    r9   rf  z.TestDFMAlternativeSmoothing.test_smooth_method  s`    TZ-/ABBBTZ0>'	) 	) 	)TZ0?'	) 	) 	) 	) 	)r;   rg  r   s   @r9   rn  rn    sQ        8 8 8 8 [8) ) ) ) ) ) )r;   rn  c                   F     e Zd Ze fd            Zd Zd Zd Zd Z xZ	S )TestDFMMeasurementDisturbancec                 J     t                      j        dt          dd| d S )Nnone)ra  r@  r   rb  r   s      r9   r:   z)TestDFMMeasurementDisturbance.setup_class  sG     	D*&	D 	D<B	D 	D 	D 	D 	Dr;   c                 R    t          | j        j        | j        j        d           d S NrU  rz   r   rF   s    r9   r   z=TestDFMMeasurementDisturbance.test_smoothed_state_disturbance  s;    N5N5D	B 	B 	B 	B 	B 	Br;   c                     t          |                     | j        j        j                  j        | j        j        d           d S rv  )r   r"  r@   r   TrB   rF   s    r9   r   zCTestDFMMeasurementDisturbance.test_smoothed_measurement_disturbance  sM    MM$.IKLLNN;$	H 	H 	H 	H 	H 	Hr;   c                     t          |                     | j        j        j                  | j        j        j        d           d S rv  )r   r"  r   r   rx  r   rF   s    r9   r   zNTestDFMMeasurementDisturbance.test_simulation_smoothed_measurement_disturbance  sM    MM$*FHIIJ8:	G 	G 	G 	G 	G 	Gr;   c                 R    t          | j        j        | j        j        d           d S rv  r]  rF   s    r9   r   zHTestDFMMeasurementDisturbance.test_simulation_smoothed_state_disturbance  s5    J2J2	? 	? 	? 	? 	? 	?r;   )
r   r   r   r   r:   r   r   r   r   r   r   s   @r9   rr  rr    s        D D D D [DB B B
H H H
G G G
? ? ? ? ? ? ?r;   rr  c                 f   t           j                            d          }t           j        |dd df<   t	          j        |dd          }d|j        _        |                    |j	                  }d|j        _        |                    |j	                  }t          |j        |j                   d S )N)r   r>   r3  r   r   )	k_factorsfactor_orderTF)r*   r9  r;  r   r   DynamicFactorr.   rA   r   start_paramsr   llf)reset_randomstater   r  resres2s        r9   test_dfm_missingr    s     I(++E6E!RaR%L

&u
J
J
JC#CG
**S%
&
&C$CG::c&''DCGTX&&&&&r;   )0r   numpyr*   pandasr'   r   osstatsmodelsr   statsmodels.tsa.statespacer   #statsmodels.tsa.statespace.mlemodelr   (statsmodels.tsa.statespace.kalman_filterr   *statsmodels.tsa.statespace.kalman_smootherr   r   r	   (statsmodels.tsa.statespace.tests.resultsr
   numpy.testingr   r   pathdirnameabspath__file__current_pathr   r   r   r   r   r   r   r   r   r   r   r   r  r  r_  ri  rn  rr  r  r   r;   r9   <module>r     s4             				             5 5 5 5 5 5 8 8 8 8 8 8               K J J J J J 7 7 7 7 7 7 7 7wrwx8899f
 f
 f
 f
 f
 f
 f
 f
R
 
 
 
 
 
 
 
<< < < < <*D < < <
 
 
 
 
z 
 
 
@< < < < <0< < <
 
 
 
 
: 
 
 
@< < < < <,< < <
 
 
 
 
z 
 
 
8< < < < <(@ < < <
 
 
 
 
Z 
 
 
@< < < < <.< < <
 
 
 
 
 
 
 
@< < < < <*< < <q
 q
 q
 q
 q
 q
 q
 q
h' ' ' ' ' ' ' '
( 
( 
( 
( 
( 
( 
( 
() ) ) ) )' ) ) )? ? ? ? ?G ? ? ?6' ' ' ' 'r;   