
    M/Ph                     
   d Z ddlmZ ddlmZ ddlZddlmZ ddl	m
Z
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l0m1Z1 ddl2m3Z3 dZ4dZ5dZ6d Z7d Z8ddddgdggZ9ddgZ:g dZ;ddgZ<dd gZ= e> ee9e:e;e<e=                    Z?g Z@e?D ]?ZAeAd         dk    seAd         seAd         d!k    seAd         re@B                    eA           @e@Z?d"ZCd# e?D             ZD ejE        d$e?eD%          d&             ZFg d'ZGd( ZHejI        J                    d)eG          d*             ZKd+ ZLd, ZMejI        jN        d-             ZO G d. d/          ZP edddddggg dddgddgdd0gd1d2gddgdd3g          Z? e>e?          Z?d4 e?D             Z?d5 e?D             Z?d6ZQd7 e?D             ZDdd9ZR ejE        d$e?eD%          d:             ZS ejE        d$;          d<             ZT eddddggd=gddgdgdd0gd2gddgdd3g          Z? e>e?          Z?d> e?D             Z?d? e?D             Z?d@ZQdA e?D             ZD ejE        d$e?ddd         eDddd         %          dB             ZUejI        jV        ejI        jN        dC                         ZWejI        jN        dD             ZXejI        jV        dE             ZYdF ZZdG Z[ejI        jN        dH             Z\ejI        jN        dI             Z] G dJ dKeP          Z^ G dL dMe^          Z_ G dN dOe^          Z`ejI        J                    dP e> eja        ddQ                              dR             ZbejI        J                    dSddg          dT             ZcejI        jN        dU             ZddV ZedW ZfejI        J                    dSddg          dX             ZgejI        jN        dY             ZhdZ Zid[ Zjd\ Zkd] Zld^ Zmd_ ZnejI        J                    d`ddg          da             ZoejI        J                    dbdcddg          de             Zpdf Zqdg Zrdh ZsejI        jV        di             Ztdj Zudk Zvdl Zwdm Zxdn Zydo Zzdp Z{dq Z|dr Z}ds Z~dt Zdu ZejE        dv             ZejI        J                    dwd!dxg          ejI        J                    dyddg          ejI        J                    dzg d{          ejI        J                    d|ddg          d}                                                 Zd~ ZdS )z
Test AR Model
    )	MONTH_END)pytest_warnsN)product)
NamedTupleUnion)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                     t           j                            d          }t          j        t          j        ddd          t          |           }t          j        |	                    |           |          |fS )Ni l     freqperiodsindex)
nprandomRandomStatepdr   dtdatetimer   r   standard_normal)nobsrsidxs      ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/tests/test_ar.pygen_ar_datar5   *   sc    			v	&	&B
-D!Q//i
N
N
NC9R''--S9992==    c                 8   d}t          |          \  }}t          | t                    r| nt          |           }g }d|v rCt	          j        t          j        |          |j        d          }	|	                    |	           d|v rIt          j
        d|dz             }
t	          j        |
|j        d          }
|	                    |
           t          | t                    r| rt          j
        d| dz             }n| dk    rd }n| }|rt          j        d	          }t          d
          D ]}d||d d
|f<   d t          d
          D             }t	          j        |||j                  }d|v r|j        d d dd f         }|	                    |           |r-|D ]*}|	                    |                    |                     +|rb|                    ||f          }d t          |          D             }t	          j        |||j                  }|	                    |           nd }|                    d|           t	          j        |d                                          }|j        d d df         }|j        d d dd f         }||||fS )N  cconstr)   nametr$   timer   )r8      r?   c                     g | ]}d | S )zs. .0is     r4   
<listcomp>z&gen_ols_regressors.<locals>.<listcomp>F   s    ,,,QQ,,,r6   columnsr)   c                     g | ]}d | S )zx.rA   rB   s     r4   rE   z&gen_ols_regressors.<locals>.<listcomp>P   s    ...QQ...r6   axis)r5   
isinstanceintmaxr-   r   r*   onesr)   appendarangezerosrange	DataFrameilocshiftr0   insertconcatdropna)arseasonaltrendexogr1   yr2   maxlagregr:   r>   lagsseasonsrD   colslagxdfendogs                      r4   gen_ols_regressorsrg   0   s   DEArb#&&3RRCGGF
C
e||	"'$--qwWEEE

5
e||yD1H%%yQW6:::

4"c r yBF##	q (9%%r 	" 	"A !GAErE1H,,%)),,,,wAGDDD%<<l111abb5)G

7 % 	% 	%CJJqwws||$$$$ d|,,..%++...LD888

1JJq!	3Q				&	&	(	(BGAAAqDME7111abb5>Dar6      r$   TF)nr9   r=   ct   	nonrobustHC0ri   )ARSeasonalTrendExogzCov Typec           	      r    g | ]4}d                      d t          t          |          D                       5S )z, c                 >    g | ]\  }}|d z   t          |          z   S )z: )str)rC   ri   ps      r4   rE   z<listcomp>.<listcomp>i   s+    ???TQq4x#a&& ???r6   )joinzipnamesrC   params     r4   rE   rE   h   sM        	II??S->->???@@  r6   module)scopeparamsidsc                     | j         \  }}}}}t          ||||          \  }}}}t          |||||          }	|	                    |          }
t	          ||          }|                    |d          }|
|fS )N)rZ   r[   r\   )cov_typeF)r   use_t)rz   rg   r   fitr   )requestrY   rZ   r[   r\   r   r]   rd   rf   ar_modar_resolsols_ress                r4   ols_autoreg_resultr   n   s    *1-'B%x*2xEEAq%QXUCCCFZZZ**F
eT

Cggxug55G7?r6   )bse
cov_paramsdf_modeldf_residfittedvaluesllfr1   r}   residscaletvaluesr   c                 $   |j         |j        z   }||j        z   }||z
  |z  }|dv r| |z  S |dk    r
| |j         z   S |j        dk    r| S |dv r| t	          j        |          z  S |dv r| |z  S |dv r| |z  S |dv r| t	          j        |          z  S | S )zS
    fixes to correct for df adjustment b/t OLS and AutoReg with nonrobust cov
    )r   r   rl   )r   conf_int)r   r   )f_test)r   )
k_constantr   r   r   r*   sqrt)valattribresnparamr1   df_corrections         r4   fix_ols_attributer      s     ^cl*FCL DF]d*M]""	:		S^##		$	$
	&	&	&RW]++++	*	*	*]""	;		]""	<		RW]++++Jr6   	attributec                     | \  }}t          ||          }t          ||          }t          |          r |            } |            }t          |||          }t          ||           d S N)getattrcallabler   r   )r   r   aools_aar_as         r4   test_equiv_ols_autoregr      st    DAqAy!!E1i  D tvveY22EE4     r6   c                     | \  }}|                                 }|                                 }|j        dk    r/|j        |j        z
  }t	          |d|          }||j        z   j        }t          ||           d S )Nrl   r   )r   r   Tr}   r   r   )r   r   r   a_cio_cispreads         r4   test_conf_int_ols_autoregr      sv    DAq::<<D::<<Dz[  !(""6:q99!$D$r6   c                    | \  }}t          j        |j        j        d                   }|                    |          j        }|                    |          j        }t          |d|          }t          ||           d S )Nr   r   )r*   eyer}   shaper   fvaluer   r   )r   r   r   ra_fo_fs         r4   test_f_test_ols_autoregr      sn    DAq
