
    M/Ph                         d Z ddlZddlZddlmZ ddlZddlm	Z	 ddl
mZ ej                            ej                            e                    Z ej        ej                            edd                    Zej                            ej                            e          d                   d         Z ej        ej                            ed	dd
                    Z ej        ej        d          e_        eg d         j        dd         Z ej         ee                    Zej          ej!         ee                    eedz  f         Z" ej         ee           ee          dz             Z#ej          ej!        d          e#e#dz  f         Z$ ej        d ee          dz             Z% ej         ee          dz    ee          dz   dz             Z&ej          ej!         ee                    e%e%dz  f         Z'ej          ej!        d          e&e&dz  f         Z(ddZ)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1dS )aK  
Tests for VAR models (via VARMAX)

These are primarily tests of VAR results from the VARMAX state space approach
compared to the output of estimation via CSS

loglikelihood_burn = k_ar is required, since the loglikelihood reported by the
CSS approach is the conditional loglikelihood.

Author: Chad Fulton
License: Simplified-BSD
    N)assert_allclose)varmax   )results_var_Rresultszresults_var_R_output.csvtestszlutkepohl2.dtaQ)freq)dln_invdln_incdln_consump1960Q21978   
   c                 p    |d         }|j         |j        z
  }||j        |j        z  |j        z   |j        z   z
  }||z  |z  }t
          j                            |          }|t          j        |d                   }|t          j	        |                   |dd <   |
                    |          }	t          d          D ]}
t          j        |
          fdt          j        D             }t          |	                    d|
          t           |                     fdt          j        D             }t          |	                    d|
d	          t           |                     fd
t          j        D             }|	                    d|
dd          }t          |t           |                    d S )N	state_covparams   c                 $    g | ]} d  d| S )z.irf.. .0name
impulse_totests     i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/statespace/tests/test_var.py
<listcomp>zcheck_irf.<locals>.<listcomp>?   s?     . . . 4444d44 . . .    r   c                 $    g | ]} d  d| S )z.irf.ortho.r   r   r   s     r   r    zcheck_irf.<locals>.<listcomp>E   s?     . . . ::z::D:: . . .r!   T)orthogonalizedc                 $    g | ]} d  d| S )z
.irf.cumu.r   r   r   s     r   r    zcheck_irf.<locals>.<listcomp>K   s?     . . . 99j99499 . . .r!   )r#   
cumulative)nobsk_ark_endogk_trendk_exognplinalgcholeskycopytril_indices_fromsmoothrangeendogcolumnsr   impulse_responsesresults_var_R_output)r   modr   r   Sigma_u_mlenobs_effectivedf_residSigma_uLresir3   resultr   s   `            @r   	check_irfr?   +   s	    k"KX(NCK'#+5
BDHN*X5G
	7##A~*++B(++,F233K
**V

C1XX 7 7]1%
. . . . .$}. . .--b!44,W5	7 	7 	7. . . . .$}. . .--b!D-II,W5	7 	7 	7. . . . .$}. . .&&r16:t ' M M,W5	7 	7 	7 	7)7 7r!   c                     dt           j        } t          j        t          ddd          }|                    | d                   }t          |j        | d                    fdt          j        D             }t          |	                    d	          t          |         j        d d	                    t          ||            d S )
Nbasicr   r   nr   ordertrendloglikelihood_burnr   llfc                      g | ]
} d | dS z.fcast.z.fcstr   r   r   r   s     r   r    z"test_var_basic.<locals>.<listcomp>^   *    EEEt$**t***EEEr!   r   )r   	res_basicr   VARMAXr2   r0   r   rH   r3   forecastr5   ilocr?   r   r6   r<   r3   r   s       @r   test_var_basicrR   S   s    D %G
-V31
M
M
MC
**WX&
'
'CCGWU^,,, FEEEu}EEEGCLL$$&:7&C&H"&MNNN dC!!!!!r!   c                     dt           j        } t          j        t          ddd          }|                    | d                   }t          |j        | d                    fdt          j        D             }t          |	                    d          t          |         j        d d                    t          ||            d S )	NcrB   r   rD   r   rH   c                      g | ]
} d | dS rJ   r   rK   s     r   r    ztest_var_c.<locals>.<listcomp>r   rL   r!   r   )r   res_cr   rN   r2   r0   r   rH   r3   rO   r5   rP   r?   rQ   s       @r   
test_var_crW   g   s    D !G
-V31
M
M
MC
**WX&
'
'CCGWU^,,, FEEEu}EEEGCLL$$&:7&C&H"&MNNN dC!!!!!r!   c                     dt           j        } t          j        t          ddd          }|                    | d                   }t          |j        | d                    fdt          j        D             }t          |	                    d          t          |         j        d d                    t          ||            d S )	NctrB   r   rD   r   rH   c                      g | ]
} d | dS rJ   r   rK   s     r   r    ztest_var_ct.<locals>.<listcomp>   rL   r!   r   )r   res_ctr   rN   r2   r0   r   rH   r3   rO   r5   rP   r?   rQ   s       @r   test_var_ctr\   {   s    D "G
-V4A
N
N
NC
**WX&
'
'CCGWU^,,, FEEEu}EEEGCLL$$&:7&C&H"&MNNN dC!!!!!r!   c            	         dt           j        } t          j        t          dt
          d d d df         dd          }|                    | d                   }t          |j        | d                    fdt          j	        D             }t          |
                    d	t          d d d df         
          t          |         j        d d	                    t          ||            d S )Nct_as_exog0rB   r   rC   rE   exogrF   rG   r   rH   c                      g | ]
} d | dS rJ   r   rK   s     r   r    z(test_var_ct_as_exog0.<locals>.<listcomp>   rL   r!   r   r`   )r   res_ct_as_exog0r   rN   r2   exog0r0   r   rH   r3   rO   exog0_fcastr5   rP   r?   rQ   s       @r   test_var_ct_as_exog0rf      s    D +G
-V%2A2,c+,. . .C
**WX&
'
'CCGWU^,,, FEEEu}EEEGCLL+aaa!e*<L==(16ss;= = = dC!!!!!r!   c            	      <   dt           j        } t          j        t          dt
          d d d df         dd          }| d         }t          j        |dd         |d d         |dd          f         }|                    |          }t          |j
        | d	                    fd
