
    !g                     f   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k7  seAd   seAd   d!k7  seAd   se@j                  eA       0 e@Z?d"ZCe?D  cg c]9  } d#j                   eEeC|       D cg c]  \  }}|d$z    eF|      z    c}}      ; c}}} ZG ej                  d%e?eG&      d'        ZIg d(ZJd) ZKej                  j                  d*eJ      d+        ZNd, ZOd- ZPej                  j                  d.        ZR G d/ d0      ZS edddddggg dddgddgdd1gd2d3gddgdd4g      Z? e>e?      Z?e?D  cg c]  } | d   s| d   d!k7  s
| d   s| d   r|  c} Z?e?D  cg c]  } | d   r| d   r| d   s| d   r|  c} Z?d5ZTe?D  cg c]  }  eTj                  |   c} ZGdyd6ZV ej                  d%e?eG&      d7        ZW ej                  d%8      d9        ZX eddddggd:gddgdgdd1gd3gddgdd4g      Z? e>e?      Z?e?D  cg c]  } | d   s| d   d!k7  s
| d   s| d   r|  c} Z?e?D  cg c]  } | d   r| d   r| d   s| d   r|  c} Z?d;ZTe?D  cg c]  }  eTj                  |   c} ZG ej                  d%e?ddd   eGddd   &      d<        ZYej                  j                  ej                  j                  d=               Z[ej                  j                  d>        Z\ej                  j                  d?        Z]d@ Z^dA Z_ej                  j                  dB        Z`ej                  j                  dC        Za G dD dEeS      Zb G dF dGeb      Zc G dH dIeb      Zdej                  j                  dJ e> ej                  ddK                  dL        Zfej                  j                  dMddg      dN        Zgej                  j                  dO        ZhdP ZidQ Zjej                  j                  dMddg      dR        Zkej                  j                  dS        ZldT ZmdU ZndV ZodW ZpdX ZqdY Zrej                  j                  dZddg      d[        Zsej                  j                  d\d]d^g      d_        Ztd` Zuda Zvdb Zwej                  j                  dc        Zxdd Zyde Zzdf Z{dg Z|dh Z}di Z~dj Zdk Zdl Zdm Zdn Zdo Zej                  dp        Zej                  j                  dqd!drg      ej                  j                  dsddg      ej                  j                  dtg du      ej                  j                  dvddg      dw                             Zdx Zyc c}}w c c}}} w c c} w c c} w c c} w c c} w c c} w c c} w )zz
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                  j                  d      }t        j                  t        j                  ddd      t        |       }t        j                  |j                  |       |      |fS )Ni l     freqperiodsindex)
nprandomRandomStatepdr   dtdatetimer   r   standard_normal)nobsrsidxs      Z/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/tests/test_ar.pygen_ar_datar5   *   sV    			v	&B
--D!Q/i
NC99R''-S92==    c                 ,   d}t        |      \  }}t        | t              r| n
t        |       }g }d|v rFt	        j
                  t        j                  |      |j                  d      }	|j                  |	       d|v rLt        j                  d|dz         }
t	        j
                  |
|j                  d      }
|j                  |
       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<    t        d
      D cg c]  }d| 	 }}t	        j                  |||j                        }d|v r|j                  d d dd f   }|j                  |       |r'|D ]"  }|j                  |j                  |             $ |rb|j!                  ||f      }t        |      D cg c]  }d| 	 }}t	        j                  |||j                        }|j                  |       nd }|j#                  d|       t	        j$                  |d      j'                         }|j                  d d df   }|j                  d d dd f   }||||fS c c}w c c}w )N  cconstr)   nametr$   timer   )r8      r?   zs.columnsr)   zx.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seasonsicolslagxdfendogs                      r4   gen_ols_regressorsra   0   sC   DEArb#&RCGF
C
e|		"''$-qwwWE

5
e|yyD1H%yyQWW6:

4"cryyBF#	q((9%r 	"A !GAErE1H	""'),Q"QC,,,,wAGGD%<ll1ab5)G

7 	%CJJqwws|$	%d|,"'+.Q"QC..LLD8

