
    Vfdm                        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         Olib/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          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:   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   s:   :(#..:5KKFKKK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                 L     t          t          |           j        |ddi| d S Nr7   T)r   r   r:   r5   argsr8   r   s      r9   r:   z/TestTrivariateConventionalAlternate.setup_class   sB    C1377C$(	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                 0    t          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   r*   nanendogr   rA   r   rB   r   r   r   r   r@   r   r   s         r9   r:   z4TestTrivariateConventionalPartialMissing.setup_class   sd   H6<<H	 		 	 	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                 L     t          t          |           j        |ddi| d S r   )r   r   r:   r   s      r9   r:   z=TestTrivariateConventionalPartialMissingAlternate.setup_class  sO    	?	 	t	G04	G?E	G 	G 	G 	G 	Gr;   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        G G G G [G< < < < < < <r;   r   c                   2     e Zd Zeef fd	            Z xZS )$TestTrivariateConventionalAllMissingc                 0    t          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   F)r   r   r:   r/   r   r   r   r*   r   r   r   rA   r   rB   r   r   r   r   r@   r   r   s         r9   r:   z0TestTrivariateConventionalAllMissing.setup_class  sd   D2C88D	 		 	 	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                 L     t          t          |           j        |ddi| d S r   )r   r   r:   r   s      r9   r:   z9TestTrivariateConventionalAllMissingAlternate.setup_class<  sB    M;SAAM$(	4!	4,2	4 	4 	4 	4 	4r;   c                 4    | j         j        j        dk    sJ d S r   r   rF   s    r9   r   zATestTrivariateConventionalAllMissingAlternate.test_using_alterateA  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 )TestTrivariateUnivariatec                     t          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   r   filter_univariaterA   r   rB   r   r*   r   r   r   r@   r   r   s         r9   r:   z$TestTrivariateUnivariate.setup_classF  s:   8&,,8II&III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   E  sJ        $ 
 
 
 
 
 [
 
 
 
 
r;   r   c                   4     e Zd Ze fd            Zd Z xZS )!TestTrivariateUnivariateAlternatec                 L     t          t          |           j        |ddi| d S r   )r   r   r:   r   s      r9   r:   z-TestTrivariateUnivariateAlternate.setup_classb  sB    A/55A$(	4!	4,2	4 	4 	4 	4 	4r;   c                 4    | j         j        j        dk    sJ d S r   r   rF   s    r9   r   z5TestTrivariateUnivariateAlternate.test_using_alterateg  r   r;   r   r   s   @r9   r   r   a  r   r;   r   c                   2     e Zd Zeef fd	            Z xZS )&TestTrivariateUnivariatePartialMissingc                 0    t          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   r   rA   r   rB   r   r   r   r   r@   r   r   s         r9   r:   z2TestTrivariateUnivariatePartialMissing.setup_classl  sd   F4c::F	 		 	 	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   k  r   r;   r   c                   4     e Zd Ze fd            Zd Z xZS )/TestTrivariateUnivariatePartialMissingAlternatec                 L     t          t          |           j        |ddi| d S r   )r   r   r:   r   s      r9   r:   z;TestTrivariateUnivariatePartialMissingAlternate.setup_class  sO    	=	 	t	G04	G?E	G 	G 	G 	G 	G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                 0    t          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   r   rA   r   rB   r   r   r   r   r@   r   r   s         r9   r:   z.TestTrivariateUnivariateAllMissing.setup_class  sd   B0#66B	 		 	 	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                 L     t          t          |           j        |ddi| d S r   )r   r   r:   r   s      r9   r:   z7TestTrivariateUnivariateAllMissingAlternate.setup_class  sB    K93??K$(	4!	4,2	4 	4 	4 	4 	4r;   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_forecasts2  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_error8  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_stateD  r^   r;   c                 N    t          | j        j        | j        j                   d S rZ   r`   rF   s    r9   rb   zTestDFM.test_filtered_state_covJ  rc   r;   c                 N    t          | j        j        | j        j                   d S rZ   re   rF   s    r9   rg   zTestDFM.test_predicted_stateP  rh   r;   c                 N    t          | j        j        | j        j                   d S rZ   rj   rF   s    r9   rl   z TestDFM.test_predicted_state_covV  rm   r;   c                 N    t          | j        j        | j        j                   d S rZ   ro   rF   s    r9   rq   zTestDFM.test_loglike\  rr   r;   c                 N    t          | j        j        | j        j                   d S rZ   rt   rF   s    r9   rv   zTestDFM.test_smoothed_statesb  r^   r;   c                 R    t          | j        j        | j        j        d           d S rx   r|   rF   s    r9   r~   z TestDFM.test_smoothed_states_covh  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_autocovo  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                 V     t          t          |           j        |dt          i| d S )Nsmooth_method)r   rZ  r:   r   r   s      r9   r:   z%TestDFMClassicalSmoothing.setup_class  sB    9'--9-1	=*	=5;	= 	= 	= 	= 	=r;   c                     t          | j        j        t                     t          | j        j        j        t                     t          | j        j        j        t                     d S rZ   )r   r/   r\  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:   r`  r   r   s   @r9   rZ  rZ    sQ        = = = = [=' ' ' ' ' ' 'r;   rZ  c                   4     e Zd Ze fd            Zd Z xZS )TestDFMUnivariateSmoothingc                 V     t          t          |           j        |dt          i| d S )Nfilter_method)r   rc  r:   r   r   s      r9   r:   z&TestDFMUnivariateSmoothing.setup_class  sB    :(#..:.2	>+	>6<	> 	> 	> 	> 	>r;   c                     t          | j        j        d           t          | j        j        j        d           t          | j        j        j        t
                     d S rK   )r   r/   r\  r^  r_  r	   rF   s    r9   r`  z-TestDFMUnivariateSmoothing.test_smooth_method  sX    TZ-q111TZ0>BBBTZ0?&	( 	( 	( 	( 	(r;   ra  r   s   @r9   rc  rc    sQ        > > > > [>( ( ( ( ( ( (r;   rc  c                   4     e Zd Ze fd            Zd Z xZS )TestDFMAlternativeSmoothingc                 V     t          t          |           j        ddt          i| d S )Nr\  r   )r   rh  r:   r   r   s      r9   r:   z'TestDFMAlternativeSmoothing.setup_class  sD    ;)3//; 	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/   r\  r   r^  r_  rF   s    r9   r`  z.TestDFMAlternativeSmoothing.test_smooth_method  s`    TZ-/ABBBTZ0>'	) 	) 	)TZ0?'	) 	) 	) 	) 	)r;   ra  r   s   @r9   rh  rh    sQ        8 8 8 8 [8) ) ) ) ) ) )r;   rh  c                   F     e Zd Ze fd            Zd Zd Zd Zd Z xZ	S )TestDFMMeasurementDisturbancec                 X     t          t          |           j        dt          dd| d S )Nnone)r\  r;  r   )r   rl  r:   r   r   s      r9   r:   z)TestDFMMeasurementDisturbance.setup_class  sN    =+S11= 	D*&	D 	D<B	D 	D 	D 	D 	Dr;   c                 R    t          | j        j        | j        j        d           d S NrP  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 rp  )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 rp  )r   r  r   r   rr  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 rp  rX  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   rl  rl    s        D D D D [DB B B
H H H
G G G
? ? ? ? ? ? ?r;   rl  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>   r.  r   r   )	k_factorsfactor_orderTF)r*   r4  r6  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   rZ  rc  rh  rl  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;   