t          j        D             }t          |                    dt          d d d df                   t          |         j        d d                    t!          || |           d S )NrY   rB   r   rC   r_   r      r   rH   c                      g | ]
} d | dS rJ   r   rK   s     r   r    z(test_var_ct_as_exog1.<locals>.<listcomp>   rL   r!   r   rb   )r   r[   r   rN   r2   exog1r+   r_r0   r   rH   r3   rO   exog1_fcastr5   rP   r?   r   r6   r   r<   r3   r   s        @r   test_var_ct_as_exog1rn      s$   D
 "G
-V%2A2,c+,. . .C XFU6!B$<VBCC[89F
**V

CCGWU^,,, FEEEu}EEEGCLL+aaa!e*<L==(16ss;= = = dC&)))))r!   c                     dt           j        } t          j        t          ddd          }| d         }t
          j        |dd         |d d         |dd          f         }|                    |          }t          |j	        | d	                    fd
t          j
        D             }t          |                    d          t          |         j        d d                    t          || |           d S )Nctt_as_exog1rB   cttr   rD   r   ir   rH   c                      g | ]
} d | dS rJ   r   rK   s     r   r    z test_var_ctt.<locals>.<listcomp>   rL   r!   r   )r   res_ctt_as_exog1r   rN   r2   r+   rk   r0   r   rH   r3   rO   r5   rP   r?   rm   s        @r   test_var_cttrt      s    D
 ,G
-V5+,. . .CXFU6&)$fWfWovbcc{BCF
**V

CCGWU^,,, FEEEu}EEEGCLL$$&:7&C&H"&MNNN dC&)))))r!   c                     dt           j        } t          d         j        dd         }t          dg         j        dd         }t	          j        t          d|dd	
          }|                    | d                   }t          |j	        | d                    fdt          j
        D             }t          |                    d|          t          |         j        d d                    t          ||            d S )Nct_exogincr   r   1979Q11981Q2rB   rY   r   r_   r   rH   c                      g | ]
} d | dS rJ   r   rK   s     r   r    z$test_var_ct_exog.<locals>.<listcomp>   rL   r!   r   rb   )r   res_ct_exogdtalocr   rN   r2   r0   r   rH   r3   rO   r5   rP   r?   r   r`   
exog_fcastr6   r<   r3   r   s         @r   test_var_ct_exogr      s    D 'Gu:>(6/*DeW!(8"34J
-V$d+,. . .C
**WX&
'
'CCGWU^,,, FEEEu}EEEGCLL*L55(16ss;= = = dC!!!!!r!   c                     dt           j        } t          ddg         j        dd         }t          ddg         j        dd         }t	          j        t          d|d	d
          }|                    | d                   }t          |j	        | d                    fdt          j
        D             }t          |                    d|          t          |         j        d d                    t          ||            d S )Nc_2exogrw   invr   r   rx   ry   rB   rT   r   r_   r   rH   c                      g | ]
} d | dS rJ   r   rK   s     r   r    z$test_var_c_2exog.<locals>.<listcomp>  rL   r!   r   rb   )r   res_c_2exogr|   r}   r   rN   r2   r0   r   rH   r3   rO   r5   rP   r?   r~   s         @r   test_var_c_2exogr      s   D 'Gu~"8F?3DeU^$(():;J
-V$c+,. . .C
**WX&
'
'CCGWU^,,, FEEEu}EEEGCLL*L55(16ss;= = = dC!!!!!r!   )N)2__doc__osnumpyr+   numpy.testingr   pandaspdstatsmodels.tsa.statespacer   r   r   pathdirnameabspath__file__current_pathread_csvjoinr5   splitup2
read_statar|   PeriodIndexqtrindexr}   r2   arangelentime_trend0c_onesrd   time_trend0_fcastre   time_trend1time_trend1_fcastrj   rl   r?   rR   rW   r\   rf   rn   rt   r   r   r   r!   r   <module>r      s    
			     ) ) ) ) ) )     - - - - - - " " " " " "wrwx8899"r{GLLy*DEEG G  	gmmBGMM,//233A6bmBGLLgy:JKKLLBN37---	11126xG biE

##
gbgcc%jj!!;Q>?BIcc%jj##e**r/:: eGBGBKK!24Eq4HHIbi33u::>**BIcc%jj1ncc%jj1nr.ABB 
gbgcc%jj!!;Q>?eGBGBKK!24Eq4HHI%7 %7 %7 %7P" " "(" " "(" " "(" " ".* * *8* * *2" " "0" " " " "r!   