U
    Ãmœd£~  ã                   @   sê  d Z ddlmZmZ ddlmZ ddlZddlZddlZ	ddl
mZmZ ddlZddlZddlZddlmZ ddlm  mZ ddlm  m  mZ dd„ Zd	Zd
Zd
ZdZeeeed	edƒƒZ eeeededƒƒZ!ee ƒ ee!ƒ dpdd„Z"e!e  Z#dd„ e#D ƒZ$ej%e#e$d�dd„ ƒZ&ej%dd„ ƒZ'ej%dd„ ƒZ(ej%dd„ ƒZ)ej%dd„ ƒZ*ej%dd „ ƒZ+d!d"„ Z,ej%d#d$„ ƒZ-ej%d%d&„ ƒZ.dqd'd(„Z/d)d*„ Z0d+d,„ Z1d-d.„ Z2d/d0„ Z3d1d2„ Z4d3d4„ Z5d5d6„ Z6d7d8„ Z7d9d:„ Z8d;d<„ Z9d=d>„ Z:d?d@„ Z;dAdB„ Z<dCdD„ Z=dEdF„ Z>dGdH„ Z?dIdJ„ Z@dKdL„ ZAdMdN„ ZBdOdP„ ZCej%dQdR„ ƒZDdSdT„ ZEdUdV„ ZFejGjHdWdX„ ƒZIejGjHdYdZ„ ƒZJd[d\„ ZKd]d^„ ZLd_d`„ ZMejG Ndaddbg¡ejG Ndcddbg¡ejG Ndddedfg¡dgdh„ ƒƒƒZOejG Ndidjdkg¡dldm„ ƒZPdndo„ ZQdS )rz
Author: Samuel Scherrer
é    )ÚPLATFORM_LINUX32ÚPLATFORM_WIN)ÚproductN)Úassert_allcloseÚassert_almost_equal©ÚETSModelc                 C   s0   t | ƒD ]"\}}|d d kr|d r| |= qd S )Né   é   )Ú	enumerate)Z	modellistÚiÚmodel© r   úi/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/tsa/tests/test_exponential_smoothing.pyÚremove_invalid_models_from_list-   s    r   )ÚaddÚmul)r   r   N)TF©Úaustourists©N©ÚoildataFc                 C   s0   ddddddœ}||  ||  ||  ||  S )NÚAÚMÚNÚdÚ )r   r   NTFr   )ÚerrorÚtrendÚseasonalÚdampedÚ
short_namer   r   r   Úshort_model_nameC   s    ÿþýÿr"   c                 C   s&   g | ]}t |d d… |d fžŽ ‘qS )Nr
   )r"   )Ú.0Úmodr   r   r   Ú