qx~a !!A
((1++
C
((1++
C
C1
-
-CCr6   c                     | \  }}t          j        |j                  }|                    |           t          j        |j        j        d                   }|                    |d           d S )Nr   T)scalar)r*   	ones_liker}   t_testr   r   	wald_test)r   r   _r   s       r4   test_other_tests_autoregr      s_    DAq
QXAHHQKKK
qx~a !!AKK$Kr6   c                       e Zd Zd Zd Zd Zd Zd Zej	        j
        d             Zej	        j
        d             ZdS )	CheckARMixinc                 Z    t          | j        j        | j        j        t                     d S r   )r	   res1r}   res2	DECIMAL_6selfs    r4   test_paramszCheckARMixin.test_params   s$    DI,di.>	JJJJJr6   c                    t          j        t          j        | j                                                            }t          || j        j        t                     t          | j        j	        | j        j
        t                     d S r   )r*   r   diagr   r   r	   r   	bse_statar   r   	bse_gretl	DECIMAL_5)r   r   s     r4   test_bsezCheckARMixin.test_bse   sa    gbgdi22445566C!4i@@@DIM49+>	JJJJJr6   c                 Z    t          | j        j        | j        j        t                     d S r   )r	   r   r   r   r   r   s    r4   test_llfzCheckARMixin.test_llf   "    DIM49=)DDDDDr6   c                 Z    t          | j        j        | j        j        t                     d S r   )r	   r   fper   r   r   s    r4   test_fpezCheckARMixin.test_fpe   r   r6   c                    ddl m}  |            }| j                            |           |                    dd           | j        j                            |          }t          |          t          | j                  u sJ d S )Nr   )BytesIO)ior   r   saveseek	__class__loadtype)r   r   fhres_unpickleds       r4   test_picklezCheckARMixin.test_pickle   s    WYY	r
1	+0044M""d49oo555555r6   c                     t          | j                                                                        t                    sJ d S r   )rK   r   summaryas_textrt   r   s    r4   test_summaryzCheckARMixin.test_summary   s8    $)++--5577=======r6   c                 j    t          | j        j        t          j        t
          j        f          sJ d S r   )rK   r   pvaluesr*   ndarrayr-   r   r   s    r4   test_pvalueszCheckARMixin.test_pvalues   s,    $)+bj")-DEEEEEEEr6   N)__name__
__module____qualname__r   r   r   r   r   pytestmarksmoker   r   rA   r6   r4   r   r      s        K K KK K KE E EE E E6 6 6 [> > > [F F F F Fr6   r      nonedropr?   c                 Z    g | ](}|d          s|d         dk    s|d         s|d         &|)S r   r$   ri   rk   rh   rA   ry   s     r4   rE   rE      K     
 
 
a
 !HOOuQxO58O 
#OOr6   c                 R    g | ]$}|d          r|d          |d         s|d         "|%S rk   r!   r   rA   ry   s     r4   rE   rE     \     
 
 
8
 a
 ',Ah
 38(
	
 
 
r6   zglags: {0}, trend: {1}, seasonal: {2}, nexog: {3}, periods: {4}, missing: {5}, pandas: {6}, hold_back{7}c                 *    g | ]}t          j        | S rA   	param_fmtformatry   s     r4   rE   rE          444Ey444r6   (c                    t           j                            |          }|                    |           }|r|                    | |f          nd }|rt	          j        t          j        ddd          | t                    }t	          j	        |d|          }|r;d t          |j        d                   D             }t	          j        |||	          } G d
 dt                    }	 |	||          S )Ni  r?      r'   r&   rf   r<   r)   c                     g | ]}d | S )zexog.rA   rB   s     r4   rE   zgen_data.<locals>.<listcomp>  s    >>>AKAKK>>>r6   r$   rF   c                   l    e Zd ZU eej        ej        f         ed<   eej        ej	        f         ed<   dS )gen_data.<locals>.DataSetrf   r\   N)
r   r   r   r   r*   r   r-   r   __annotations__rS   rA   r6   r4   DataSetr     sF         RZ*++++BJ,------r6   r  rf   r\   )r*   r+   r,   r0   r-   r   r.   r/   r   r   rR   r   rS   r   )
r1   nexogpandasseedr2   rf   r\   r)   rb   r  s
             r4   gen_datar    s   			t	$	$Bt$$E05?2tUm,,,4D AKb"%%t)
 
 
 	%gU;;; 	A>>tz!})=)=>>>D<d%@@@D. . . . .* . . . 7T****r6   c           
          | j         d d         \  }}}| j         dd          \  }}}}}t          d||          }	t          |||||	j        |	j        ||          S Nrh      )r[   r`   rZ   periodrf   r\   missing	hold_backrz   r  r   rf   r\   
r   r`   r[   rZ   r  r
  r  
use_pandasr  datas
             r4   ar_datar  #  x    #M"1"-D%4;M!""4E1E67J	C
++DjY	 	 	 	r6   )r|   c                    t           j                            d          }|                    d          }dt          j        |          z  }t          d|j        d                   D ].}dd||dz
           z  z   d||dz
           z  z   ||         z   ||<   /t          j        d	|j        d         dz
  d
          }t          j	        |dd          |          S )Nc44   
   rk   r   r$         ?g?z
2000-01-01Mr   r(   )
r*   r+   r,   r0   r   rR   r   r-   r   r   )r   gener]   rD   r)   s         r4   ar2r  4  s    
)


)
)CBA
R\!__A1agaj!! : :31q5>!C!AE(N2QqT9!OL!'!*q.sKKKE9QqrrU%((((r6   r9   c                 Z    g | ](}|d          s|d         dk    s|d         s|d         &|)S r   rA   ry   s     r4   rE   rE   J  r   r6   c                 R    g | ]$}|d          r|d          |d         s|d         "|%S r   rA   ry   s     r4   rE   rE   O  r   r6   zilags: {0}, trend: {1}, seasonal: {2}, nexog: {3}, periods: {4}, missing: {5}, pandas: {6}, hold_back: {7}c                 *    g | ]}t          j        | S rA   r   ry   s     r4   rE   rE   X  r   r6   c           
          | j         d d         \  }}}| j         dd          \  }}}}}t          d||          }	t          |||||	j        |	j        ||          S r  r  r  s
             r4   	plot_datar   \  r  r6   c           
         ddl m} t          | j        | j        | j        | j        | j        | j        | j	        | j
                  }|                                }|                                }t          ||          sJ | j        R|                    d          }t          ||          sJ |                    dd d          }t          ||          sJ t          |                                t                     sJ d S )Nr   )Figurer[   rZ   r\   r  r
  r  i,  )endF)r$  alpha	in_sample)matplotlib.figurer"  r   rf   r`   r[   rZ   r\   r  r
  r  r   plot_diagnosticsrK   plot_predictr   r   )r   close_figuresr"  modr   figs         r4   test_autoreg_smoke_plotsr-  m  s    )(((((
