U
    ÃmœdÙ¨  ã                   @   s  d Z ddlmZ ddlmZmZ ddlZddlm	Z	 ddl
ZddlmZmZ ddlZddlmZmZmZmZ ddlmZ ddlZdd	lmZmZ dd
lmZ ddlmZ ddlm Z m!Z! ddl"m#Z# ddl$m%Z%m&Z&m'Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 dZ2dZ3dZ4dd„ Z5dd„ Z6ddddgdggZ7ddgZ8ddd d!gZ9dd"gZ:d#d$gZ;e<e	e7e8e9e:e;ƒƒZ=g Z>e=D ]@Z?e?d dk�s²e?d �s²e?d" dk�s²e?d �r~e> @e?¡ �q~e>Z=d%ZAd&d'„ e=D ƒZBejCd(e=eBd)�d*d+„ ƒZDd,d-d.d/d0d1d2d3d4d5d6d7gZEd8d9„ ZFejG Hd:eE¡d;d<„ ƒZId=d>„ ZJd?d@„ ZKejGjLdAdB„ ƒZMG dCdD„ dDƒZNe	dddddggddd d!gddgdd"gddEgdFdGgddgddHgƒZ=e<e=ƒZ=dId'„ e=D ƒZ=dJd'„ e=D ƒZ=dKZOdLd'„ e=D ƒZBd¾dNdO„ZPejCd(e=eBd)�dPdQ„ ƒZQejCd(dR�dSdT„ ƒZRe	ddddggdgddgdgddEgdGgddgddHgƒZ=e<e=ƒZ=dUd'„ e=D ƒZ=dVd'„ e=D ƒZ=dWZOdXd'„ e=D ƒZBejCd(e=ddd… eBddd… d)�dYdZ„ ƒZSejGjTejGjLd[d\„ ƒƒZUejGjLd]d^„ ƒZVejGjTd_d`„ ƒZWdadb„ ZXdcdd„ ZYejGjLdedf„ ƒZZejGjLdgdh„ ƒZ[G didj„ djeNƒZ\G dkdl„ dle\ƒZ]G dmdn„ dne\ƒZ^ejG Hdoe<e _ddp¡ƒ¡dqdr„ ƒZ`ejG Hdsddg¡dtdu„ ƒZaejGjLdvdw„ ƒZbdxdy„ Zcdzd{„ ZdejG Hdsddg¡d|d}„ ƒZeejGjLd~d„ ƒZfd€d�„ Zgd‚dƒ„ Zhd„d…„ Zid†d‡„ Zjdˆd‰„ ZkdŠd‹„ ZlejG HdŒddg¡d�dŽ„ ƒZmejG Hd�d�d‘g¡d’d“„ ƒZnd”d•„ Zod–d—„ Zpd˜d™„ ZqejGjTdšd›„ ƒZrdœd�„ ZsdždŸ„ Ztd d¡„ Zud¢d£„ Zvd¤d¥„ Zwd¦d§„ Zxd¨d©„ Zydªd«„ Zzd¬d­„ Z{d®d¯„ Z|d°d±„ Z}d²d³„ Z~ejCd´dµ„ ƒZejG Hd¶dd!g¡ejG Hd·ddg¡ejG Hd¸dddg¡ejG Hd¹ddg¡dºd»„ ƒƒƒƒZ€d¼d½„ Z�dS )¿z
Test AR Model
é    )Úpytest_warns)Ú
NamedTupleÚUnionN)Úproduct)Úassert_allcloseÚassert_almost_equal)ÚIndexÚSeriesÚ
date_rangeÚperiod_range)Úassert_series_equal)Ú	macrodataÚsunspots)ÚSummary)ÚOLS)ÚSpecificationWarningÚValueWarning)ÚBunch)ÚAutoRegÚAutoRegResultsWrapperÚar_select_order)Úarma_generate_sample)ÚDeterministicProcessÚSeasonalityÚ	TimeTrend)ÚSARIMAX)Ú
results_aré   é   é   c                 C   s>   t j d¡}tjt ddd¡d| d�}tj| | ¡|d�|fS )NiÓþ él  é   ÚM©ÚfreqÚperiods©Úindex)	ÚnpÚrandomÚRandomStateÚpdr
   ÚdtÚdatetimer	   Ústandard_normal)ÚnobsÚrsÚidx© r2   úV/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/tsa/tests/test_ar.pyÚgen_ar_data)   s    r4   c                 C   sô  d}t |ƒ\}}t| tƒr| nt| ƒ}g }d|krTtjt |¡|jdd�}	| 	|	¡ d|krˆt 
d|d ¡}
tj|
|jdd�}
| 	|
¡ t| tƒr¨| r¨t 
d| d ¡}n| dkr¶d }n| }|�r8t d	¡}td
ƒD ]}d||d d
…|f< qÒdd„ td
ƒD ƒ}tj|||jd�}d|k�r.|jd d …dd …f }| 	|¡ |�rZ|D ]}| 	| |¡¡ �qB|�rž| ||f¡}dd„ t|ƒD ƒ}tj|||jd�}| 	|¡ nd }| d|¡ tj|dd� ¡ }|jd d …df }|jd d …dd …f }||||fS )Néô  ÚcÚconst©r'   ÚnameÚtr!   Útimer   )r5   é   r<   c                 S   s   g | ]}d   |¡‘qS )zs.{0}©Úformat©Ú.0Úir2   r2   r3   Ú
<listcomp>E   s     z&gen_ols_regressors.<locals>.<listcomp>©Úcolumnsr'   c                 S   s   g | ]}d   |¡‘qS )zx.{0}r=   r?   r2   r2   r3   rB   O   s     ©Zaxis)r4   Ú
isinstanceÚintÚmaxr+   r	   r(   Zonesr'   ÚappendÚarangeÚzerosÚrangeÚ	DataFrameÚilocÚshiftr.   ÚinsertÚconcatÚdropna)ÚarÚseasonalÚtrendÚexogr/   Úyr0   ÚmaxlagÚregr7   r;   ÚlagsÚseasonsrA   ÚcolsÚlagÚxZdfÚendogr2   r2   r3   Úgen_ols_regressors/   sN    




r`   é   r!   TFÚnr6   r:   Úcté   Ú	nonrobustZHC0)ÚARZSeasonalZTrendZExogzCov Typec                 C   s&   g | ]}d   dd„ tt|ƒD ƒ¡‘qS )z, c                 S   s    g | ]\}}|d  t |ƒ ‘qS )z: )Ústr)r@   rb   Úpr2   r2   r3   rB   h   s     z<listcomp>.<listcomp>)ÚjoinÚzipÚnames©r@   Úparamr2   r2   r3   rB   g   s   ÿrB   Úmodule)ÚscopeÚparamsÚidsc                 C   sd   | j \}}}}}t||||ƒ\}}}}t|||||d�}	|	j|d�}
t||ƒ}|j|dd�}|
|fS )N)rT   rU   rV   )Úcov_typeF)rr   Úuse_t)rm   r`   r   Úfitr   )ÚrequestrS   rT   rU   rV   rr   rW   r^   r_   Zar_modZar_resZolsZols_resr2   r2   r3   Úols_autoreg_resultm   s    
rv   ÚbseÚ
cov_paramsÚdf_modelÚdf_residÚfittedvaluesÚllfr/   rp   ÚresidÚscaleÚtvaluesrs   c                 C   s¢   |j |j }||j }|| | }|dkr2| | S |dkrD| |j  S |jdkrR| S |dkrh| t |¡ S |dkrx| | S |dkrˆ| | S |dkrž| t |¡ S | S )zS
    fixes to correct for df adjustment b/t OLS and AutoReg with nonrobust cov
    )r~   ry   re   )rw   Úconf_int)rx   r~   )Úf_test)r   )Z