1JJq!	3Q		&	&	(BGGAqDME771ab5>Da' - /s   >J#J   r$   TF)nr9   r=   ct   	nonrobustHC0rc   )ARSeasonalTrendExogzCov Typez, z: module)scopeparamsidsc                     | j                   \  }}}}}t        ||||      \  }}}}t        |||||      }	|	j                  |      }
t	        ||      }|j                  |d      }|
|fS )N)rS   rT   rU   )cov_typeF)rq   use_t)paramra   r   fitr   )requestrR   rS   rT   rU   rq   rV   r^   r`   ar_modar_resolsols_ress                r4   ols_autoreg_resultrz   n   sy    *1--'B%x*2xEAq%QXUCFZZZ*F
eT
Cggxug5G7?r6   )bse
cov_paramsdf_modeldf_residfittedvaluesllfr1   rn   residscaletvaluesrr   c                 V   |j                   |j                  z   }||j                  z   }||z
  |z  }|dv r| |z  S |dk(  r| |j                   z   S |j                  dk7  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}   rf   )r{   conf_int)r|   r   )f_test)r   )
k_constantr}   r~   rq   r*   sqrt)valattribresnparamr1   df_corrections         r4   fix_ols_attributer      s     ^^cll*FCLL DF]d*M]""	:	S^^##		$
	&	&RWW]+++	*	*]""	;	]""	<	RWW]+++Jr6   	attributec                     | \  }}t        ||      }t        ||      }t        |      r |       } |       }t        |||      }t        ||       y N)getattrcallabler   r   )rz   r   aools_aar_as         r4   test_equiv_ols_autoregr      sP    DAqAy!E1i DveY2EE4 r6   c                    | \  }}|j                         }|j                         }|j                  dk(  r?|j                  |j                  z
  }t	        |d|      }||j                  z   j                  }t        ||       y )Nrf   r   )r   rq   Trn   r   r   )rz   r   r   a_cio_cispreads         r4   test_conf_int_ols_autoregr      sk    DAq::<D::<Dzz[ !((""6:q9!$$D$r6   c                    | \  }}t        j                  |j                  j                  d         }|j	                  |      j
                  }|j	                  |      j
                  }t        |d|      }t        ||       y )Nr   r   )r*   eyern   shaper   fvaluer   r   )rz   r   r   ra_fo_fs         r4   test_f_test_ols_autoregr      sd    DAq
qxx~~a !A
((1+

C
((1+

C
C1
-CCr6   c                     | \  }}t        j                  |j                        }|j                  |       t        j                  |j                  j
                  d         }|j                  |d       y )Nr   T)scalar)r*   	ones_likern   t_testr   r   	wald_test)rz   r   _r   s       r4   test_other_tests_autoregr      sS    DAq
QXXAHHQK
qxx~~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y)	CheckARMixinc                 v    t        | j                  j                  | j                  j                  t               y r   )r	   res1rn   res2	DECIMAL_6selfs    r4   test_paramszCheckARMixin.test_params   s"    DII,,dii.>.>	Jr6   c                 @   t        j                  t        j                  | j                  j	                                     }t        || j                  j                  t               t        | j                  j                  | j                  j                  t               y r   )r*   r   diagr   r|   r	   r   	bse_statar   r{   	bse_gretl	DECIMAL_5)r   r{   s     r4   test_bsezCheckARMixin.test_bse   sZ    ggbggdii22456C!4!4i@DIIMM499+>+>	Jr6   c                 v    t        | j                  j                  | j                  j                  t               y r   )r	   r   r   r   r   r   s    r4   test_llfzCheckARMixin.test_llf       DIIMM499==)Dr6   c                 v    t        | j                  j                  | j                  j                  t               y r   )r	   r   fper   r   r   s    r4   test_fpezCheckARMixin.test_fpe   r   r6   c                    ddl m}  |       }| j                  j                  |       |j	                  dd       | j                  j
                  j                  |      }t        |      t        | j                        u sJ y )Nr   )BytesIO)ior   r   saveseek	__class__loadtype)r   r   fhres_unpickleds       r4   test_picklezCheckARMixin.test_pickle   s^    Y		r
1		++004M"d499o555r6   c                 t    t        | j                  j                         j                         t              sJ y r   )rD   r   summaryas_textstrr   s    r4   test_summaryzCheckARMixin.test_summary   s(    $))++-557===r6   c                     t        | j                  j                  t        j                  t
        j                  f      sJ y r   )rD   r   pvaluesr*   ndarrayr-   r   r   s    r4   test_pvalueszCheckARMixin.test_pvalues   s)    $))++bjj"))-DEEEr6   N)__name__
__module____qualname__r   r   r   r   r   pytestmarksmoker   r    r6   r4   r   r      s]    KKEE6 [[> > [[F Fr6   r      nonedropr?   zglags: {0}, trend: {1}, seasonal: {2}, nexog: {3}, periods: {4}, missing: {5}, pandas: {6}, hold_back{7}c                    t         j                  j                  |      }|j                  |       }|r|j                  | |f      nd }|rt	        j
                  t        j                  ddd      | t              }t	        j                  |d|      }|r@t        |j                  d         D cg c]  }d| 	 }	}t	        j                  ||	|	      } G d
 dt              }
 |
||      S c c}w )Ni  r?      r'   r&   r`   r<   r)   r$   zexog.r@   c                       e Zd ZU eej
                  ej                  f   ed<   eej
                  ej                  f   ed<   y)gen_data.<locals>.DataSetr`   rU   N)
r   r   r   r   r*   r   r-   r   __annotations__rL   r   r6   r4   DataSetr     s2    RZZ*++BJJ,--r6   r   r`   rU   )r*   r+   r,   r0   r-   r   r.   r/   r   r   rK   r   rL   r   )r1   nexogpandasseedr2   r`   rU   r)   r[   r\   r   s              r4   gen_datar     s    			t	$Bt$E052tUm,4DKKb"%t)
 		%gU;).tzz!})=>AeA3K>D><<d%@D.* . T** ?s   /C.c           
          | j                   d d \  }}}| j                   dd  \  }}}}}t        d||      }	t        |||||	j                  |	j                  ||      S Nrb      )rT   rY   rS   periodr`   rU   missing	hold_backrs   r   r   r`   rU   
ru   rY   rT   rS   r   r   r   
use_pandasr   datas
             r4   ar_datar   #  o    #MM"1-D%4;MM!"4E1E67J	C
+DjjYY	 	r6   )rm   c                    t         j                  j                  d      }|j                  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   
   re   r   r$         ?g?z
2000-01-01Mr   r(   )
r*   r+   r,   r0   r   rK   r   r-   r   r   )ru   generV   r[   r)   s         r4   ar2r  4  s    
))


)CBA
R\\!_A1aggaj! :31q5>!C!AE(N2QqT9!:OOL!''!*q.sKE99QqrU%((r6   r9   zilags: {0}, trend: {1}, seasonal: {2}, nexog: {3}, periods: {4}, missing: {5}, pandas: {6}, hold_back: {7}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                        }|j                         }|j                         }t        ||      sJ | j                  B|j                  d      }t        ||      sJ |j                  dd d      }t        ||      sJ t        |j                         t               sJ y )Nr   )FigurerT   rS   rU   r   r   r   i,  )endF)r  alpha	in_sample)matplotlib.figurer  r   r`   rY   rT   rS   rU   r   r   r   rt   plot_diagnosticsrD   plot_predictr   r   )r  close_figuresr  modr   figs         r4   test_autoreg_smoke_plotsr  m  s     )
oo##^^%%!!	C '')C



 Cc6"""~~3'#v&&&3deD#v&&&ckkmW---r6   c           
         t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                        }|j                         }d }| j
                  .t        j                  d| j
                  j                  d   f      }|j                  |j                  dd|       | j                  dk(  r+| j
                  |j                  |j                  dd|       t        | j                  t         j"                        r| j                  r| j                  t%        t'        | j                  j                  d               | j                  _        | j
                  :t%        t'        | j                  j                  d               | j
                  _        t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                        }|j                  |j                  dd|       y y y )Nr  r$   r   r   exog_oosi^  )rT   rS   rU   r   r   )r   r`   rY   rT   rS   rU   r   r   r   rt   r*   emptyr   predictrn   rD   r-   r   listrK   r)   )r   r  r   r  s       r4   test_autoreg_predict_smoker    s   
mm!!\\##~~	C '')CH||88Q 2 21 567KK

AsXK6||qW\\1CJJ3:'--+ :"5)<)<Q)?#@A<<#!%eGMM,?,?,B&C!DGLLMMLL--%%>>OO
 	CJJ3: !; ,r6   c                  "   t        ddd      } t        | j                  dddd       }|j                         }t	        |      D ]J  }|j                  d      r|dv rt        ||      }t        |      r |        9t        |t              rJJ  y )Nr   r   Frc   )rT   rS   rU   r   )r  r   r   
initializer   remove_datar   r   t_test_pairwiser   wald_test_termsapplyrH   )
r   r   r`   rt   dir
startswithr   r   rD   object)r   r  r   attrs       r4   test_parameterless_autoregr#    s    CE"D
$**asU
FC
'')CC ,??3  
 
 sD!D>FdF+++3,r6   c                  n   t        ddd      } t        | j                  d      }|j                         }t	        j
                  t        d      5  |j                  |j                  | j                         d d d        t	        j
                  t        d      5  |j                  |j                  | j                         d d d        t	        j
                  t        d	      5  t        | j                  dd
       d d d        t	        j
                  t        d      5  t        | j                  j                  dd       d d d        t        | j                  d| j                        }|j                         }t	        j
                  t        d      5  |j                  |j                  | j                  j                  d d        d d d        t	        j
                  t        d      5  |j                  |j                  | j                  j                  d d d d
f          d d d        t	        j
                  t        d      5  |j                  |j                  dd       d d d        t	        j
                  t        d      5  |j                  |j                  dd        d d d        t        | j                  d| j                        }|j                         }t	        j
                  t        d      5  |j                  |j                  d| j                  j                  d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   )xY w# 1 sw Y   xY w# 1 sw Y   [xY w# 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   re   Trb   z exog and exog_oos cannot be usedmatchrU   r  zhold_back must be >= lagsr$   )r   zfreq cannot be inferredrS   zThe shape of exog \(200, 2\)   z!The number of columns in exog_oosz Prediction must have `end` after   startr  zexog_oos must be provided)r  r  r   zstart and end indicate that 10i  r    )r   r   r`   rt   r   raises
ValueErrorr  rn   rU   valuesrM   )r   r  r   s      r4   test_predict_errorsr0    s   CD!D
$**a
 C
'')C	z)K	L 0CJJTYY/0	z)K	L 4CJJ34	z)D	E ,

A+,	z)B	C 5

!!1t45 $**adii
0C
'')C	z)H	I ;CJJTYY^^DS%9:;	z)L	M @CJJ2A2)>?@	z)K	L 4CJJcs34	z)D	E 8CJJC$78 $**adii
0C
'')C	z)I	J FCJJC$))..!2DEF F-0 04 4, ,5 5
; ;@ @4 48 8
F Fsl   (M(M%M!#M+5M81;NNN6N+MMM(+M58NNNN(+N4c                     t        ddd      } t        j                  t        d      5  t	        | j
                  d       d d d        t        j                  t        d      5  t	        | j
                  g d       d d d        t        j                  t        d      5  t	        | j
                  g d	       d d d        y # 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   y xY w)
Nr   re   Tz"lags must be a non-negative scalarr%  zAll values in lags must be pos)r$   r$   r$   )r$   rb   )r   r   r-  r.  r   r`   r   s    r4   test_spec_errorsr5    s    CD!D	z)M	N  

B 	z)I	J '

I&'	z)I	J (

J'( (	   ' '( (s#   C#CCC
CC"c           
      N   t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                        }|j                         }|j                  d       | j
                  |j                  dd       y y )Nr  Tdynamici  )r  r8  )r   r`   rY   rT   rS   rU   r   r   r   rt   r  )r   r  r   s      r4   test_dynamic_forecast_smoker9    s    
mm!!\\##~~	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       y )NSUNACTIVITYr!   Trc   )globrT   Fr?   )rS   r   r(  )r<  )r<  rS   r   )r   r   r   r   r4  s    r4   test_ar_select_order_smoker=    sj    ==?.DD!$c2D!%s3D!d26D!e,D!$'D!$bAr6   c                       e Zd Zd Zy)CheckAutoRegMixinc                 v    t        | j                  j                  | j                  j                  t
               y r   )r	   r   r{   r   r   r   r   s    r4   r   zCheckAutoRegMixin.test_bse  s     DIIMM499+>+>	Jr6   N)r   r   r   r   r   r6   r4   r?  r?    s    Kr6   r?  c                   &    e Zd ZdZed        Zd Zy)TestAutoRegOLSConstantz2
    Test AutoReg fit by OLS with a constant.
    c                 "   t        j                         }t        t        t	        |j
                                    |j
                  _        t        |j
                  d      j                         | _	        t        j                  d      | _        y )N	   rY   Tconstant)r   r   r  rK   lenr`   r)   r   rt   r   r   ARResultsOLSr   clsr   s     r4   setup_classz"TestAutoRegOLSConstant.setup_class  sX    }}c$**o 67

4::A.224**D9r6   c                    | j                   j                  }| j                   j                  }t        |j	                  |      |j
                  d  | j                  j                  t               t        |j	                  |      |j
                  d  | j                  j                  t               t        |j	                  |d      | j                  j                  t               t        |j	                  |dd      | j                  j                  t               t        |j	                  |      |j
                  d  | j                  j                  t               t        |j	                  |dd      | j                  j                  t               t        |j	                  |dd      | j                  j                  t               t        |j	                  |dd	      | j                  j                  t               t        |j	                  |dd
      | j                  j                   t               t        |j	                  |dd      | j                  j"                  t               y Nd   )r,  rD  r)  r+  i  i4  i  i6  i<  iG  r   modelrn   r	   r  r   r   FVOLSnneg1start0	DECIMAL_4FVOLSnneg1start9FVOLSnneg1start100FVOLSn200start0FVOLSdefaultFVOLSn200start200FVOLSn100start325FVOLSn301start9FVOLSn4start312FVOLSn15start312r   rQ  rn   s      r4   test_predictz#TestAutoRegOLSConstant.test_predict#     		!!MM&!%//"34II&&	

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

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

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

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

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

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

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

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

 	MM&M5II&&	
r6   Nr   r   r   __doc__classmethodrL  r^  r   r6   r4   rB  rB    s      : :4
r6   rB  c                   &    e Zd ZdZed        Zd Zy)TestAutoRegOLSNoConstantz1f
    Test AR fit by OLS without a constant.
    c                     t        j                         }t        t        j                  |j
                        dd      j                         | _        t        j                  d      | _
        y )NrD  rc   rY   rT   FrF  )r   r   r   r*   asarrayr`   rt   r   r   rI  r   rJ  s     r4   rL  z$TestAutoRegOLSNoConstant.setup_class_  sE    }}2::djj1EIIK**E:r6   c                    | j                   j                  }| j                   j                  }t        |j	                  |      |j
                  d  | j                  j                  t               t        |j	                  |      |j
                  d  | j                  j                  t               t        |j	                  |d      | j                  j                  t               t        |j	                  |dd      | j                  j                  t               t        |j	                  |      |j
                  d  | j                  j                  t               t        |j	                  |dd      | j                  j                  t               t        |j	                  |dd      | j                  j                  t               t        |j	                  |dd	      | j                  j                  t               t        |j	                  |dd
      | j                  j                   t               t        |j	                  |dd      | j                  j"                  t               y rN  rP  r]  s      r4   r^  z%TestAutoRegOLSNoConstant.test_predicte  r_  r6   Nr`  r   r6   r4   rd  rd  Z  s      ; ;
4
r6   rd  r]      c           	      (   t        j                         }t        j                  |j                        }|d| z
  d  }t        ||       j                         }|j                  }|j                  }|j                  }t        j                  ||||j                  g      }t        j                  d      j                  j                  }	|	| dz
  d d f   j!                         }
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      j                         }t-        |j                  |j                         t-        |j                  |j                         t-        |j                  |j                         t-        |j                  |j                         y )	N   rE  r:   r$   re   r3  rb   )rY   r   )r   r   r*   rg  r`   r   rt   aichqicbicarrayr   r   ARLagResultsicr   copylogr1   r   r	   r   r   )r]   r   r`   	endog_tmpr   rl  rm  rn  r   r   compkpenr2s                 r4   test_autoreg_info_criterionry    s|   ==?DJJtzz"Eb3hj!I	$((*A
%%C66D
%%C88S$QUU+,D""7+..00Da
  "D	CA
((Aq266"&&.11266!&&>B
CCAEEzC!G#D!HdI.	SB	/	3	3	5BAEE266"AEE266"AFFBGG$AEE266"r6   	old_namesc                    |rt         nd }t        ddd      }t        t        j                  j                  d      d|      }t        |      5  t        |d|      j                         }d d d        |rt        g d	      }nt        g d
      }j                  j                  j                  |      sJ y # 1 sw Y   NxY w)Nz2011-1H   r   r,  r'   r&   foobarr   re   rY   rz  )	intercept	foobar.L1	foobar.L2)r:   r  r  )FutureWarningr   r   r*   r+   randnr   r   rt   r
   rn   r)   equals)reset_randomstaterz  warningdatesrV   resultsr3   s          r4   test_autoreg_named_seriesr    s    (mdGx#>Eryyr"?A	g	 @!!y9==?@ ;<78>>&&s+++@ @s   B99Cc                     t        j                         j                  d   j                         j	                         } t        dt        |       d      }|| _        t        | d      j                         }|j                   y )Ncpi1959Q1Qr}     rE  )r   load_pandasr   diffrQ   r   rH  r)   r   rt   r{   )dtar  rR   s      r4   test_autoreg_seriesr    sd     


!
&
&u
-
2
2
4
;
;
=CxSDECI	2		"	"	$BFFr6   c            
      P   t         j                  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 y )Ni90  )r$   g      g333333?r$   rO  i  r}  r(   r?   rl  )rW   rq  )r$   re   r9   )r*   r+   r   r   r   r   r.   r/   r   r   tuplear_lagsrD   rl  dictrn  rm  rQ  r   rS   rT   r   )rV   tsr   s      r4   test_ar_order_selectr    s    IINN5_qc37A		++dAq)3Y

B "RE
2C'''cggt$$$cggt$$$chh%%%cii)))||99::r6   c                  (   t        j                  g d      } t        j                  t        d      5  t        | d       d d d        t        j                  t        d      5  t        | dd       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)N)
   ?r  g   ?   ]?r  r  g   `?   ?r  r  zThe model specification cannotr%     rE  rc   rf  )r*   ro  r   r-  r.  r   )samples    r4   "test_autoreg_constant_column_trendr    sz    XX	
F 
z)I	J  Q 	z)I	J +Qc*+ +   + +s   A<$B<BBc                    t        j                         j                  d   j                         j	                         }t        dt        |      d      }||_        | rt        nd }t        |      5  t        |d|       j                         }d d d        j                         j                         }d|v sJ d|v sJ d	|v sJ t        |      5  t        |d
|       j                         }d d d        |j                         j                         }| rd|v sJ d|v sJ d|v sJ y # 1 sw Y   xY w# 1 sw Y   HxY w)Nr  r  r  r}  r!   r  z
AutoReg(4)zcpi.L4z
03-31-1960r   r  r:   
AutoReg(0))r   r  r   r  rQ   r   rH  r)   r  r   r   rt   r   r   )rz  r   r  r  r   summs         r4   test_autoreg_summary_cornerr    s4     "''.335<<>DxTEEDJ(mdG	g	 ?di8<<>?;;=  "D4t4	g	 ?di8<<>?;;=  "Dd"""$4? ?? ?s   1D)D5)D25D>c                      t        j                         } t        t        j                  | j
                        d      }|j                         }|j                  |j                        }t        |t        j                        sJ |j                  dk(  sJ |j                  |j                        j                  dk(  sJ t        |j                  |j                         |j                  |j                               y )Nrb   )r!   )r!   r!   )r   r  r   r*   rg  r`   rt   scorern   rD   r   r   informationr   hessian)r   rR   r   r  s       r4   test_autoreg_scorer    s    !D	DJJ'	+B
&&(CHHSZZ EeRZZ(((;;$>>#**%++v555RZZ

++R^^CJJ-GHr6   c                     t        j                         } t        t        j                  | j
                        d      }|j                         }t        |j                  t        j                  d|j                  d   z  g             y )Nr$   rE  g      ?r2  )r   r  r   r*   rg  r`   rt   r	   rootsro  rn   )r   rR   r   s      r4   test_autoreg_rootsr    s[    !D	DJJ'a	0B
&&(C		288S3::b>-A,B#CDr6   c                 D   t         j                  j                  d      }t        j                  d      }|d   t        j                  d      z  |d<   t        dd      D ]  }d||dz
     z  ||   z   ||<    t        |d      }|j                         }|j                  ddd      }|j                  ddd	      }t        j                  t        j                  d