o#^%!	 	 	C ''))C



 
 Cc6"""""~3''#v&&&&&3deDD#v&&&&&ckkmmW-------r6   c           
         t          | j        | j        | j        | j        | j        | j        | j        | j                  }|	                                }d }| j        &t          j        d| j        j        d         f          }|                    |j        dd|           | j        dk    r%| j        |                    |j        dd|           t          | j        t           j                  r| j        r| j        t%          t'          | j        j        d                             | j        _        | j        6t%          t'          | j        j        d                             | j        _        t          | j        | j        | j        | j        | j        | j        | j                  }|                    |j        dd|           d S d S d S )Nr#  r$   r   r	  exog_oosi^  )r[   rZ   r\   r
  r  )r   rf   r`   r[   rZ   r\   r  r
  r  r   r*   emptyr   predictr}   rK   r-   r   listrR   r)   )r  r+  r   r0  s       r4   test_autoreg_predict_smoker4    s   
m!\#~	 	 	C ''))CH|8Q 21 5677KK
AsXK666|qW\1CJ3:::'-++ ;; ' :"5)<Q)?#@#@AA<#!%eGM,?,B&C&C!D!DGLML-%>O
 
 
 	CJ3:::::; ; : :r6   c                  ^   t          ddd          } t          | j        dddd           }|                                }t	          |          D ]^}|                    d          r|dv rt          ||          }t          |          r |             Gt          |t                    sJ _d S )Nr	  r   Fri   )r[   rZ   r\   r   )r2  r   r   
initializer   remove_datar   r   t_test_pairwiser   wald_test_termsapplyrO   )
r  r   rf   r   dir
startswithr   r   rK   object)r  r+  r   attrs       r4   test_parameterless_autoregr?    s    CE""D
$*asU
F
F
FC
''))CC , ,??3 	  
 
 
 sD!!D>> 	,DFFFFdF++++++3, ,r6   c                  N   t          ddd          } t          | j        d          }|                                }t	          j        t          d          5  |                    |j        | j	                   d d d            n# 1 swxY w Y   t	          j        t          d          5  |                    |j        | j	                   d d d            n# 1 swxY w Y   t	          j        t          d	          5  t          | j        dd
           d d d            n# 1 swxY w Y   t	          j        t          d          5  t          | j        j
        dd           d d d            n# 1 swxY w Y   t          | j        d| j	                  }|                                }t	          j        t          d          5  |                    |j        | j	        j        d d                    d d d            n# 1 swxY w Y   t	          j        t          d          5  |                    |j        | j	        j        d d d d
f                    d d d            n# 1 swxY w Y   t	          j        t          d          5  |                    |j        dd           d d d            n# 1 swxY w Y   t	          j        t          d          5  |                    |j        dd            d d d            n# 1 swxY w Y   t          | j        d| j	                  }|                                }t	          j        t          d          5  |                    |j        d| j	        j        d d                    d d d            d S # 1 swxY w Y   d S )Nr	  rk   Trh   z exog and exog_oos cannot be usedmatchr\   r/  zhold_back must be >= lagsr$   )r  zfreq cannot be inferredrZ   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$  r0  r   zstart and end indicate that 10i  r    )r  r   rf   r   r   raises
ValueErrorr2  r}   r\   valuesrT   )r  r+  r   s      r4   test_predict_errorsrL    s   CD!!D
$*a
 
 C
''))C	z)K	L	L	L 0 0CJTY///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	z)K	L	L	L 4 4CJ3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	z)D	E	E	E , ,
A++++, , , , , , , , , , , , , , ,	z)B	C	C	C 5 5
!1t44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 $*adi
0
0
0C
''))C	z)H	I	I	I ; ;CJTY^DSD%9:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	z)L	M	M	M @ @CJ2A2)>???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @	z)K	L	L	L 4 4CJcs3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	z)D	E	E	E 8 8CJC$7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 $*adi
0
0
0C
''))C	z)I	J	J	J F FCJC$).!2DEEEF F F F F F F F F F F F F F F F F Fs   "BBB*"CCC>D""D&)D&E11E58E5/HH	H(3I''I+.I+J77J;>J;LLL0NN!Nc                     t          ddd          } t          j        t          d          5  t	          | j        d           d d d            n# 1 swxY w Y   t          j        t          d          5  t	          | j        g d           d d d            n# 1 swxY w Y   t          j        t          d          5  t	          | j        g d	           d d d            d S # 1 swxY w Y   d S )
Nr	  rk   Tz"lags must be a non-negative scalarrA  zAll values in lags must be pos)r$   r$   r$   )r$   rh   )r  r   rI  rJ  r   rf   r  s    r4   test_spec_errorsrQ    s   CD!!D	z)M	N	N	N    
B                             	z)I	J	J	J ' '
III&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	z)I	J	J	J ( (
JJJ'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s5   AAA5BB B?C$$C(+C(c           
         t          | j        | j        | j        | j        | j        | j        | j        | j                  }|	                                }|
                    d           | j        |
                    dd           d S d S )Nr#  Tdynamici  )r$  rT  )r   rf   r`   r[   rZ   r\   r  r
  r  r   r2  )r  r+  r   s      r4   test_dynamic_forecast_smokerU    s    
m!\#~	 	 	C ''))CKKK|T***** r6   c                  $   t          j                    j        d         } t          | ddd           t          | ddd           t          | ddd           t          | dd	           t          | dd
           t          | dddd           d S )NSUNACTIVITYr!   Tri   )globr[   Fr?   )rZ   r
  rD  )rX  )rX  rZ   r
  )r   r   r  r   rP  s    r4   test_ar_select_order_smokerY    s    =??.DD!$c2222D!%s3333D!d26666D!e,,,,D!$''''D!$bAAAAAAr6   c                       e Zd Zd ZdS )CheckAutoRegMixinc                 Z    t          | j        j        | j        j        t
                     d S r   )r	   r   r   r   r   r   r   s    r4   r   zCheckAutoRegMixin.test_bse  s#    DIM49+>	JJJJJr6   N)r   r   r   r   rA   r6   r4   r[  r[    s(        K K K K Kr6   r[  c                   .    e Zd ZdZed             Zd ZdS )TestAutoRegOLSConstantz2
    Test AutoReg fit by OLS with a constant.
    c                 *   t          j                    }t          t          t	          |j                                      |j        _        t          |j        d                                          | _	        t          j        d          | _        d S )N	   r`   Tconstant)r   r   r3  rR   lenrf   r)   r   r   r   r   ARResultsOLSr   clsr  s     r4   setup_classz"TestAutoRegOLSConstant.setup_class  sj    }c$*oo 6 677
4:A...2244*D999r6   c                    | j         j        }| j         j        }t          |                    |          |j        d          | j        j        t                     t          |                    |          |j        d          | j        j	        t                     t          |                    |d          | j        j
        t                     t          |                    |dd          | j        j        t                     t          |                    |          |j        d          | j        j        t                     t          |                    |dd          | j        j        t                     t          |                    |dd          | j        j        t                     t          |                    |dd	          | j        j        t                     t          |                    |dd
          | j        j        t                     t          |                    |dd          | j        j        t                     d S Nd   )rH  r`  rE  rG  i  i4  i  i6  i<  iG  r   modelr}   r	   r2  r  r   FVOLSnneg1start0	DECIMAL_4FVOLSnneg1start9FVOLSnneg1start100FVOLSn200start0FVOLSdefaultFVOLSn200start200FVOLSn100start325FVOLSn301start9FVOLSn4start312FVOLSn15start312r   rm  r}   s      r4   test_predictz#TestAutoRegOLSConstant.test_predict#  8   	!MM&!!%/"3"34I&	
 	
 	

 	MM&!!%/"3"34I&	
 	
 	

 	MM&M,,I(	
 	
 	

 	MM&sM33I%	
 	
 	

 	MM&!!%/"3"34I"	
 	
 	

 	MM&M55I'	
 	
 	

 	MM&M55I'	
 	
 	

 	MM&sM33I%	
 	
 	

 	MM&M55I%	
 	
 	

 	MM&M55I&	
 	
 	
 	
 	
r6   Nr   r   r   __doc__classmethodrh  rz  rA   r6   r4   r^  r^    sH          : : [:4
 4
 4
 4
 4
r6   r^  c                   .    e Zd ZdZed             Zd ZdS )TestAutoRegOLSNoConstantz1f
    Test AR fit by OLS without a constant.
    c                     t          j                    }t          t          j        |j                  dd                                          | _        t          j	        d          | _
        d S )Nr`  ri   r`   r[   Frb  )r   r   r   r*   asarrayrf   r   r   r   re  r   rf  s     r4   rh  z$TestAutoRegOLSNoConstant.setup_class_  sT    }2:dj11EEEIIKK*E:::r6   c                    | j         j        }| j         j        }t          |                    |          |j        d          | j        j        t                     t          |                    |          |j        d          | j        j	        t                     t          |                    |d          | j        j
        t                     t          |                    |dd          | j        j        t                     t          |                    |          |j        d          | j        j        t                     t          |                    |dd          | j        j        t                     t          |                    |dd          | j        j        t                     t          |                    |dd	          | j        j        t                     t          |                    |dd
          | j        j        t                     t          |                    |dd          | j        j        t                     d S rj  rl  ry  s      r4   rz  z%TestAutoRegOLSNoConstant.test_predicte  r{  r6   Nr|  rA   r6   r4   r  r  Z  sH          ; ; [;
4
 4
 4
 4
 4
r6   r  rc      c           	         t          j                    }t          j        |j                  }|d| z
  d          }t          ||                                           }|j        }|j        }|j	        }t          j
        ||||j        g          }t          j        d          j        j        }	|	| dz
  d d f                                         }
d| z   }t          j
        ddt          j        t          j        |j                            z  t          j        |j                  g          }d|j        z  ||z  z   |
d d<   t)          ||
t*                     t          || d                                          }t-          |j        |j                   t-          |j	        |j	                   t-          |j        |j                   t-          |j        |j                   d S )	N   ra  r:   r$   rk   rO  rh   )r`   r  )r   r   r*   r  rf   r   r   aichqicbicarrayr   r   ARLagResultsicr   copylogr1   r   r	   r   r   )rc   r  rf   	endog_tmpr   r  r  r  r   r   compkpenr2s                 r4   test_autoreg_info_criterionr    s   =??DJtz""Eb3hjj!I	$$$((**A
%C6D
%C8S$QU+,,D"7++.0Da
  ""D	CA
(Aq26"&..11126!&>>B
C
CCAEzC!G#D!HdI...	SB	/	/	/	3	3	5	5BAE26"""AE26"""AFBG$$$AE26"""""r6   	old_namesc                    |rt           nd }t          ddd          }t          t          j                            d          d|          }t          |          5  t          |d|                                          }d d d            n# 1 swxY w Y   |rt          g d	          }nt          g d
          }|j
        j                            |          sJ d S )Nz2011-1H   r  rH  r'   r&   foobarr   rk   r`   r  )	intercept	foobar.L1	foobar.L2)r:   r  r  )FutureWarningr   r   r*   r+   randnr   r   r   r
   r}   r)   equals)reset_randomstater  warningdatesr]   resultsr3   s          r4   test_autoreg_named_seriesr    s3   (2mmdGx#>>>Eryr""???A	g		 @ @!!y999==??@ @ @ @ @ @ @ @ @ @ @ @ @ @ @  9;;;<<77788>&&s+++++++s   %BBBc                  *   t          j                    j        d                                                                         } t          dt          |           d          }|| _        t          | d          	                                }|j
         d S )Ncpi1959Q1Qr     ra  )r   load_pandasr  diffrX   r   rd  r)   r   r   r   )dtar  rY   s      r4   test_autoreg_seriesr    s|     