<listcomp>N   s    r%   )ÚparamsZidsc                 C   s    | j }|dd… \}}}}	|d }
|
dkr<|}
d}||	 }n|}
d }||	 }t|||ƒ}||krrt d|› d�¡ || }t|ƒ}t|
|||||	d�}|||fS )Nr   é   r   zmodel z' not implemented or not converging in R©Úseasonal_periodsr   r   r   Údamped_trend)Úparamr"   ÚpytestÚskipÚget_params_from_Rr   )Úrequestr   r   Úets_austourists_fit_results_RÚets_oildata_fit_results_Rr&   r   r   r   r    Údatar)   ÚresultsÚnameÚ	results_Rr   r   r   r   Úsetup_modelS   s0    
ú	r6   c                 C   s   t | dddddd�S )Nr'   r   Tr(   r   r   r   r   r   Úaustourists_modelz   s    úr7   c                 C   s   | j dd�S ©NF©Údisp©Úfit)r7   r   r   r   Úaustourists_model_fit†   s    r=   c                 C   s   t | dddd�S )Nr   T©r   r   r*   r   r   r   r   r   Úoildata_model‹   s    r?   c               D   C   s¨   ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDgD} t jdEdFdGdH�}t  | |¡S )INgg�ñ}q>@g:–wÕ&3@gj3NCTQ9@gô¤Ljh—;@gŸÊiOÉ	@@g4¹ë|7@g¶Û.4×y<@gäg#×�A@gá—úySkB@g„¹ÝË9@g©0¶ä¸>@g@N˜0š±<@gÐ˜IÔRB@g½üN“Ó7@g¸uÊO=@g�Ðzø2Å?@gõÚl¬Ä–A@g”k
dvÆ3@g5^ºIš=@g
ÛOÆøDA@gñ›ÂJ£D@gl°p’æ§:@gÃ}äÖ¤G<@g"Ä•³w˜A@g¦U€1SE@gÐÙŸ0¦8@gÃâä<kU@@gä8èùð B@g[)ðŸF@g³‚ø#¹Y=@g“Rñû,B@goô=äD@gË|Í“g£H@g¬R›´€F?@gÔXÊKáìB@gSÔC$kC@g[ÀRžI@ggè§Q«Ö?@güC+Þe©D@g›Å¾EfE@g+›|«ÚK@g÷"S´@@g2éÎ—‡(E@g†Î¥—”F@g^
öü¼ÉM@gÅ“z¢-kA@gp	Ÿ1¼kF@ge *èQ|G@gÁt›oN@gÉ¶Ç‚/C@gAØ¥é|G@goÏÚ
í]I@gÇÚ�½ÌÒN@gD„JX¦C@gj°Û-êUJ@g®:\‰*K@g–Ï° fµP@g±¦‘ƒoD@gÉÎôuêI@g½ö’çö¾L@g†kÿPP@g¼’Ã«Õ‡E@g@ÆX}`aK@g×P(ÐêM@g¶tX#sPR@gØûd÷*ÙG@gQ?˜©ƒŒN@g>‚—‘ƒP@z
1999-01-01ú
2015-12-31ÚQ©Úfreq)ÚpdÚ
date_rangeÚSeries)r2   Úindexr   r   r   r   •   sŽ    ¼Fr   c               1   C   s€   ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1g1} t j| t jd2d3d4d5�d6�S )7NgÅJ©•À[@g…Ì:ˆ‚Z`@gy²öÒ/©a@gfë*îIGc@g�÷Z+µWd@g[z4ÕSh@g)ƒY—n@g–Ÿ
nzs@gB)µ x@gJÝ„1˜Úz@gþ9%uv@g©µz˜T{@g ¹�¢iF}@gäg#÷†z@g˜Ó¯¾«~@g÷zRAÝ@g*ßØXŽ¥@g3{ê¢òBu@gìg±In@gÜ¶”˜ak@gßF¤c‚e@gý“		â’o@gƒ�DF¢k@g�qåLHq@g4š^òp@g¡L£Éåiu@gýcÆ€±Åz@giØ9P¦{@g6�÷�{@g?CîØþS{@g'"¸XS{@g’€‡XÓÕ{@g¦9ÃS|@g�¡¸ã�f|@g<4‡ÿfz@g�wì˜€|@g®ïhˆ/†{@gÞ«V&“z@gdHc~@g±êb‰ÝF@gSõá5J€@g#‚qp)Ï@gÄÚÂ8Ž~@gqàíÝ@gæ|‘‹|@gÕ3Î�}@gÓ�b›o€@g@©Q£«.�@g5;H¹ò€@Z1965Z2013ZASrB   )rG   )rD   rF   rE   )r2   r   r   r   r   ã   sf    Ï3r   c              	   C   sê   | j ddd��}t |¡}W 5 Q R X i }|D ]F}|dk}i ||< || D ](}t|| | ƒrH|| | || |< qHq,|D ]l}|| D ]^}dD ](}t|| | | d ƒ|| | |< qŒdD ]&}t || | | ¡|| | |< qºq„qx|S )NÚrzutf-8)ÚencodingÚTRUE)ÚalphaÚbetaÚgammaÚphiZsigma2r   )ÚstatesÚ	initstateÚ	residualsÚfittedÚforecastÚ
simulation)ÚopenÚjsonÚloadÚlenÚfloatÚnpÚasarray)ÚpathÚfZ	R_resultsr3   r    Znew_keyr   Úkeyr   r   r   Úobtain_R_results"  s(    ÿÿr_   c                  C   s   t  t¡jd d } t| ƒS )úS
    Dictionary of ets fit results obtained with script ``results/fit_ets.R``.
    r3   zfit_ets_results_seasonal.json©ÚpathlibÚPathÚ__file__Úparentr_   ©r\   r   r   r   r0   D  s    
