
    Vfd"                         d Z ddlZddlZddlmZ ddlmZm	Z	 ddl
mZmZ ddlmZ ddlZdd	Zdd
Z	 	 ddZd Zd Zd ZdS )zQ
Tests for Chandrasekhar recursions

Author: Chad Fulton
License: Simplified-BSD
    N   )results_varmax)sarimaxvarmax)MEMORY_CONSERVEMEMORY_NO_LIKELIHOOD)assert_allcloseFc                    |j         }t          | j        |j                   t          | j                            |          |j                            |          d           | j        j        j        D ]?}|dk    r	t          t          | j        |          t          |j        |                     @g d}|s|dgz  }|D ]>}t          | j        |          }t          |j        |          }t          ||d           ?ddg}|s|g d	z  }|D ]>}t          | j        |          }t          |j        |          }t          ||d           ?|sEg d
}	|	D ]>}t          | j        |          }t          |j        |          }t          ||d           ?| j        j	        }
|s7| 
                    d|
dz   d          }| 
                    d|
dz   d          }n4| 
                    d|
dz             }| 
                    d|
dz             }t          |j        |j                   t          |j        |j                   d S )Ng|=)atolobs)predicted_statefiltered_state	forecastsforecasts_errorkalman_gaing-q=predicted_state_covfiltered_state_cov)standardized_forecasts_errortmp1tmp2tmp3tmp4)smoothed_statesmoothed_state_covsmoothed_state_autocovsmoothed_state_disturbancesmoothed_state_disturbance_cov smoothed_measurement_disturbance$smoothed_measurement_disturbance_covscaled_smoothed_estimatorscaled_smoothed_estimator_covsmoothing_errorsmoothed_forecastssmoothed_forecasts_errorsmoothed_forecasts_error_cov
   2   (   )startenddynamic)r)   r*   )paramsr	   llfmodel	score_obsssmshapesgetattrfilter_resultsnobsget_predictionpredicted_meanse_mean)	res_chandres_origmemory_conserver,   namefilter_attractualdesiredfilter_attr_burnsmoothed_attrr4   
pred_chand	pred_origs                Slib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_chandrasekhar.pycheck_outputrD      s   _FIM8<000IO--f55N,,V445B B B B #* @ @5==	 8$?? 7>>	@ 	@ 	@ 	@& & &K  '& 5 51488(1488e44444-/CD          	  ! 5 51488(1488e44444 9	9 	9 	9 " 	9 	9DY5t<<Fh5t<<GFG%88888 ?D F--BD2I68 . : :
,,24"957 - 9 9		 --BD2I-FF
,,24"9,EE	J-y/GHHHJ&	(9:::::    c                    t          j        ddd          }t          j        t          j        g d|          }t          j        |d                                                   j        dd	         }t          j
        |fi |}t          j
        |fi |}d
|j        _        |j        }| |j        _        | |j        _        |                    |          }|                    |          }	t!          ||	           d S )N
1960-01-01
1982-10-01QSfreqinvincconsumpcolumnsindexrM   
1960-04-01
1978-10-01T)pd
date_range	DataFramer   lutkepohl_datanplogdifflocr   SARIMAXr0   filter_chandrasekharstart_paramsfilter_univariatesmoothrD   )
r`   kwargsrR   dtaendogmod_orig	mod_chandr,   r8   r9   s
             rC   check_univariate_chandrasekharrg   Z   s    M,4@@@E
,~4888G G GCF3u:##%%),|*CDEu////H0000I)-IM&"F%6HL"&7IM#  ((I v&&HH%%%%%rE   c                 B   t          j        ddd          }t          j        t          j        g d|          }t          j        |d                                                   |d<   t          j        |d	                                                   |d
<   t          j        |d                                                   |d<   |j        dddd
gf         }t          j
        |fi |}t          j
        |fi |}d|j        _        |j        }	| |j        _        | |j        _        |r:t          j        ddgddgg          |d<   t          j        ddgddgg          |d<   |r{|j                            t"          t$           z             |j                            t"          t$           z             |                    |	          }
|                    |	          }n*|                    |	          }
|                    |	          }t+          |
||           d S )NrG   rH   rI   rJ   rL   rP   rM   dln_invrN   dln_incrO   dln_consumprS   rT   T      ?      ?obs_cov)r:   )rU   rV   rW   r   rX   rY   rZ   r[   r\   r   VARMAXr0   r^   r_   r`   arrayset_conserve_memoryr   r   filterra   rD   )r`   gen_obs_covr:   rb   rR   rc   rd   re   rf   r,   r8   r9   s               rC    check_multivariate_chandrasekharrt   r   s1    M,4@@@E
,~4888G G GCVCJ'',,..C	NVCJ'',,..C	NI//4466CGL-	9/EEFE}U--f--He..v..I)-IM&"F%6HL"&7IM# 4 hS	),b	(3 4 4!x"c),b	)3  4  4	)  
+(( 444	6 	6 	6)) 444	6 	6 	6 $$V,,	??6**$$V,,	??6**HoFFFFFFrE   c                      t          d           t          dd           t          d           t          dd           t          dd           t          dd           t          ddd	           d S )
NFr`   Tr`   concentrate_scaler`   measurement_errordiagonalr`   error_cov_typer`   rs   r`   rs   r:   rg   rt    rE   rC   test_chandrasekhar_conventionalr      s    "U;;;;"U59; ; ; ; %u====$u7;= = = =$u4>@ @ @ @$u157 7 7 7$u15tM M M M M MrE   c                      t          d           t          dd           t          d           t          dd           t          dd           t          dd           t          ddd           d S )	NTrv   rw   ry   r{   r|   r~   r   r   r   rE   rC   test_chandrasekhar_univariater      s    "T::::"T59; ; ; ; %t<<<<$t7;= = = =$t4>@ @ @ @$t157 7 7 7$t15tM M M M M MrE   c                  `   t          j        d          } t           j        | d<   t          j        |           }d|j        _        t          j        t          d          5  |
                    ddg           d d d            n# 1 swxY w Y   t          j        d          } t          j        |           }d|j        _        d|j        _        t          j        t          d          5  |
                    ddg           d d d            n# 1 swxY w Y   t          j        d          } t          j        |           }d|j        _        t          j        d	          |d
<   t          j        t          d          5  |
                    ddg           d d d            d S # 1 swxY w Y   d S )Nr&   r   Tz6Cannot use Chandrasekhar recursions with missing data.)matchrm   rl   z9Cannot use Chandrasekhar recursions with filtered timing.)r   r   r&   rn   zeCannot use Chandrasekhar recursions with time-varying system matrices \(except for intercept terms\).)rY   zerosnanr   r]   r0   r^   pytestraisesRuntimeErrorrr   timing_init_filteredones)rd   mods     rC   test_invalidr      sX   
 HRLLEvE!H
/%
 
 C#'CG 	| -M 
O 
O 
O  

C:              
 HRLLE
/%
 
 C#'CG #'CG 	| -7 
9 
9 
9   	

C:               HRLLE
/%
 
 C#'CG WZ((C	N	| -C 
E 
E 
E   	

C:	                 s6   BB
B)DDD>F##F'*F')F)FFF)__doc__numpyrY   pandasrU   resultsr   statsmodels.tsa.statespacer   r   (statsmodels.tsa.statespace.kalman_filterr   r   numpy.testingr	   r   rD   rg   rt   r   r   r   r   rE   rC   <module>r      s!            # # # # # # 6 6 6 6 6 6 6 6+ + + + + + + + ) ) ) ) ) ) D; D; D; D;N& & & &0 8=HM(G (G (G (GVM M M M M M          rE   