dd      dt              }t        j                  ||      }t        |d      }|j                         }|j                  |d   |d   |d         }	|j                  |d   |d   d      }
|j                  |d   |d   d	      }t        ||       t        ||	       t        ||
       t        ||       y )N  r   P^Cy@r$   ?r8   i   r7  Ti     r   r(   )r*   r+   r0   r  r   rK   r   rt   r  r-   r   r.   r/   r   r   r   )r  r  rV   r[   r  r   pred0pred1r3   pred2pred3pred4s               r4   test_equiv_dynamicr  $  su   
		!!$'A
AQ4"''.//AaD1d^ %Qq1uX~!$!%
!Q-C
'')CKKS!K,EKKS$K/E
--D!R0$Y
OC
		!3A
!Q-C
'')CKKC#c(CHK=EKKC#c(AK6EKKC#c(DK9EE5!E5!E5!E5!r6   c                     t         j                  j                  d      } | j                  d      }t        j                  d      }|d   t        j
                  d      z  |d<   t        dd      D ]  }d||dz
     z  ||   z   ||<    t        |dd	      }|j                  d
d      }t        |d      }|j                  dd      }|j                  |j                  d d dd      }t        ||       |j                  ddd      }|j                  |j                  d d ddd      }t        ||       |j                  ddd      }|j                  |j                  d d ddd      }t        ||       y )NNa r  r   r  r$   r  r$   r   r   r9   orderrT   Fr2  )dispiprint  L  re   Tr7  2   )r*   r+   r,   r0   r  r   rK   r   rt   r   r  rn   r   )	r2   r  rV   r[   smodsresr  spredpreds	            r4   test_dynamic_against_sarimaxr  ;  s_   			x	(B
4 A
AQ4"''.//AaD1d^ %Qq1uX~!$!%1IS1D88r8*D
!Q-CLLd#E;;t{{2AT2DE4 LLdDL1E;;t{{2AT4;@DE4 LLdBL/E;;t{{2AT2;>DE4 r6   c            
         t         j                  j                  d      } | j                  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$                  j&                  d   }t        j(                  d      }	|j$                  j&                  d	d |	d	d  |j$                  j&                  d   }
