
    M/Ph~              	          d Z ddlm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c mZ ddlmc mc mZ 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#           dEdZ$e#e"z   Z%d e%D             Z& ej'        e%e&          d             Z(ej'        d             Z)ej'        d             Z*ej'        d             Z+ej'        d             Z,ej'        d             Z-d Z.ej'        d             Z/ej'        d             Z0dEdZ1d Z2d Z3d Z4d  Z5d! Z6d" Z7d# Z8d$ Z9d% Z:d& Z;d' Z<d( Z=d) Z>d* Z?d+ Z@d, ZAd- ZBd. ZCd/ ZDd0 ZEej'        d1             ZFd2 ZGd3 ZHejI        jJ        d4             ZKejI        jJ        d5             ZLd6 ZMd7 ZNd8 ZOejI        P                    d9dd:g          ejI        P                    d;dd:g          ejI        P                    d<d=d>g          d?                                     ZQejI        P                    d@dAdBg          dC             ZRdD ZSdS )Fz
Author: Samuel Scherrer
    )QUARTER_END)PLATFORM_LINUX32PLATFORM_WIN)productN)assert_allcloseassert_almost_equalETSModelc                 V    t          |           D ]\  }}|d         |d         r| |= d S )N      )	enumerate)	modellistimodels      p/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/tests/test_exponential_smoothing.pyremove_invalid_models_from_listr   .   sB    i((  58a!     )addmul)r   r   N)TFaustouristsNoildataFc                 X    dddddd}||          ||         z   ||         z   ||         z   S )NAMNd )r   r   NTF )errortrendseasonaldamped
short_names        r   short_model_namer(   D   sK    S3rJJJ5
U
	
V
	 X
	r   c                 F    g | ]}t          g |d d         |d         R  S )Nr   )r(   ).0mods     r   