ÿþÿr0   c                  C   s   t  t¡jd d } t| ƒS )r`   r3   z fit_ets_results_nonseasonal.jsonra   rf   r   r   r   r1   Q  s    
ÿþÿr1   c              	   C   sP   t |ƒ}|  tt| j|ƒƒ¡� | jdd�}W 5 Q R X |rLt|| jƒ}||_|S )zD
    Fit the model with params as found by R's forecast package
    Fr9   )	r.   Ú
fix_paramsÚdictÚzipZparam_namesr<   Úget_states_from_RÚ	_k_statesrO   )r   r5   Ú	set_stater&   r<   Zstates_Rr   r   r   Úfit_austourists_with_R_params^  s    rm   c                    s6   ‡ fdd„dD ƒ}|t ˆ d ƒ7 }t ttj|ƒƒ}|S )Nc                    s   g | ]}ˆ | ‘qS r   r   )r#   r4   ©r5   r   r   r%   n  s     z%get_params_from_R.<locals>.<listcomp>)rK   rL   rM   rN   rP   )ÚlistÚfilterrZ   Úisfinite)r5   r&   r   rn   r   r.   l  s    r.   c                 C   sJ   |dkr"| d dd …d|…f }n$| d dd … }t  |t|ƒdf¡}|S )Nr	   rO   r   )rZ   ZreshaperX   )r5   Zk_statesÚxhat_Rr   r   r   rj   u  s
    rj   c                 C   s   | \}}}|j dd� d S r8   r;   )r6   r   r&   r5   r   r   r   Útest_fit_model_austouritstsƒ  s    
rs   c                 C   sT   | \}}}|j |dd�\}}|d }t||jƒ}t||ddd� t||ddd� d S )NT©Z
return_rawrR   çñhãˆµøä>©ÚrtolÚatol)Úsmoothrj   rk   r   )r6   r   r&   r5   ÚyhatZxhatÚyhat_Rrr   r   r   r   Útest_smooth_vs_R�  s    
r|   c                 C   s>   | \}}}|j |dd�d }| |¡}t||d ddd� d S )NTrt   r   rQ   ru   rv   )ry   Z
_residualsr   )r6   r   r&   r5   rz   rQ   r   r   r   Útest_residuals_vs_R™  s    

r}   c                 C   s^   | \}}}|  |¡}|j d t dtj |j ¡d  }|d d | }t||ddd� d S )Né   r	   Úloglikr   ru   rv   )ÚloglikeÚnobsrZ   ÚlogÚpir   )r6   r   r&   r5   r€   ÚconstÚ	loglike_Rr   r   r   Útest_loglike_vs_R¢  s
    

&r†   c                 C   sF   | \}}}t ||dd�}| d¡}t |d ¡}t||jddd� d S )NT©rl   r'   rS   çü©ñÒMbP?ç-Cëâ6?rv   )rm   rS   rZ   r[   r   Úvalues)r6   r   r&   r5   r<   ZfcastÚexpectedr   r   r   Útest_forecast_vs_R­  s
    

rŒ   c                 C   sd   | \}}}t ||dd�}t ddddgg¡j}|jddd	|d
�}t |d ¡}t||jddd� d S )NTr‡   g@éúôŽ9ü?gÅY�ü,œÙ?gÐîOÒQï?g[¡þiYí@r'   Úendr	   )ÚanchorÚrepetitionsÚrandom_errorsrT   ru   rv   )rm   rZ   r[   ÚTÚsimulater   rŠ   )r6   r   r&   r5   r<   ZinnovÚsimr‹   r   r   r   Útest_simulate_vs_R¸  s    
r”   c           
      C   sî   | \}}}t r|jdkr|}nd }|jdd|d�}|j d t dtj |j ¡d  }|d d | }|j}	z|	|d	 ks€t‚W nf tk
rè   |jdd|d�}|j}	z|	|d	 ksºt‚W n& tk
râ   t	rÜt
 d
¡ n‚ Y nX Y nX d S )NÚAAdATg:Œ0âŽyE>)r:   ZpgtolZstart_paramsr~   r	   r   r   r‰   zKnown to fail on 32-bit Linux)r   r!   r<   r�   rZ   r‚   rƒ   ÚllfÚAssertionErrorr   r,   Zxfail)
r6   Úreset_randomstater   r&   r5   Ústartr<   r„   r…   r€   r   r   r   Útest_fit_vs_RÄ  s&    
&rš   c           	      C   st   | \}}}t ||dd�}|j}|j|d |d�}|d }t|d |… |ddd� |d }t||d … |d	d
d� d S )NTr‡   r
   )r�   ÚdynamicrR   ru   rv   rS   rˆ   r‰   )rm   r�   Úpredictr   )	r6   r   r&   r5   r<   ÚnZ
predictionr{   Z
forecast_Rr   r   r   Útest_predict_vs_Rã  s    
rž   c              	   C   sb   ddg\}}t | dddd||d�}| |j¡}||d ks>t‚||d ksNt‚|d	 d
ks^t‚d S )Ng\QÎ@z;B@gÔ°¥è\A@r   TÚknown)r   r   r*   Úinitialization_methodÚinitial_levelÚinitial_trendr'   é   é   r   )r   Z_internal_paramsZ_start_paramsr—   )r   r¡   r¢   r   Zinternal_paramsr   r   r   Útest_initialization_knownö  s    ù	r¥   c                 C   sn   t | ddddd�}t | ddddd�}|jdd�}|jdd�}|jj}|jj}t|dd … |dd … d	d
� d S )Nr   TÚ	estimated)r   r   r*   r    Ú	heuristicFr9   é
   g      à?©rw   )r   r<   ÚfittedvaluesrŠ   r   )r   Zmodel_estimatedZmodel_heuristicZfit_estimatedZfit_heuristicZyhat_estimatedZyhat_heuristicr   r   r   Útest_initialization_heuristic  s&    ûûr«   c              	   C   sÈ   ddg}t | dddd|id�}|jdd�}|jdks8t‚t | dddd�}| ddi¡� |jdd�}W 5 Q R X |jdks|t‚t|j|jƒ | ¡  | ddi¡}|jdks®t‚t|j|jƒ | ¡  d S )	Ng®Gáz®ï?r   TÚsmoothing_trend)r   r   r*   ZboundsFr9   r>   )	r   r<   r¬   r—   rg   r   r&   ÚsummaryÚfit_constrained)r   rL   Zmodel1Zfit1Úmodel2Zfit2Zfit3r   r   r   Útest_bounded_fit   s(    ûr°   c                 C   sJ   t | dddd�}|jdkst‚zt | ddd�}W n tk
rD   Y nX d S )Nr   )r   r   r   r'   r   )r   r)   )r   r)   r—   Ú
ValueError)r   r   r   r   r   Útest_seasonal_periods;  s    r²   c                 C   sô   | }t |jdddd�j|jdddd�jƒ t |jdddd�j|jdddd�jƒ |jddd� |jddtjjd	� |jddtj ¡ d	� |jddtj dd¡d	� |jddd
d	� |jdddd�j}|jddtj 	d¡d�j}t 
||k¡sðt‚dS )zS
    check whether all keywords are accepted and work without throwing errors.
    r'   éÿÿÿÿr   )rŽ   Úrandom_stater@   r�   r¨   )r�   )r�   r�   Z	bootstrap)r�   r´   N)r   r’   rŠ   ÚscipyÚstatsZnormrZ   ÚrandomZrandnÚRandomStateÚallr—   )r=   r<   ÚresZres2r   r   r   Útest_simulate_keywordsG  s*    þþ  
ÿr»   c                 C   sÂ   | }|j ddd�}t|ƒdks"t‚|j ddd�}t|ƒdks@t‚|j dddd�}t|ƒdks`t‚|j dd	d
d�}t|ƒdks€t‚|j dd	d
d�}t|ƒdks t‚|j ddd�}t|ƒdks¾t‚d S )Nr   r¨   ©r™   r�   é   é   é   ©r™   r›   r�   é   TéF   éG   éP   éT   r£   )rœ   rX   r—   )r=   r<   Úpredr   r   r   Útest_predict_rangesf  s    rÇ   c                 C   sL   | j dd�}| ¡  |  d¡ | j dd�}| ¡  |  ddi¡}| ¡  d S )NFr9   r§   r¬   gÍÌÌÌÌÌì?)r<   r­   Zset_initialization_methodr®   )r7   r<   r   r   r   Útest_summary  s    
rÈ   c                 C   s2   | j  | j¡}| j j| jddd�}t||dƒ d S )NFT©Zapprox_complex_stepZapprox_centeredr'   )r   Zscorer&   r   )r=   Zscore_csZscore_fdr   r   r   Ú
test_scoreŽ  s    ýrÊ   c                 C   s&   | j  | j¡ | j j| jddd� d S )NFTrÉ   )r   Zhessianr&   )r=   r   r   r   Útest_hessian˜  s    ýrË   c                 C   sN  | j dddd�}| ¡ }t|d jƒdks.t‚t t |d ¡ ¡sHt‚| j dddd�}| ¡ }t|d jƒdksvt‚t t |d ¡ ¡s�t‚| j ddd	d�}| ¡ }t|d jƒd
ks¾t‚t t |d ¡ ¡sØt‚| j dd	d�}| ¡ }t|d jƒdk�st‚t t |d ¡ ¡�s"t‚| j dd	d�}| ¡ }t|d jƒdk�sPt‚t t |d ¡ ¡�slt‚| j dd	d�}| ¡ }t|d jƒdk�sšt‚t t |d ¡ ¡�s¶t‚| j dd	d�}| ¡ }t|d jƒdk�sät‚t t |d ¡ ¡�s t‚| j d	d	d�}| ¡ }t|d jƒdk�s.t‚t t |d ¡ ¡�sJt‚d S )Nr   r¿   é(   rÀ   Úmeané)   r¨   é   rÄ   éQ   éC   r¼   é   éD   é   éE   é   éO   r~   r	   )Úget_predictionÚsummary_framerX   rŠ   r—   rZ   r¹   Úisnan)r=   rÆ   r­   r   r   r   Útest_prediction_results£  s@    rÛ   c                 C   s–   t | dddddd�}|jdd�}tj| dddd|j|j|jd d d… d	�}| |j|j	|j
|jd
œ¡� | ¡ }W 5 Q R X | d¡ | d¡ ||fS )Nr'   r   Tr(   Fr9   rŸ   r³   )r   r*   r   r    r¡   r¢   Úinitial_seasonal)Úsmoothing_levelr¬   Úsmoothing_seasonalÚdamping_trendÚljungbox)r   r<   Ú
statespaceÚExponentialSmoothingr¡   r¢   rÜ   rg   rÝ   r¬   rÞ   rß   Útest_serial_correlation)r   Z	ets_modelÚets_resultsZstatespace_modelÚstatespace_resultsr   r   r   Ústatespace_comparisonÕ  s<    ú÷üÿ