k_constantry   rz   rr   r(   Úsqrt)ÚvalZattribÚresZnparamr/   Zdf_correctionr2   r2   r3   Úfix_ols_attributeˆ   s$    


r…   Ú	attributec                 C   sJ   | \}}t ||ƒ}t ||ƒ}t|ƒr0|ƒ }|ƒ }t|||ƒ}t||ƒ d S ©N)ÚgetattrÚcallabler…   r   )rv   r†   ÚaÚoZols_aZar_ar2   r2   r3   Útest_equiv_ols_autoreg¡   s    

rŒ   c                 C   sT   | \}}|  ¡ }|  ¡ }|jdkrF|j|j }t|d|ƒ}||j j}t||ƒ d S )Nre   r€   )r€   rr   ÚTrp   r…   r   )rv   rŠ   r‹   Za_ciZo_ciZspreadr2   r2   r3   Útest_conf_int_ols_autoreg­   s    
rŽ   c                 C   sL   | \}}t  |jjd ¡}| |¡j}| |¡j}t|d|ƒ}t||ƒ d S )Nr   r�   )r(   Úeyerp   Úshaper�   Zfvaluer…   r   )rv   rŠ   r‹   ÚrZa_fZo_fr2   r2   r3   Útest_f_test_ols_autoreg¹   s    r’   c                 C   sB   | \}}t  |j¡}| |¡ t  |jjd ¡}|j|dd� d S )Nr   T)Zscalar)r(   Ú	ones_likerp   Út_testr�   r�   Ú	wald_test)rv   rŠ   Ú_r‘   r2   r2   r3   Útest_other_tests_autoregÃ   s
    
r—   c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	j
dd„ ƒZej	j
dd„ ƒZdS )ÚCheckARMixinc                 C   s   t | jj| jjtƒ d S r‡   )r   Úres1rp   Úres2Ú	DECIMAL_6©Úselfr2   r2   r3   Útest_paramsÐ   s    zCheckARMixin.test_paramsc                 C   s>   t  t  | j ¡ ¡¡}t|| jjtƒ t| jj	| jj
tƒ d S r‡   )r(   r‚   Zdiagr™   rx   r   rš   Ú	bse_statar›   rw   Z	bse_gretlÚ	DECIMAL_5)r�   rw   r2   r2   r3   Útest_bseÓ   s    zCheckARMixin.test_bsec                 C   s   t | jj| jjtƒ d S r‡   )r   r™   r|   rš   r›   rœ   r2   r2   r3   Útest_llfÙ   s    zCheckARMixin.test_llfc                 C   s   t | jj| jjtƒ d S r‡   )r   r™   Úfperš   r›   rœ   r2   r2   r3   Útest_fpeÜ   s    zCheckARMixin.test_fpec                 C   sR   ddl m} |ƒ }| j |¡ | dd¡ | jj |¡}t|ƒt| jƒksNt‚d S )Nr   )ÚBytesIO)	Úior¥   r™   ÚsaveÚseekÚ	__class__ÚloadÚtypeÚAssertionError)r�   r¥   ÚfhZres_unpickledr2   r2   r3   Útest_pickleß   s    zCheckARMixin.test_picklec                 C   s   t | j ¡  ¡ tƒst‚d S r‡   )rF   r™   ÚsummaryÚas_textrg   r¬   rœ   r2   r2   r3   Útest_summaryé   s    zCheckARMixin.test_summaryc                 C   s   t | jjtjtjfƒst‚d S r‡   )rF   r™   Zpvaluesr(   Úndarrayr+   r	   r¬   rœ   r2   r2   r3   Útest_pvaluesí   s    zCheckARMixin.test_pvaluesN)Ú__name__Ú
__module__Ú__qualname__rž   r¡   r¢   r¤   r®   ÚpytestÚmarkÚsmoker±   r³   r2   r2   r2   r3   r˜   Ï   s   

r˜   é   ÚnoneZdropr<   c                 C   s4   g | ],}|d  s,|d dks,|d s,|d r|‘qS ©r   r!   rb   rd   ra   r2   rl   r2   r2   r3   rB   ý   s      þc                 C   s0   g | ](}|d  r(|d  r|d s(|d r|‘qS ©rd   r   r   r2   rl   r2   r2   r3   rB     s      þzglags: {0}, trend: {1}, seasonal: {2}, nexog: {3}, periods: {4}, missing: {5}, pandas: {6}, hold_back{7}c                 C   s   g | ]}t j|Ž ‘qS r2   ©Ú	param_fmtr>   rl   r2   r2   r3   rB     s     é(‰c           
      C   s¢   t j |¡}| | ¡}|r(| | |f¡nd }|r†tjt ddd¡| dd�}tj|d|d�}|r†dd	„ t	|j
d
 ƒD ƒ}tj|||d�}G dd„ dtƒ}	|	||d�S )NiÏ  r<   é   r"   ©r%   r$   r_   ©r9   r'   c                 S   s   g | ]}d   |¡‘qS )zexog.{0}r=   r?   r2   r2   r3   rB     s     zgen_data.<locals>.<listcomp>r!   rC   c                   @   s6   e Zd ZU eejejf ed< eejej	f ed< dS )zgen_data.<locals>.DataSetr_   rV   N)