|j+                  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/        ||       |j+                  dd      }|dd |
z  |z   |	t        j                  dd      dz     z   }t        j                  |t        j                  |j,                  d   dt                    }t/        ||       y )Nr  r  r   r  r   r?   r   re   r$   r    r   r(   Tr(  r2  r  r       Fr7  e   )r*   r+   r,   r0   r  r   cosrI   pirK   r-   r   r   r.   r/   r   r   rt   rn   rM   rJ   r  r)   r   )r2   r  rV   effectsr[   ysr  r   r9   rZ   rR   r  directs                r4   test_predict_seasonalr  R  s   			x	(B
4 A
AQ4"''.//AaD266"))B-",q0255899G1d^ <C!AE(N"QqT)GAFO;!<		mmKKa#T	

B "a$
'C
'')C

AhhrlG**//!B'GABK		B;;sD$'DXXc]F#a'("33F1I1c] E1q5MB&*WcAg^-DDq	EYYbmmBHHSM3YOF f%;;sE;*Ds2Y^a'"))C*>*C"DDFYYbmmBHHSM3YOF f%r6   c            
         t         j                  j                  d      } | j                  d      }t        j                  d      }| j                  d      }|d d t        j
                  d      z  |d d j                  d      z   |d d t        dd      D ]9  }dd||dz
     z  z   d	||dz
     z  z
  ||   z   ||   j                         z   ||<   ; t        j                  |t        j                  t        j                  d