!
!
&u
-
2
2
4
4
;
;
=
=CxSDDDECI	2				"	"	$	$BFFFFr6   c            
      V   t           j                            d           t          g ddgd          } t	          | t          t          j        ddd          dt                              }t          |dd	
          }t          |j                  dk    sJ t          |j        t                    sJ t          |j        t                    sJ t          |j        t                    sJ t          |j        t$                    sJ |j        rJ |j        dk    sJ |j        J d S )Ni90  )r$   g      g333333?r$   rk  i  r  r(   r?   r  )r^   r  )r$   rk   r9   )r*   r+   r  r   r   r   r.   r/   r   r   tuplear_lagsrK   r  dictr  r  rm  r   rZ   r[   r
  )r]   tsr   s      r4   test_ar_order_selectr    s1   INN5___qc377A		+dAq))3Y
 
 

 
 
B "RE
2
2
2C''''cgt$$$$$cgt$$$$$ch%%%%%ci)))))|9:r6   c                  F   t          j        g d          } t          j        t          d          5  t          | d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          | dd           d d d            d S # 1 swxY w Y   d S )N)
   ?r  g   ?   ]?r  r  g   `?   ?r  r  zThe model specification cannotrA     ra  ri   r  )r*   r  r   rI  rJ  r   )samples    r4   "test_autoreg_constant_column_trendr    s1   X	
 	
 	
 F 
z)I	J	J	J    Q                             	z)I	J	J	J + +Qc****+ + + + + + + + + + + + + + + + + +s#   AAA6BBBc                    t          j                    j        d                                                                         }t          dt          |          d          }||_        | rt          nd }t          |          5  t          |d|                                           }d d d            n# 1 swxY w Y   |                                                                }d|v sJ d|v sJ d	|v sJ t          |          5  t          |d
|                                           }d d d            n# 1 swxY w Y   |                                                                }| rd|v sJ nd|v sJ d|v sJ d S )Nr  r  r  r  r!   r  z
AutoReg(4)zcpi.L4z
03-31-1960r   r  r:   
AutoReg(0))r   r  r  r  rX   r   rd  r)   r  r   r   r   r   r   )r  r  r  r  r   summs         r4   test_autoreg_summary_cornerr    s
    ""'.3355<<>>DxTEEEEDJ(2mmdG	g		 ? ?di888<<>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?;;==  ""D4t4	g		 ? ?di888<<>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?;;==  ""D d"""""$4s$   %B44B8;B8%D77D;>D;c                     t          j                    } t          t          j        | j                  d          }|                                }|                    |j                  }t          |t          j
                  sJ |j        dk    sJ |                    |j                  j        dk    sJ t          |                    |j                   |                    |j                             d S )Nrh   )r!   )r!   r!   )r   r  r   r*   r  rf   r   scorer}   rK   r   r   informationr   hessian)r  rY   r   r  s       r4   test_autoreg_scorer    s    !!D	DJ''	+	+B
&&((CHHSZ  EeRZ(((((;$>>#*%%+v5555RZZ
+++R^^CJ-G-GHHHHHr6   c                     t          j                    } t          t          j        | j                  d          }|                                }t          |j        t          j	        d|j
        d         z  g                     d S )Nr$   ra  g      ?rN  )r   r  r   r*   r  rf   r   r	   rootsr  r}   )r  rY   r   s      r4   test_autoreg_rootsr    sk    !!D	DJ''a	0	0	0B
&&((C	28S3:b>-A,B#C#CDDDDDr6   c                    t           j                            d          }t          j        d          }|d         t          j        d          z  |d<   t          dd          D ]}d||dz
           z  ||         z   ||<   t          |d          }|                                }|                    ddd          }|                    ddd	          }t          j
        t          j        d
dd          dt                    }t          j        ||          }t          |d          }|                                }|                    |d         |d         |d                   }	|                    |d         |d         d          }
|                    |d         |d         d	          }t          ||           t          ||	           t          ||
           t          ||           d S )N  r   P^Cy@r$   ?r8   i   rS  Ti     r   r(   )r*   r+   r0   r1  r   rR   r   r   r2  r-   r   r.   r/   r   r   r   )r  r  r]   rD   r+  r   pred0pred1r3   pred2pred3pred4s               r4   test_equiv_dynamicr  $  s   
	!!$''A
AQ4"'.///AaD1d^^ % %Qq1uX~!$!
!Q--C
''))CKKS!K,,EKKS$K//E
-D!R00$Y
O
O
OC
	!3A
!Q--C
''))CKKC#c(CHK==EKKC#c(AK66EKKC#c(DK99EE5!!!E5!!!E5!!!E5!!!!!r6   c                  n   t           j                            d          } |                     d          }t          j        d          }|d         t          j        d          z  |d<   t          dd          D ]}d||dz
           z  ||         z   ||<   t          |dd	          }|                    d
d          }t          |d          }|
                    dd          }|
                    |j        d d         dd          }t          ||           |
                    ddd          }|
                    |j        d d         ddd          }t          ||           |
                    ddd          }|
                    |j        d d         ddd          }t          ||           d S )NNa r  r   r  r$   r  r$   r   r   r9   orderr[   FrN  )dispiprint  L  rk   TrS  2   )r*   r+   r,   r0   r1  r   rR   r   r   r   r2  r}   r   )	r2   r  r]   rD   smodsresr+  spredpreds	            r4   test_dynamic_against_sarimaxr  ;  s   			x	(	(B
4  A
AQ4"'.///AaD1d^^ % %Qq1uX~!$!1IS111D88r8**D
!Q--CLLd##E;;t{2A2T22DE4   LLdDL11E;;t{2A2T4;@@DE4   LLdBL//E;;t{2A2T2;>>DE4     r6   c            
         t           j                            d          } |                     d          }t          j        d          }|d         t          j        d          z  |d<   dt          j        t          j        d          dz  dz  t           j        z            z  }t          d	d          D ]+}dd
||d	z
           z  z   ||         z   ||dz           z   ||<   ,t          j        |t          j        t          j        dd	d	          dt                              }t!          |d	d          }|                                }|j        j        d         }t          j        d          }	|j        j        d	d         |	d	d <   |j        j        d         }
|                    ddd          }t          j        d          }|d         |
z  |z   |	d         z   |d<   t          d	d          D ]%}||d	z
           |
z  |z   |	d|z   dz           z   ||<   &t          j        |t          j        |j        d         dt                              }t/          ||           |                    dd          }|dd         |
z  |z   |	t          j        dd          dz           z   }t          j        |t          j        |j        d         dt                              }t/          ||           d S )Nr  r  r   r  r  r?   r   rk   r$   r    r   r(   TrD  rN  r  r       FrS  e   )r*   r+   r,   r0   r1  r   cosrP   pirR   r-   r   r   r.   r/   r   r   r   r}   rT   rQ   r2  r)   r   )r2   r  r]   effectsrD   ysr+  r   r9   ra   rY   r  directs                r4   test_predict_seasonalr  R  s   			x	(	(B
4  A
AQ4"'.///AaD26")B--",q0258999G1d^^ < <C!AE(N"QqT)GAFO;!		mKa##T	
 
 

 
 
B "a$
'
'
'C
''))C
AhrllG*/!B$'GABBK		B;;sD$''DXc]]F#a'("33F1I1c]] E E1q5MB&*WcAg^-DDq		YbmBHSM3YOOO  F f%%%;;sE;**Ds2vY^a'")C*>*>*C"DDFYbmBHSM3YOOO  F f%%%%%r6   c            
         t           j                            d          } |                     d          }t          j        d          }|                     d          }|d d         t          j        d          z  |d d                             d          z   |d d<   t          dd          D ]I}dd||dz
           z  z   d	||dz
           z  z
  ||         z   ||                                         z   ||<   Jt          j	        |t          j
        t          j        d
dd          dt                              }t          j        |ddg|j                  }t!          |ddgd|          }|                                }dt%          |                                          v sJ |                    d          }	|j        j        d         }
|j        j        dd         }t          j        |j        j        dd                    }|j        d         }|j        d         }|
||dd         z  z   ||dd         z  z   }||d         |dd df         z  |d         |dd df         z  z   z  }t          j
        |j        d         dt                    }t          j	        ||          }t1          |	|           |                     d          }|                    ddd|          }	t          j        d          }|j        d         }|j        d         }|
||d         z  z   ||d         z  z   |d         |z  z   |d<   |
||d         z  z   ||d         z  z   |d          |z  z   |d<   |
||d         z  z   ||d         z  z   |d!         |z  z   |d"<   t          dd          D ]r}|
|||dz
           z  z   |||dz
           z  z   ||<   d|z   |j        d         k     r||xx         |d|z            |z  z  cc<   V||xx         ||dz
           |z  z  cc<   st          j	        |t          j
        |j        d         dt                              }t1          |	|           d S )#Nr  r  )r  rk   rh   r  r$   r  r  r  r  r   r(   x0x1rF   r9   r[   r\   z-Xr  r   r  rN    r  )rk  rk   r  T)rT  r0  r        rk   )r*   r+   r,   r0   r1  r   sumrR   r-   r   r   r.   r/   r   rS   r)   r   r   rt   r   r2  r}   rT   r  r   rQ   r   )r2   r  r]   rd   rD   r  xdfr+  r   r  r9   rY   exphi_1phi_2r  r3   r0  s                     r4   test_predict_exogr  y  sa   			x	(	(B
4  A
A
9%%AbqbEBG0111AbqbEIIaLL@AbqbE1d^^ H HC!AE(N"S1QU8^3ad:QqTXXZZG!		mKa##T	
 
 

 
 
B ,q4,bh
?
?
?C
"q!fCc
2
2
2C
''))C3s{{}}%%%%%%;;sD
A	1	B	CJOABB'	(	(BGAJEGAJE3r6""UQs2vY%66F
beaaj 2a51STT1W:#555F
-s
C
C
CCYvS)))Ff%%%!!(++H;;sD$;BBDXc]]FGAJEGAJEEAcFN"UQsV^3afrkAF1IEF1I%%#63"DF1IEF1I%%#63"DF1I1c]] 0 0q1u--q1u0EEq	7QWQZ1III37b(IIII1III!c'*R//IIIIYbmBHSM3YOOO  F f%%%%%r6   c            
         t           j                            d          } |                     d          }t          j        d          }|d d         t          j        d          z  |d d<   t          dd          D ].}dd||dz
           z  z   d||dz
           z  z
  ||         z   ||<   /t          j        |t          j	        t          j        d	dd          dt          
                    }t          |ddgd          }|                                }|j        j        d         }|j        j        d         }t          j        |j        j        dd                    }	|                    ddd          }
t          j        d          }||dz  z   |	d         |d         z  z   |	d         |d         z  z   |d<   ||dz  z   |	d         |d         z  z   |	d         |d         z  z   |d<   ||dz  z   |	d         |d         z  z   |	d         |d         z  z   |d<   t          dd          D ]:}||d|z   z  z   |	d         ||dz
           z  z   |	d         ||dz
           z  z   ||<   ;t          j        |t          j	        |j        d         dt          
                    }t+          |
|           |                    d          }
||t          j        dd          z  z   |	d         |dd         z  z   |	d         |dd         z  z   }t          j	        |j        d         dt          
          }t          j        ||          }t+          |
|           d S )Nr  r  rh   r  r  r  r$   r  r  r   r(   rj   r[   r   rk   r  r  Tr  r  r  r  r  r  i  i  rN  r  r  )r*   r+   r,   r0   r1  r   rR   r-   r   r   r.   r/   r   r   r   r}   rT   r  r2  rQ   r)   r   rP   )r2   r  r]   rD   r  r+  r   r9   r=   rY   r  r  r3   s                r4   test_predict_irregular_arr    sY   			x	(	(B
4  A
AbqbEBG0111AbqbE1d^^ ; ;C!AE(N"S1QU8^3ad:!		mKa##T	
 
 

 
 
B "q!fD
)
)
)C
''))C
A
A	CJOABB'	(	(B;;sD$''DXc]]FAGbeafn,r!uqv~=F1IAGbefQi//"Q%!C&.@F1IAGbefQi//"Q%!C&.@F1I1c]] 
 
S1W1q1u 551q1u8MM 	q		 YbmBHSM3YOOO  F f%%%;;sD	
biY''
'	(
Q%!CF)
	 Q%!CF)
	  -s
C
C
CCYvS)))Ff%%%%%r6   rT  c           
         t           j                            d          }|                    d          }t          j        d          }|d         t          j        d          z  |d<   dt          j        t          j        d          dz  dz  t           j        z            z  }t          d	d          D ]+}dd
||d	z
           z  z   ||         z   ||dz           z   ||<   ,t          j        |t          j        t          j        dd	d	          dt                              }t!          |d	d          }|                                }|                    dd|           }	t          j        t          j        dd	d	          dt                    }
|                    |
d         |
d         |           }t'          |	|           d S )Nr  r  r   r  r  r?   r   rk   r$   r  r  r   r(   TrD    i  rS  i  )r*   r+   r,   r0   r1  r   r  rP   r  rR   r-   r   r   r.   r/   r   r   r   r2  r   )rT  r2   r  r]   r  rD   r  r+  r   pred_intr  
pred_datess               r4   test_forecast_start_end_equivr    s   			x	(	(B
4  A
AQ4"'.///AaD26")B--",q0258999G1d^^ < <C!AE(N"QqT)GAFO;!		Ka##
 
 

 
 
B "a$
'
'
'C
''))C{{4w{77HM
D!Q  E
 U4[%+wGGJ*-----r6   rH        c                    t          j        t          j                            d                    }t          |d          }|                                }| dz   }|                    | |          }|j        d         || z
  dz   k    sJ d S )	N   sizerk   ra  r    rG  r   r$   )	r-   r   r*   r+   normalr   r   r2  r   )rH  y_trainmmfr$  r  s         r4   test_autoreg_startr    s    i	((b(1122Ga   A	
B
!)C::Es:++D:a=C%K!O++++++r6   c                    t          j        t          j                            d                    }t          dd          t          d          g}t          |j        |          }t          |dd	d
|          }|
                                }t          |ddd
d          }|
                                }t          t          j        |j                  t          j        |j                             t          j        t           d          5  t          |dd	d
|           d d d            n# 1 swxY w Y   t          j        t$          d          5  t          |d
d           d d d            d S # 1 swxY w Y   d S )NrE  r	  Tr$   rc  r  r?   additional_termsri   Frk   )r[   rZ   r`   deterministicrj   )r[   rZ   r`   r
  zWhen using deterministic, trendrA  zdeterministic must be)r  )r-   r   r*   r+   r  r   r   r   r)   r   r   r	   r  r}   r   warnsr   rI  	TypeError)r  r]   termsdpr  r   m2r   s           r4   test_deterministicr     s   
	")""",,--AA...B@E	ag	>	>	>Bu1BGGGA
%%''C	$Ab	A	A	AB6688D
3:..
4;0G0GHHH	$E
 
 
 I I 	ARHHHHI I I I I I I I I I I I I I I 
y(?	@	@	@ * *1D))))* * * * * * * * * * * * * * * * * *s$   D33D7:D7E99E= E=c                    t           j                            d          }|j        d         }t	          j        t          j        ddd          d|          }t          d|          D ]}d||dz
           z  ||         z   ||<   t	          j	        ||	          }t          |d
d          }|                                }|                    d          }|                    ||dz             }	|                    d          }
t          ||	           t          ||
           t          |dd
                              d          }|                    d          }t          j                            |j        |j                   d S )Nr  r	  r   i  r$   Dr%   ffffff?r(   r9   )r[   r`   r?   r   z
2022-10-08r  r  F)r  )r*   r+   r  r   r-   r   r.   r/   rR   r   r   r   forecastr2  r   r   testingassert_index_equalr)   )r  r  r1   r3   rD   r]   r  r   r   br9   sarimax_resds                r4   #test_autoreg_predict_forecast_equivr$    sh   
	d##A71:D
-D!Q//c4
H
H
HC1d^^ & &aAh1%!
	!3A1%%%A
%%''CRAD$)$$A\""A11!9C888<<%<HHKR  AJ!!!'1733333r6   c                     t          j        ddd          } t          j                            d                              d          }t          j        || d d         d          }t          |d	d
          }|                                }|	                    d          }t          |j        t           j                  sJ t           j                            |j        | dd                     d S )Nz1990-1-1i  r  r   r   r8   r]   r;   rh   TrD     i)r-   r   r*   r+   r,   r0   r   r   r   r  rK   r)   PeriodIndexr  r   )r  r]   r  r+  r   fcasts         r4   "test_autoreg_forecast_period_indexr)  $  s    	Ss	;	;	;B
	a  0055A	1BttH3	/	/	/B
"a$
'
'
'C
''))CLLEek2>22222J!!%+r#$$x88888r6   c                  &   t           j                            d          } t          | ddg          }|                                }t          j        t                    5  |                    ddd           d d d            d S # 1 swxY w Y   d S )	Nrk  r$   rh   ra  r   r  F)r$  r&  )	r*   r+   r0   r   r   r   rI  rJ  r)  )r]   r+  r   s      r4   test_autoreg_plot_errr+  /  s    
	!!#&&A
!1a&
!
!
!C
''))C	z	"	" 5 5e4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s    BB
B
c                     t          j        t          j        ddd          dt                    } t
          j                            d          }t          |	                    | dd                    }|
                    d          }t          j        d          }|d d	         |d d	<   t          d	d          D ].}d	d
||dz
           z  z   d||d	z
           z  z
  ||         z   ||<   /t          j        |dd          |d          }t          j        t                     5  t#          |d	                                          }d d d            n# 1 swxY w Y   t          j        t          j        |j                            sJ d S )Nr#   r$   r	  r   r   rk  F)r
  replacerk   g?r  ir]   r;   ra  )r-   r   r.   r/   r   r*   r+   r,   sortedchoicer0   rQ   rR   r   r   r  r   r   r   allisfiniter   )r3   r2   	idx_datesr  r]   rD   r  r   s           r4   test_autoreg_residsr3  8  s   
-D!Q//9
M
M
MC			q	!	!Bryy3y>>??I
3A
AbqbEAbqbE1c]] ; ;31q5>!D1QU8O3ad:!	1TUU893	7	7	7B	l	#	# ( (bq!!!%%''( ( ( ( ( ( ( ( ( ( ( ( ( ( (6"+ci(()))))))s   $$EEEc                    t          | dd          }|                                }|                    d          }|                    dd          }|                    | j        d         | j        d                   }t          j        t          j        g}t	          j        |j                  }t          d| j	        d	                   D ]w}| j
        |d
z
           }	| j
        |dz
           }
|dk    r||d
z
           }	|dk    r||dz
           }
|                    |d	         |d
         |	z  z   |d         |
z  z              xt          j        || j                  }t          ||           t          ||           t          |dd          |dd                     |                                }t          |d d         |d d                    d S )Nrk   r9   r  r  rS  r  r  rH  rT  r   r$      r(   )r   r   r2  r)   r*   nanr  r}   rR   r   rT   rO   r-   r   r   )r  r+  r   d25s10_d15sd_index	referenceru   rD   lag1lag2expectedfulls                r4   test_dynamic_predictionsr@  G  s   
#q
$
$
$C
''))C
++b+
!
!CkkBk//G{{2	"{FFH I

3:A1cil## ; ;xAxAr66QU#Dr66QU#D1!t+adTk9::::y#)444HHc"""GX&&&CHhrssm,,,;;==DCHd3B3i(((((r6   c                    t          | dd          }|                                }|                    dd          }|                    ddd	          }| j        d
         d| j        d
         | j        d         z
  z  z   }|                    | j        d         | j        d         |	          }t	          ||           t	          |dd          |dd                     t
          j        t
          j        g}t          j        |j                  }t          d|j
        d                   D ]}	|	| j
        d         k     r | j        |	dz
           }
| j        |	dz
           }|	dk    r||	dz
           }
|	dk    r||	dz
           }|                    |d         |d         |
z  z   |d         |z  z              t          j        ||j                  }t	          ||           d S )Nrk   r9   r  r  =   )rT  r$  r  r  )rH  rT  r$  rN  r?   rO  r   r$   r6  r(   )r   r   r2  r)   r   r*   r7  r  r}   rR   r   rT   rO   r-   r   )r  r+  r   d25_ends10_d15_endr$  sd_index_endr;  ru   rD   r<  r=  r>  s                r4   test_dynamic_predictions_oosrF  b  s   
#q
$
$
$C
''))Ckk""k--G++B+;;K
)B-"	"	" =>
>C;;imSYr]   L K...GBCCL,rss"3444 I

3:A1gmA&'' ; ;sy|8AE?D8AE?Dr66QU#Dr66QU#D1!t+adTk9::::y'-888HHg&&&&&r6   c                    t          | dd          }|                                }t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    | j        d         | j        d	         
           d d d            d S # 1 swxY w Y   d S )Nrk   r9   r  zDynamic prediction cannotrA  rN  rS  r  r    r5  )r   r   r   rI  rJ  r2  r)   )r  r+  r   s      r4   test_invalid_dynamicrH  ~  s>   
#q
$
$
$C
''))C	z)D	E	E	E    B                             	z)D	E	E	E ? ?#)B-1>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s$   A%%A),A).CC
C
c                    t           j                            d          }t          j        |                    | j        d         df          ddg| j                  }t          | dd|          }|	                                }|
                                }|
                    |	          }t          ||           |
                    d
          }|
                    d
|          }t          ||           d S )Nr  r   rk   r  x2rF   r9   r  rC  r  rS  )rT  r\   )r*   r+   r,   r-   rS   r0   r   r)   r   r   r2  r   )	r  r  r\   r+  r   	pred_base	pred_repldyn_basedyn_repls	            r4   test_exog_predictionrO    s    
)


)
)C<SYq\1-..ti  D
 #q$
/
/
/C
''))CI&&IIy))){{2{&&H{{2D{11HHh'''''r6   c                 D   t          j        t                    5  t          | dddd          }d d d            n# 1 swxY w Y   t          | dddd          }|j        dk    sJ |j        dk    sJ d|j        v sJ d|j        v sJ d	|j        v sJ d
|j        v sJ d S )Nrk   rj   T)r[   rZ   r  Fr?   r  z
seasonal.1r:   zs(2,12))r   r  r  r   r[   r
  
exog_names)r  r+  news      r4   test_old_namesrS    s    	m	$	$ I Ic1D44HHHI I I I I I I I I I I I I I I
#qtu
E
E
EC9:#.((((3>))))cn$$$$&&&&&&s   ;??c                     t          | d d         d                                          }t          |                                t                    sJ d S Nr  rk   )r   r   rK   diagnostic_summaryr   )r  r   s     r4   test_diagnostic_summary_shortrW    sM    
#crc(A


