
    M/Phȿ                        d Z ddlZddlZddlZddlZddlmZmZm	Z	 ddl
ZddlZddlmZmZ ddlmZ ddlmZ ej                            ej                            e                    Zej                            dd	          Z ej        ej                            ee                    Zej                            dd
          Z ej        ej                            e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*d# Z+d$ Z,d% Z-d& Z.d' Z/d( Z0d) Z1d* Z2ej3        4                    d+g d,          ej3        4                    d-d.d/g          d0                         Z5d1 Z6d2 Z7d3 Z8d4 Z9dS )5zF
Tests for VARMAX models

Author: Chad Fulton
License: Simplified-BSD
    N)assert_equalassert_allcloseassert_raises)varmaxsarimax)forg   )results_varmaxresultszresults_var_stata.csvzresults_varmax_stata.csvc                       e Zd ZdZd Zej        j        d             Zej        j        d             Z	d Z
d Zd Zdd	Zdd
Zd ZdS )CheckVARMAXz
    Test Vector Autoregression against Stata's `dfactor` code (Stata's
    `var` function uses OLS and not state space / MLE, so we cannot get
    equivalent log-likelihoods)
    c                    t          j        d          5  t          j        d           | j                            dd          }d| j        _        d| j        _        | j                            |j        ddd	          }d| j        _        d| j        _        t          |j	        | j
        j	        d
           d d d            d S # 1 swxY w Y   d S )NTrecordalwaysd   F)maxiterdispnmi  )methodr   r   h㈵>rtol)warningscatch_warningssimplefiltermodelfitenforce_stationarityenforce_invertibilityparamsr   llfr   )selfr   s     l/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_varmax.pytest_mlezCheckVARMAX.test_mle%   s!   $D111 	F 	F!(+++ jnnSun==G.3DJ+/4DJ,jnnW^D$*/ % 1 1G.2DJ+/3DJ,GK)9EEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   B%CCCc                    | j         }|                    |j                   t          |j                  t          |j                  k    sJ |                    |                    |j                            }t          ||j                   d|_        d|_	        |                    |                    |j                            }d|_        d|_	        t          ||j                   d S )NFT)
r   filterstart_paramslenparam_namestransform_paramsuntransform_paramsr   r   r    )r#   r   actuals      r$   test_paramszCheckVARMAX.test_params4   s     
U'(((5%&&#e.?*@*@@@@@ ''$$U%788: : 2333 &+"&+#''$$U%788: : &*"&*# 233333    c                 \   | j                                          | j        j        dk    rt	          j        | j         j        j                           }|                    j	        j	        j        z            t	          j        fdt          j                  D                       }t          | j         j        |           nt          | j         j        d            j        dk    rt	          j        | j         j        j                           }|                    j	        j	        j        z            t	          j        fdt          j                  D                       }t          | j         j        |           d S t          | j         j        d            d S )Nr   c                 \    g | ](}d j         |j         z  |dz   j         z  f         )S Nr	   k_endog.0icoefficientsr   s     r$   
<listcomp>z,CheckVARMAX.test_results.<locals>.<listcomp>Y   X     - - -  ^em^u}_ac5=-@@A B- - -r/   c                 \    g | ](}d j         |j         z  |dz   j         z  f         )S r2   r3   r5   s     r$   r9   z,CheckVARMAX.test_results.<locals>.<listcomp>g   r:   r/   )r   summaryr   k_arnparrayr!   
_params_arreshaper4   ranger   coefficient_matrices_vark_ma
_params_macoefficient_matrices_vma)r#   	params_arcoefficient_matrices	params_mar8   r   s       @@r$   test_resultszCheckVARMAX.test_resultsM   s    	
 :>>!4U5E!FGGI$,,U]-2]UZ-GI IL#%8 - - - - - uz**- - - $ $ 
 >-/ / / / >EEE:>>!4U5E!FGGI$,,U]-2]UZ-GI IL $&8 - - - - - uz**- - - $ $ 
 >-/ / / / / >EEEEEr/   c                 T    t          | j        j        | j        d         d           d S )Nloglikeư>r   )r   r   r"   truer#   s    r$   test_loglikezCheckVARMAX.test_loglikeq   s)    ($)I*>TJJJJJJr/   c                 T    t          | j        j        | j        d         d           d S )Naic   atol)r   r   rR   rN   rO   s    r$   test_aiczCheckVARMAX.test_aict   )    ($)E*:CCCCCCr/   c                 T    t          | j        j        | j        d         d           d S )NbicrS   rT   )r   r   rY   rN   rO   s    r$   test_biczCheckVARMAX.test_bicx   rW   r/   rM   c                 d    t           | j        j        dd|i|| j        d         |           d S )NendpredictrT    r   r   r]   rN   )r#   r\   rU   kwargss       r$   test_predictzCheckVARMAX.test_predict|   sM     DL 33S3F33Ii 	 	 	 	 	 	r/   c                 f    t           | j        j        d||d|| j        d         |           d S )Nr\   dynamicdynamic_predictrT   r^   r_   )r#   r\   rd   rU   r`   s        r$   test_dynamic_predictz CheckVARMAX.test_dynamic_predict   sP     DL DS'DDVDDI'(	 	 	 	 	 	r/   c                 n    | j         j        }d | j         _        | j         j        }t          ||           d S N)r   standardized_forecasts_error_standardized_forecasts_errorr   )r#   
cython_sfe
python_sfes      r$   !test_standardized_forecasts_errorz-CheckVARMAX.test_standardized_forecasts_error   s6    \>
592\>

J/////r/   N)rM   )__name__
__module____qualname____doc__r%   pytestmarksmoker.   rJ   rP   rV   rZ   ra   rf   rm   r^   r/   r$   r   r      s         F F F [4 4 40 [!F !F !FFK K KD D DD D D      0 0 0 0 0r/   r   c                   H     e Zd Zedg dfd            Z fdZ fdZ xZS )CheckLutkepohlapprox)dln_invdln_incdln_consumpc           	      D   || _         t          j        t          j        g dt          j        ddd                    }t          j        |d                                                   |d<   t          j        |d	                                                   |d
<   t          j        |d                                                   |d<   |j	        dd|f         }	t          j        |	f|||d|| _        | j                            |d         |          | _        d S )Ninvincconsump
1960-01-01
1982-10-01QSfreqcolumnsindexr}   rx   r~   ry   r   rz   z
1960-04-01
1978-10-01ordertrenderror_cov_typer!   cov_type)rN   pd	DataFramer
   lutkepohl_data