r´   rµ   r¶   r   r(   r²   r+   r	   Ú__annotations__rM   r2   r2   r2   r3   ÚDataSet  s   
rÅ   ©r_   rV   )r(   r)   r*   r.   r+   r
   r,   r-   r	   rL   r�   rM   r   )
r/   ÚnexogÚpandasÚseedr0   r_   rV   r'   r\   rÅ   r2   r2   r3   Úgen_data  s    
  ÿrÊ   c           
   
   C   sT   | j d d… \}}}| j dd … \}}}}}td||ƒ}	t|||||	j|	j||d�S ©Nra   éú   )rU   rZ   rT   Úperiodr_   rV   ÚmissingÚ	hold_back©rm   rÊ   r   r_   rV   ©
ru   rZ   rU   rT   rÇ   rÍ   rÎ   Ú
use_pandasrÏ   Údatar2   r2   r3   Úar_data"  s    ørÔ   )ro   c                 C   sš   t j d¡}| d¡}dt  |¡ }td|jd ƒD ]4}dd||d    d||d    ||  ||< q4tjd	|jd d d
d�}tj	|dd … |d�S )Né¿c4é4   é
   rd   r   r!   ç      à?gš™™™™™Ù?z
2000-01-01r"   rÂ   r&   )
r(   r)   r*   r.   r“   rL   r�   r+   r   r	   )ru   ÚgenÚerW   rA   r'   r2   r2   r3   Úar23  s    
2rÛ   c                 C   s4   g | ],}|d  s,|d dks,|d s,|d r|‘qS r¼   r2   rl   r2   r2   r3   rB   I  s      þc                 C   s0   g | ](}|d  r(|d  r|d s(|d r|‘qS r½   r2   rl   r2   r2   r3   rB   N  s      þzilags: {0}, trend: {1}, seasonal: {2}, nexog: {3}, periods: {4}, missing: {5}, pandas: {6}, hold_back: {7}c                 C   s   g | ]}t j|Ž ‘qS r2   r¾   rl   r2   r2   r3   rB   W  s     c           
   
   C   sT   | j d d… \}}}| j dd … \}}}}}td||ƒ}	t|||||	j|	j||d�S rË   rÐ   rÑ   r2   r2   r3   Ú	plot_data[  s    ørÜ   c              
   C   sª   ddl m} t| j| j| j| j| j| j| j	| j
d�}| ¡ }| ¡ }t||ƒsRt‚| jd kr”|jdd�}t||ƒsvt‚|jdd dd�}t||ƒs”t‚t| ¡ tƒs¦t‚d S )Nr   )ÚFigure©rU   rT   rV   rÏ   rÍ   rÎ   i,  )ÚendF)rß   ÚalphaÚ	in_sample)Zmatplotlib.figurerÝ   r   r_   rZ   rU   rT   rV   rÏ   rÍ   rÎ   rt   Zplot_diagnosticsrF   r¬   Úplot_predictr¯   r   )rÜ   Zclose_figuresrÝ   Úmodr„   Zfigr2   r2   r3   Útest_autoreg_smoke_plotsl  s(    ø

rä   c              
   C   s(  t | j| j| j| j| j| j| j| jd�}| 	¡ }d }| jd k	rTt
 d| jjd f¡}|j|jdd|d� | jdkr�| jd kr�|j|jdd|d� t| jtjƒ�r$| jr²| jd k	�r$tt| jjd ƒƒ| j_| jd k	rìtt| jjd ƒƒ| j_t | j| j| j| j| j| j| jd�}|j|jdd|d� d S )NrÞ   r!   r   rÌ   ©Úexog_oosi^  )rU   rT   rV   rÍ   rÎ   )r   r_   rZ   rU   rT   rV   rÏ   rÍ   rÎ   rt   r(   Úemptyr�   Úpredictrp   rF   r+   r	   ÚlistrL   r'   )rÔ   rã   r„   ræ   r2   r2   r3   Útest_autoreg_predict_smoke†  sF    ø

ÿÿ
ù	rê   c                  C   sx   t dddƒ} t| jdddd d�}| ¡ }t|ƒD ]B}| d¡r@q0|dkrJq0t||ƒ}t|ƒrd|ƒ  q0t|t	ƒs0t
‚q0d S )NrÌ   r   Frb   )rU   rT   rV   r–   )rè   r�   r”   Z
initializerª   Zremove_datar§   r”   Zt_test_pairwiser•   Zwald_test_termsÚapplyrI   )rÊ   r   r_   rt   ÚdirÚ
startswithrˆ   r‰   rF   Úobjectr¬   )rÓ   rã   r„   Úattrr2   r2   r3   Útest_parameterless_autoreg«  s    

rð   c               	   C   s
  t dddƒ} t| jdƒ}| ¡ }tjtdd�� |j|j| j	d� W 5 Q R X tjtdd�� |j|j| j	d� W 5 Q R X tjtd	d�� t| jdd
d� W 5 Q R X tjtdd�� t| jj
ddd� W 5 Q R X t| jd| j	d�}| ¡ }tjtdd��" |j|j| j	jd d… d� W 5 Q R X tjtdd��* |j|j| j	jd d …d d
…f d� W 5 Q R X tjtdd�� |j|jddd� W 5 Q R X tjtdd�� |j|jdd d� W 5 Q R X t| jd| j	d�}| ¡ }tjtdd��$ |j|jd| j	jd d… d� W 5 Q R X d S )NrÌ   rd   Tra   z exog and exog_oos cannot be used©Úmatch©rV   rå   zhold_back must be >= lagsr!   )rÏ   zfreq cannot be inferred©rT   zThe shape of exog \(200, 2\)éÈ   z!The number of columns in exog_oosz Prediction must have `end` afteréÇ   ©Ústartrß   zexog_oos must be provided)rß   ræ   r   zstart and end indicate that 10i  r   )rÊ   r   r_   rt   r·   ÚraisesÚ
ValueErrorrè   rp   rV   ÚvaluesrN   )rÓ   rã   r„   r2   r2   r3   Útest_predict_errorsÌ  s2    &.rü   c               	   C   sŽ   t dddƒ} 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
gƒ W 5 Q R X d S )NrÌ   rd   Tz"lags must be a non-negative scalarrñ   éÿÿÿÿzAll values in lags must be posr!   éþÿÿÿra   )rÊ   r·   rù   rú   r   r_   ©rÓ   r2   r2   r3   Útest_spec_errorsê  s    r   c              
   C   sX   t | j| j| j| j| j| j| j| jd�}| 	¡ }|j
