U
    ÃmœdÚ^  ã                   @   s˜  d dl mZ d dlZd dlmZ d dlZd dlm	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mZ d d
lmZ e ¡ jZG dd„ deƒZe
jddd ddddggd�dd„ ƒZe
jdddddgddddœddgddgdœgd�dd„ ƒZ e
jddddddœgd�dd„ ƒZ!e
jdddgd�dd„ ƒZ"e
jddddgd�d d!„ ƒZ#e
jdd"d#gd�d$d%„ ƒZ$e
jdd dgd�d&d'„ ƒZ%e
jddddddœgd�d(d)„ ƒZ&e
jdd"d#gd�d*d+„ ƒZ'e
jdd"d#gd�d,d-„ ƒZ(e
jddd.gd�d/d0„ ƒZ)e
jdd1�d2d3„ ƒZe
jdddgd�d4d5„ ƒZ*ed6œd7d8„Z+d9d:„ Z,ed;œd<d=„Z-d>d?„ Z.d@dA„ Z/dBdC„ Z0dDdE„ Z1dFdG„ Z2ed;œdHdI„Z3dJdK„ Z4dLdM„ Z5dNdO„ Z6dPdQ„ Z7dRdS„ Z8dTdU„ Z9dVdW„ Z:dXdY„ Z;dZd[„ Z<e
j=j>d\d]„ ƒZ?d^d_„ Z@e
j= Ad`dd ddg¡e
j= Adaddbg¡e
j= Adcdbd"g¡ddde„ ƒƒƒZBdfdg„ ZCdhdi„ ZDdjdk„ ZEdldm„ ZFdndo„ ZGdpdq„ ZHdrds„ ZIdtdu„ ZJdvdw„ ZKdxdy„ ZLe
j=j>e
j=jMe
j= Ad!dddg¡e
j= Ad+d"d#g¡dzd{„ ƒƒƒƒZNed;œd|d}„ZOd~d„ ZPed;œd€d�„ZQd‚dƒ„ ZRe
j= Ad-d"d#g¡e
j= Ad„d"d#g¡d…d†„ ƒƒZSe
j= Ad‡dddddg¡dˆd‰„ ƒZTe
j= Ad‡dddddg¡dŠd‹„ ƒZUe
j= AdŒdejV Wd ¡d ddgejV Xddg¡g¡d�dŽ„ ƒZYd�d�„ ZZdS )‘é    )Ú
NamedTupleN)Úassert_allclose)Úassert_index_equal)Údanish_data)ÚSummary)ÚSpecificationWarning)ÚAutoReg)ÚARDLÚUECMÚARDLResultsÚardl_select_order)ÚDeterministicProcessc                   @   s"   e Zd ZU ejed< ejed< dS )ÚDatasetÚyÚxN)Ú__name__Ú
__module__Ú__qualname__ÚpdÚSeriesÚ__annotations__Ú	DataFrame© r   r   ú]/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/tsa/ardl/tests/test_ardl.pyr      s   

r   Úmoduleé   é   é   é   )ÚscopeÚparamsc                 C   s   | j S ©N©Úparam©Úrequestr   r   r   Úlags   s    r&   é   ©ÚlryÚiboÚidec                 C   s   | j S r!   r"   r$   r   r   r   Úorder"   s    
r,   c                 C   s   | j S r!   r"   r$   r   r   r   Ú
uecm_order/   s    r-   c                 C   s   | j S r!   r"   r$   r   r   r   Ú	uecm_lags:   s    r.   ÚnÚcÚctc                 C   s   | j S r!   r"   r$   r   r   r   Útrend?   s    r2   TFc                 C   s   | j S r!   r"   r$   r   r   r   ÚcausalD   s    r3   c                 C   s   | j S r!   r"   r$   r   r   r   ÚmaxlagI   s    r4   c                 C   s   | j S r!   r"   r$   r   r   r   ÚmaxorderN   s    r5   c                 C   s   | j S r!   r"   r$   r   r   r   ÚseasonalS   s    r6   c                 C   s   | j S r!   r"   r$   r   r   r   Ú	use_numpyX   s    r7   é
   c                 C   s   | j S r!   r"   r$   r   r   r   Ú	hold_back]   s    r9   )r   c                  C   s   t j} t dddg }t| |ƒS )Nr)   r*   r+   )Ú	dane_dataÚlrmr   )r   r   r   r   r   Údatab   s    r<   c                 C   sJ   | j d krd S tjj}tj d¡}tj| 	dtjj
d df¡|ddgd�S )Nr   r8   r   Zz0Zz1)ÚindexÚcolumns)r#   r:   r;   r=   ÚnpÚrandomÚdefault_rngr   r   Z
standard_tÚshape)r%   r=   Úgenr   r   r   Úfixedi   s    
ýrD   )Úresc                 C   s†  | j }|jj\}}| | j¡j|fks*t‚| | j¡j||fksDt‚t| | j¡t	ƒsZt‚| 
| j¡j||fkstt‚t|jtƒs„t‚|jd ksžt|jtƒsžt‚t|jtƒs®t‚t|jtƒs¾t‚t|jtƒsÎt‚t|jtƒsÞt‚t|jtƒsît‚t|jtƒsþt‚t|jtƒ�st‚|  ¡  |  ¡  |  ¡  | jd k�sFt| jtƒ�sFt‚| j| j| j k�s^t‚| j| jk�spt‚t| jt	ƒ�s‚t‚d S r!   ) ÚmodelZ_xrB   Zscorer    ÚAssertionErrorZhessianÚ
isinstanceZloglikeÚfloatÚinformationÚ
exog_namesÚlistÚar_lagsr6   Úboolr9   ÚintÚ
ardl_orderÚtupleZdf_modelZnobsZendog_namesÚstrZ
k_constantÚsummaryZtest_heteroskedasticityZdiagnostic_summaryZdf_residÚscaleZsigma2Zfpe)rE   rF   r/   Úkr   r   r   Úcheck_resultsv   s,    rV   c           	      C   sx   | j }| j}|}d }|rjt |¡}t |¡}t|tƒrLdd„ t| ¡ ƒD ƒ}|d k	r^t |¡}|rfdnd }|||||fS )Nc                 S   s   i | ]\}}||“qS r   r   )Ú.0ÚiÚvr   r   r   Ú
<dictcomp>˜   s      z%_convert_to_numpy.<locals>.<dictcomp>r   )r   r   r?   ÚasarrayrH   ÚdictÚ	enumerateÚvalues)	r<   rD   r,   r6   r7   r   r   ÚzÚperiodr   r   r   Ú_convert_to_numpy�   s    



ra   ©r<   c                 C   sÔ   t | ||||ƒ\}}	}
}}t|||	||||
||d�	}| ¡ }t|ƒ | ¡  d }|
d k	r†t |
¡d d… }t|
tj	ƒr†tj	||
j
d�}d }|	d k	rÀt |	¡d d… }t|	tj	ƒrÀtj	||	j
d�}|jd||d� d S )N©r3   rD   r6   r`   é   )r>   )ÚexogrD   )ra   r	   ÚfitrV   Úpredictr?   ÚarrayrH   r   r   r>   Úforecast)r<   r&   r,   r2   r3   rD   r7   r6   r   r   r_   r`   ÚmodrE   Z	fixed_oosÚexog_oosr   r   r   Útest_model_initŸ   s@        ÿ÷rl   c              
   C   sª  t jtdd�� t| jdƒ W 5 Q R X t jtdd�� t| jdddgƒ W 5 Q R X t jtdd�� t| jd| jddd	� W 5 Q R X t jtdd�� t| jd| jdd
d� W 5 Q R X t jtdd��( t| jd| jddgdddœdd� W 5 Q R X t jtdd��( t| jd| jddgdddœdd� W 5 Q R X t jtdd��2 t| jd| jddddgddddgdœdd� W 5 Q R X t jtdd��" t| jd| jdddgdd� W 5 Q R X d S )Núlags must be a non-negative©Úmatchéÿÿÿÿú#All values in lags must be positiver   r   zinteger orders must be at leastT)r,   r3   F©r3   z)sequence orders must be strictly positiver   r   r(   z)sequence orders must contain non-negativeÚapplez%sequence orders must contain distinct)ÚpytestÚraisesÚ
ValueErrorr	   r   r   Ú	TypeErrorrb   r   r   r   Útest_ardl_order_exceptionsÂ   sb     ÿ   ÿ    ÿ ÿû ÿû ÿrx   c              	   C   sx   t jtdd��( t| jd| jddgdddœdd	� W 5 Q R X t jtd
d��$ t| jd| jdddgidd	� W 5 Q R X d S )Nz,order dictionary contains keys for exogenousrn   r   r   r   r   )r)   r*   ÚotherFrr   zexog contains variables thatr)   )rt   ru   rv   r	   r   r   Úwarnsr   rb   r   r   r   Útest_ardl_order_keys_exceptionsí   s      ÿû ÿr{   c              	   C   st   t  t¡� t| jd| jddd� W 5 Q R X t jtdd��0 t| jj	ddd�}t| jd| jd|d	d
� W 5 Q R X d S )Nr   r6   )ÚdeterministiczWhen using deterministic, trendrn   Tr   ©Zconstantr,   r1   )r|   r2   )
rt   ru   rw   r	   r   r   rz   r   r   r=   )r<   r|   r   r   r   Ú"test_ardl_deterministic_exceptionsþ   s      ÿ  ÿr~   c              	   C   s4   t jtdd�� t| jd| jddd� W 5 Q R X d S )Nzhold_back must be >=rn   r   r   ©r9   ©rt   ru   rv   r	   r   r   rb   r   r   r   Útest_ardl_holdback_exceptions
  s    r�   c              	   C   s”   t j d¡}tjtdd�� t| jd| jd|d� W 5 Q R X t j t	j
jd df¡}t j |d< tjtdd�� t| jd| jd|d� W 5 Q R X d S )N)r   éÈ   zfixed must be anrn   r   ©rD   r   )é   r   )r?   r@   Zstandard_normalrt   ru   rv   r	   r   r   r:   r;   rB   Úinf)r<   rD   r   r   r   Útest_ardl_fixed_exceptions  s     r†   c	                 C   sÖ   t | ||||ƒ\}	}
}}}t|	||
||||||||d�}t|jtƒsHt‚t|jtjƒsZt‚t|j	tjƒslt‚t|j
tjƒs~t‚|j|ksŒt‚|j|ksšt‚|j|ks¨t‚t|jtƒs¸t‚|jd ksÒt|jtƒsÒt‚d S )N)rD   r3   r9   r`   r6   Úglob)ra   r   rH   rF   r	   rG   Zaicr   r   ZbicZhqicr`   r2   r6   Zdl_lagsr\   rM   rL   )r<   r4   r5   r2   r3   rD   r7   r6   r9   r   r   r_   r`   rE   r   r   r   Útest_ardl_select_order  s:        ÿõrˆ   c                 C   sB   t | jd | jd d d dœdd� ¡ }|jjd dks6t‚t|ƒ d S )Nr(   r/   ©r2   r   ©r	   r   r   rf   r    rB   rG   rV   ©r<   rE   r   r   r   Útest_ardl_no_regressors?  s    
û
rŒ   c                 C   s:   t | jd| jd dd� ¡ }|jjd dks.t‚t|ƒ d S )Nr   r/   r‰   r   rŠ   r‹   r   r   r   Útest_ardl_only_y_lagK  s    r�   c                 C   sz   t | jd | jddddœdd� ¡ }|jjd dks6t‚t | jd | jddddœdd	d
� ¡ }|jjd dksnt‚t|ƒ d S )Nr   r   r   r(   r/   r‰   r   é	   T)r2   r3   é   rŠ   r‹   r   r   r   Útest_ardl_only_xQ  s$       
 ÿ