date_ranger>   logdifflocr   VARMAXr   smoothr   )
clsrN   r   r   r   r   included_varsr`   dtaendogs
             r$   setup_classzCheckLutkepohl.setup_class   s"    l)3L3L3L-lFFFH H H E
++0022IE
++0022IVC	N3388::M\1=@AM% KuE1?K KCIK K	 i&&tH~&IIr/   c                 >     t                      j        dddi| d S )Nr\   r   r^   superra   r#   r`   	__class__s     r$   ra   zCheckLutkepohl.test_predict   s+    88888888r/   c                 @     t                      j        dddd| d S )Nr   z
1961-01-01rc   r^   r   rf   r   s     r$   rf   z#CheckLutkepohl.test_dynamic_predict   s?    $$ 	
l	
 	
6<	
 	
 	
 	
 	
r/   )rn   ro   rp   classmethodr   ra   rf   __classcell__r   s   @r$   rv   rv      s        FN"G"G"GJ J J [J(9 9 9 9 9
 
 
 
 
 
 
 
 
r/   rv   c                   @     e Zd Ze fd            Zd Zd Zd Z xZS )TestVARc                 
   t           j                                        }t          j        dd          g d         |d<   t          j        dd          g d         |d<   t                                          |ddd	           d S )
Nr	   )	predict_1	predict_2	predict_3r]   )dyn_predict_1dyn_predict_2dyn_predict_3re   r	   r   nunstructuredr   )r
   lutkepohl_var1copyvar_resultsilocr   r   r   rN   r   s     r$   r   zTestVAR.setup_class   s    ,1133%*122. 0= 0= 0= >Y #."2122"6 8I 8I 8I #J 	s> 	 	
 	
 	
 	
 	
r/   c                     | j                                                                         dz  }t          |dz  | j        d         d           d S N      ?   var_oim-C6?rT   r   _cov_params_approxdiagonalr   rN   r#   bses     r$   test_bse_approxzTestVAR.test_bse_approx   L    l--//88::C?Q	) 44@@@@@@r/   c                     | j                                                                         dz  }t          |dz  | j        d         d           d S Nr   r   r   {Gz?rT   r   _cov_params_oimr   r   rN   r   s     r$   test_bse_oimzTestVAR.test_bse_oim   L    l**,,5577<Q	) 44@@@@@@r/   c                    | j                                         }d |j        D             }| j        d         }t	          j        d|d                   sJ t          | j        j                  D ]}|| j        j        z  }||dz            }| j        j	        |         }t	          j        d|z  |          sJ t          |                    d                    dk    sJ t	          j        d	||dz            z  |          sJ t	          j        d
||dz            z  |          sJ t	          j        d||dz            z  |          sJ |d         }t	          j        d|          sJ t          |                    d                    dk    sJ || j        j                 }| j        j        | j        j                 }t          t          |                    D ]+}t	          j        ||          d||         d|          sJ ,d S )Nc                 ,    g | ]}t          |          S r^   strr6   tables     r$   r9   z(TestVAR.test_summary.<locals>.<listcomp>       999#e**999r/   r!   Model:.*VAR\(1\)r   r   Results for equation %s
   L1.dln_inv +%.4fL1.dln_inc +%.4fr	   L1.dln_consump +%.4fError covariance matrix    +.4fr   r<   tablesrN   researchrB   r   r4   endog_namesr)   split_params_state_covr*   	r#   r<   r   r!   r7   offsetr   namenamess	            r$   test_summaryzTestVAR.test_summary   s7   ,&&((99'.9998$ y,fQi88888 tz)** 	$ 	$A++F1Q3KE :)!,D96=uEEEEE u{{4(())Q.... 9/&!2DDeLLLLL9/&!2DDeLLLLL93fVaZ6HH"$ $ $ $ $ $ r
y2E:::::5;;t$$%%++++
45
&tz'CDs5zz"" 	D 	DA9a;;F1I;;;UCCCCCC	D 	Dr/   	rn   ro   rp   r   r   r   r   r   r   r   s   @r$   r   r      |        

 

 

 

 [

A A AA A A"D "D "D "D "D "D "Dr/   r   c                   @     e Zd Ze fd            Zd Zd Zd Z xZS )TestVAR_diagonalc                 
   t           j                                        }t          j        dd          g d         |d<   t          j        dd          g d         |d<   t                                          |ddd	           d S )
Nr	   predict_diag1predict_diag2predict_diag3r]   dyn_predict_diag1dyn_predict_diag2dyn_predict_diag3re   r   r   r   r   )r
   lutkepohl_var1_diagr   r   r   r   r   r   s     r$   r   zTestVAR_diagonal.setup_class   s    16688%*122. 0A 0A 0A BY #."2122"6 8M 8M 8M #N 	s: 	 	
 	
 	
 	
 	
