
    !gLk                     ~   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j0                  j3                  ej0                  j5                  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/y)/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y)
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                  j%                          y )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         l/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/statespace/tests/test_collapsed.pysetup_classzTrivariate.setup_class"   s   +11 ||KK--lFG$
 "	
 ffT%[)Ugs*WFF4;'$w-7S	BxB6BLL$$	-1CII* "$		(:(:!;		+ !hhc
)*c
)*T
(4 5		( #%((S#J-.!H,6 #7		,!ww7		)!#"a!1		+ 			002    c                 x   | 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       y 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1999~~11===T^^--33A6:T^^77==a@!Dr;   c                     t        | j                  j                  dd d f   | j                  j                  dd d f          y Nr   r   r@   rD   rB   rF   s    r9   test_forecastszTrivariate.test_forecastsS   6    NN$$QT*NN$$QT*	
r;   c                     t        | j                  j                  dd d f   | j                  j                  dd d f          y rK   r   r@   forecasts_errorrB   rF   s    r9   test_forecasts_errorzTrivariate.test_forecasts_errorY   6    NN**1a40NN**1a40	
r;   c                     t        | j                  j                  ddd d f   | j                  j                  ddd d f          y rK   r   r@   forecasts_error_covrB   rF   s    r9   test_forecasts_error_covz#Trivariate.test_forecasts_error_cov_   :    NN..q!Qw7NN..q!Qw7	
r;   c                 l    t        | j                  j                  | j                  j                         y Nr   r@   filtered_staterB   rF   s    r9   test_filtered_statezTrivariate.test_filtered_statee   $    NN))NN))	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   r@   filtered_state_covrB   rF   s    r9   test_filtered_state_covz"Trivariate.test_filtered_state_covk   $    NN--NN--	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   r@   predicted_staterB   rF   s    r9   test_predicted_statezTrivariate.test_predicted_stateq   $    NN**NN**	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   r@   predicted_state_covrB   rF   s    r9   test_predicted_state_covz#Trivariate.test_predicted_state_covw   $    NN..NN..	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   r@   llf_obsrB   rF   s    r9   test_loglikezTrivariate.test_loglike}   $    NN""NN""	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   r@   smoothed_staterB   rF   s    r9   test_smoothed_stateszTrivariate.test_smoothed_states   r^   r;   c                 p    t        | j                  j                  | j                  j                  d       y N-C6?atolr   r@   smoothed_state_covrB   rF   s    r9   test_smoothed_states_covz#Trivariate.test_smoothed_states_cov   '    NN--NN--	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   )r   r@   smoothed_state_autocovrB   rF   s    r9   test_smoothed_states_autocovz'Trivariate.test_smoothed_states_autocov   s$    NN11NN11	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   r@    smoothed_measurement_disturbancerB   rF   s    r9   %test_smoothed_measurement_disturbancez0Trivariate.test_smoothed_measurement_disturbance   $    NN;;NN;;	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   r@   $smoothed_measurement_disturbance_covrB   rF   s    r9   )test_smoothed_measurement_disturbance_covz4Trivariate.test_smoothed_measurement_disturbance_cov   $    NN??NN??	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   r@   smoothed_state_disturbancerB   rF   s    r9   test_smoothed_state_disturbancez*Trivariate.test_smoothed_state_disturbance   $    NN55NN55	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   r@   smoothed_state_disturbance_covrB   rF   s    r9   #test_smoothed_state_disturbance_covz.Trivariate.test_smoothed_state_disturbance_cov   $    NN99NN99	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   )r   sim_asimulated_staterF   s    r9   test_simulation_smoothed_statez)Trivariate.test_simulation_smoothed_state   $    JJ&&JJ&&	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   )r   r   !simulated_measurement_disturbancerF   s    r9   0test_simulation_smoothed_measurement_disturbancez;Trivariate.test_simulation_smoothed_measurement_disturbance   s$    JJ88JJ88	
r;   c                 l    t        | j                  j                  | j                  j                         y rZ   )r   r   simulated_state_disturbancerF   s    r9   *test_simulation_smoothed_state_disturbancez5Trivariate.test_simulation_smoothed_state_disturbance   $    JJ22JJ2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  3DE










 [[
 
 [[
 





r;   r   c                   ,     e Zd Zeef fd	       Z xZS )TestTrivariateConventionalc                 d   t        |   |fi | | j                  j                  }| j                  j                  }| j                  j
                  }d| j                  _        d| j                  _        | j                  j                         | _	        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        d| j                  _        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        y 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   s2   E,V,yy~~))##99%% )-		%%)		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	 &+		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	r;   r   r   r   r   r   r:   __classcell__r   s   @r9   r   r      s    $ 
 