ú
r�   c                 C   s:   t | jd | jd dd� ¡ }|jjd dks.t‚t|ƒ d S )Nr0   r‰   r   r   rŠ   r‹   r   r   r   Útest_ardl_only_trendb  s    r‘   c                 C   s<   t | jd | jd ddd� ¡ }|jjd dks0t‚t|ƒ d S )Nr/   T©r2   r6   r   r   rŠ   r‹   r   r   r   Útest_ardl_only_seasonalh  s    r“   c                 C   sN   t | jjddd�}t| jd | jd d|d� ¡ }|jjd dksBt‚t	|ƒ d S )NTr   r}   r/   )r2   r|   r   r   )
r   r   r=   r	   r   rf   r    rB   rG   rV   )r<   r|   rE   r   r   r   Útest_ardl_only_deterministicn  s         ÿ
r”   c                 C   s<   t | jd | jd ddd� ¡ }|jjd dks0t‚t|ƒ d S )Nr1   Tr’   r   r'   rŠ   r‹   r   r   r   Útest_ardl_no_endog_exogw  s    r•   c                 C   s@   t | jddg| jd ddd� ¡ }|jjd dks4t‚t|ƒ d S )Nr   r   r1   Tr’   r   é   rŠ   r‹   r   r   r   Útest_ardl_no_exog}  s     r—   c                 C   sÖ   t | jd| jdddd�}ddddd	d
dddg	}|j|ks<t‚t t | j¡dt | j¡dddd�}dddddddddddddg}|j|ksŒt‚t t | j¡dgt | j¡d ddddd�}dd d!d"dg}|j|ksÒt‚d S )#Nr   Tr0   )r3   r2   Úconstúlrm.L1zlrm.L2zlry.L1zlry.L2zibo.L1zibo.L2zide.L1zide.L2Fr1   r2   zy.L1zy.L2zx0.L0zx0.L1zx0.L2zx1.L0zx1.L1zx1.L2zx2.L0zx2.L1zx2.L2r/   r   )r3   r2   r6   r`   zs(1,4)zs(2,4)zs(3,4)zs(4,4))r	   r   r   rK   rG   r?   r[   )r<   rj   Úexpectedr   r   r   Útest_ardl_parameter_namesƒ  s^    ÷
  
   ÿó