<listcomp>r,   O   sE       +.&c"1"g&s1v&&&  r   )paramsidsc                 8   | j         }|dd         \  }}}}	|d         }
|
dk    r|}
d}||	         }n|}
d }||	         }t          |||          }||vrt          j        d| d           ||         }t	          |          }t          |
|||||	          }|||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&   datar2   resultsname	results_Rr   s                   r   setup_modelr?   T   s     ]F%+AaC["E5(F!9D}/7+F3E5(33D7JTJJJKKKIy))F)  E &)##r   c                 ,    t          | ddddd          S )Nr0   r   Tr1   r	   r   s    r   austourists_modelrA   {   s+       r   c                 .    |                      d          S NFdispfit)rA   s    r   austourists_model_fitrH      s      e ,,,r   c                 (    t          | ddd          S )Nr   Tr#   r$   r3   r	   r   s    r   oildata_modelrK      s    G5DJJJJr   c                  l    g d} t          j        ddt                    }t          j        | |          S )N)Dgg}q>@g:w&3@gj3NCTQ9@gLjh;@giO	@@g4|7@g.4y<@gg#׏A@gySkB@g9@g0>@g@N0<@gИIRB@gN7@guO=@gz2?@glĖA@gk
dv3@g5^I=@g
ODA@gJD@glp:@g}֤G<@g"ĕwA@gU1SE@gٟ08@g<kU@@g8B@g[)F@g#Y=@gR,B@go=D@g|͓gH@gRF?@gXKB@gSC$kC@g[RI@ggQ?@gC+eD@gEfE@g+|K@g"S@@g2Η(E@gΥF@g^
M@gœz-kA@gp	1kF@ge *Q|G@gtoN@gɶǂ/C@gAإ|G@go
]I@gڝN@gDJXC@gj-UJ@g:\*K@gϰ fP@goD@guI@gL@gkPP@gëՇE@g@X}`aK@gP(M@gtX#sPR@gd*G@gQ?N@g>P@z
1999-01-01
2015-12-31freq)pd
date_ranger   Series)r;   indexs     r   r   r      sA    E E EDL M,;GGGE9T5!!!r   c                  `    g d} t          j        | t          j        ddd                    S )N)1gJ[@g:Z`@gy/a@gf*IGc@gZ+Wd@g[z4Sh@g)Yn@g
nzs@gB) x@gJ݄1z@g9%uv@gzT{@g iF}@gg#z@gӯ~@gzRA@g*X@g3{Bu@ggIn@gܶak@gFce@g		o@gDFk@gqLHq@g4^p@gLiu@gcƀz@gi9P{@g6{@g?CS{@g'"XS{@gX{@g9S|@gf|@g<4fz@gw|@gh/{@gޫV&z@gdHc~@gbF@gS5J@g#qp)@g8~@gq@g||@g3}@gӍbo@g@Q.@g5;H@19652013YSrN   )rS   )rP   rR   rQ   )r;   s    r   r   r      s<    2 2 2Df 9TvvD!I!I!IJJJJr   c                 4   |                      dd          5 }t          j        |          }d d d            n# 1 swxY w Y   i }|D ]J}|dk    }i ||<   ||         D ]4}t          ||         |                   r||         |         ||         |<   5K|D ]}||         D ]w}dD ]8}t	          ||         |         |         d                   ||         |         |<   9dD ]7}t          j        ||         |         |                   ||         |         |<   8x|S )Nrzutf-8)encodingTRUE)alphabetagammaphisigma2r   )states	initstate	residualsfittedforecast
simulation)openjsonloadlenfloatnpasarray)pathf	R_resultsr<   r&   new_keyr   keys           r   obtain_R_resultsrs   #  s   	3	)	) !QIaLL	! ! ! ! ! ! ! ! ! ! ! ! ! ! ! G C CF"v& 	C 	CE9V$U+,, C*3F*;E*B '	C
   V_ 	 	EB  .3FOE*3/2/ /&s++ 
 
 /1jFOE*3// /&s++
	  Ns   9= =c                  h    t          j        t                    j        dz  dz  } t	          |           S )S
    Dictionary of ets fit results obtained with script ``results/fit_ets.R``.
    r<   zfit_ets_results_seasonal.jsonpathlibPath__file__parentrs   rn   s    r   r9   r9   E  s9     	X%
	
)	* 	
 D!!!r   c                  h    t          j        t                    j        dz  dz  } t	          |           S )ru   r<   z fit_ets_results_nonseasonal.jsonrv   r{   s    r   r:   r:   R  s9     	X%
	
,	- 	
 D!!!r   c                 &   t          |          }|                     t          t          | j        |                              5  |                     d          }ddd           n# 1 swxY w Y   |rt          || j                  }||_        |S )zD
    Fit the model with params as found by R's forecast package
    FrD   N)	r7   
fix_paramsdictzipparam_namesrG   get_states_from_R	_k_statesra   )r   r>   	set_stater-   rG   states_Rs         r   fit_austourists_with_R_paramsr   _  s     y))F			$s5#4f==>>	?	? $ $iiUi##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $Y@@
Js   A((A,/A,c                       fddD             }|t           d                   z  }t          t          t          j        |                    }|S )Nc                      g | ]
}|         S r"   r"   )r*   r=   r>   s     r   r,   z%get_params_from_R.<locals>.<listcomp>o  s    LLL$ioLLLr   )r\   r]   r^   r_   rb   )listfilterrl   isfinite)r>   r-   s   ` r   r7   r7   m  sR    LLLL*KLLLF
d9[)***F&f--..FMr   c                     |dk    r| d         dd d|f         }n4| d         dd          }t          j        |t          |          df          }|S )Nr   ra   r   )rl   reshaperj   )r>   k_statesxhat_Rs      r   r   r   v  s\    !||8$QRR8^48$QRR(FS[[!$455Mr   c                 >    | \  }}}|                     d           d S rC   rF   )r?   r   r-   r>   s       r   test_fit_model_austouritstsr     s(    *E69	II5Ir   c                     | \  }}}|                     |d          \  }}|d         }t          ||j                  }t          ||dd           t          ||dd           d S )NT
return_rawrd   h㈵>rtolatol)smoothr   r   r   )r?   r   r-   r>   yhatxhatyhat_Rr   s           r   test_smooth_vs_Rr     sv    *E69f66JD$x Fy%/::FD&t$7777D&t$777777r   c                     | \  }}}|                     |d          d         }|                    |          }t          ||d         dd           d S )NTr   r   rc   r   r   )r   
_residualsr   )r?   r   r-   r>   r   rc   s         r   test_residuals_vs_Rr     s]    *E69<<4<003D  &&IIy5DtLLLLLLr   c                     | \  }}}|                     |          }|j         dz  t          j        dt          j        z  |j        z            dz   z  }|d         d         |z   }t          ||dd           d S )N   r   loglikr   r   r   )loglikenobsrl   logpir   )r?   r   r-   r>   r   const	loglike_Rs          r   test_loglike_vs_Rr     s~    *E69mmF##GZK!Orva"%i%*&<==ABE(#A&.IGYT======r   c                     | \  }}}t          ||d          }|                    d          }t          j        |d                   }t	          ||j        dd           d S )NTr   r0   re   MbP?-C6?r   )r   re   rl   rm   r   values)r?   r   r-   r>   rG   fcastexpecteds          r   test_forecast_vs_Rr     sd    *E69
'yD
I
I
ICLLOOEz)J/00HHelDAAAAAAr   c                    | \  }}}t          ||d          }t          j        g dg          j        }|                    ddd|          }t          j        |d                   }t          ||j        d	d	
           d S )NTr   )g@9?gY,?gOQ?g[iY@r0   endr   )anchorrepetitionsrandom_errorsrf   r   r   )r   rl   rm   Tsimulater   r   )r?   r   r-   r>   rG   innovsimr   s           r   test_simulate_vs_Rr     s    *E69