ræ   c                 C   s¾   | \}}t |j|jƒ t |j|jƒ t |jj|jjƒ t |jdd�|jdd�ƒ t |jdd�|jdd�ƒ |jdd�d }|jdd�d }tsºt	|d |d dd� t	|d |d d	d� d S )
Nrà   )ÚmethodZ
jarqueberaZbreakvarr   çš™™™™™É?r©   r	   gffffffæ?)
r   r–   Úscalerª   rŠ   rã   Ztest_normalityZtest_heteroskedasticityr   r   )ræ   rä   rå   Zets_hetZstatespace_hetr   r   r   Útest_results_vs_statespaceú  s0     ÿ

þ

þÿþrê   c                 C   sÎ   | \}}|j dddd�}|j dddd�}| ¡ }| ¡ }t|d jd d… |d jd d… ƒ t|d jdd … |d jdd … dƒ |j ddd	�}|j ddd	�}| ¡ }| ¡ }t|d j|d jdƒ d S )
Nr¨   rÌ   rÀ   rÍ   iöÿÿÿr'   é<   rÄ   r¼   )rØ   rÙ   r   rŠ   )ræ   rä   rå   Zets_predZstatespace_predZstatespace_summaryZets_summaryr   r   r   Ú%test_prediction_results_vs_statespace  s6      ÿþý  ÿrì   c                 C   sn  t | ddd�jdd�}|jddd�}| ¡ }|jddtdƒd	d
d�}| ¡ }t|d j|d jddd� dd lm} | 	d¡ t
dƒD ]&}|j|jjjd d …|f ddd� q†|j| dd … ddd� |j|d ddd� |j|d ddd� |j|d ddd� |j|d dd d� |j|d dd!d� | ¡  t|d j|d jd"d"d� t|d j|d jd"d"d� d S )#Nr   )r   r   Fr9   rÌ   é7   r¼   ç    €„.Ar½   Ú	simulated©r™   r�   Úsimulate_repetitionsr´   rç   rÍ   Úmean_numericalrˆ   rv   r   ÚTkAggéè  Úgreyçš™™™™™¹?©ÚcolorrK   ú-r2   ©Úlabelú--Úpi_lowerú:ú	sim lowerú.-úexact lowerÚpi_upperú	sim upperúexact upperr‰   )r   r<   rØ   rÙ   Úintr   rŠ   Úmatplotlib.pyplotÚpyplotÚswitch_backendÚrangeÚplotÚ_resultsÚsimulation_resultsÚilocÚshow)r   r<   Ú
pred_exactÚsummary_exactÚpred_simÚsummary_simÚpltr   r   r   r   Ú test_prediction_results_slow_AANB  sX    ûü
ýüür  c                 C   sv  t | dddddd�jdd�}|jddd	�}| ¡ }|jddtd
ƒddd�}| ¡ }t|d j|d jddd� dd lm} | 	d¡ t
dƒD ]&}|j|jjjd d …|f ddd� qŒ|j|jdd … ddd� |j|d ddd� |j|d ddd� |j|d dd d� |j|d! dd"d� |j|d! dd#d� | ¡  t|d j|d jd$d%d� t|d! j|d! jd$d%d� d S )&Nr   Tr'   )r   r   r   r*   r)   Fr9   rë   éK   r¼   rî   r½   rï   rð   rÍ   rò   rˆ   rv   r   ró   rô   rõ   rö   r÷   rù   r2   rú   rü   rý   rþ   rÿ   r   r  r  r  r  g{®Gáz”?r‰   )r   r<   rØ   rÙ   r  r   rŠ   r  r  r  r	  r
  r  r  r  Úendogr  )r   r<   r  r  r  r  r  r   r   r   r   Ú!test_prediction_results_slow_AAdA}  sj    úùûü