r/   c                     | j                                                                         dz  }t          |dz  | j        d         d           d S )Nr   r   r   r   rT   r   r   s     r$   r   z TestVAR_diagonal.test_bse_approx   r   r/   c                     | j                                                                         dz  }t          |dz  | j        d         d           d S r   r   r   s     r$   r   zTestVAR_diagonal.test_bse_oim   r   r/   c                    | j                                         }d |j        D             }| j        d         }t	          j        d|d                   sJ t          | j        j                  D ]}|| j        j        z  }||dz            }| j        j	        |         }t	          j        d|z  |          sJ t          |                    d                    dk    sJ t	          j        d	||dz            z  |          sJ t	          j        d
||dz            z  |          sJ t	          j        d||dz            z  |          sJ |d         }t	          j        d|          sJ t          |                    d                    dk    sJ || j        j                 }| j        j        | j        j                 }t          t          |                    D ]+}t	          j        ||          d||         d|          sJ ,d S )Nc                 ,    g | ]}t          |          S r^   r   r   s     r$   r9   z1TestVAR_diagonal.test_summary.<locals>.<listcomp>  r   r/   r!   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   s	            r$   r   zTestVAR_diagonal.test_summary  s7   ,&&((99'.9998$ y,fQi88888 tz)** 	$ 	$A++F1Q3KE :)!,D96=uEEEEE u{{4(())Q.... 9/&!2DDeLLLLL9/&!2DDeLLLLL93fVaZ6HH"$ $ $ $ $ $ r
y2E:::::5;;t$$%%****
45
&tz'CDs5zz"" 	D 	DA9a;;F1I;;;UCCCCCC	D 	Dr/   r   r   s   @r$   r   r      r   r/   r   c                   \     e Zd ZdZe fd            Zd Zd Zd Zd Z	d Z
d Zd	 Z xZS )
TestVAR_measurement_errora  
    Notes
    -----
    There does not appear to be a way to get Stata to estimate a VAR with
    measurement errors. Thus this test is mostly a smoke test that measurement
    errors are setup correctly: it uses the same params from TestVAR_diagonal
    and sets the measurement errors variance params to zero to check that the
    loglike and predict are the same.

    It also checks that the state-space representation with positive
    measurement errors is correct.
    c                    t           j                                        }t          j        dd          g d         |d<   t          j        dd          g d         |d<   t                                          |dddd	
           g d| _        t          j	        |d         d d         | j        f         }| j
                            |          | _        d S )Nr	   r   r]   r   re   r   r   r   T)r   r   r   measurement_error)      ?       @g      @r!   )r
   lutkepohl_var1_diag_measr   r   r   r   r    true_measurement_error_variancesr>   r_r   r   results2)r   rN   r!   r   s      r$   r   z%TestVAR_measurement_error.setup_class3  s    6;;==%*122. 0A 0A 0A BY #."2122"6 8M 8M 8M #N 	s:" 	 	
 	
 	
 0<||,tH~crc*;< =y''//r/   c                     d S rh   r^   rO   s    r$   r%   z"TestVAR_measurement_error.test_mleG  	     	r/   c                     d S rh   r^   rO   s    r$   r   z)TestVAR_measurement_error.test_bse_approxL  r	  r/   c                     d S rh   r^   rO   s    r$   r   z&TestVAR_measurement_error.test_bse_oimQ      r/   c                     d S rh   r^   rO   s    r$   rV   z"TestVAR_measurement_error.test_aicU  r	  r/   c                     d S rh   r^   rO   s    r$   rZ   z"TestVAR_measurement_error.test_bicZ  r	  r/   c                    | j         j        j                                        D ]}|dk    r	|dk    rR| j        j        j        }t          j        | j	                  d d d d t          j
        f         }t          ||           at          t          | j        j        |          t          | j        j        |                     d S )Nobsobs_cov)r   ssmshapeskeysr  filter_resultsr  r>   diagr  newaxisr   getattrr   )r#   r   r-   desireds       r$   test_representationz-TestVAR_measurement_error.test_representation_  s     JN)..00 
	I 
	IDu}}""5='9; ;;<11aaa;KMVW----WT]%A4HH$T\%@$GGI I I I
	I 
	Ir/   c                 V   | j                                         }d |j        D             }| j        d         }t	          j        d|d                   sJ t          | j        j                  D ]}|| j        j        z  }||dz            }| j        j	        |         }t	          j        d|z  |          sJ t          |                    d                    dk    sJ t	          j        d	||dz            z  |          sJ t	          j        d
||dz            z  |          sJ t	          j        d||dz            z  |          sJ t	          j        d||dz             z  |          sJ |d         }t	          j        d|          sJ t          |                    d                    dk    sJ || j        j                 }| j        j        | j        j                 }t          t          |                    D ]+}t	          j        ||          d||         d|          sJ ,d S )Nc                 ,    g | ]}t          |          S r^   r   r   s     r$   r9   z:TestVAR_measurement_error.test_summary.<locals>.<listcomp>p  r   r/   r!   r   r   r   r   r   	   r   r   r	   r   zmeasurement_variance +%.4gr   r   r   r   r   r   r   s	            r$   r   z&TestVAR_measurement_error.test_summaryn  sj   ,&&((99'.9998$ y,fQi88888 tz)** 	$ 	$A++F1Q3KE :)!,D96=uEEEEE u{{4(())Q.... 9/&!2DDeLLLLL9/&!2DDeLLLLL93fVaZ6HH"$ $ $ $ $99FQqS6NJ"$ $ $ $ $ $ r
y2E:::::5;;t$$%%****
45
&tz'CDs5zz"" 	D 	DA9a;;F1I;;;UCCCCCC	D 	Dr/   )rn   ro   rp   rq   r   r   r%   r   r   rV   rZ   r  r   r   r   s   @r$   r   r   &  s          0 0 0 0 [0&  
  
    
  
I I I$D $D $D $D $D $D $Dr/   r   c                   F     e Zd Ze fd            Zd Zd Zd Zd Z xZ	S )TestVAR_obs_interceptc                    t           j                                        }t          j        dd          g d         |d<   t          j        dd          g d         |d<   t                                          |ddd|d	         
           d S )Nr	   )predict_int1predict_int2predict_int3r]   )dyn_predict_int1dyn_predict_int2dyn_predict_int3re   r   r   r   obs_intercept)r   r   r   r'  )r
   lutkepohl_var1_obs_interceptr   r   r   r   r   r   s     r$   r   z!TestVAR_obs_intercept.setup_class  s    :??AA%*122. 0@ 0@ 0@ AY #."2122"6 8L 8L 8L #M 	c%T/5J 	 	
 	
 	
 	
 	
r/   c                     | j                                                                         dz  }t          |dz  | j        d         d           d S r   r   r   s     r$   r   z%TestVAR_obs_intercept.test_bse_approx  r   r/   c                     | j                                                                         dz  }t          |dz  | j        d         d           d S r   r   r   s     r$   r   z"TestVAR_obs_intercept.test_bse_oim  r   r/   c                     d S rh   r^   rO   s    r$   rV   zTestVAR_obs_intercept.test_aic  r	  r/   c                     d S rh   r^   rO   s    r$   rZ   zTestVAR_obs_intercept.test_bic  r	  r/   )
rn   ro   rp   r   r   r   r   rV   rZ   r   r   s   @r$   r  r    s        
 
 
 
 [
A A AA A A  
      r/   r  c                   h     e Zd Ze fd            Zd Zd Zd Zd Zd Z	 fdZ
d Zd	 Zd
 Z xZS )TestVAR_exogc           	      f   t           j                                        }t          j        dd         g d         |d<   d|d         j        dd d f<   t          j        dd          g d         |d<   t          j        d          d	z   }t                                          |d
dd|dd           d S )Nr	   L   )predict_exog1_1predict_exog1_2predict_exog1_3r]   r   )fcast_exog1_dln_invfcast_exog1_dln_incfcast_exog1_dln_consumpfcastK   r   r   r   r   approximate_diffuser   r   r   exoginitializationloglikelihood_burn)	r
   lutkepohl_var1_exogr   r   r   r>   aranger   r   r   rN   r;  r   s      r$   r   zTestVAR_exog.setup_class  s    16688%*1R40 2E 2E 2E FY &'YQT"#(- /J /J /J KW y}}q c.&;  	 	
 	
 	
 	
 	