dd� | jd krT|j
ddd� d S )NrÞ   T©Údynamici  )rß   r  )r   r_   rZ   rU   rT   rV   rÏ   rÍ   rÎ   rt   rè   )rÔ   rã   r„   r2   r2   r3   Útest_dynamic_forecast_smokeô  s    ø

r  c                  C   sp   t  ¡ jd } t| dddd� t| dddd� t| dddd� t| ddd	� t| ddd
� t| ddddd� d S )NZSUNACTIVITYr   Trb   )ÚglobrU   Fr<   )rT   rÍ   rô   )r  )r  rT   rÍ   )r   rª   rÓ   r   rÿ   r2   r2   r3   Útest_ar_select_order_smoke  s    r  c                   @   s   e Zd Zdd„ ZdS )ÚCheckAutoRegMixinc                 C   s   t | jj| jjtƒ d S r‡   )r   r™   rw   rš   rŸ   r›   rœ   r2   r2   r3   r¡     s    zCheckAutoRegMixin.test_bseN)r´   rµ   r¶   r¡   r2   r2   r2   r3   r    s   r  c                   @   s$   e Zd ZdZedd„ ƒZdd„ ZdS )ÚTestAutoRegOLSConstantz2
    Test AutoReg fit by OLS with a constant.
    c                 C   sD   t  ¡ }ttt|jƒƒƒ|j_t|jdd� ¡ | _	t
jdd�| _d S )Né	   ©rZ   T©Úconstant)r   rª   ré   rL   Úlenr_   r'   r   rt   r™   r   ÚARResultsOLSrš   ©ÚclsrÓ   r2   r2   r3   Úsetup_class  s    z"TestAutoRegOLSConstant.setup_classc                 C   s6  | j j}| j j}t| |¡|jd … | jjtƒ t| |¡|jd … | jj	tƒ t|j|dd�| jj
tƒ t|j|ddd�| jjtƒ t| |¡|jd … | jjtƒ t|j|ddd�| jjtƒ t|j|ddd�| jjtƒ t|j|dd	d�| jjtƒ t|j|dd
d�| jjtƒ t|j|ddd�| jjtƒ d S ©Néd   )rø   r  rõ   r÷   i�  i4  i¨  i6  i<  iG  ©r™   Úmodelrp   r   rè   rÏ   rš   ZFVOLSnneg1start0Ú	DECIMAL_4ZFVOLSnneg1start9ZFVOLSnneg1start100ZFVOLSn200start0ZFVOLSdefaultZFVOLSn200start200ZFVOLSn100start325ZFVOLSn301start9ZFVOLSn4start312ZFVOLSn15start312©r�   r  rp   r2   r2   r3   Útest_predict"  sh    ýýýýýýýýýýz#TestAutoRegOLSConstant.test_predictN©r´   rµ   r¶   Ú__doc__Úclassmethodr  r  r2   r2   r2   r3   r    s   
r  c                   @   s$   e Zd ZdZedd„ ƒZdd„ ZdS )ÚTestAutoRegOLSNoConstantz1f
    Test AR fit by OLS without a constant.
    c                 C   s6   t  ¡ }tt |j¡ddd� ¡ | _tj	dd�| _
d S )Nr  rb   ©rZ   rU   Fr
  )r   rª   r   r(   Úasarrayr_   rt   r™   r   r  rš   r  r2   r2   r3   r  ^  s    z$TestAutoRegOLSNoConstant.setup_classc                 C   s6  | j j}| j j}t| |¡|jd … | jjtƒ t| |¡|jd … | jj	tƒ t|j|dd�| jj
tƒ t|j|ddd�| jjtƒ t| |¡|jd … | jjtƒ t|j|ddd�| jjtƒ t|j|ddd�| jjtƒ t|j|dd	d�| jjtƒ t|j|dd
d�| jjtƒ t|j|ddd�| jjtƒ d S r  r  r  r2   r2   r3   r  d  sh    ýýýýýýýýýýz%TestAutoRegOLSNoConstant.test_predictNr  r2   r2   r2   r3   r  Y  s   
r  r]   é   c              	   C   s&  t  ¡ }t |j¡}|d|  d … }t|| d� ¡ }|j}|j}|j	}t 
||||jg¡}t d¡jj}	|	| d d d …f  ¡ }
d|  }t 
ddt t |j¡¡ t |j¡g¡}d|j ||  |
d d…< t||
tƒ t|| dd� ¡ }t|j|jƒ t|j	|j	ƒ t|j|jƒ t|j|jƒ d S )	Né   r	  r7   r!   rd   rþ   ra   )rZ   rÏ   )r   rª   r(   r  r_   r   rt   ÚaicÚhqicÚbicÚarrayr£   r   ZARLagResultsÚicr�   ÚcopyÚlogr/   r|   r   r›   r   )r]   rÓ   r_   Z	endog_tmpr‘   r   r!  r"  r™   rš   ÚcompÚkÚpenÚr2r2   r2   r3   Útest_autoreg_info_criterion›  s&    *r+  Ú	old_namesc              	   C   sŽ   |rt nd }tdddd�}ttj d¡d|d�}t|ƒ� t|d|d� ¡ }W 5 Q R X |rjt	d	d
dgƒ}nt	dd
dgƒ}|j
j |¡sŠt‚d S )Nz2011-1éH   r"   ©rø   r%   r$   ZfoobarrÃ   rd   ©rZ   r,  Ú	interceptz	foobar.L1z	foobar.L2r7   )ÚFutureWarningr   r	   r(   r)   Zrandnr   r   rt   r   rp   r'   Úequalsr¬   )Úreset_randomstater,  ÚwarningÚdatesrW   Úresultsr1   r2   r2   r3   Útest_autoreg_named_series¶  s    
r7  c                  C   sH   t  ¡ jd  ¡  ¡ } tdt| ƒdd�}|| _t| dd� 	¡ }|j
 d S )NÚcpiÚ1959Q1ÚQr.  é   r	  )r   Úload_pandasrÓ   ÚdiffrR   r   r  r'   r   rt   rw   )Zdtar5  rS   r2   r2   r3   Útest_autoreg_seriesÅ  s
    r>  c                  C   sÊ   t j d¡ tdddgdgdƒ} t| tt ddd¡ddd�d	�}t|d