ýüür  c                  C   sÊ   t j d¡} |  d¡}| ¡ }td|jd ƒD ],}||d  d||d    ||  ||< q.|dd … }tj|dd�}| 	¡ }t
|ƒ 	¡ }t|jd |jd	d	d
� t|jdd … |jdd … d	d	d
� d S )Nr   ià.  r	   rè   éÈ   r¦   )r    rÝ   r‰   rv   r¨   )rZ   r·   r¸   Zstandard_normalÚcopyr	  ÚshapeÚholtwintersrâ   r<   r   r   r&   rÝ   rª   )ÚgenÚeÚyr   r$   rº   Zets_resr   r   r   Útest_convergence_simple½  s0    
* ÿü	   ÿr  c                 C   s”   | j }G dd„ dƒ}d|_|dƒ|_d}| |¡}|dƒ|_| |¡}t||dƒ d|_|dƒ|_d}| |¡}|d	ƒ|_| |¡}t||dƒ d S )
Nc                   @   s   e Zd Zdd„ ZdS )z3test_exact_prediction_intervals.<locals>.DummyModelc                 S   s
   || _ d S r   )r!   )Úselfr!   r   r   r   Ú__init__à  s    z<test_exact_prediction_intervals.<locals>.DummyModel.__init__N)Ú__name__Ú