r/   c                     d S rh   r^   rO   s    r$   r%   zTestVAR_exog.test_mle      r/   c                     d S rh   r^   rO   s    r$   rV   zTestVAR_exog.test_aic  r  r/   c                     d S rh   r^   rO   s    r$   rZ   zTestVAR_exog.test_bic  r  r/   c                     | j                                                                         dz  }t          |d d         dz  | j        d         d           d S Nr   ir   r   r   rT   r   r   s     r$   r   zTestVAR_exog.test_bse_approx  sT    l--//88::C?CRC!TYy%9EEEEEEr/   c                     | j                                                                         dz  }t          |d d         dz  | j        d         d           d S rF  r   r   s     r$   r   zTestVAR_exog.test_bse_oim  sT    l**,,5577<CRC!TYy%9EEEEEEr/   c                 \    t          t          |                               dd           d S Nr   gMbP?r\   rU   r   rv   ra   r#   r   s    r$   ra   zTestVAR_exog.test_predict  ,    nd##00\0MMMMMr/   c                     d S rh   r^   rO   s    r$   rf   z!TestVAR_exog.test_dynamic_predict  r  r/   c                     t          j        dd          dz   d d t           j        f         }| j                            d|          }t          || j        d         d           d S )	Nr8  [   r      stepsr;  r7  rM   rT   )r>   r?  r  r   forecastr   rN   r#   r;  r  s      r$   test_forecastzTestVAR_exog.test_forecast  se    	"e$$q(!!!RZ-8 ,''bt'<<7!3$??????r/   c                    | j                                         }d |j        D             }| j        d         }t	          j        d|d                   sJ t          | j        j                  D ]}|| j        j        z  }||dz            }| j        j	        |         }t	          j        d|z  |          sJ t          |                    d                    dk    sJ t	          j        d	||dz            z  |          sJ t	          j        d
||dz            z  |          sJ t	          j        d||dz            z  |          sJ t	          j        dt          || j        j                 |         d          z   |          sJ |d         }t	          j        d|          sJ t          |                    d                    dk    sJ || j        j                 }| j        j        | j        j                 }t          t          |                    D ]+}t	          j        ||          d||         d|          sJ ,d S )Nc                 ,    g | ]}t          |          S r^   r   r   s     r$   r9   z-TestVAR_exog.test_summary.<locals>.<listcomp>  r   r/   r!   zModel:.*VARX\(1\)r   r   r   r   r  r   r   r	   r   z	beta.x1 +   precr   r   r   r   r   )r   r<   r   rN   r   r   rB   r   r4   r   r)   r   r   _params_regressionr   r*   r   s	            r$   r   zTestVAR_exog.test_summary  s   ,&&((99'.9998$ y-vay99999 tz)** 	 	A++F1Q3KE :)!,D96=uEEEEE u{{4(())Q.... 9/&!2DDeLLLLL9/&!2DDeLLLLL9&
);;UD D D D D9d6$**G#H#K()+ + + +      r
y2E:::::5;;t$$%%++++
45
&tz'CDs5zz"" 	D 	DA9a;;F1I;;;UCCCCCC	D 	Dr/   )rn   ro   rp   r   r   r%   rV   rZ   r   r   ra   rf   rV  r   r   r   s   @r$   r.  r.    s         
 
 
 
 [
       F F F
F F F
N N N N N  @ @ @$&D &D &D &D &D &D &Dr/   r.  c                   b     e Zd Ze fd            Zd Zd Zd Zd Zd Z	 fdZ
d Zd	 Z xZS )
TestVAR_exog2c           	         t           j                                        }t          j        dd         g d         |d<   d|d         j        dd d f<   t          j        dd          g d         |d<   t
          j        t          j        d          t          j        d	          d
z   d d t
          j	        f         f         }t                                          |ddd|dd           d S )Nr	   r0  )predict_exog2_1predict_exog2_2predict_exog2_3r]   r   )fcast_exog2_dln_invfcast_exog2_dln_incfcast_exog2_dln_consumpr7  )r8  r	   r8  r   r   r   r   r9  r:  )r
   lutkepohl_var1_exog2r   r   r   r>   c_onesr?  r  r   r   r@  s      r$   r   zTestVAR_exog2.setup_class'  s   27799%*1R40 2E 2E 2E FY &'YQT"#(- /J /J /J KW uRWW%%	"(9111bj='IIJc.&;  	 	" 	" 	" 	" 	"r/   c                     d S rh   r^   rO   s    r$   r%   zTestVAR_exog2.test_mle7  rB  r/   c                     d S rh   r^   rO   s    r$   rV   zTestVAR_exog2.test_aic:  rB  r/   c                     d S rh   r^   rO   s    r$   rZ   zTestVAR_exog2.test_bic=  rB  r/   c                     d S rh   r^   rO   s    r$   r   zTestVAR_exog2.test_bse_approx@  rB  r/   c                     d S rh   r^   rO   s    r$   r   zTestVAR_exog2.test_bse_oimC  rB  r/   c                 \    t          t          |                               dd           d S rI  rK  rL  s    r$   ra   zTestVAR_exog2.test_predictF  rM  r/   c                     d S rh   r^   rO   s    r$   rf   z"TestVAR_exog2.test_dynamic_predictI  r  r/   c                    t           j        t          j        d          t          j        dd          dz   d d t           j        f         f         }| j                            d|          }t          || j        d         d	           d S )
N)rQ  r	   r8  rP  r   rQ  rR  r7  rM   rT   )	r>   rg  rh  r?  r  r   rT  r   rN   rU  s      r$   rV  zTestVAR_exog2.test_forecastM  s    uRWW%%iE**Q.2:>? @ ,''bt'<<7!3$??????r/   )rn   ro   rp   r   r   r%   rV   rZ   r   r   ra   rf   rV  r   r   s   @r$   r^  r^  "  s        
 " " " " ["          N N N N N  @ @ @ @ @ @ @r/   r^  c                   @     e Zd Ze fd            Zd Zd Zd Z xZS )TestVAR2c                    t           j                                        }t          j        dd          ddg         |d<   t          j        dd          ddg         |d<   t                                          |dd	d
ddg           d S )Nr	   predict_var2_1predict_var2_2r]   dyn_predict_var2_1dyn_predict_var2_2re   )r   r   r   r   rx   ry   )r   r   r   r   )r
   lutkepohl_var2r   r   r   r   r   r   s     r$   r   zTestVAR2.setup_classW  s    ,1133%*122.0@0@0B CY"-"2122"68L8L8N #Oc.$i0 	 	2 	2 	2 	2 	2r/   c                     | j                                                                         dz  }t          |d d         dz  | j        d         d d         d           d S )Nr   r  r   r   r   rT   r   r   s     r$   r   zTestVAR2.test_bse_approxb  s]    l--//88::C?CRC!TYy%9#2#%>TJJJJJJr/   c                     | j                                                                         dz  }t          |d d         dz  | j        d         d d         d           d S )Nr   r  r   r   r   rT   r   r   s     r$   r   zTestVAR2.test_bse_oimg  s]    l**,,5577<CRC!TYy%9#2#%>TJJJJJJr/   c                 r   | j                                         }d |j        D             }| j        d         }t	          j        d|d                   sJ t          | j        j                  D ]
}|| j        j        z  | j        j	        z  }||dz            }| j        j
        |         }t	          j        d|z  |          sJ t          |                    d                    dk    sJ t	          j        d	||dz            z  |          sJ t	          j        d