dd�}t	|j
ƒdks`t‚t|jtƒspt‚t|jtƒs€t‚t|jtƒs�t‚t|jtƒs t‚|jrªt‚|jdks¸t‚|jd ksÆt‚d S )Ni90  r!   g      è¿g333333Ó?r  iÆ  r"   r.  r&   r<   r   )rX   r$  )r!   rd   r6   )r(   r)   rÉ   r   r	   r
   r,   r-   r   ÚtupleZar_lagsr¬   rF   r   Údictr"  r!  r  r   rT   rU   rÍ   )rW   Útsr„   r2   r2   r3   Útest_ar_order_selectÏ  s    þ
rB  c                  C   sp   t  ddddddddddg
¡} tjtdd�� t| dd	� W 5 Q R X tjtdd�� t| dd
d� W 5 Q R X d S )Ng   À•¨Ý?g   €ÁùØ?g    ]‰Ú?g   `‰ÚÕ?g   ÀùÜ?zThe model specification cannotrñ   é   r	  rb   r  )r(   r#  r·   rù   rú   r   )Úsampler2   r2   r3   Ú"test_autoreg_constant_column_trendâ  s"    öÿrE  c              	   C   sð   t  ¡ jd  ¡  ¡ }tdt|ƒdd�}||_| r6tnd }t	|ƒ� t
|d| d� ¡ }W 5 Q R X | ¡  ¡ }d|ksxt‚d|ks„t‚d	|ks�t‚t	|ƒ� t
|d
| d� ¡ }W 5 Q R X | ¡  ¡ }| rÔd|ksàt‚nd|ksàt‚d|ksìt‚d S )Nr8  r9  r:  r.  r   r/  z
AutoReg(4)zcpi.L4z
03-31-1960r   r0  r7   ú
AutoReg(0))r   r<  rÓ   r=  rR   r   r  r'   r1  r   r   rt   r¯   r°   r¬   )r,  rÓ   r5  r4  r„   Zsummr2   r2   r3   Útest_autoreg_summary_cornerø  s"    

rG  c                  C   s‚   t  ¡ } tt | j¡dƒ}| ¡ }| |j¡}t	|tj
ƒs>t‚|jdksLt‚| |j¡jdksbt‚t| |j¡ | |j¡ƒ d S )Nra   )r   )r   r   )r   r<  r   r(   r  r_   rt   Úscorerp   rF   r²   r¬   r�   Úinformationr   Zhessian)rÓ   rS   r„   rH  r2   r2   r3   Útest_autoreg_score  s    rJ  c                  C   sF   t  ¡ } tt | j¡dd�}| ¡ }t|jt 	d|j
d  g¡ƒ d S )Nr!   r	  g      ð?rý   )r   r<  r   r(   r  r_   rt   r   Úrootsr#  rp   )rÓ   rS   r„   r2   r2   r3   Útest_autoreg_roots  s    rL  c                 C   s<  t j d¡}t  d¡}|d t  d¡ |d< tddƒD ] }d||d   ||  ||< q6t|dƒ}| ¡ }|jdddd�}|jddd	d�}t	j
t d
dd¡ddd�}t	j||d�}t|dƒ}| ¡ }|j|d |d |d d�}	|j|d |d dd�}
|j|d |d d	d�}t||ƒ t||	ƒ t||
ƒ t||ƒ d S )Néé  r   çÙP^Cy@r!   çÍÌÌÌÌÌì?r5   i   r  TiÐ  é   r"   rÂ   r&   )r(   r)   r.   rç   r‚   rL   r   rt   rè   r+   r
   r,   r-   r	   r   )r3  rÚ   rW   rA   rã   r„   Zpred0Zpred1r1   Zpred2Zpred3Zpred4r2   r2   r3   Útest_equiv_dynamic!  s(    





rQ  c            	      C   s&  t j d¡} |  d¡}t  d¡}|d t  d¡ |d< tddƒD ] }d||d   ||  ||< q@t|ddd	�}|jd
dd�}t	|dƒ}| 
dd¡}| 
|jd d… dd¡}t||ƒ |j
dddd�}|j
|jd d… dddd�}t||ƒ |j
dddd�}|j
|jd d… dddd�}t||ƒ d S )NéNa¼ rM  r   rN  r!   rO  ©r!   r   r   r6   ©ÚorderrU   Frý   )ÚdispZiprinté„  éL  rd   Tr  é2   )r(   r)   r*   r.   rç   r‚   rL   r   rt   r   rè   rp   r   )	r0   rÚ   rW   rA   ÚsmodÚsresrã   ZspredÚpredr2   r2   r3   Útest_dynamic_against_sarimax8  s$    




r]  c                  C   s  t j d¡} |  d¡}t  d¡}|d t  d¡ |d< dt  t  d¡d d t j ¡ }t	d	dƒD ]0}dd
||d	    ||  ||d   ||< qbt
j|t
jt dd	d	¡ddd�d�}t|d	dd�}| ¡ }|jjd }t  d¡}	|jjd	d… |	d	d …< |jjd }
| ddd¡}t  d¡}|d |
 | |	d  |d< t	d	dƒD ].}||d	  |
 | |	d| d   ||< �qFt
j|t
j|jd ddd�d�}t||ƒ |jddd�}|dd… |
 | |	t  dd¡d   }t
j|t
j|jd ddd�d�}t||ƒ d S )NrR  rM  r   rN  r×   r<   rº   rd   r!   rO  éž  r"   rÂ   r&   Trô   rý   rW  rX  éÉ   éƒ  Fr  ée   )r(   r)   r*   r.   rç   r‚   ÚcosrJ   ÚpirL   r+   r	   r
   r,   r-   r   rt   rp   rN   rK   rè   r'   r   )r0   rÚ   rW   ÚeffectsrA   Úysrã   r„   r6   r[   rS   r\  Údirectr2   r2   r3   Útest_predict_seasonalO  sD    

". ÿ