dd      dt                    }t        j                  |ddg|j                        }t!        |ddgd|      }|j#                         }dt%        |j'                               v sJ |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        |	|       | j                  d      }|j)                  ddd|      }	t        j2                  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 ]a  }|
|||dz
     z  z   |||dz
     z  z   ||<   d|z   |j4                  d   k  r||xx   |d|z      |z  z  cc<   L||xx   ||dz
     |z  z  cc<   c t        j                  |t        j                  |j                  d   dt                    }t1        |	|       y )#Nr  r  )r  re   rb   r  r$   r   r  r   r  r   r(   x0x1r@   r9   rT   rU   z-Xr  r   r  r2    r  )rO  re   r  T)r8  r  r        re   )r*   r+   r,   r0   r  r   sumrK   r-   r   r   r.   r/   r   rL   r)   r   rt   r   r   r  rn   rM   rg  r   rJ   r   )r2   r  rV   r^   r[   r  xdfr  r   r  r9   rR   exphi_1phi_2r  r3   r  s                     r4   test_predict_exogr  y  s   			x	(B
4 A
A
9%AbqEBGG011AbqEIIaL@AbqE1d^ HC!AE(N"S1QU8^3ad:QqTXXZG!H		mmKKa#T	

B ,,q4,bhh
?C
"q!fCc
2C
'')C3s{{}%%%%;;sD

A	1	B	CJJOOAB'	(BGGAJEGGAJE3r""UQs2Y%66F
beaaj 2a51ST1W:#555F
--s
CCYYvS)Ff%!!(+H;;sD$;BDXXc]FGGAJEGGAJEEAcFN"UQsV^3afrkAF1IEF1I%%#63"DF1IEF1I%%#63"DF1I1c] 0q1u--q1u0EEq	7QWWQZ1I37b(I1I!c'*R//I0 YYbmmBHHSM3YOF f%r6   c            
         t         j                  j                  d      } | j                  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                  j                   d   }|j                  j                   d   }t        j"                  |j                  j                   dd        }	|j%                  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   ||<   0 t        j                  |t        j                  |j(                  d   dt        
            }t+        |
|       |j%                  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+        |
|       y )Nr  r  rb   r  r   r  r$   r   r  r   r(   rd   rT   r   re   r  r  Tr  r  r  r  r  r  i  i  r2  r  r  )r*   r+   r,   r0   r  r   rK   r-   r   r   r.   r/   r   r   rt   rn   rM   rg  r  rJ   r)   r   rI   )r2   r  rV   r[   r  r  r   r9   r=   rR   r  r  r3   s                r4   test_predict_irregular_arr    s   			x	(B
4 A
AbqEBGG011AbqE1d^ ;C!AE(N"S1QU8^3ad:!;		mmKKa#T	

B "q!fD
)C
'')C

A

A	CJJOOAB'	(B;;sD$'DXXc]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	
 YYbmmBHHSM3YOF f%;;sD	