||dz            z  |          sJ t	          j        d||dz            z  |          sJ t	          j        d||dz            z  |          sJ |d         }t	          j        d|          sJ t          |                    d                    dk    sJ || j        j                 }| j        j        | j        j                 }t          t          |                    D ]+}t	          j        ||          d||         d|          sJ ,d S )Nc                 ,    g | ]}t          |          S r^   r   r   s     r$   r9   z)TestVAR2.test_summary.<locals>.<listcomp>n  r   r/   r!   zModel:.*VAR\(2\)r   r   r   r   r  r   r   r	   zL2.dln_inv +%.4fzL2.dln_inc +%.4frS   r   r   r   r   r   )r   r<   r   rN   r   r   rB   r   r4   r=   r   r)   r   r   r*   r   s	            r$   r   zTestVAR2.test_summaryl  s\   ,&&((99'.9998$ y,fQi88888 tz)** 	M 	MA++djo=F1Q3KE :)!,D96=uEEEEE u{{4(())Q.... 9/&!2DDeLLLLL9/&!2DDeLLLLL9/&!2DDeLLLLL9/&!2DDeLLLLLL r
y2E:::::5;;t$$%%****
45
&tz'CDs5zz"" 	D 	DA9a;;F1I;;;UCCCCCC	D 	Dr/   r   r   s   @r$   rr  rr  V  s|        2 2 2 2 [2K K K
K K K
"D "D "D "D "D "D "Dr/   rr  c                   &    e Zd Zedd            ZdS )CheckFREDManufacturingrw   c                    || _         t          j                            t          dd          }t          |d          5 }t          j        |          }	d d d            n# 1 swxY w Y   t          j        |	j	        d          |	_
        |	d                                         |	d<   |	d                                         |	d	<   |	j        d
d dd	gf         }
t          j        d          5  t          j        d           t!          j        |
f|||d|| _        d d d            n# 1 swxY w Y   | j                            |d         |          | _        d S )Nr   zmanufac.dtarbMSr   	lncaputil
dlncaputillnhoursdlnhoursz
1972-02-01Tr   r   r   r!   r   )rN   ospathjoincurrent_pathopenr   
read_stataDatetimeIndexmonthr   r   r   r   r   r   r   r   r   r   r   )r   rN   r   r   r   r   r`   r  	test_datar   r   s              r$   r   z"CheckFREDManufacturing.setup_class  s    w||L)]CC$ 	+-	**C	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+$SYT:::	,1133Li.--//Jj'AAB$D111 	O 	O!(+++e O55CO OGMO OCI	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O
 i&&tH~&IIs#   AA#&A#,0D((D,/D,N)rw   )rn   ro   rp   r   r   r^   r/   r$   r~  r~    s8        J J J [J J Jr/   r~  c                        e Zd ZdZe fd            Zd Zej        	                    d          d             Z
ej        	                    d          d             Zd Zd Z fd	Z fd
Zd Z xZS )	TestVARMAN
    Test against the sspace VARMA example with some params set to zeros.
    c                 
   t           j                                        }t          j        dd          ddg         |d<   t          j        dd          ddg         |d<   t                                          |dd	d
           d S )Nr	   predict_varma11_1predict_varma11_2r]   dyn_predict_varma11_1dyn_predict_varma11_2re   r	   r	   r   r   r   )r
   fred_varma11r   varmax_resultsr   r   r   r   s     r$   r   zTestVARMA.setup_class  s    *//11(-abb13F3F3H IY"0"5abb"9#%<;> #? 	&J 	 	
 	
 	
 	
 	
r/   c                     d S rh   r^   rO   s    r$   r%   zTestVARMA.test_mle  	     	r/   ,Known failure: standard errors do not match.c                     d S rh   r^   rO   s    r$   r   zTestVARMA.test_bse_approx  r	  r/   c                     d S rh   r^   rO   s    r$   r   zTestVARMA.test_bse_oim  r	  r/   c                     d S rh   r^   rO   s    r$   rV   zTestVARMA.test_aic  r  r/   c                     d S rh   r^   rO   s    r$   rZ   zTestVARMA.test_bic  r  r/   c                 N    t                                          dd           d S N
2009-05-01r   rJ  r   rL  s    r$   ra   zTestVARMA.test_predict  &    D99999r/   c                 N    t                                          dd           d S Nr  
2000-01-01rc   r   rL  s    r$   rf   zTestVARMA.test_dynamic_predict  s&    $$|$LLLLLr/   c           	      D   | j                                         }d |j        D             }| j        d         }t	          j        d|d                   sJ t          | j        j                  D ]e}|| j        j        z  }| j        j        dz  | j        j	        z  || j        j        z  z   }||dz            }| j        j
        |         }t	          j        d|z  |          sJ t          |                    d                    dk    sJ t	          j        d	t          ||dz            d
          z   |          sJ t	          j        dt          ||dz            d
          z   |          sJ t	          j        dt          ||dz            d
          z   |          sJ t	          j        dt          ||dz            d
          z   |          sJ g|d         }t	          j        d|          sJ t          |                    d                    dk    sJ || j        j                 }| j        j        | j        j                 }	t          t          |	                    D ]9}t	          j        |	|          dt          ||         d
           |          sJ :d S )Nc                 ,    g | ]}t          |          S r^   r   r   s     r$   r9   z*TestVARMA.test_summary.<locals>.<listcomp>  r   r/   r!   zModel:.*VARMA\(1,1\)r   r   r   r   r  zL1.dlncaputil +rY  rZ  zL1.dlnhours +r	   zL1.e\(dlncaputil\) +zL1.e\(dlnhours\) +r   r      r   )r   r<   r   rN   r   r   rB   r   r4   r=   r   r)   r   r   r   r*   )
r#   r<   r   r!   r7   	offset_ar	offset_mar   r   r   s
             r$   r   zTestVARMA.test_summary  s   ,&&((99'.9998$ y0&)<<<<< tz)** 	 	ADJ..I+Q.@TZ//0I1Q3KE :)!,D96=uEEEEE u{{4(())Q.... 9!D	A)>Q$G$G$GG     9$vi!m'<1"E"E"EE     9'$vi!m/D1*M*M*MM     9%VIM-B(K(K(KK     
 r
y2E:::::5;;t$$%%****
45
&tz'CDs5zz"" 	N 	NA9aEED,C,C,CEEuMMMMMM	N 	Nr/   )rn   ro   rp   rq   r   r   r%   rr   rs   skipr   r   rV   rZ   ra   rf   r   r   r   s   @r$   r  r    s$         	
 	
 	
 	
 [	
   [DEE  FE [DEE  FE    : : : : :M M M M M,N ,N ,N ,N ,N ,N ,Nr/   r  c                        e Zd ZdZe fd            Zd Zej        	                    d          d             Z
ej        	                    d          d             Zd Zd Z fd	Z fd
Z xZS )TestVMA1r  c                 
   t           j                                        }t          j        dd          ddg         |d<   t          j        dd          ddg         |d<   t                                          |dd	d
           d S )Nr	   predict_vma1_1predict_vma1_2r]   dyn_predict_vma1_1dyn_predict_vma1_2re   r   r	   r   r   r   )r
   	fred_vma1r   r  r   r   r   r   s     r$   r   zTestVMA1.setup_class  s    ',,..(-abb13C3C3E FY"0"5abb"9 "6;8 #9 	c* 	 	
 	
 	
 	
 	
r/   c                     d S rh   r^   rO   s    r$   r%   zTestVMA1.test_mle  r  r/   r  c                     d S rh   r^   rO   s    r$   r   zTestVMA1.test_bse_approx!  r	  r/   c                     d S rh   r^   rO   s    r$   r   zTestVMA1.test_bse_oim&  r	  r/   c                     d S rh   r^   rO   s    r$   rV   zTestVMA1.test_aic+  r  r/   c                     d S rh   r^   rO   s    r$   rZ   zTestVMA1.test_bic1  r  r/   c                 N    t                                          dd           d S r  r   rL  s    r$   ra   zTestVMA1.test_predict7  r  r/   c                 N    t                                          dd           d S r  r   rL  s    r$   rf   zTestVMA1.test_dynamic_predict:  s3    $$l 	% 	
 	
 	
 	
 	
r/   )rn   ro   rp   rq   r   r   r%   rr   rs   r  r   r   rV   rZ   ra   rf   r   r   s   @r$   r  r  
  s	         	
 	
 	
 	
 [	
   [DEE  FE [DEE  FE    : : : : :
 
 
 
 
 
 
 
 
r/   r  c                  0   t          j        d                              dd          } t          j        d          }t          j        |t          j        ddd                    }t          j        | |d	
           t          j        | |d	
           d S )N   
   r   r  z
2009-01-01YSr   r   r   r;  r   )r>   r?  rA   r   Seriesr   r   r   )r   r;  exog2s      r$   test_specificationsr  @  s    IbMM!!"a((E9R==DId"-l59#; #; #; < < <E M%d&1111 M%e6222222r/   c                     i t           _        t          j        d                              dd          } t          j        t                    5  t          j        | dd           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | dd           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        | d	           d d d            n# 1 swxY w Y   t          j
        d
          5 }t          j        d           t          j        | d	           d d d            n# 1 swxY w Y   t          j
        d
          5 }t          j        d           t          j        | d	           d}t          |d         j                  |k    sJ 	 d d d            n# 1 swxY w Y   t          j                     d S )Nr  r  r   r    r   r   )r   r   )r   r   r   Tr   r   r  zcEstimation of VARMA(p,q) models is not generically robust, due especially to identification issues.r   )r   __warningregistry__r>   r?  rA   rr   raises
ValueErrorr   r   r   r   r   messageresetwarnings)r   wr  s      r$   test_misspecificationsr  N  s   !#F IbMM!!"a((E 
z	"	" 5 5e644445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
z	"	" > >e6"====> > > > > > > > > > > > > > > 
z	"	" + +e6****+ + + + + + + + + + + + + + + 
	 	-	-	- +h'''e6****+ + + + + + + + + + + + + + +
 
	 	-	-	- ,h'''e6****?1Q4<  G+++++, , , , , , , , , , , , , , , s[   A22A69A6B::B>B>DDD!+EEE8AGGGc                     d} d}t           j                            d           t           j                            | |f          }t           j        |d ddf<   t           j        |dddf<   t           j                            | df          }t           j                            | df          }t          j        d	d
|           }t          j        ||          }t          j        |	                                |          }t          j        ||          }t          j        ||d          t          j        ||d          t          j        ||d          t          j        ||d          g}	|	D ]}
|
j         |
                    d          }|                                 |                                 |                    d           |                                 t           j                            d|
j        f          }|                    d|           |                    d|           t           j                            d|
j        f          }t)          j        t,                    5  |                    d|           d d d            n# 1 swxY w Y   t           j                            d|
j        dz   f          }t)          j        t,                    5  |                    d|           d d d            n# 1 swxY w Y   t)          j        t,                    5  t          j        |t          j        d          d           d d d            d S # 1 swxY w Y   d S )Nr  r   i  sizerY  r      r	   z
1970-01-01r   )r   periodsr  r   r  F)r   T)rd   rR  )r  rY  )r>   randomseednormalnanr   r   r   r  squeezer   r   r(   r   r<   r]   get_predictionk_exogrT  get_forecastrr   r  r  zeros)nobsr4   r   exog1r  r   endog_pdexog1_pdexog2_pdmodelsmodresoos_exogs                r$   test_misc_exogr  q  s   DGINN4I4/22E6E"1"a%LFE!A#q&MI4),,EI4),,EM,T4@@@E|E///Hy666H|E///H 	e%v666e%v666hXV<<<hXV<<<	F  1 1gg5g!!D!!!9##!SZ#9918,,,qx000 9##!SZ#99]:&& 	1 	1LLqxL000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 9##!SZ!^)<#==]:&& 	1 	1LLqxL000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 
z	"	" C Ce"(7"3"36BBBBC C C C C C C C C C C C C C C C C Cs6   >J""J&	)J&	0LL	L	:*M11M58M5c                     t           j                            d           t          j        t           j                            d                    } t          j        | d          }|                    |j	                  }|
                    dddg          }|j                            t          j        dg                    sJ d S )	Ni )2   r   r  r   r  r	   a)startr\   r   )r>   r  r  r   r   r  r   r   r   r(   r]   r   equalsIndex)r   r  r  outs       r$   test_predict_custom_indexr    s    INN6L))w)7788E
-V
,
,
,C
**S%
&
&C
++A1SE+
2
2C9BHcUOO,,,,,,,r/   c            	         d} t          j        | df          dz  }t          j        |           }t          j        |d|d          }|                    t           j        dgdz  ddd	dd	f                   }d
}t          j        d	          }t          j        d          }t          |                    d	|          d           t          |                    d	|          d           t          |                    d	|          d           d}t          j        |          }t          j        |d	f          }t          |                    ||          d           t          |                    ||          d           t          t          |j        |d
           t          t          |j        |d	dg           t          t          |j        |t          j        |df                     d S )Nr   r   r  r   r   )r   r;  r   r   rY  r	   r  r  r;  r  )
r>   rh  r   r   r   r  r   rT  r   r  )	r  r   r;  r  r  exog_fcast_scalarexog_fcast_1dimexog_fcast_2dimhs	            r$   test_forecast_exogr    s   DGT1I$E74==D
-V$c
B
B
BC
**RUA37CaA56
7
7C gajjOgfooOCLL):L;;R@@@CLLL992>>>CLLL992>>> 	AgajjOgq!fooOCLLL992>>>CLLL992>>> *clAB7777*clAQF;;;;*clABGQFOODDDDDDr/   c                 V   g d}g d}|D ].}t          t          ||          t          | |                     /|D ]8}t          t          |j        |          t          | j        |                     9t          |                                |                                            d S )N)r   r   r   r   r   r    k_params)r  r4   k_statesk_posdefr'  designr  state_intercept
transition	selection	state_cov)r   r  r  _get_init_kwds)r  mod2attrs	ssm_attrsattrs        r$   check_equivalent_modelsr    s    E E EEN N NI  > >WT4(('#t*<*<==== F FWTXt,,gcgt.D.DEEEE$$&&(:(:(<(<=====r/   c                  .   d} t          j        | df          dz  }t          j        |           }ddg}ddg}dd	g}d
dg}d
dg}d
dg}dd l}	g d}
|	                    ||||||          D ]}t	          t          |
|                    }t          j        d
          5  t          j        d           t          j
        |fd|i|}t          j
        |fd|i|                                }d d d            n# 1 swxY w Y   t          ||           d S )Nr   rS   r  r   r  tr   r   r   FTr   )r   r   r   r   r   r    r   ignorer;  )r>   rh  	itertoolsproductdictzipr   r   r   r   r   r  r  )r  r   r;  orderstrendserror_cov_typesmeasurement_errorsenforce_stationaritiesenforce_invertibilitiesr  r   elementr`   r  r  s                  r$   test_recreate_modelr    s   DGT1I$E74==DfF3ZF!>2O#T]$dm> > >E$$VV_%7%;%<> > 