ø
r›   c                 C   sN   dd l }t| jd| jddddgdœddd� ¡ }| ¡ }t||jjƒsJt	‚d S )	Nr   r   r   r   r(   r1   Tr’   )
Úmatplotlib.figurer	   r   r   rf   Úplot_diagnosticsrH   ZfigureÚFigurerG   )r<   Úclose_figuresÚ
matplotlibrE   Úfigr   r   r   Útest_diagnostics_plot²  s    ú
	r¢   c           	      C   sÊ   t | jd||d�}t| jd||d�}| ¡ }| ¡ }t|j|jƒ |j|jksRt‚|j|jksbt‚|j	|j	ksrt‚| 
d¡}| 
d¡}t||ƒ t|j|jƒ | ¡ }| ¡ }t||ƒ t|j|jƒ d S )Nr   r’   rd   )r   r   r	   rf   r   r    rM   rG   r2   r6   ri   r   r=   rg   )	r<   r2   r6   ÚarÚardlÚar_resÚardl_resÚar_fcastÚ
ardl_fcastr   r   r   Útest_against_autoregÃ  s     



r©   ÚstartÚendr„   Údynamicc                 C   sp   t | jd||d�}t| jd||d�}| ¡ }| ¡ }	|j|||d�}
|	j|||d�}t|
j|jƒ t|
|ƒ d S )Nr   r’   )rª   r«   r¬   )r   r   r	   rf   rg   r   r=   r   )r<   r2   r6   rª   r«   r¬   r£   r¤   r¥   r¦   r§   r¨   r   r   r   Ú&test_against_autoreg_predict_start_endØ  s    r­   c              	   C   s´   t jtdd�� t| jdƒ W 5 Q R X t jtdd�� t| jdddgƒ W 5 Q R X t jtdd�� t| jddddgƒ W 5 Q R X t jtdd�� t| jd| jd	dd
� W 5 Q R X d S )Nrm   rn   rp   rq   r   r   r   zhold_back must be r   r   r€   rb   r   r   r   Útest_invalid_inité  s     ÿ ÿr®   c                 C   sp   t | jd| jddd� ¡ }| d¡}|jd dks6t‚t | jdg| jdgƒ ¡ }| d¡}|jd dkslt‚d S )Nr   r   Trr   r   r   )r	   r   r   rf   ri   rB   rG   )r<   rE   Úvalr   r   r   Útest_prediction_oos_no_new_dataø  s    