biiY'
'	(
Q%!C)
	 Q%!C)
	  --s
CCYYvS)Ff%r6   r8  c           
      N   t         j                  j                  d      }|j                  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d|       }	t        j                  t        j                  dd	d	      dt              }
|j%                  |
d   |
d   |       }t'        |	|       y )Nr  r  r   r  r   r?   r   re   r$   r  r  r   r(   Tr(    i  r7  i  )r*   r+   r,   r0   r  r   r  rI   r  rK   r-   r   r   r.   r/   r   r   rt   r  r   )r8  r2   r  rV   r  r[   r  r  r   pred_intr  
pred_datess               r4   test_forecast_start_end_equivr    so   			x	(B
4 A
AQ4"''.//AaD266"))B-",q0255899G1d^ <C!AE(N"QqT)GAFO;!<		KKa#

B "a$
'C
'')C{{4w{7HMM
D!QE
 U4[%+wGJ*-r6   r,        c                    t        j                  t        j                  j	                  d            }t        |d      }|j                         }| dz   }|j                  | |      }|j                  d   || z
  dz   k(  sJ y )	N   sizere   rE  r    r+  r   r$   )	r-   r   r*   r+   normalr   rt   r  r   )r,  y_trainmmfr  r  s         r4   test_autoreg_startr    sr    ii		((b(12Ga A	
B
!)C::Es:+D::a=C%K!O+++r6   c                    t        j                  t        j                  j	                  d            }t        dd      t        d      g}t        |j                  |      }t        |dd	d
|      }|j                         }t        |ddd
d      }|j                         }t        t        j                  |j                        t        j                  |j                               t        j                  t         d      5  t        |dd	d
|       d d d        t        j"                  t$        d      5  t        |d
d       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)Nr)  r  Tr$   rG  r  r?   additional_termsrc   Fre   )rT   rS   rY   deterministicrd   )rT   rS   rY   r   zWhen using deterministic, trendr%  zdeterministic must be)r  )r-   r   r*   r+   r  r   r   r   r)   r   rt   r	   rg  rn   r   warnsr   r-  	TypeError)r  rV   termsdpr  r   m2r   s           r4   test_deterministicr     s   
		"))""",-AA.B@E	agg	>Bu1BGA
%%'C	$Ab	AB668D

3::.

4;;0GH	$E
 I 	ARHI 
y(?	@ *1D)* *	I I* *s   E8EEE%c                    t         j                  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      }|j                         }|j                  d      }|j                  ||dz         }	|j                  d      }
t        ||	       t        ||
       t        |dd
      j                  d      }|j                  d      }t        j                   j#                  |j$                  |j$                         y )Nr  r  r   i  r$   Dr%   ffffff?r(   r9   )rT   rY   r?   r   z
2022-10-08r  r  F)r  )r*   r+   r  r   r-   r   r.   r/   rK   r   r   rt   forecastr  r   r   testingassert_index_equalr)   )r  r  r1   r3   r[   rV   r  r   r   br9   sarimax_resds                r4   #test_autoreg_predict_forecast_equivr    s-   
		d#A771:D
--D!Q/c4
HC1d^ &aAh1%!&
		!3A1%A
%%'CRAD$)$A\"A11!9C8<<%<HKR AJJ!!!''1773r6   c                     t        j                  ddd      } t        j                  j	                  d      j                  d      }t        j                  || d d d      }t        |d	d
      }|j                         }|j                  d      }t        |j                  t         j                        sJ t         j                  j                  |j                  | dd         y )Nz1990-1-1i  r   r   r   r8   rV   r;   rb   Tr(     i)r-   r   r*   r+   r,   r0   r   r   rt   r  rD   r)   PeriodIndexr  r  )r  rV   r  r  r   fcasts         r4   "test_autoreg_forecast_period_indexr  $  s    	Ss	;B
		a 005A	1BtH3	/B
"a$
'C
'')CLLEekk2>>222JJ!!%++r#$x8r6   c                     t         j                  j                  d      } t        | ddg      }|j	                         }t        j                  t              5  |j                  ddd       d d d        y # 1 sw Y   y xY w)	NrO  r$   rb   rE  r   r  F)r  r
  )	r*   r+   r0   r   rt   r   r-  r.  r  )rV   r  r   s      r4   test_autoreg_plot_errr  /  sg    
		!!#&A
!1a&
!C
'')C	z	" 5e45 5 5s   A66A?c                     t        j                  t        j                  ddd      dt              } t
        j                  j                  d      }t        |j                  | dd            }|j                  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	      j%                         }d d d        t        j&                  t        j(                  j*                              sJ y # 1 sw Y   >xY w)Nr#   r$   r   r   r   rO  F)r  replacere   g?r  irV   r;   rE  )r-   r   r.   r/   r   r*   r+   r,   sortedchoicer0   rJ   rK   r   r   r  r   r   rt   allisfiniter   )r3   r2   	idx_datesr  rV   r[   r  r   s           r4   test_autoreg_residsr  8  s2   
--D!Q/9
MC			q	!Bryy3y>?I
3A
AbqEAbqE1c] ;31q5>!D1QU8O3ad:!;	1TU893	7B	l	# (bq!%%'(66"++cii()))( (s   EE&c                 @   t        | dd      }|j                         }|j                  d      }|j                  dd      }|j                  | j                  d   | j                  d         }t        j
                  t        j
                  g}t	        j                  |j                        }t        d| j                  d	         D ]f  }| j                  |d
z
     }	| j                  |dz
     }
|dkD  r||d
z
     }	|dkD  r||dz
     }
|j                  |d	   |d
   |	z  z   |d   |
z  z          h t        j                  || j                        }t        ||       t        ||       t        |dd  |dd         |j                         }t        |d d |d d        y )Nre   r9   r  r  r7  r   r  r,  r8  r   r$      r(   )r   rt   r  r)   r*   nanrg  rn   rK   r   rM   rH   r-   r   r   )r  r  r   d25s10_d15sd_index	referencepr[   lag1lag2expectedfulls                r4   test_dynamic_predictionsr%  G  sz   
#q
$C
'')C
++b+
!CkkBk/G{{2		"{FH I


3::A1ciil# ;xxAxxAr6QU#Dr6QU#D1!t+adTk9:; yy#))4HHc"GX&CHhrsm,;;=DCHd3Bi(r6   c                    t        | dd      }|j                         }|j                  dd      }|j                  ddd	      }| j                  d
   d| j                  d
   | j                  d   z
  z  z   }|j                  | j                  d   | j                  d   |	      }t	        ||       t	        |dd  |dd         t
        j                  t
        j                  g}t        j                  |j                        }t        d|j                  d         D ]x  }	|	| j                  d   k  r$| j                  |	dz
     }