+ 
+ c%))**$E222 	K 	K!(+++-;;D;F;;C=JJTJS5G5G5I5IJJD	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	K 	 T****
+ 
+s   AC99C=	 C=	c            	         t          j        d                              dd          } t          j        d          }g d}t	          j        | dd|          }|                    |          }t	          j        | d d         dd|d d                   }|                    |          }|                    | dd          |dd          	          }t          |j	        |j	                   t          |j        |j                   d
D ].}t          t          ||          t          ||                     /dD ].}t          t          ||          t          ||                     /t          |                    dt          j        d          	          |                    dt          j        d          	                     d S )N   r   r   皙?皙?r   皙        r  r  r  r  r  r  r   r	  r   r   r;  r  r  r  r"   llf_obsr=  filtered_statefiltered_state_covpredicted_statepredicted_state_cov	forecastsforecasts_errorforecasts_error_covri   forecasts_error_diffuse_covpredicted_diffuse_state_covscaled_smoothed_estimatorscaled_smoothed_estimator_covsmoothing_errorsmoothed_statesmoothed_state_covsmoothed_state_autocov smoothed_measurement_disturbancesmoothed_state_disturbance$smoothed_measurement_disturbance_covsmoothed_state_disturbance_covr  )r>   r?  rA   rh  r   r   r   appendr   specificationr   cov_params_defaultr  rT  	r   r;  r!   mod1res1r  res2res3r  s	            r$   test_append_resultsr=    s   IcNN""3**E73<<D  F
 =fCdCCCD;;vD=ss649MMMD;;vD;;uRSSzRSS	;22D#T%7888D+T-DEEE@ ? ?WT4(('$*=*=>>>>. ? ? 	WT4(('$*=*=>>>>DMM"272;;M77MM"272;;M779 9 9 9 9r/   r   )r   cctrT  TFc           	      :   t          j        d                              dd          }g }| dk    rddg}| dk    rg d}t           j        |d	d