r°   c           
   	   C   sÜ   t | d dd|ƒ\}}}}}t|d|ddd� ¡ }tjtdd�� | d¡ W 5 Q R X t|tj	ƒrØt
 | j¡d d… }	tjtd	d�� |jd|	d
� W 5 Q R X tjtdd��( |jd| jjd d…d d…f d
� W 5 Q R X d S )Nr   Fr   rr   zexog_oos must bern   r   rd   z!exog_oos must be a DataFrame when©re   zmust have the same columns)ra   r	   rf   rt   ru   rv   ri   rH   r   r   r?   r[   r   rw   Úiloc)
r<   rD   r7   r   r   r_   r,   Ú_rE   rk   r   r   r   Útest_prediction_exceptions  s     ÿr´   c                 C   s–   t | jd| jddgƒ ¡ }| ¡ }|j| jd�}t||ƒ t|j|jƒ t | jd| jddg|d� ¡ }| ¡ }|j|d�}t||ƒ t|j|jƒ d S )Nr   r   r   r±   rƒ   )r	   r   r   rf   rg   r   r   r=   )r<   rD   rE   ÚdirectZaltr   r   r   Útest_prediction_replacements  s    

r¶   c              	   C   s"  t  | j¡}t| jd|ddgƒ ¡ }tjtdd��* |j	t  | j¡d d …d d…f d� W 5 Q R X tjtdd��" |j	t  | j¡d d… d� W 5 Q R X t| jd| jddgƒ ¡ }tjtd	d��& |j	| jj
d d …d d…f d� W 5 Q R X tjtdd�� |j	| jj
d d… d� W 5 Q R X d S )
Nr   r   r   zexog must have the same numberrn   r±   z&exog must have the same number of rowséþÿÿÿzexog must have the same columns©r?   r[   r   r	   r   rf   rt   ru   rv   rg   r²   ©r<   r   rE   r   r   r   Útest_prediction_wrong_shape  s"    . ÿ&* ÿrº   c              	   C   s  t  | j¡}t| jd|d� ¡ }tjtdd��* |j	t  | j¡d d …d d…f d� W 5 Q R X tjtdd��" |j	t  | j¡d d… d� W 5 Q R X t| jd| jd� ¡ }tjtdd��& |j	| jj
d d …d d…f d� W 5 Q R X tjtdd�� |j	| jj
d d… d� W 5 Q R X d S )Nr   rƒ   zfixed must have the same numberrn   r   z'fixed must have the same number of rowsr·   r¸   r¹   r   r   r   Ú!test_prediction_wrong_shape_fixed0  s"    . ÿ&* ÿr»   c              	   C   sê   t  | j¡}t| jd|d� ¡ }tjtdd�� | 	d¡ W 5 Q R X tjtdd�� |j	d|d d… d� W 5 Q R X t| jd| jdd	d
� ¡ }tjtdd�� | 	d¡ W 5 Q R X tjtdd��  |j	d| jj
dd … d� W 5 Q R X d S )Nr   rƒ   zfixed_oos must be providedrn   rd   zfixed_oos must have at leasté   r   Trr   zexog_oos must be providedzexog_oos must have at leastiöÿÿÿr±   )r?   r[   r   r	   r   rf   rt   ru   rv   ri   r²   r¹   r   r   r   Útest_insuficient_oosB  s     r½   c              	   C   s0   t jtdd�� t| jd| jdƒ W 5 Q R X d S )NzThe number of regressors \(36\)rn   r„   r   r€   rb   r   r   r   Útest_insuficient_dataP  s    r¾   c                 C   s@   t | jdƒ ¡ }| d¡}| d¡}t||ƒ t|j|jƒ d S )Nr   rd   z
1990-07-01)r	   r   rf   ri   r   r   r=   )r<   rE   ÚnumericÚdater   r   r   Útest_forecast_dateU  s
    