| j                  |	dz
     }|	dkD  r||	dz
     }
|	dkD  r||	dz
     }|j                  |d   |d   
z  z   |d   z  z          z t        j                  ||j                        }t	        ||       y )Nre   r9   r  r  =   )r8  r  r   r  )r,  r8  r  r2  r?   r3  r   r$   r  r(   )r   rt   r  r)   r   r*   r  rg  rn   rK   r   rM   rH   r-   r   )r  r  r   d25_ends10_d15_endr  sd_index_endr  r   r[   r!  r"  r#  s                r4   test_dynamic_predictions_oosr+  b  s   
#q
$C
'')Ckk""k-G++B+;K
))B-"		"		" =>
>C;;iimSYYr]  L K.GBCL,rs"34 I


3::A1gmmA&' ;syy|88AE?D88AE?Dr6QU#Dr6QU#D1!t+adTk9:; yy'--8HHg&r6   c                 ~   t        | dd      }|j                         }t        j                  t        d      5  |j                  d       d d d        t        j                  t        d      5  |j                  | j                  d   | j                  d	   
       d d d        y # 1 sw Y   [xY w# 1 sw Y   y xY w)Nre   r9   r  zDynamic prediction cannotr%  r2  r7  r   r    r  )r   rt   r   r-  r.  r  r)   )r  r  r   s      r4   test_invalid_dynamicr-  ~  s    
#q
$C
'')C	z)D	E  B 	z)D	E ?#))B-1>? ?   ? ?s   B'0.B3'B03B<c                    t         j                  j                  d      }t        j                  |j                  | j                  d   df      ddg| j                        }t        | dd|      }|j                         }|j                         }|j                  |	      }t        ||       |j                  d
      }|j                  d
|      }t        ||       y )Nr   r   re   r  x2r@   r9   r  r'  r  r7  )r8  rU   )r*   r+   r,   r-   rL   r0   r   r)   r   rt   r  r   )	r  r   rU   r  r   	pred_base	pred_repldyn_basedyn_repls	            r4   test_exog_predictionr4    s    
))


)C<<SYYq\1-.tiiD
 #q$
/C
'')CI&IIy){{2{&H{{2D{1HHh'r6   c                 d   t        j                  t              5  t        | dddd      }d d d        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 y # 1 sw Y   |xY w)Nre   rd   T)rT   rS   rz  Fr?   r  z
seasonal.1r:   zs(2,12))r   r  r  r   rT   r   
exog_names)r  r  news      r4   test_old_namesr8    s    	m	$ Ic1D44HI
#qtu
EC99::#..(((3>>)))cnn$$$&&&I Is   B&&B/c                 ~    t        | d d d      j                         }t        |j                         t              sJ y Nr   re   )r   rt   rD   diagnostic_summaryr   )r  r   s     r4   test_diagnostic_summary_shortr<    s6    
#cr(A

"
"
$Cc,,.888r6   c                     t        | d d d      }|j                         }|j                         }|j                  |j                        }t	        ||       y r:  )r   rt   r  rn   r   )r  r  r   res_predmod_preds        r4   test_ar_model_predictr@    sF    
#cr(A
C
'')C{{}H{{3::&HHh'r6   c                     t        | d d d d      }|j                         }|j                         }|j                         }d|v sJ d|v sJ y )Nr   rc   r  r  zNo Model Parameters)r   rt   r   r   )r  r  r   r   summ_txts        r4   test_autoreg_no_variablesrC    sT    
#cr(D
,C
'')CkkmG H8### H,,,r6   c                     ddl m}m} t        j                  t
              5   ||        d d d        t        j                  t
              5   ||        d d d        y # 1 sw Y   4xY w# 1 sw Y   y xY w)Nr   )rh   	ARResults)statsmodels.tsa.ar_modelrh   rE  r   r-  NotImplementedError)r  rh   rE  s      r4   test_removalrH    s\    6	*	+ 
3	*	+ #   s   	A	A*A'*A3c                    | \  }}|j                   j                  }|j                  d   dz  }|d | }|j                   j                  }||d | }|j	                  ||      }dt        |j                               v sJ t        |t              sJ t        |j                  |j                         d }|j                   j                  |j                   j                  dd  }|j                  d|      }t        |t        j                        sJ |j                  dk(  sJ |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                  Y|	j                  d|      }
t        |
t        j                        sJ |
j                  dk(  sJ t        j                  |
|      rJ y y )Nr   re   r   zusing a differentir   r'  )r   T)r`   rU   refit)rQ  r`   r   rU   r  r   r   rD   r   r   rn   r  r*   r   allcloser   r   )rz   r   r   rV   rc   r^   	res_applyr  fcasts_apply	res_refitfcasts_refits              r4   test_autoreg_applyrP    s   FC		A	
aA	"1A		A}bqE			*I#i&7&7&9"::::i!6777CJJ	 0 01H
yy~~!99>>#$'%%bx%8LlBJJ///&&&			6I{{3::y'7'7888{{377IMM222!!''9+A+A+G+GGGG{{9==)--888
yy~~ ))"8)<,

333!!U***;;|\::::	 r6   c                    t         j                  j                  d      }t        |d      }|j	                         }t        j                  t        d      5  |j                  |d d        d d d        t         j                  j                  |j                  d   df      }t        |d	|
      j	                         }t        j                  t        d      5  |j                  |dd        d d d        t         j                  j                  |j                  d   df      }t        |d	|
      j	                         }t        j                  t        d      5  |j                  |dd |ddd df          d d d        t        |d	      j	                         }t        j                  t        d      5  |j                  |dd |dd        d d d        y # 1 sw Y   rxY w# 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   y xY w)Nr   r   rE  zAn exception occuredr%  r    r   rb   r$   )rY   rU   zexog must be providedr     zThe number of exogre   r'  zexog must be None)
r*   r+   r0   r   rt   r   r-  r.  r  r   )r  rV   r  r   r^   s        r4   test_autoreg_apply_exceptionrS    s   
		!!#&A