r;   r   c                   .     e Zd Ze fd       Zd Z xZS )#TestTrivariateConventionalAlternatec                 (    t        |   |ddi| y Nr7   Tr   r:   r5   argsr8   r   s      r9   r:   z/TestTrivariateConventionalAlternate.setup_class   #    $(	4!	4,2	4r;   c                 N    | j                   j                  j                  dk(  sJ y Nr   r/   _kalman_filterfilter_timingrF   s    r9   test_using_alteratez7TestTrivariateConventionalAlternate.test_using_alterate        zz((66!;;;r;   r   r   r   r   r:   r   r   r   s   @r9   r   r          4 4<r;   r   c                   ,     e Zd Zeef fd	       Z xZS )(TestTrivariateConventionalPartialMissingc                    t        |   |fi | | j                  j                  }| j                  j                  }| j                  j
                  }t        j                  | j                  j                  d dddf<   d| j                  _	        d| j                  _
        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        d| j                  _
        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        y 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\   		yy~~))##99%% ')ff		BsF
# )-		%%)		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	 &+		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	r;   r   r   s   @r9   r   r          $ 
 
r;   r   c                   .     e Zd Ze fd       Zd Z xZS )1TestTrivariateConventionalPartialMissingAlternatec                 (    t        |   |ddi| y r   r   r   s      r9   r:   z=TestTrivariateConventionalPartialMissingAlternate.setup_class      DCTCFCr;   c                 N    | j                   j                  j                  dk(  sJ y r   r   rF   s    r9   r   zETestTrivariateConventionalPartialMissingAlternate.test_using_alterate  r   r;   r   r   s   @r9   r   r         D D<r;   r   c                   ,     e Zd Zeef fd	       Z xZS )$TestTrivariateConventionalAllMissingc                    t        |   |fi | | j                  j                  }| j                  j                  }| j                  j
                  }t        j                  | j                  j                  d d ddf<   d| j                  _	        d| j                  _
        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        d| j                  _
        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        y Nr   r   Tr   Fr   r   s         r9   r:   z0TestTrivariateConventionalAllMissing.setup_class  sX   		yy~~))##99%% &(VV		2c6	" )-		%%)		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	 &+		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	r;   r   r   s   @r9   r   r     r   r;   r   c                   .     e Zd Ze fd       Zd Z xZS )-TestTrivariateConventionalAllMissingAlternatec                 (    t        |   |ddi| y r   r   r   s      r9   r:   z9TestTrivariateConventionalAllMissingAlternate.setup_class;  r   r;   c                 N    | j                   j                  j                  dk(  sJ y r   r   rF   s    r9   r   zATestTrivariateConventionalAllMissingAlternate.test_using_alterate@  r   r;   r   r   s   @r9   r   r   9      4 4<r;   r   c                   ,     e Zd Zeef fd	       Z xZS )TestTrivariateUnivariatec                 d   t        |   |fi | | j                  j                  }| j                  j                  }| j                  j
                  }d| j                  _        d| j                  _        | j                  j                         | _	        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        d| j                  _        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        y 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  s2   E,V,yy~~))##99%% '+		#%)		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	 &+		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	r;   r   r   s   @r9   r   r   D  s    $ 
 