rÁ   c                 C   sX   t | jdƒ ¡ }t| jdƒ ¡ }|jdd�}|jdd�}t|j|jƒ t|j|jƒ d S )Nr   z
2020-01-01©r«   )r	   r   rf   r   Zget_predictionr   Zpredicted_meanZvar_pred_mean)r<   rE   r¥   ÚpredZar_predr   r   r   Útest_get_prediction]  s    rÄ   c                 C   sŠ   ddl m} t| jd||d�}| ¡ }| ¡ }t||ƒs<t‚|jdd�}t||ƒsVt‚|jdd dd	�}t||ƒstt‚t| 	¡ t
ƒs†t‚d S )
Nr   )rž   r   r’   éd   rÂ   éK   F)r«   ÚalphaZ	in_sample)rœ   rž   r	   r   rf   r�   rH   rG   Zplot_predictrS   r   )r<   r6   r2   rŸ   rž   rj   rE   r¡   r   r   r   Útest_ardl_smoke_plotsf  s    ürÈ   c                 C   sŒ   t | ||||ƒ\}}	}
}}t|||	||||
||d�	}| ¡ }t|ƒ | ¡  t|||	||||
||d�	}t |¡}| ¡ }t|ƒ | ¡  d S )Nrc   )ra   r
   rf   rV   rg   r	   Ú	from_ardl)r<   r.   r-   r2   r3   rD   r7   r6   r   r   r_   r`   rj   rE   r¤   ZuecmZuecm_resr   r   r   Útest_uecm_model_init}  sH    
    ÿ÷÷
rÊ   c                 C   sH   t  t¡�& t t| jd| jddd dœƒ¡}W 5 Q R X |jdksDt	‚d S )Nr   ©r)   r+   r*   )r   r   r   )
rt   rz   r   r
   rÉ   r	   r   r   rP   rG   )r<   rj   r   r   r   Útest_from_ardl_none«  s
    ÿrÌ   c              	   C   s|   d}t j| j| jgdd�}|d k	rH|dd |j¡ 7 }t j||gdd�}tj|||||||d�}	|	 ¡ }
t	|
ƒ |
 
¡  d S )Nzlrm ~ lry + ibo + ider   )Zaxisz | z + )r3   r6   )r   Úconcatr   r   Újoinr>   r
   Zfrom_formularf   rV   rg   )r<   r.   r-   r2   r3   rD   r6   ZfmlaZdfrj   rE   r   r   r   Útest_uecm_model_formula³  s"    	ù	rÏ   c              	   C   s�  t jtdd�� t| jd| jdddgƒ W 5 Q R X t jtdd�� t| jddg| jdƒ W 5 Q R X t jtdd��  t| jd| jdddgiƒ W 5 Q R X t jtd	d�� t| jd| jd ƒ W 5 Q R X t jtd
d��  t| jd| jddddœƒ W 5 Q R X t jtdd�� t| jd| jddd� W 5 Q R X t jtdd�� t| jd| jdƒ W 5 Q R X t| jd| jddgdddœƒ}t jtdd�� t |¡ W 5 Q R X t| jd| jddgdddœƒ}t jtdd�� t |¡ W 5 Q R X t| jddg| jdƒ}t jtdd�� t |¡ W 5 Q R X t| jd| jdƒ 	¡ }t  t
¡� |jdd� W 5 Q R X t  t
¡� |jdd� W 5 Q R X t  t
¡� |jdd� W 5 Q R X d S )Nzorder must be Nonern   r   r   r   zlags must be anzorder values must be positiver*   zModel must containzAll included exogrË   zhold_back must ber   r'   r   r   zThe number ofr„   zUECM can only be created fromrÅ   rÂ   T)r¬   é   )rt   ru   rw   r
   r   r   rv   r	   rÉ   rf   ÚNotImplementedErrorrg   )r<   r¤   rE   r   r   r   Útest_uecm_errorsÏ  s<    " $$ rÒ   Úuse_tc                 C   s  t j}t dddg }| r,t |¡}t |¡}t|d|dƒ}|j|d�}| rj|jd d…  ¡ }||d  }n |jjd d…  ¡ }||d  }t	|j
|ƒ |jjd	ks¦t‚|jjd	ks¶t‚|jjd	ksÆt‚d
t| ¡ ƒksÚt‚| ¡ jdksìt‚| ¡ jdksþt‚|jjt jjk�st‚d S )Nr)   r*   r+   r   )rÓ   r'   r   r™   )r'   zCointegrating Vector)r'   r   )r'   r'   )r:   r;   r?   r[   r
   rf   r    Úcopyr²   r   Ú	ci_paramsZci_bserB   rG   Z
ci_tvaluesZ
ci_pvaluesrR   Z
ci_summaryZci_conf_intZci_cov_paramsZ	ci_resids)r7   rÓ   r   r   rj   rE   rÕ   r   r   r   Útest_uecm_ci_reprð  s(    

rÖ   Úcasec                 C   sh   t tjdtdddg ddddœƒ}| ¡ }dd	d
dddœ}| | ¡}t|j||  ƒ dt|ƒksdt‚d S )Nr   r)   r*   r+   r   r   r(   gyÖ$.¶¿æ?g˜àÔ’w@g‰A`åÐÒ@g À;ùô¸@gÀìž<,$@)r   r   r   r   r'   ÚBoundsTestResult)	r
   r:   r;   rf   Úbounds_testr   ÚstatrR   rG   )r×   rj   rE   rš   Úbounds_resultr   r   r   Útest_bounds_test
  s     