'yD
I
I
ICJGGGHIIKE
,,qAU,
K
KCz)L122HHcjt$??????r   c                    | \  }}}t           r|j        dk    r|}nd }|                    dd|          }|j         dz  t	          j        dt          j        z  |j        z            dz   z  }|d         d         |z   }|j        }		 |	|d	z
  k    sJ d S # t          $ r^ |                    dd|          }|j        }		 |	|d	z
  k    sJ Y d S # t          $ r" t          rt          j        d
           n Y Y d S w xY ww xY w)NAAdATg:0yE>)rE   pgtolstart_paramsr   r   r   r   r   zKnown to fail on 32-bit Linux)r   r'   rG   r   rl   r   r   llfAssertionErrorr   r5   xfail)
r?   reset_randomstater   r-   r>   startrG   r   r   r   s
             r   test_fit_vs_Rr     sY   *E69 (F22
))T)
>
>C ZK!Orva"%i%*&<==ABE(#A&.IgG)d*******   iiTFiCC'		i$........ 	 	 	  <==== >===	s*   B )C<>C'C83C<7C88C<c                    | \  }}}t          ||d          }|j        }|                    |dz   |          }|d         }t          |d |         |dd           |d         }t          ||d          |d	d
           d S )NTr   r   )r   dynamicrd   r   r   re   r   r   )r   r   predictr   )	r?   r   r-   r>   rG   n