dddddf         }t	          j        |d|           }|                    |          }|r|                                 |                    |d d                   }|                    |          }|r|                                 |	                    |dd                    }	t          |	j        |j        dd                     dD ]@}
t          ||
          }||ddd f         }t          t          |	|
          |d           At          |	                    d          |                    d                     d S )Nr  r   r   r>  r  r  r?  )r  r  r  r  r   r  r  r  r   r  r  )r"  r#  r$  r%  r&  r'  r(  ri   r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  .g-q=rT   r  )r>   r?  rA   r  r   r   r   rT  cloneextendr   r   r  )r   rT  r   trend_paramsr!   r9  r:  r  r;  r<  r  r  s               r$   test_extend_resultsrD  "  s    IcNN""3**EL||Sz}})))U<c3r2 F =fE:::D;;vD  	::eCRCj!!D;;vD  	;;uRSSz""DDL$,rss"3444. B B $%%c233h'Gd++W5AAAAADMM"%%t}}R'8'899999r/   c            	      *   t          j        d                              dd          } t          j        d          }g d}t	          j        | dd|          }|                    |          }t	          j        | d d         dd|d d                   }|                    |          }|                    | dd          |dd          	          }t          |j	        |j	        dd                     d
D ]>}t          ||          }	|	|	ddd f         }	t          t          ||          |	           ?t          |                    dt          j        d          	          |                    dt          j        d          	                     d S )Nr  r   r   r  r   r	  r  r  r  r!  .r  )r>   r?  rA   rh  r   r   r   rB  r   r   r  r   rT  )
r   r;  r!   r9  r:  r  r;  r<  r  r  s
             r$   test_extend_results_exogrF  T  s   IcNN""3**E73<<D  F
 =fCdCCCD;;vD=ss649MMMD;;vD;;uRSSzRSS	;22DDL$,rss"3444. 3 3 $%%c233h'GWT4(('2222DMM"272;;M77MM"272;;M779 9 9 9 9r/   c            	         t          j        d                              dd          } t          j        d          }g d}t	          j        | d d         dd|d d                   }|                    |          }t	          j        | dd          dd|dd                    }|                    |          }|                    | d d         |d d         	          }t          |j	        |j	                   t          |j        |j                   d