, ÿ
( ÿrg  c                  C   s\  t j d¡} |  d¡}t  d¡}|  d¡}|d d… t  d¡ |d d…  d¡ |d d…< tddƒD ]@}dd||d    d	||d    ||  ||  ¡  ||< qdtj	|tj
t d
dd¡ddd�d�}tj|ddg|jd�}t|ddgd|d�}| ¡ }dt| ¡ ƒk�st‚| d¡}	|jjd }
|jjdd… }t  |jjdd … ¡}|
|d |dd…   |d |dd…   }||d |dd …df  |d |dd …df   7 }tj
|jd ddd�}tj	||d�}t|	|ƒ |  d¡}|jddd|d�}	t  d¡}|
|d |d   |d |d   |d |  |d< |
|d |d   |d |d    |d! |  |d< |
|d |d   |d |d   |d" |  |d#< tddƒD ]„}|
|d ||d    |d ||d    ||< d| |jd k �r||  |d|  | 7  < n||  ||d  | 7  < �q¨tj	|tj
|jd ddd�d�}t|	|ƒ d S )$NrR  rM  )rM  rd   ra   rN  r!   r×   rO  rØ   r^  r"   rÂ   r&   Zx0Úx1rC   r6   ©rU   rV   z-XrW  r   r`  rý   é�  éýÿÿÿra  )r  rd   rX  T)r  ræ   r_  é‚  é…  é†  rd   )r(   r)   r*   r.   rç   r‚   ÚsumrL   r+   r	   r
   r,   r-   rM   r'   r   rt   rg   r¯   r¬   rè   rp   rN   r  r   rK   r�   )r0   rÚ   rW   r^   rA   re  Zxdfrã   r„   r\  r6   rS   Úexrf  r1   ræ   r2   r2   r3   Útest_predict_exogr  sP    


0> ÿ
,4


4440  ÿrq  c                  C   s‚  t j d¡} |  d¡}t  d¡}|d d… t  d¡ |d d…< tddƒD ]4}dd||d    d||d    ||  ||< qHtj|tj	t
 d	dd¡dd
d�d�}t|ddgdd�}| ¡ }|jjd }|jjd }t  |jjdd … ¡}	| ddd¡}
t  d¡}||d  |	d |d   |	d |d   |d< ||d  |	d |d   |	d |d   |d< ||d  |	d |d   |	d |d   |d< tddƒD ]B}||d|   |	d ||d    |	d ||d    ||< �qœtj|tj	|jd dd
d�d�}t|
|ƒ | d¡}
||t  dd¡  |	d |dd…   |	d |dd…   }tj	|jd dd
d�}tj||d�}t|
|ƒ d S )NrR  rM  ra   rN  r×   rO  r!   rØ   r^  r"   rÂ   r&   rc   ©rU   r   rd   rW  rX  Tr_  rm  r`  rj  rn  rl  i‡  iê  rý   rk  ra  )r(   r)   r*   r.   rç   r‚   rL   r+   r	   r
   r,   r-   r   rt   rp   rN   r  rè   rK   r'   r   rJ   )r0   rÚ   rW   rA   re  rã   r„   r6   r:   rS   r\  rf  r1   r2   r2   r3   Útest_predict_irregular_arŸ  sP    

2 ÿ
0006ÿ
 ÿ

ÿþýÿrs  r  c                 C   s  t j d¡}| d¡}t  d¡}|d t  d¡ |d< dt  t  d¡d d t j ¡ }t	d	dƒD ]0}dd
||d	    ||  ||d   ||< qbt
j|t
jt dd	d	¡ddd�d�}t|d	dd�}| ¡ }|jdd| d�}	t
jt dd	d	¡ddd�}
|j|
d |
d | d�}t|	|ƒ d S )NrR  rM  r   rN  r×   r<   rº   rd   r!   rO  r^  r"   rÂ   r&   Trô   éè  iü  r  iý  )r(   r)   r*   r.   rç   r‚   rb  rJ   rc  rL   r+   r	   r
   r,   r-   r   rt   rè   r   )r  r0   rÚ   rW   rd  rA   re  rã   r„   Zpred_intr5  Z
pred_datesr2   r2   r3   Útest_forecast_start_end_equivÉ  s"    

". ÿru  rø   é   é   c                 C   s\   t  tjjdd�¡}t|dd�}| ¡ }| d }|j| |d�}|jd ||  d ksXt	‚d S )	Né   ©Úsizerd   r	  r   r÷   r   r!   )
r+   r	   r(   r)   Únormalr   rt   rè   r�   r¬   )rø   Zy_trainÚmÚmfrß   r\  r2   r2   r3   Útest_autoreg_startÝ  s    r~  c              	   C   sÜ   t  tjjdd�¡}tddd�tdƒg}t|j|d�}t	|dd	d
|d�}| 
¡ }t	|ddd
dd�}| 
¡ }tt |j¡t |j¡ƒ tjtdd�� t	|dd	d
|d� W 5 Q R X tjtdd�� t	|d
dd� W 5 Q R X d S )Nrõ   ry  Tr!   ©r  rU  r<   ©Zadditional_termsrb   Frd   )rU   rT   rZ   Údeterministicrc   )rU   rT   rZ   rÍ   zWhen using deterministic, trendrñ   zdeterministic must be)r�  )r+   r	   r(   r)   r{  r   r   r   r'   r   rt   r   r  rp   r·   Úwarnsr   rù   Ú	TypeError)r3  rW   ÚtermsÚdpr|  r„   Úm2rš   r2   r2   r3   Útest_deterministicç  s     ÿr‡  c                 C   sð   t jjdd�}|jd }tjt ddd¡d|d�}td|ƒD ] }d||d   ||  ||< q<tj	||d	�}t
|d
dd�}| ¡ }| d¡}| ||d ¡}	| d¡}
t||	ƒ t||
ƒ t|dd
d�jdd�}| d¡}tj |j|j¡ d S )Nrt  ry  r   iä  r!   ÚDr#   çffffffî?r&   r6   )rU   rZ   r<   rº   z
2022-10-08rS  rT  F)rV  )r(   r)   r{  r�   r+   r
   r,   r-   rL   r	   r   rt   Úforecastrè   r   r   ÚtestingÚassert_index_equalr'   )r3  rÚ   r/   r1   rA   rW   r|  r„   rŠ   Úbr6   Zsarimax_resÚdr2   r2   r3   Ú#test_autoreg_predict_forecast_equivø  s     





r�  c                  C   sˆ   t jdddd�} tj d¡ d¡}t j|| d d… dd�}t|d	d
d�}| ¡ }| 	d¡}t
|jt jƒslt‚t j |j| dd … ¡ d S )Nz1990-1-1i  r"   rÂ   r   r5   rW   r8   ra   Trô   é   ièÿÿÿ)r+   r   r(   r)   r*   r.   r	   r   rt   rŠ  rF   r'   ZPeriodIndexr¬   r‹  rŒ  )rc  rW   re  rã   r„   Zfcastr2   r2   r3   Ú"test_autoreg_forecast_period_index  s    
r‘  c               	   C   sN   t j d¡} t| ddgd�}| ¡ }t t¡� |jdddd� W 5 Q R X d S )	Nr  r!   ra   r	  r   rY  F)rß   rá   )	r(   r)   r.   r   rt   r·   rù   rú   râ   )rW   rã   r„   r2   r2   r3   Útest_autoreg_plot_err  s
    r’  c               	   C   sú   t jt ddd¡ddd�} tj d¡}t|j| ddd	�ƒ}| 	d¡}t 