predictionr   
forecast_Rs	            r   test_predict_vs_Rr     s    *E69
'yD
I
I
ICAQ22Jx FJrrNFDAAAA:&JJqrrNJTEEEEEEr   c           	          ddg\  }}t          | dddd||          }|                    |j                  }||d         k    sJ ||d         k    sJ |d	         d
k    sJ d S )Ng\Q@z;B@g԰\A@r   Tknown)r#   r$   r3   initialization_methodinitial_levelinitial_trendr0         r   )r
   _internal_params_start_params)r   r   r   r   internal_paramss        r   test_initialization_knownr     s    $/#= M=%##  E ,,U-@AAOOA.....OA.....1""""""r   c                 "   t          | dddd          }t          | dddd          }|                    d          }|                    d          }|j        j        }|j        j        }t	          |dd          |dd          d	
           d S )Nr   T	estimated)r#   r$   r3   r   	heuristicFrD   
   g      ?r   )r
   rG   fittedvaluesr   r   )r   model_estimatedmodel_heuristicfit_estimatedfit_heuristicyhat_estimatedyhat_heuristics          r   test_initialization_heuristicr     s    )  O )  O $''U'33M#''U'33M"/6N"/6N N233')<3GGGGGGr   c                 J   ddg}t          | dddd|i          }|                    d          }|j        dk    sJ t          | ddd          }|                    ddi          5  |                    d          }d d d            n# 1 swxY w Y   |j        dk    sJ t	          |j        |j                   |                                 |                    ddi          }|j        dk    sJ t	          |j        |j                   |                                 d S )	NgGz?r   Tsmoothing_trend)r#   r$   r3   boundsFrD   rJ   )r
   rG   r   r~   r   r-   summaryfit_constrained)r   r]   model1fit1model2fit2fit3s          r   test_bounded_fitr   !  s   $<D!4(  F ::5:!!D4'''' gU%dLLLF			-t4	5	5 & &zzuz%%& & & & & & & & & & & & & & &4''''DK---LLNNN !!#4d";<<D4''''DK---LLNNNNNs   (BBBc                     t          | ddd          }|j        dk    sJ 	 t          | dd          }d S # t          $ r Y d S w xY w)Nr   )r#   r$   r%   r0   r   )r%   r2   )r
   r2   
ValueError)r   r   s     r   test_seasonal_periodsr   <  sk    [UUKKKE!Q&&&&uqIII   s   6 
AAc                    | }t          |                    ddd          j        |                    ddd          j                   t          |                    ddd          j        |                    ddd          j                   |                    dd           |                    ddt          j        j        	           |                    ddt          j                                        	           |                    ddt          j                            dd          	           |                    ddd
	           |                    ddd          j        }|                    ddt          j        	                    d                    j        }t          j
        ||k              sJ dS )zS
    check whether all keywords are accepted and work without throwing errors.
    r0   r   )r   random_staterM   r   r   )r   )r   r   	bootstrap)r   r   N)r   r   r   scipystatsnormrl   randomrandnRandomStateall)rH   rG   resres2s       r   test_simulate_keywordsr  H  s     C Qr229Q|!<<C   Qu155<Q|!<<C   LLL###LL%+2BLCCCLL%+2B2B2D2DLEEELL")//!R2H2HLIIILL+L>>> ,,qbr,
:
:
AC<<	r	(=(=b(A(A    	 6#+r   c                     | }|                     dd          }t          |          dk    sJ |                     dd          }t          |          dk    sJ |                     ddd          }t          |          dk    sJ |                     dd	d
          }t          |          dk    sJ |                     dd	d
          }t          |          dk    sJ |                     dd          }t          |          dk    sJ d S )Nr   r   r   r            r   r   r      TF   G   P   T   r   )r   rj   )rH   rG   preds      r   test_predict_rangesr  g  s   
C ;;QB;''Dt99????;;RR;((Dt99????;;R;44Dt99???? ;;Q";55Dt99????;;Q";55Dt99???? ;;RR;((Dt99>>>>>>r   c                 .   |                      d          }|                                 |                     d           |                      d          }|                                 |                     ddi          }|                                 d S )NFrD   r   r   g?)rG   r   set_initialization_methodr   )rA   rG   s     r   test_summaryr    s    


U

+
+CKKMMM //<<<


U

+
+CKKMMM 
+
+->,D
E
ECKKMMMMMr   c                     | j                             | j                  }| j                             | j        dd          }t          ||d           d S )NFTapprox_complex_stepapprox_centeredr0   )r   scorer-   r   )rH   score_csscore_fds      r   
test_scorer    s_    $*001F1MNNH$*00$! 1  H
 (A.....r   c                     | j                             | j                   | j                             | j        dd           d S )NFTr  )r   hessianr-   )rH   s    r   test_hessianr    sU     ''(=(DEEE''$! (     r   c                    |                      ddd          }|                                }t          |d         j                  dk    sJ t	          j        t	          j        |d                              sJ |                      ddd          }|                                }t          |d         j                  dk    sJ t	          j        t	          j        |d                              sJ |                      ddd	          }|                                }t          |d         j                  d
k    sJ t	          j        t	          j        |d                              sJ |                      dd	          }|                                }t          |d         j                  dk    sJ t	          j        t	          j        |d                              sJ |                      dd	          }|                                }t          |d         j                  dk    sJ t	          j        t	          j        |d                              sJ |                      dd	          }|                                }t          |d         j                  dk    sJ t	          j        t	          j        |d                              sJ |                      dd	          }|                                }t          |d         j                  dk    sJ t	          j        t	          j        |d                              sJ |                      d	d	          }|                                }t          |d         j                  dk    sJ t	          j        t	          j        |d                              sJ d S )Nr   r  (   r  mean)   r      r  Q   C   r     D      E      O   r   r   )get_predictionsummary_framerj   r   rl   r   isnan)rH   r  r   s      r   test_prediction_resultsr-    s    //a/MMD  ""Gwv%&&",,,,628GFO,,,----- !//b""/MMD  ""Gwv%&&",,,,628GFO,,,----- !//a/LLD  ""Gwv%&&",,,,628GFO,,,----- !//bb/AAD  ""Gwv%&&",,,,628GFO,,,----- !//bb/AAD  ""Gwv%&&",,,,628GFO,,,----- !//bb/AAD  ""Gwv%&&",,,,628GFO,,,----- !//bb/AAD  ""Gwv%&&!++++628GFO,,,----- !//bb/AAD  ""Gwv%&&!++++628GFO,,,-------r   c                    t          | ddddd          }|                    d          }t          j        | dddd|j        |j        |j        d d d         	          }|                    |j        |j	        |j
        |j        d
          5  |                                }d d d            n# 1 swxY w Y   |                    d           |                    d           ||fS )Nr0   r   Tr1   FrD   r   r   )r$   r3   r%   r   r   r   initial_seasonal)smoothing_levelr   smoothing_seasonaldamping_trendljungbox)r
   rG   
statespaceExponentialSmoothingr   r   r/  r~   r0  r   r1  r2  test_serial_correlation)r   	ets_modelets_resultsstatespace_modelstatespace_resultss        r   statespace_comparisonr;    sZ     I --U-++K!6%!/!/$5ddd;
 
 
 
	$	$*:*:"-"@(6		
 	

 
 4 4 .11334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ''
333..z:::***s   B//B36B3c                    | \  }}t          |j        |j                   t          |j        |j                   t          |j        j        |j        j                   t          |                    d          |                    d                     t          |                    d          |                    d                     |                    d          d         }|                    d          d         }t          s>t          |d         |d         d           t          |d         |d         d	           d S d S )
Nr3  )method
jarqueberabreakvarr   皙?r   r   gffffff?)
r   r   scaler   r   r6  test_normalitytest_heteroskedasticityr   r   )r;  r8  r:  ets_hetstatespace_hets        r   test_results_vs_statespacerF    st   &;#K#);)?@@@)+=+CDDD ');)H)O  
 ++:+>>22*2EE   "","77)))>>   111DDQGG'?? @  	N  A 	
N1$5C@@@@
N1$5C@@@@@@	A Ar   c                    | \  }}|                     ddd          }|                     ddd          }|                                }|                                }t          |d         j        d d         |d         j        d d                    t          |d         j        dd          |d         j        dd          d           |                     dd	          }|                     dd	          }|                                }|                                }t          |d         j        |d         j        d           d S )
Nr   r  r  r  ir0   <   r  r  )r*  r+  r   r   )r;  r8  r:  ets_predstatespace_predstatespace_summaryets_summarys          r   %test_prediction_results_vs_statespacerM    ss   &;#K# ))BB)GGH(77"" 8  O )6688((**K F"4C4(6")$3$/  
 F"344(6")#$$/	   )))<<H(77bb7IIO(6688((**KF"$6v$>$Eq    r   c                 d   t          | dd                              d          }|                    dd          }|                                }|                    ddt	          d          d	d
          }|                                }t          |d         j        |d         j        dd           dd lm} |	                    d           t          d          D ]3}|                    |j        j        j        d d |f         dd           4|                    | dd          dd           |                    |d         dd           |                    |d         dd           |                    |d         dd           |                    |d         dd            |                    |d         dd!           |                                 t          |d         j        |d         j        d"d"           t          |d         j        |d         j        d"d"           d S )#Nr   )r#   r$   FrD   r  7   r      .Ar  	simulatedr   r   simulate_repetitionsr   r=  r  mean_numericalr   r   r   TkAgg  grey皙?colorr\   -r;   label--pi_lower:	sim lower.-exact lowerpi_upper	sim upperexact upperr   )r
   rG   r*  r+  intr   r   matplotlib.pyplotpyplotswitch_backendrangeplot_resultssimulation_resultsilocshow)r   rG   
pred_exactsummary_exactpred_simsummary_simpltr   s           r    test_prediction_results_slow_AANrv  C  sx    7%u
5
5
5
9
9u
9
E
EC##""#55J,,..M!! XX "  H ((**KF"$%,	    $#####w4[[ 
 
05aaad; 	 	
 	
 	
 	

 HHWRSS\3fH---HH]6"DH777HH[$cH===HH]:&MHBBBHH[$cH===HH]:&MHBBBHHJJJ J&j!(	    J&j!(	     r   c                 t   t          | ddddd                              d          }|                    dd	          }|                                }|                    ddt	          d
          dd          }|                                }t          |d         j        |d         j        dd           dd lm} |	                    d           t          d          D ]3}|                    |j        j        j        d d |f         dd           4|                    |j        dd          dd           |                    |d         dd           |                    |d         dd           |                    |d         dd            |                    |d!         dd"           |                    |d!         dd#           |                                 t          |d         j        |d         j        d$d%           t          |d!         j        |d!         j        d$d%           d S )&Nr   Tr0   )r#   r$   r%   r3   r2   FrD   rH  K   r  rP  r  rQ  rR  r  rT  r   r   r   rU  rV  rW  rX  rY  r[  r;   r\  r^  r_  r`  ra  rb  rc  rd  re  rf  g{Gz?r   )r
   rG   r*  r+  rg  r   r   rh  ri  rj  rk  rl  rm  rn  ro  endogrp  )r   rG   rq  rr  rs  rt  ru  r   s           r   !test_prediction_results_slow_AAdArz  ~  s       
cucoo  ##""#55J,,..M!! XX "  H ((**KF"$%,	    $#####w4[[ 
 
05aaad; 	 	
 	
 	
 	

 HHSYrss^SH///HH]6"DH777HH[$cH===HH]:&MHBBBHH[$cH===HH]:&MHBBBHHJJJ J&j!(	    J&j!(	     r   c                  h   t           j                            d          } |                     d          }|                                }t          d|j        d                   D ](}||dz
           d||dz
           z  z
  ||         z   ||<   )|dd          }t          j        |d          }|	                                }t          |          	                                }t          |j        d         |j        d	d	
           t          |j        dd          |j        dd          d	d	
           d S )Nr   i.  r   r@     r   )r   r0  r   r   r   )rl   r   r   standard_normalcopyrk  shapeholtwintersr5  rG   r
   r   r-   r0  r   )geneyr   r+   r   ets_ress          r   test_convergence_simpler    sD   
)


"
"CE""A	A1agaj!! 0 0Qx#!a%.(1Q4/!	#$$A

*	  C ''))CqkkooG 
$%	    w3BCC8t$     r   c                    | j         } G d d          }d|_         |d          |_        d}|                    |          } |d          |_        |                    |          }t	          ||d           d|_         |d          |_        d}|                    |          } |d	          |_        |                    |          }t	          ||d           d S )
Nc                       e Zd Zd ZdS )3test_exact_prediction_intervals.<locals>.DummyModelc                     || _         d S r   )r'   )selfr'   s     r   __init__z<test_exact_prediction_intervals.<locals>.DummyModel.__init__  s    (DOOOr   N)__name__
__module____qualname__r  r"   r   r   
DummyModelr    s#        	) 	) 	) 	) 	)r   r  g+?AAdNr   AANr   r   AAA)rm  r2  r   _relative_forecast_variancer   )rH   rG   r  stepss_AAdNs_AANs_AAdAs_AAAs           r   test_exact_prediction_intervalsr    s
   

(C) ) ) ) ) ) ) )
 !C
6""CIE,,U33F
5!!CI++E22Eq))) !C
6""CIE,,U33F
5!!CI++E22Eq)))))r   c                    | \  }}}t          t          j        |j                  |j        |j        |j        |j        |j                  }|	                    |          }|
                    d          }|
                    d          }t          |j        d         |j        d                    |                    |j        |j        d          }|                    |j        |j        dz   d          }	|                    d          }
|                    d          }t          |
j        d	         |j        d	                    d S )
Nr1   r   )r  r   r   )r   r   rS  g?)r\   )r   r   )r
   rP   rR   ry  r2   r#   r$   r%   r3   r   re   r   ro  r*  r   r+  )r?   r   r-   r>   r   r   fcast1fcast2pred1pred2df1df2s               r   test_one_step_aheadr    s=   *E69
	%+/kk'  F --

C\\\""F\\\""FFKNFKN333V[fk45  7 7EV[fkAo45  7 7E


D

)
)C


D

)
)CCHTNCHTN33333r   r$   r   r%   r   	   r   c                     t          | d |         ||dd                                          }t          j        t          j        |j                             sJ d S )Nr0   r   )r$   r%   r2   r   )r
   rG   rl   anyr,  r-   )r   r$   r%   r   r   s        r   (test_estimated_initialization_short_datar    sj    
 )   
cee  F28CJ''((((((((r   r=  r   r   c                    t          j        d          }t          j        t          |          dz            }t	          |dd|                                          }t          |j        |j        z   |dd           |j	        dk     sJ d S )	Ng      (@d   r   r(  )r%   r2   r   r   )r   r   gư>)
rl   arangearrayr   r
   rG   r   r/  r   mae)r   r=  r%   time_seriesr   s        r   test_seasonal_orderr    s    yH(4>>C/00K
$	  
 
cee  s00	    7T>>>>>>r   c            	          g d} t          | dddddd          }|                                j        }t          j        |          rJ |dk    sJ d S )	N)g     @[@g     @Y@g      Z@g     V@g     @Z@r   g      Y@g        r   T)ry  r   r   r   r#   r$   r3   r   )r
   rG   aiccrl   r   )ry  r   r  s      r   test_aicc_0_dofr  2  so    ...E%  E 99;;D{4     !888888r   )F)T__doc__statsmodels.compat.pandasr   statsmodels.compat.platformr   r   	itertoolsr   rh   rw   numpyrl   numpy.testingr   r   pandasrP   r5   scipy.statsr   )statsmodels.tsa.exponential_smoothing.etsr
   statsmodels.tsa.holtwinterstsar  0statsmodels.tsa.statespace.exponential_smoothingr4  exponential_smoothingr   ERRORSTRENDS	SEASONALSDAMPEDr   MODELS_DATA_SEASONALMODELS_DATA_NONSEASONALr(   ALL_MODELS_AND_DATAALL_MODEL_IDSfixturer?   rA   rH   rK   r   r   rs   r9   r:   r   r7   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r-  r;  rF  rM  markr6   rv  rz  r  r  r  parametrizer  r  r  r"   r   r   <module>r     s    2 1 1 1 1 1 F F F F F F F F             > > > > > > > >          > > > > > > 1 1 1 1 1 1 1 1 1 E E E E E E E E E E E E6   
	 		tGFFNF4DFF   $GFFGV\;;      4 5 5 5   7 8 8 8    .0DD  2E  
 *>>>#$ #$ ?>#$L    - - - K K K J" J" J"Z 6K 6K 6K|  D 	" 	" 	" 	" 	" 	"         	8 	8 	8M M M> > >B B B	@ 	@ 	@  >F F F&# # #"H H H2  6	 	 	  >  2  / / /  /. /. /.d !+ !+ !+HA A A@% % %P 7 7 7t < < <~  <* * *64 4 42 4-00dE]33!R))	) 	) *) 43 10	) K#=>>  ?>$    r   