r;   r   c                   .     e Zd Ze fd       Zd Z xZS )!TestTrivariateUnivariateAlternatec                 (    t        |   |ddi| y r   r   r   s      r9   r:   z-TestTrivariateUnivariateAlternate.setup_classa  r   r;   c                 N    | j                   j                  j                  dk(  sJ y r   r   rF   s    r9   r   z5TestTrivariateUnivariateAlternate.test_using_alteratef  r   r;   r   r   s   @r9   r   r   `  r   r;   r   c                   ,     e Zd Zeef fd	       Z xZS )&TestTrivariateUnivariatePartialMissingc                    t        |   |fi | | j                  j                  }| j                  j                  }| j                  j
                  }t        j                  | j                  j                  d dddf<   d| j                  _	        d| j                  _
        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        d| j                  _
        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        y 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\   		yy~~))##99%% ')ff		BsF
# '+		#%)		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	 &+		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	r;   r   r   s   @r9   r   r   j  r   r;   r   c                   .     e Zd Ze fd       Zd Z xZS )/TestTrivariateUnivariatePartialMissingAlternatec                 (    t        |   |ddi| y r   r   r   s      r9   r:   z;TestTrivariateUnivariatePartialMissingAlternate.setup_class  r   r;   c                 N    | j                   j                  j                  dk(  sJ y r   r   rF   s    r9   r   zCTestTrivariateUnivariatePartialMissingAlternate.test_using_alterate  r   r;   r   r   s   @r9   r   r     r   r;   r   c                   ,     e Zd Zeef fd	       Z xZS )"TestTrivariateUnivariateAllMissingc                    t        |   |fi | | j                  j                  }| j                  j                  }| j                  j
                  }t        j                  | j                  j                  d d ddf<   d| j                  _	        d| j                  _
        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        d| j                  _
        | j                  j                         | _        | j                  j                  t        j                  ||z        t        j                  ||z        t        j                  | j                  j                              | _        y r   r   r   s         r9   r:   z.TestTrivariateUnivariateAllMissing.setup_class  sX   		yy~~))##99%% &(VV		2c6	" '+		#%)		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	 &+		"		((*II11-/XXdWn-E')xxx'@#%88CII,>,>#? 2 
	r;   r   r   s   @r9   r   r     r   r;   r   c                   .     e Zd Ze fd       Zd Z xZS )+TestTrivariateUnivariateAllMissingAlternatec                 (    t        |   |ddi| y r   r   r   s      r9   r:   z7TestTrivariateUnivariateAllMissingAlternate.setup_class  r   r;   c                 N    | j                   j                  j                  dk(  sJ y r   r   rF   s    r9   r   z?TestTrivariateUnivariateAllMissingAlternate.test_using_alterate  r   r;   r   r   s   @r9   r  r    r   r;   r  c                   F   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y)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<   |j                  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H HH9:<IHHz:&>'19&=&? @L66!9K88c5\&+S\%3 4K**3/
r;   c                     | j                   |fi |}|j                  g d       |j                  j                  }t	        j
                  |j                  |j                  f      }t        |j                        D ]K  }|j                  ||j                  j                  d       t	        j                  |j                        ||<   M |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$
'gg!!hh#,,/0sxx 	0AHHQ1115XXc../CF	0 
r;   c                 	   t         j                  j                         j                  }t	        j
                  ddd      |_        |g d   }t        j                  |      j                         j                  dd  dz  }|dk(  rGt        j                  |j                  d d	d d f<   t        j                  |j                  d
dd d f<   n|dk(  rCt        j                  |j                  dd	df<   t        j                  |j                  d
ddf<   n|dk(  rt        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$                  j'                  d       t        j$                  j)                  ||	z        }t        j$                  j)                  ||
z        }t        j$                  j)                  | j                  j*                        }d| j                  _        | j                  j/                         | _        | j                  j3                         | _        | j4                  j7                  |||       d| j                  _        | j                  j/                         | _        | j                  j3                         | _        | j:                  j7                  |||       |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        jB                  t        j@                  g d$            |d%<   t        j@                  d&d'gd(d)gg      |d*d dd df<   t        jD                  d      |d*dd d df<   t        jD                  d      |d+d dd df<   t        j@                  d,d-gd-d.gg      |d/<   |jG                  d0       |j                  | _$        |j                  j/                         | _%        y )1Nz
1959-01-01z	2009-7-01r   )startendr   )realgdprealconsrealinvr   i  all2   w      partialr   mixed   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  s      ,,.33MM&1>	78ffVn!!#((,s2E>!vvCHHSbS!V#%66CHHSWaZ i "CHHQrT1W#%66CHHSWaZ g "CHHQrT1W!#CHHRUAX!#CHHRUAX#%66CHHSWaZ #%66CHHSWaZ cs-f-GG	yy~~))##99%%
		tiiD7N3iiD8O4iiCII$6$67 &*		"		((*II113			C6925 	 	7
 &+		"		((*II113			C6925 	 	7
 	

%t,s=Q=f= "<*E+6
*C+8+*F*H !IHbqb"1" HH9:<I$&HHz:.F/99.E.G %HL"1"bqb !$&FF1IL!"bqb !#%66!9K!RaR 88c5\&+S\%3 4K 	**3/!gg # 0r;   c                 x   | 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       y r=   r?   rF   s    r9   rH   zTestDFM.test_using_collapsed"  rI   r;   c                     t        | j                  j                  dd d f   | j                  j                  dd d f          y rK   rL   rF   s    r9   rM   zTestDFM.test_forecasts0  rN   r;   c                     t        | j                  j                  dd d f   | j                  j                  dd d f          y rK   rP   rF   s    r9   rR   zTestDFM.test_forecasts_error6  rS   r;   c                     t        | j                  j                  ddd d f   | j                  j                  ddd d f          y rK   rU   rF   s    r9   rW   z TestDFM.test_forecasts_error_cov<  rX   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r[   rF   s    r9   r]   zTestDFM.test_filtered_stateB  r^   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r`   rF   s    r9   rb   zTestDFM.test_filtered_state_covH  rc   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   re   rF   s    r9   rg   zTestDFM.test_predicted_stateN  rh   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   rj   rF   s    r9   rl   z TestDFM.test_predicted_state_covT  rm   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   ro   rF   s    r9   rq   zTestDFM.test_loglikeZ  rr   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   rt   rF   s    r9   rv   zTestDFM.test_smoothed_states`  r^   r;   c                 p    t        | j                  j                  | j                  j                  d       y 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	       y )
Nr      r   r      ry   rz   Hz>)r   r@   r   rB   r?  r}   rF   s    r9   r   z$TestDFM.test_smoothed_states_autocovm  s     	NN11NN11	
 	==aAaCiH..AA"1"ab!A#+N!	# 	==aAbDjI..AA"1"ab!"*M!	#r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   rF   s    r9   r   z-TestDFM.test_smoothed_measurement_disturbance  r   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   rF   s    r9   r   z1TestDFM.test_smoothed_measurement_disturbance_cov  r   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   rF   s    r9   r   z'TestDFM.test_smoothed_state_disturbance  r   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   r   rF   s    r9   r   z+TestDFM.test_smoothed_state_disturbance_cov  r   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   )r   r   r   r   rF   s    r9   r   z&TestDFM.test_simulation_smoothed_state  r   r;   c                 l    t        | j                  j                  | j                  j                         y rZ   )r   r   r   r   rF   s    r9   r   z8TestDFM.test_simulation_smoothed_measurement_disturbance  s$    JJ88JJ88	
r;   c                 l    t        | j                  j                  | j                  j                         y 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1HE









#( [[
 
 [[
 



 [[
 

r;   r  c                   .     e Zd Ze fd       Zd Z xZS )TestDFMClassicalSmoothingc                 0    t        |   |dt        i| y )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               y rZ   )r   r/   ra  r   _kalman_smoother_smooth_methodrF   s    r9   test_smooth_methodz,TestDFMClassicalSmoothing.test_smooth_method  sQ    TZZ--/?@TZZ00>>%	'TZZ00??%	'r;   r   r   r   r   r:   rf  r   r   s   @r9   r_  r_    s    = ='r;   r_  c                   .     e Zd Ze fd       Zd Z xZS )TestDFMUnivariateSmoothingc                 0    t        |   |dt        i| y )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
               y rK   )r   r/   ra  rd  re  r	   rF   s    r9   rf  z-TestDFMUnivariateSmoothing.test_smooth_method  sM    TZZ--q1TZZ00>>BTZZ00??&	(r;   rg  r   s   @r9   ri  ri    s    > >(r;   ri  c                   .     e Zd Ze fd       Zd Z xZS )TestDFMAlternativeSmoothingc                 0    t        |   ddt        i| y )Nra  r   )r   r:   r   r   s      r9   r:   z'TestDFMAlternativeSmoothing.setup_class  s      	8,	806	8r;   c                    t        | j                  j                  t               t        | j                  j                  j                  t               t        | j                  j                  j
                  t               y rZ   )r   r/   ra  r   rd  re  rF   s    r9   rf  z.TestDFMAlternativeSmoothing.test_smooth_method  sQ    TZZ--/ABTZZ00>>'	)TZZ00??'	)r;   rg  r   s   @r9   rn  rn    s    8 8)r;   rn  c                   @     e Zd Ze fd       Zd Zd Zd Zd Z xZ	S )TestDFMMeasurementDisturbancec                 2    t        |   dt        dd| y )Nnone)ra  r@  r   rb  r   s      r9   r:   z)TestDFMMeasurementDisturbance.setup_class  s%     	D*&	D<B	Dr;   c                 p    t        | j                  j                  | j                  j                  d       y NrU  rz   r   rF   s    r9   r   z=TestDFMMeasurementDisturbance.test_smoothed_state_disturbance  s'    NN55NN55D	Br;   c                     t        | j                  | j                  j                  j                        j                  | j
                  j                  d       y rv  )r   r"  r@   r   TrB   rF   s    r9   r   zCTestDFMMeasurementDisturbance.test_smoothed_measurement_disturbance  s<    MM$..IIKKLNNNN;;$	Hr;   c                     t        | j                  | j                  j                  j                        | j
                  j                  j                  d       y rv  )r   r"  r   r   rx  r   rF   s    r9   r   zNTestDFMMeasurementDisturbance.test_simulation_smoothed_measurement_disturbance  s<    MM$**FFHHIJJ88::	Gr;   c                 p    t        | j                  j                  | j                  j                  d       y rv  r]  rF   s    r9   r   zHTestDFMMeasurementDisturbance.test_simulation_smoothed_state_disturbance  s&    JJ22JJ22	?r;   )
r   r   r   r   r:   r   r   r   r   r   r   s   @r9   rr  rr    s.    D DB
H
G
?r;   rr  c                    t         j                  j                  d      }t         j                  |dd df<   t	        j
                  |dd      }d|j                  _        |j                  |j                        }d|j                  _        |j                  |j                        }t        |j                  |j                         y )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     II(+E66E!RaR%L

&
&u
JC#CGG
**S%%
&C$CGG::c&&'DCGGTXX&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     sA      	   5 8  K 7wwrwwx89f
 f
R
 
<<*D <
z 
@<0<
: 
@<,<
z 
8<(@ <
Z 
@<.<
 
@<*<q
 q
h' '
( 
()' )?G ?6'r;   