D ].}t          t          ||          t          ||                     /dD ].}t          t          ||          t          ||                     /t          |                    dt          j        d          	          |                    dt          j        d          	                     d S )Nr  r   r   r  r  r   r	  r  r  r  r!  r  )r>   r?  rA   rh  r   r   r   applyr   r6  r   r7  r  rT  r8  s	            r$   test_apply_resultsrI  {  s   IcNN""3**E73<<D  F
 =ss649MMMD;;vD=rss649MMMD;;vD::eCRCjtCRCy:11D#T%7888D+T-DEEE@ ? ?WT4(('$*=*=>>>>. ? ? 	WT4(('$*=*=>>>>DMM"272;;M77MM"272;;M779 9 9 9 9r/   c                  \   t          j        t          j        g dt          j        ddd                    } t          j        |                                           j        dd          } | j        d d d df         }| j        d d df         }g d	}g d
}|d         |d         |d         dd|d         |d         |d         |d         |d         g
}t          j
        ||dd          }|j                                         |                    |          }|j        }t          t!          |          t!          |j                             t%          j        |j        d d df         |dd          }	|	j                                         t%          j        |j        d d df         |dd          }
|
j                                         |	                    |          }|
                    |          }t)          |j        dd          |j        |j        z   dd                     d S )Nr|   r   r   r   r   r   r	   r   )g{Gzgffffff?g333333ӿgMb`?)gMbp?g?      r   r   rS   r  r   )r;  r   r   )r   r   r	   r>  )r;  r   r   )r   r   r
   r   r   r>   r   r   r   r   r   r  initialize_diffuser   r(   r   r)   r*   r   SARIMAXr   r   )r   r   r;  
ma_params1
ma_params2
vma_paramsmod_vmares_mvaspmod_ma1mod_ma2res_ma1res_ma2s                r$   test_vma1_exogrX    s>   
,%/H/H/HmL,TBBBD D DC &++




!!""
%CHQQQUOE8AAAqD>D***J+++JQ-AQ-Z]Q-AQ-A	0J mEF+57 7 7GK""$$$nnZ((G 
	BR#g122333 oejA.T$') ) )GK""$$$oejA.T$') ) )GK""$$$nnZ((GnnZ((G GOABB'_w6;= = = = =r/   c            	      B   t          j        d          } g d}g d}t          j        | dd          }|}t	          |j        |           t          j        | ddg          }dd	g|z   }t	          |j        |           |                    d
dg|z              t          |d         d
dg           t          j        | dddg          }g d|z   }t	          |j        |           |                    g d|z              t          |d         d
           t          |d         d           |                    g d|z              t          |d         t          j        dd                     t          |d         dt          j        dd          z             |                    g d|z              t          |d         d
t          j        dd          z              t          |d         ddt          j        dd          z  z              t          j        | dddg          }ddg|z   }t	          |j        |           |                    ddg|z              t          |d         t          j        dd                     t          |d         dt          j        dd          z             t          j        | dg d          }g d|z   }t	          |j        |           |                    g d|z              t          |d         d
           t          |d         d           |                    g d|z              t          |d         t          j        dd          dz             t          |d         dt          j        dd          dz  z             |                    g d|z              t          |d         d
t          j        dd          dz  z              t          |d         ddt          j        dd          dz  z  z              d S )N)rS   r   )zL1.y1.y1zL1.y2.y1zL1.y1.y2zL1.y2.y2zsqrt.var.y1zsqrt.cov.y1.y2zsqrt.var.y2)r   r   r   g?r  r  r  r   r   r  r	   intercept.y1intercept.y2333333?rK  r  )rZ  drift.y1r[  drift.y2)r\  r   rK  r   )r  r   )r  r	   )r   r	   r   皙?r      r_  )r\  r	   rK  r_  r   r]  r^  )r	   r   r	   )rZ  z
trend.2.y1r[  z
trend.2.y2)	r>   r  r   r   r   r*   updater   r?  )r   
base_namesbase_paramsr  r  s        r$   test_param_names_trendrd    sB   HVEB B BJ111K -V3
7
7
7CG'*** -VA3
7
7
7C~.;G'***JJT{[()))C)*S$K888 -VAq6
:
:
:C, , ,.89G'***JJ   ;.///C,-s333C,-t444JJ~~~+,,,C,-ryA???C,-sRYq!__/DEEEJJ"""[0111C,-sRYq!__/DEEEC,-tcBIaOO6K/KLLL -VAq6
:
:
:C:&3G'***JJ3x+%&&&C,-ryA???C,-sRYq!__/DEEE -V999
=
=
=C. . .0:;G'***JJ   ;.///C,-s333C,-t444JJ~~~+,,,C,-ryA/ABBBC,-sRYq!__a5G/GHHHJJ"""[0111C,-sRYq!__a5G/GHHHC,-tcBIaOOQ<N6N/NOOOOOr/   ):rq   r  r   r   numpyr>   numpy.testingr   r   r   pandasr   rr   statsmodels.tsa.statespacer   r   statsmodels.iolib.summaryr   r   r
   r  dirnameabspath__file__r  r  var_pathread_csvr   varmax_pathr  r   rv   r   r   r   r  r.  r^  rr  r~  r  r  r  r  r  r  r  r  r  r=  rs   parametrizerD  rF  rI  rX  rd  r^   r/   r$   <module>rq     s    
			 				      F F F F F F F F F F      6 6 6 6 6 6 6 6 * * * * * * # # # # # #wrwx88997<<	#:;;bk"',,|X>>??gll9&@AARW\\,DDEEp0 p0 p0 p0 p0 p0 p0 p0f
 
 
 
 
[ 
 
 
>8D 8D 8D 8D 8Dn 8D 8D 8Dv8D 8D 8D 8D 8D~ 8D 8D 8DvlD lD lD lD lD lD lD lD^    N   DhD hD hD hD hD> hD hD hDV1@ 1@ 1@ 1@ 1@N 1@ 1@ 1@h8D 8D 8D 8D 8D~ 8D 8D 8DvJ J J J J[ J J J._N _N _N _N _N& _N _N _ND3
 3
 3
 3
 3
% 3
 3
 3
l3 3 3     F/C /C /Cd- - -E E E@> > >$+ + +8%9 %9 %9P "2"2"233dE]33-: -: 43 43-:`$9 $9 $9N&9 &9 &9R)= )= )=X6P 6P 6P 6P 6Pr/   