!"
C
'')C	z)?	@ 		!BQ% 			!!1771:q/2A
!!!
$
(
(
*C	z)@	A 		!Bs)
		!!1771:q/2A
!!!
$
(
(
*C	z)=	> 1		!Bs)!BsFBQBJ-	01 !!

 
 
"C	z)<	= -		!Bs)!Bs)	,- - 
 1 1- -s0   GG* G6:HG'*G36G?Hc            	         t         j                  j                  d      } | j                  d      }| j                  d      }| j                  d      }| j                  d      }t	        j
                  d|j                  d   |j                  d   z   t              }t	        j                  ||d |j                  d    d	      }t	        j                  ||d |j                  d    t        |j                  d
         D cg c]  }d| 	 c}      }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 c c}w )Nr   r   )r   rb   )r   rb   r   z2020-1-1r   rV   r;   r$   r^   )r)   rA   rB   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<   y)append_data.<locals>.AppendDatarV   y_oosy_bothr^   x_oosx_bothN)r   r   r   r-   r   r   rL   r   r6   r4   
AppendDatarV    s<    99yy		99||r6   r[  )r*   r+   r,   r0   r-   r   r   r   r   rL   rK   rA   rP   r   )
r2   rV   r^   rY  rW  r)   r[   rX  rZ  r[  s
             r4   append_datar\    s   			q	!B
3A
8$Aw'Er"EMMAGGAJQ7iE 			!51771:.S9A
	Laggaj!"'
"34Q1QC4	A
 IIe5#6SAELLeAGGAJL&9199MEYY5z*FYY5z*FZ  a5&99 5s    F<rT   rd   r   rY   )r   r$   rb   rS   c                    |sdnd }| j                   }| j                  }| j                  }| j                  }	| j                  }
| j
                  }|s~t        j                  |      }t        j                  |	      }	t        j                  |      }t        j                  |
      }
t        j                  |      }t        j                  |      }t        |||||      j                         }|j                  |d      }t        |||||      j                         }t        ||	||||      j                         }|j                  ||
d      }t        ||||||      j                         }t        |j                  |j                         t        |j                  |j                         |rt        j                  t        d      5  |j                  t        j                  |             d d d        t        j                  t        d	      5  |j                  |t        j                  |
             d d d        t        j                  t         d
      5  |j                  ||
       d d d        t        j                  t         d      5  |j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)Nr?   )rY   rT   rS   r   TrJ  )rU   rY   rT   rS   r   rU   rJ  zendog must have the same typer%  zexog must have the same typezOriginal model doesr'  zOriginal model has exog)rV   rW  rX  r^   rY  rZ  r*   rg  r   rt   rH   r   rn   r   r-  r  r.  )r\  r   rY   rT   rS   r   rV   rW  rX  r^   rY  rZ  r   
res_append
res_directres_exogres_exog_appendres_exog_directs                     r4   test_autoreg_appendre    sa   
 "RtFAEFAEFJJqMJJqM

5!

5!F#F#
	EHV	ce  E.JT&	ce  	EHV	ce  ooe%toDO 
ce  J%%z'8'89O**O,B,BC]]9,KL 	*JJrzz%()	*]]9,JK 	6OOE2::e#45	6	z)>	? &

5u
%&	z)B	C  	* 	*	6 	6& & s0   %J0&J<KK0J9<KKKc           	         | j                   }| j                  }| j                  }| j                  }| j                  }| j
                  }t        dd      t        d      g}t        |j                  |      }t        |dd|      j                         }	|	j                  |d	      }
t        |dd|j                  |j                              j                         }t        |
j                  |j                         t        t!        j"                  |      dd|      j                         }|j                  t!        j"                  |            }t        |j                  |j                         t        ||dd|
      j                         }	|	j                  ||d      }
t        ||dd|j                  |j                        
      j                         }t        |
j                  |j                         y )NTr$   r  r?   r  rb   rc   )rY   rT   r  r^  )rU   rY   rT   r  r_  )rV   rW  rX  r^   rY  rZ  r   r   r   r)   r   rt   rH   r  r   rn   r*   rg  )r\  rV   rW  rX  r^   rY  rZ  r  r  r   r`  ra  res_npres_append_nps                 r4   !test_autoreg_append_deterministicri  P  s   AEFAEFA.B@E	agg	>B
!!3b
9
=
=
?CE.JQc&,,1G	ce  J%%z'8'89RZZ]#RHLLNFMM"**U"34MFMM=#7#78
!!!3b
A
E
E
GCET:Jhhv||, 
ce  J%%z'8'89r6   )i()ra  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   rF  r   r   r   statsmodels.tsa.arima_processr   statsmodels.tsa.deterministicr   r   r   "statsmodels.tsa.statespace.sarimaxr   statsmodels.tsa.tests.resultsr   r   r   rS  r5   ra   rR   rS   rT   rU   covsr  rn   finalrs   rH   namesjoinzipr   ro   fixturerz   
attributesr   r   parametrizer   r   r   r   r   r   	param_fmtformatr   r   r  r  
matplotlibr  r  r#  r0  r5  r9  r=  r?  rB  rd  rI   ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r+  r-  r4  r8  r<  r@  rC  rH  rP  rS  r\  re  ri  )rs   rc   r   s   000r4   <module>r     s   0 2   $  >  : : .  4 - 3 N ) 
 ? 
 7 4			>)X QFQC%=ayU	gb(E46	7
 EQx1}aE!HOuQxU 
7   	IIS->?TQq4x#a& ?@ hv37 8
 2 j1! 2!	      F  FF 
1q!f	5MF	2JV	5M	2J	
 
f 
aE!HOuQx58 

 
8aeAh%( 


+	 .44Ey4+( hv37 8  h)  ) 
Aq6NE	5MC	2JH	5M	2J	
 
f 
aE!HOuQx58 

 
8aeAh%( 


-	 .44Ey4 hvcc{CaCA B  .  .0 !; !;H , ,@F<( + +" B BK K
@
. @
F?
0 ?
D YRYYq&%9 :;# <#4 tUm4, 5,  *+, tUm4  5 * I IE".!.$&N1&h*&Z T5M2. 3.6 2r(+, ,,*"4&9 5 5*)6'8?($'9
(-;>-* : :> 3+.e}5+dE]3. 4 , 6 /.b:O' @l


 5|


 5s<   X!X9
X' XX4X0 X$X)=X.X