"
"
$
$Cc,,..8888888r6   c                     t          | d d         d          }|                                }|                                }|                    |j                  }t	          ||           d S rU  )r   r   r2  r}   r   )r  r+  r   res_predmod_preds        r4   test_ar_model_predictr[    s\    
#crc(A

C
''))C{{}}H{{3:&&HHh'''''r6   c                     t          | d d         d d          }|                                }|                                }|                                }d|v sJ d|v sJ d S )Nr  ri   r  r  zNo Model Parameters)r   r   r   r   )r  r+  r   r   summ_txts        r4   test_autoreg_no_variablesr^    so    
#crc(D
,
,
,C
''))CkkmmG  H8#### H,,,,,,r6   c                    ddl m}m} t          j        t
                    5   ||            d d d            n# 1 swxY w Y   t          j        t
                    5   ||            d d d            d S # 1 swxY w Y   d S )Nr   )rn   	ARResults)statsmodels.tsa.ar_modelrn   r`  r   rI  NotImplementedError)r  rn   r`  s      r4   test_removalrc    s   66666666	*	+	+  
3              	*	+	+  	#                 s   :>>A77A;>A;c                 "   | \  }}|j         j        }|j        d         dz  }|d |         }|j         j        }|
|d |         }|                    ||          }dt          |                                          v sJ t          |t                    sJ t          |j
        |j
                   d }|j         j        |j         j        dd          }|                    d|          }t          |t          j                  sJ |j        dk    sJ |                    ||d	
          }	t          j        |j
        |	j
                  rJ t          j        |j        |	j                  rJ |j        j        |	j        j        k    sJ t          j        |j        |	j                  rJ |j         j        W|	                    d|          }
t          |
t          j                  sJ |
j        dk    sJ t          j        |
|          rJ d S d S )Nr   rk   r  zusing a differentir  rC  )r  T)rf   r\   refit)rm  rf   r   r\   r:  rt   r   rK   r   r   r}   r  r*   r   allcloser   r   )r   r   r   r]   ri   rd   	res_applyr0  fcasts_apply	res_refitfcasts_refits              r4   test_autoreg_applyrk    s   FC	A	
aA	"1"A	A}bqbE			**I#i&7&7&9&9":":::::i!677777CJ	 0111H
y~!9>#$$'%%bx%88LlBJ/////&&&&			66I{3:y'788888{37IM22222!'9+A+GGGGG{9=)-88888
y~ ))"8)<<,
33333!U****;|\:::::	  	;:r6   c                    t           j                            d          }t          |d          }|                                }t          j        t          d          5  |                    |d d                    d d d            n# 1 swxY w Y   t           j                            |j	        d         df          }t          |d	|
                                          }t          j        t          d          5  |                    |dd                    d d d            n# 1 swxY w Y   t           j                            |j	        d         df          }t          |d	|
                                          }t          j        t          d          5  |                    |dd         |ddd df                    d d d            n# 1 swxY w Y   t          |d	                                          }t          j        t          d          5  |                    |dd         |dd                    d d d            d S # 1 swxY w Y   d S )Nr	  r  ra  zAn exception occuredrA  r    r   rh   r$   )r`   r\   zexog must be providedr     zThe number of exogrk   rC  zexog must be None)
r*   r+   r0   r   r   r   rI  rJ  r:  r   )r  r]   r+  r   rd   s        r4   test_autoreg_apply_exceptionrn    s   
	!!#&&A
!"


C
''))C	z)?	@	@	@  		!BQB%               		!!171:q/22A
!!!
$
$
$
(
(
*
*C	z)@	A	A	A  		!BsF)              
	!!171:q/22A
!!!
$
$
$
(
(
*
*C	z)=	>	>	> 1 1		!BsF)!BsFBQBJ-	0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 !!



 
 
"
"C	z)<	=	=	= - -		!BsF)!BsF)	,,,- - - - - - - - - - - - - - - - - -sH    B

BB D**D.1D. ,GGG!(IIIc            	         t           j                            d          } |                     d          }|                     d          }|                     d          }|                     d          }t	          j        d|j        d         |j        d         z   t                    }t	          j        ||d |j        d                  d	          }t	          j	        ||d |j        d                  d
 t          |j        d                   D                       }t	          j        |||j        d         d          d	          }t	          j	        |||j        d         d          |j                  }t	          j        ||gd          }t	          j        ||gd          } G d dt                    } |||||||          S )Nr   r	  )r	  rh   )r  rh   r  z2020-1-1r   r]   r;   c                     g | ]}d | S )rd   rA   rB   s     r4   rE   zappend_data.<locals>.<listcomp>	  s    444QQ444r6   r$   )r)   rG   rI   c                       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 )append_data.<locals>.AppendDatar]   y_oosy_bothrd   x_oosx_bothN)r   r   r   r-   r   r   rS   rA   r6   r4   
AppendDatarr    s`         9y	9|r6   rw  )r*   r+   r,   r0   r-   r   r   r   r   rS   rR   rG   rW   r   )	r2   r]   rd   ru  rs  r)   rt  rv  rw  s	            r4   append_datarx    s   			q	!	!B
3A
8$$Aw''Er""EMAGAJQ7i  E 		!5171:.S999A
	LagajL!44%
"3"3444	 	 	A
 Ie5#6SAAAELeAGAJLL&919MMMEY5z***FY5z***F    Z    :a5&999r6   r[   rj   r  r`   )r   r$   rh   rZ   c                    |sdnd }| j         }| j        }| j        }| j        }	| j        }
| j        }|sxt          j        |          }t          j        |	          }	t          j        |          }t          j        |
          }
t          j        |          }t          j        |          }t          |||||          	                                }|
                    |d          }t          |||||          	                                }t          ||	||||          	                                }|
                    ||
d          }t          ||||||          	                                }t          |j        |j                   t          |j        |j                   |rt          j        t          d          5  |
                    t          j        |                     d d d            n# 1 swxY w Y   t          j        t          d	          5  |
                    |t          j        |
                     d d d            n# 1 swxY w Y   t          j        t           d
          5  |
                    ||
           d d d            n# 1 swxY w Y   t          j        t           d          5  |
                    |           d d d            d S # 1 swxY w Y   d S )Nr?   )r`   r[   rZ   r
  Tre  )r\   r`   r[   rZ   r
  r\   re  zendog must have the same typerA  zexog must have the same typezOriginal model doesrC  zOriginal model has exog)r]   rs  rt  rd   ru  rv  r*   r  r   r   rO   r   r}   r   rI  r  rJ  )rx  r  r`   r[   rZ   r
  r]   rs  rt  rd   ru  rv  r   
res_append
res_directres_exogres_exog_appendres_exog_directs                     r4   test_autoreg_appendr    s   
 "+RRtFAEFAEF $JqMMJqMM
5!!
5!!F##F##
	EHV  	cee  E..JT&  	cee  	EHV  	cee  ooe%toDDO   
cee  J%z'8999O*O,BCCC 6]9,KLLL 	* 	*JJrz%(()))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*]9,JKKK 	6 	6OOE2:e#4#4555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6	z)>	?	?	? & &

5u
%%%& & & & & & & & & & & & & & &	z)B	C	C	C                   sH   (G99G= G=)III:JJ"%J"K''K+.K+c           	         | j         }| j        }| j        }| j        }| j        }| j        }t          dd          t          d          g}t          |j	        |          }t          |dd|                                          }	|	                    |d	          }
t          |dd|                    |j	                                                            }t          |
j        |j                   t          t!          j        |          dd|                                          }|                    t!          j        |                    }t          |j        |j                   t          ||dd|
                                          }	|	                    ||d          }
t          ||dd|                    |j	                  
                                          }t          |
j        |j                   d S )NTr$   r  r?   r  rh   ri   )r`   r[   r  rz  )r\   r`   r[   r  r{  )r]   rs  rt  rd   ru  rv  r   r   r   r)   r   r   rO   r:  r   r}   r*   r  )rx  r]   rs  rt  rd   ru  rv  r  r  r   r|  r}  res_npres_append_nps                 r4   !test_autoreg_append_deterministicr  P  s   AEFAEFA...B@E	ag	>	>	>B
!!3b
9
9
9
=
=
?
?CE..JQc&,1G1G  	cee  J%z'8999RZ]]#RHHHLLNNFMM"*U"3"344MFM=#7888
!!!3b
A
A
A
E
E
G
GCET::Jhhv|,,   
cee  J%z'899999r6   )r   )r}  statsmodels.compat.pandasr   statsmodels.compat.pytestr   r/   r.   	itertoolsr   typingr   r   numpyr*   numpy.testingr   r	   r  r-   r
   r   r   r   pandas.testingr   r   statsmodels.datasetsr   r   statsmodels.iolib.summaryr   #statsmodels.regression.linear_modelr   statsmodels.tools.sm_exceptionsr   r   statsmodels.tools.toolsr   ra  r   r   r   statsmodels.tsa.arima_processr   statsmodels.tsa.deterministicr   r   r   "statsmodels.tsa.statespace.sarimaxr   statsmodels.tsa.tests.resultsr   r   r   ro  r5   rg   rY   rZ   r[   r\   covsr3  r}   finalrz   rO   rx   r~   fixturer   
attributesr   r   parametrizer   r   r   r   r   r   r   r  r  r  r   
matplotlibr-  r4  r?  rL  rQ  rU  rY  r[  r^  r  rP   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r)  r+  r3  r@  rF  rH  rO  rS  rW  r[  r^  rc  rk  rn  rx  r  r  rA   r6   r4   <module>r     s
    0 / / / / / 2 2 2 2 2 2           $ $ $ $ $ $ $ $     > > > > > > > >     : : : : : : : : : : : : . . . . . .  4 4 4 4 4 4 4 4 - - - - - - 3 3 3 3 3 3 N N N N N N N N ) ) ) ) ) )         
 ? > > > > >         
 7 6 6 6 6 6 4 4 4 4 4 4			> > >) ) )X QFQC%=ayU	ggb(E466	7	7
  EQx1}}a}E!HOOuQxOU	7    hv3777  87  
   2 j11! ! 21!	  	  	          F  F  F  F  F  F  F  FF 
1q!f	5MF	2JV	5M	2J	
 	
 
f
 

 
 


 

 
 

+	 54V444+ + + +( hv3777  87  h) )  ) 
Aq6NE	5MC	2JH	5M	2J	
 	
 
f
 

 
 


 

 
 

-	 54V444 hvccc{CCaCAAA  BA  . .  .0 !; !; !;H , , ,@F F F<( ( ( + + +" B B BK K K K K K K K
@
 @
 @
 @
 @
. @
 @
 @
F?
 ?
 ?
 ?
 ?
0 ?
 ?
 ?
D YRYq&%9%9 : :;;# # <;#4 tUm44, , 54,     *+ + +, tUm44    54 * I I IE E E" " ".! ! !.$& $& $&N1& 1& 1&h*& *& *&Z T5M22. . 32.6 2r(++, , ,+,* * *"4 4 4&9 9 9 5 5 5* * *) ) )6' ' '8? ? ?( ( ($' ' '9 9 9
( ( (- - -  ; ; ;>- - -* : : :> 3+..e}55++dE]33. . 43 ,+ 65 /..b: : : : :r6   