d¡}|d d
… |d d
…< td
dƒD ]4}d
d||d    d||d
    ||  ||< qlt j|dd … |dd�}t t¡� t|d
d� ¡ }W 5 Q R X t t |j¡¡söt‚d S )Nr    r!   rÌ   r"   rÂ   r   r  F)rz  Úreplacerd   gÍÌÌÌÌÌü?r‰  iœÿÿÿrW   r8   r	  )r+   r
   r,   r-   r(   r)   r*   ÚsortedÚchoicer.   rK   rL   r	   r·   r‚  r   r   rt   ÚallÚisfiniter}   r¬   )r1   r0   Z	idx_datesrÚ   rW   rA   re  r„   r2   r2   r3   Útest_autoreg_resids  s    

2r˜  c                 C   sB  t | ddd�}| ¡ }|jdd�}|jddd�}|j| jd | jd d�}tjtjg}t |j¡}td| j	d	 ƒD ]j}| |d
  }	| |d  }
|dkr¢||d
  }	|dkr¶||d  }
| 
|d	 |d
 |	  |d |
  ¡ qrtj|| jd�}t||ƒ t||ƒ t|dd … |dd … ƒ | ¡ }t|d d… |d d… ƒ d S )Nrd   r6   rr  rw  r  r×   r;  ©rø   r  r   r!   é   r&   )r   rt   rè   r'   r(   Únanr  rp   rL   r�   rI   r+   r	   r   )rÛ   rã   r„   Zd25Zs10_d15Zsd_indexÚ	referencerh   rA   Úlag1Úlag2ÚexpectedÚfullr2   r2   r3   Útest_dynamic_predictions.  s*    (

r¡  c                 C   sX  t | ddd�}| ¡ }|jddd�}|jdddd	�}| jd
 d| jd
 | jd    }|j| jd | jd |d	�}t||ƒ t|dd … |dd … ƒ tjtjg}t |j¡}t	d|j
d ƒD ]z}	|	| j
d k rè| |	d  }
| |	d  }|	dkrü||	d  }
|	dk�r||	d  }| |d |d |
  |d |  ¡ q¾tj||jd�}t||ƒ d S )Nrd   r6   rr  rw  é=   )r  rß   r×   r;  )rø   r  rß   rý   r<   rþ   r   r!   rš  r&   )r   rt   rè   r'   r   r(   r›  r  rp   rL   r�   rI   r+   r	   )rÛ   rã   r„   Zd25_endZs10_d15_endrß   Zsd_index_endrœ  rh   rA   r�  rž  rŸ  r2   r2   r3   Útest_dynamic_predictions_oosI  s2    "  ÿ

(r£  c              	   C   st   t | ddd�}| ¡ }tjtdd�� |jdd� W 5 Q R X tjtdd��  |j| jd | jd	 d
� W 5 Q R X d S )Nrd   r6   rr  zDynamic prediction cannotrñ   rý   r  r×   r   r™  )r   rt   r·   rù   rú   rè   r'   )rÛ   rã   r„   r2   r2   r3   Útest_invalid_dynamice  s    r¤  c           	      C   s�   t j d¡}tj| | jd df¡ddg| jd�}t| dd|d�}| 	¡ }| 
¡ }|j
|d	�}t||ƒ |j
d
d�}|j
d
|d�}t||ƒ d S )NrÕ   r   rd   rh  Zx2rC   r6   ri  ró   rw  r  )r  rV   )r(   r)   r*   r+   rM   r.   r�   r'   r   rt   rè   r   )	rÛ   rÙ   rV   rã   r„   Z	pred_baseZ	pred_replZdyn_baseZdyn_replr2   r2   r3   Útest_exog_predictionn  s    ý
r¥  c              	   C   s’   t  t¡� t| ddddd�}W 5 Q R X t| ddddd�}|jdksHt‚|jdksVt‚d|jksdt‚d|jksrt‚d	|jks€t‚d
|jksŽt‚d S )Nrd   rc   T)rU   rT   r,  Fr<   r0  z
seasonal.1r7   zs(2,12))r·   r‚  r1  r   rU   r¬   rÍ   Z
exog_names)rÛ   rã   Únewr2   r2   r3   Útest_old_names€  s    r§  c                 C   s,   t | d d… dƒ ¡ }t| ¡ tƒs(t‚d S ©Nr×   rd   )r   rt   rF   Zdiagnostic_summaryr   r¬   )rÛ   r„   r2   r2   r3   Útest_diagnostic_summary_short�  s    r©  c                 C   s<   t | d d… dƒ}| ¡ }| ¡ }| |j¡}t||ƒ d S r¨  )r   rt   rè   rp   r   )rÛ   rã   r„   Zres_predZmod_predr2   r2   r3   Útest_ar_model_predict”  s
    rª  c                 C   sJ   t | d d… d dd�}| ¡ }| ¡ }| ¡ }d|ks:t‚d|ksFt‚d S )Nr×   rb   rr  rF  zNo Model Parameters)r   rt   r¯   r°   r¬   )rÛ   rã   r„   r¯   Zsumm_txtr2   r2   r3   Útest_autoreg_no_variablesœ  s    r«  c              	   C   sP   ddl m}m} t t¡� || ƒ W 5 Q R X t t¡� || ƒ W 5 Q R X d S )Nr   )rf   Ú	ARResults)Ústatsmodels.tsa.ar_modelrf   r¬  r·   rù   ÚNotImplementedError)rÛ   rf   r¬  r2   r2   r3   Útest_removal¥  s
    r¯  c                 C   sŠ  | \}}|j j}|jd d }|d |… }|j j}|d k	rF|d |… }|j||d�}dt| ¡ ƒksht‚t|t	ƒsvt‚t