__module__Ú__qualname__r!  r   r   r   r   Ú
DummyModelß  s   r%  g+‡ÙÎ÷ï?ZAAdNr£   ZAANr~   r•   ZAAA)r  rß   r   Z_relative_forecast_variancer   )r=   r<   r%  ÚstepsZs_AAdNZs_AANZs_AAdAZs_AAAr   r   r   Útest_exact_prediction_intervalsÛ  s     







r'  c                 C   sÆ   | \}}}t t |j¡|j|j|j|j|jd�}| 	|¡}|j
dd�}|j
dd�}t|jd |jd ƒ |j|j|jdd�}|j|j|jd dd�}	|jdd�}
|jdd�}t|
jd	 |jd	 ƒ d S )
Nr(   r	   )r&  r~   r   )r™   r�   rñ   gš™™™™™©?)rK   )r   r   )r   rD   rF   r  r)   r   r   r   r*   ry   rS   r   r  rØ   r�   rÙ   )r6   r   r&   r5   r¯   rº   Zfcast1Zfcast2Zpred1Zpred2Zdf1Zdf2r   r   r   Útest_one_step_aheadö  s,    

ú
ÿÿr(  r   r   r   r�   é	   r¨   c                 C   s:   t | d |… ||ddd� ¡ }t t |j¡¡ s6t‚d S )Nr'   r¦   )r   r   r)   r    )r   r<   rZ   ÚanyrÚ   r&   r—   )r   r   r   r�   rº   r   r   r   Ú(test_estimated_initialization_short_data  s    
û
r+  rç   r¦   r§   c                 C   sZ   t  d¡}t  t|ƒd ¡}t|dd|d� ¡ }t|j|j |ddd� |j	dk sVt
‚d S )	Ng      (@éd   r   rÖ   )r   r)   r    r‰   )rx   rw   g�íµ ÷Æ°>)rZ   ZarangeÚarrayro   r   r<   r   rÜ   r¡   Zmaer—   )r˜   rç   r   Ztime_seriesrº   r   r   r   Útest_seasonal_order  s    
ü