üû
rÜ   c                 C   s‚   t tjdtdddg ddddœƒ}| ¡ }|j| ddddd	gd
d�}|jdk ¡ sVt‚|jdk ¡ sht‚|jdk ¡  ¡ s~t‚d S )Nr   r)   r*   r+   r   r   r(   Fr   é'  ©r×   Ú
asymptoticÚseedÚnsimç        ç      ð?©	r
   r:   r;   rf   rÙ   Úp_valuesÚallrG   Z	crit_vals)r×   rj   rE   rÛ   r   r   r   Útest_bounds_test_simulation  s     
ü  
 ÿrç   rà   c                 C   sz   t tjdtdddg ddddœƒ}| ¡ }|jdd| d	d
�}|jdk ¡ sNt‚|jdk ¡ s`t‚|jdk ¡  ¡ svt‚d S )Nr   r)   r*   r+   r   r   r(   FrÝ   rÞ   râ   rã   rä   )rà   rj   rE   rÛ   r   r   r   Útest_bounds_test_seed0  s     
ü   ÿrè   c                  C   s‚   t tjdtdddg ddddœƒ} |  ¡ }| d¡}dt|ƒksDt‚|jdd	d
dddgd�}t|j|jƒ |j	|j	k 
¡ s~t‚d S )Nr   r)   r*   r+   r   r   r(   rØ   FrÝ   )rß   rá   rà   )r
   r:   r;   rf   rÙ   rR   rG   r   rÚ   rå   ræ   )rj   rE   rÛ   Zbounds_result_simr   r   r   Útest_bounds_test_simulate_orderD  s"    
ü
   ÿré   )[Útypingr   Únumpyr?   Znumpy.testingr   Zpandasr   Zpandas.testingr   rt   Zstatsmodels.datasetsr   Zstatsmodels.iolib.summaryr   Zstatsmodels.tools.sm_exceptionsr   Zstatsmodels.tsa.ar_modelr   Zstatsmodels.tsa.ardl.modelr	   r
   r   r   Zstatsmodels.tsa.deterministicr   Zload_pandasr<   r:   r   Zfixturer&   r,   r-   r.   r2   r3   r4   r5   r6   r7   r9   rD   rV   ra   rl   rx   r{   r~   r�   r†   rˆ   rŒ   r�   r�   r‘   r“   r”   r•   r—   r›   Úmarkr    r¢   r©   Zparametrizer­   r®   r°   r´   r¶   rº   r»   r½   r¾   rÁ   rÄ   ZsmokerÈ   rÊ   rÌ   rÏ   rÒ   rÖ   rÜ   rç   r@   ZRandomStaterA   rè   ré   r   r   r   r   Ú<module>   sà   


üþ	

þþ











ÿ#+ÿ&	/
		ÿ.	ÿ!

$þ