|j|jƒ d }|j jd k	r¤|j jdd … }|jd|d�}t|tjƒsÂt‚|jdksÐt‚|j||d	d
�}	t |j|	j¡rôt‚t |j|	j¡�r
t‚|jj|	jjk�s t‚t |j|	j¡�r6t‚|j jd k�r†|	jd|d�}
t|
tjƒ�sdt‚|
jdk�stt‚t |
|¡�r†t‚d S )Nr   rd   rÆ   zusing a differentiöÿÿÿr×   ró   )r×   T)r_   rV   Úrefit)r  r_   r�   rV   rë   rg   r¯   r¬   rF   r   r   rp   rŠ  r(   r²   Zallcloser|   r{   )rv   r„   r–   rW   rb   r^   Z	res_applyræ   Zfcasts_applyZ	res_refitZfcasts_refitr2   r2   r3   Útest_autoreg_apply®  s6    r±  c              	   C   sT  t j d¡}t|dd�}| ¡ }tjtdd�� | |d d… ¡ W 5 Q R X t j |j	d df¡}t|d	|d
� ¡ }tjtdd�� | |dd… ¡ W 5 Q R X t j |j	d df¡}t|d	|d
� ¡ }tjtdd��, |j|dd… |dd…d d…f d� W 5 Q R X t|d	d� ¡ }tjtdd��$ |j|dd… |dd… d� W 5 Q R X d S )NrÌ   r×   r	  zAn exception occuredrñ   r   r   ra   r!   )rZ   rV   zexog must be providedrY  é–   zThe number of exogrd   ró   zexog must be None)
r(   r)   r.   r   rt   r·   rù   rú   rë   r�   )r3  rW   rã   r„   r^   r2   r2   r3   Útest_autoreg_apply_exceptionÍ  s     0r³  c            	      C   s(  t j d¡} |  d¡}|  d¡}|  d¡}|  d¡}tjd|jd |jd  dd�}tj||d |jd … d	d
�}tj||d |jd … dd„ t	|jd ƒD ƒd�}tj|||jd d … d	d
�}tj|||jd d … |j
d�}tj||gdd�}tj||gdd�}G dd„ dtƒ}|||||||ƒS )Nr   rÌ   )rÌ   ra   )r×   ra   r×   z2020-1-1r"   rÂ   rW   r8   c                 S   s   g | ]}d |› �‘qS )r^   r2   r?   r2   r2   r3   rB   ð  s     zappend_data.<locals>.<listcomp>r!   )r'   rD   rE   c                   @   sJ   e Zd ZU ejed< ejed< ejed< ejed< ejed< ejed< dS )zappend_data.<locals>.AppendDatarW   Úy_oosÚy_bothr^   Úx_oosÚx_bothN)r´   rµ   r¶   r+   r	   rÄ   rM   r2   r2   r2   r3   Ú
AppendData÷  s   





r¸  )r(   r)   r*   r.   r+   r
   r�   r	   rM   rL   rD   rQ   r   )	r0   rW   r^   r¶  r´  r'   rµ  r·  r¸  r2   r2   r3   Úappend_dataâ  s,    



  ÿý r¹  rU   rÒ   rZ   rT   c              	   C   s²  |sdnd }| j }| j}| j}| j}	| j}
| j}|spt |¡}t |	¡}	t |¡}t |
¡}
t |¡}t |¡}t|||||d� 	¡ }|j
|dd�}t|||||d� 	¡ }t||	||||d� 	¡ }|j
||
dd�}t||||||d� 	¡ }t|j|jƒ t|j|jƒ |�rbtjtdd�� | 
t |¡¡ W 5 Q R X tjtd	d�� | 
|t |
¡¡ W 5 Q R X tjtd
d�� |j
||
d� W 5 Q R X tjtdd�� | 
|¡ W 5 Q R X d S )Nr<   )rZ   rU   rT   rÍ   T©r°  )rV   rZ   rU   rT   rÍ   ©rV   r°  zendog must have the same typerñ   zexog must have the same typezOriginal model doesró   zOriginal model has exog)rW   r´  rµ  r^   r¶  r·  r(   r  r   rt   rI   r   rp   r·   rù   rƒ  rú   )r¹  rÒ   rZ   rU   rT   rÍ   rW   r´  rµ  r^   r¶  r·  r„   Ú
res_appendÚ
res_directZres_exogZres_exog_appendZres_exog_directr2   r2   r3   Útest_autoreg_append  sr    





    ÿ
    ÿ
     ÿ
ú
	r¾  c                 C   s   | j }| j}| j}| j}| j}| j}tddd�tdƒg}t|j	|d�}t
|dd|d� ¡ }	|	j|dd	�}
t
|dd| |j	¡d� ¡ }t|
j|jƒ t
t |¡dd|d� ¡ }| t |¡¡}t|j|jƒ t
||dd|d
� ¡ }	|	j||dd�}
t
||dd| |j	¡d
� ¡ }t|
j|jƒ d S )NTr!   r  r<   r€  ra   rb   )rZ   rU   r�  rº  )rV   rZ   rU   r�  r»  )rW   r´  rµ  r^   r¶  r·  r   r   r   r'   r   rt   rI   rë   r   rp   r(   r  )r¹  rW   r´  rµ  r^   r¶  r·  r„  r…  r„   r¼  r½  Zres_npZres_append_npr2   r2   r3   Ú!test_autoreg_append_deterministic7  s<       
ÿ

û
r¿  )rÀ   )‚r  Zstatsmodels.compat.pytestr   Útypingr   r   r-   r,   Ú	itertoolsr   Únumpyr(   Znumpy.testingr   r   rÈ   r+   r   r	   r
   r   Zpandas.testingr   r·   Zstatsmodels.datasetsr   r   Zstatsmodels.iolib.summaryr   Z#statsmodels.regression.linear_modelr   Zstatsmodels.tools.sm_exceptionsr   r   Zstatsmodels.tools.toolsr   r­  r   r   r   Zstatsmodels.tsa.arima_processr   Zstatsmodels.tsa.deterministicr   r   r   Z"statsmodels.tsa.statespace.sarimaxr   Zstatsmodels.tsa.tests.resultsr   r›   r    r  r4   r`   rS   rT   rU   rV   Zcovsré   rp   Úfinalrm   rI   rk   rq   Zfixturerv   Ú
attributesr…   r¸   ZparametrizerŒ   rŽ   r’   r¹   r—   r˜   r¿   rÊ   rÔ   rÛ   rÜ   Z
matplotlibrä   rê   rð   rü   r   r  r  r  r  r  rJ   r+  r7  r>  rB  rE  rG  rJ  rL  rQ  r]  rg  rq  rs  ru  r~  r‡  r�  r‘  r’  r˜  r¡  r£  r¤  r¥  r§  r©  rª  r«  r¯  r±  r³  r¹  r¾  r¿  r2   r2   r2   r3   Ú<module>   sV  ,0þ
ô


#
ø
þþ




ø
þþ"

$
 



CB


	

#-*

	
			
1