ür.  c               	   C   sL   dddddg} t | dddd	d	d
d�}| ¡ j}t |¡r<t‚|dksHt‚d S )Ng     @[@g     @Y@g      Z@g     €V@g     @Z@rŸ   g      Y@g        r   T)r  r    r¡   r¢   r   r   r*   r   )r   r<   ÚaiccrZ   rq   r—   )r  r   r/  r   r   r   Útest_aicc_0_dof1  s    ù	
r0  )F)F)RÚ__doc__Zstatsmodels.compat.platformr   r   Ú	itertoolsr   rV   rb   ÚnumpyrZ   Znumpy.testingr   r   ZpandasrD   r,   Zscipy.statsrµ   Z)statsmodels.tsa.exponential_smoothing.etsr   Zstatsmodels.tsa.holtwintersZtsar  Z0statsmodels.tsa.statespace.exponential_smoothingrá   Zexponential_smoothingr   ZERRORSZTRENDSZ	SEASONALSZDAMPEDro   ZMODELS_DATA_SEASONALZMODELS_DATA_NONSEASONALr"   ZALL_MODELS_AND_DATAZALL_MODEL_IDSZfixturer6   r7   r=   r?   r   r   r_   r0   r1   rm   r.   rj   rs   r|   r}   r†   rŒ   r”   rš   rž   r¥   r«   r°   r²   r»   rÇ   rÈ   rÊ   rË   rÛ   ræ   rê   rì   Úmarkr-   r  r  r  r'  r(  Zparametrizer+  r.  r0  r   r   r   r   Ú<module>   s¬   ÿÿ

ÿ
&


	
M
>"


	
	
2
$ (
:
?
