
    "g=                        d Z ddlmZ ddlZddlZddlZddlZddl	m
Z
mZmZmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ  ej:                         j<                  Z ej@                  ddd      e_!        d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d4dZ+d Z,d Z-d Z.d Z/d Z0d Z1d  Z2d! Z3d" Z4d# Z5ejl                  jo                  d$d%d%i fd%d%d&difd'd(d)d'd*fdd%gdd+difd%d,gg d-d.d,d/fg      d0        Z8ejl                  jo                  d1d2ejr                  jt                  ejr                  jv                  g      d3        Z<y)5aA  
Tests for ARIMA model.

Tests are primarily limited to checking that the model is constructed correctly
and that it is calling the appropriate parameter estimators correctly. Tests of
correctness of parameter estimation routines are left to the individual
estimators' test functions.

Author: Chad Fulton
License: BSD-3
    )PLATFORM_WIN32N)assert_equalassert_allcloseassert_raisesassert_)	macrodata)ARIMA)yule_walker)burg)hannan_rissanen)innovationsinnovations_mle)
statespacez
1959-01-01z
2009-07-01QS)startendfreqc                  v   t         d   j                  d d } t        |       }t        |j                  j
                  d       t        |j                  t        j                  |j                  df             t        | d      }t        |j                  j
                  d        t        |j                  d        y )Ninfl2   r      )r   r   r   order)dtailocr	   r   _spec_arimatrend_orderr   exognponesnobsendogmods     c/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/arima/tests/test_model.pytest_default_trendr&   $   s    KSb!E ,C,,a0CHHbggsxxm45 Y
'C,,d34     c                     t         d   j                  d d } t        | d      }t        t        |j
                  d       |j                  ddi      5  t        t        |j
                  d	       d d d        t        t        |j
                  d
ddi       t        t        |j
                  d	ddg       t        | dd      }t        t        |j
                  d	d       t        t        j                  d      dz  dd      }t        t        |j
                  d       t        t        j                  d      dz  dd      }t        t        |j
                  d       y # 1 sw Y   xY w)Nr   r   r   r   r   r   not_a_methodmethodar.L1g      ?r
   r   enforce_stationarityF)r,   method_kwargs      ?)r,   start_paramscr   trend)r,   glsd   nr      r   r   r   )	r   r   r	   r   
ValueErrorfit
fix_paramsr   arange)r#   r$   mod2mod3s       r%   test_invalidr@   5   s+    KSb!E
Y
'C *cggn= 
#	' Aj#''-@A *cgglK' ( *cggm #Ry* is3D*dhh}%H 3#%YcBD*dhh/@A 2$ISAD*dhh/@A+A As   E""E+c                      t         d   j                  d d } t        | dd      \  }}t        | dd      }|j	                  d	
      }t        |j                  |j                         y )Nr   r      Far_orderdemeanrB   r   r   r7   r3   r
   r+   )r   r   r
   r	   r;   r   paramsr#   	desired_p_r$   ress        r%   test_yule_walkerrL   Y   s^    KSb!E uq?LIq
Yc
2C
'''
'CCJJ	 0 01r'   c                      t         d   j                  d d } t        | dd      \  }}t        | dd      }|j	                  d	
      }t        |j                  |j                         y )Nr   r   rB   FrC   rF   r7   r3   r   r+   )r   r   r   r	   r;   r   rG   rH   s        r%   	test_burgrN   d   s^    KSb!E %8LIq
Yc
2C
'''
 CCJJ	 0 01r'   c                      t         d   j                         j                  dd } t        | ddd      \  }}t	        | dd      }|j                  d	
      }t        |j                  |j                         y )Nr   r   e   F)rD   ma_orderrE   r   r   r   r7   r3   r   r+   )r   diffr   r   r	   r;   r   rG   rH   s        r%   test_hannan_rissanenrT   o   sm    K##Ac*E #Ae5LIq
Yc
2C
''*'
+CCJJ	 0 01r'   c                      t         d   j                  d d } t        | dd      \  }}t        | dd      }|j	                  d	
      }t        |j                  |d   j                         y )Nr   r   rB   F)rQ   rE   )r   r   rB   r7   r3   r   r+   )r   r   r   r	   r;   r   rG   rH   s        r%   test_innovationsrW   {   sb    KSb!E uq?LIq
Yc
2C
'''
'CCJJ	" 4 45r'   c                     t         d   j                  d d } t        | dd      \  }}t        | dd      }|j	                  d	      }t        |j                  |j                  d
       t        | ddd      \  }}t        | ddd      }|j	                  d	      }t        |j                  |j                  d
       y )Nr   r6   rR   F)r   rE   r7   r3   r   r+   gh㈵>atolr)   r   r   r      )r   seasonal_orderrE   r   r]   r4   )r   r   r   r	   r;   r   rG   rH   s        r%   test_innovations_mler_      s    KTc"E #Yu.LIq
Yc
2C
''*'
+CCJJ	 0 0t< #Y|EKLIq
Y|3
OC
''*'
+CCJJ	 0 0t<r'   c                  <   t         d   j                  d d } t        | dd      \  }}t        | dd      }|j	                  d	      }t
        sd
nd}t        |j                  |j                  |d       t        | dd      \  }}t        | dd      }|j	                  d	      }t        |j                  |j                  d       t        | ddd      \  }}t        | ddd      }|j	                  d	      }t        |j                  |j                  d       y )Nr   r6   rR   F)r   include_constantr7   r3   r   r+   gHz>gMbP?g-C6?)rtolrZ   )r   r   rB   Tr2   rY   r)   r[   )r   r]   ra   r^   )r   r   r   r	   r;   r   r   rG   )r#   rI   rJ   r$   rK   rb   _specs          r%   test_statespacerd      s   KTc"E e9/46LIq
Yc
2C
'''
&C%44DCJJ	 0 0t$G e9/35LIq
Yc
2C
'''
&CCJJ	 0 0t< "%y1=38:Iu Y|3
OC
'''
&CCJJ	 0 0t<r'   c                     t         d   j                  d d } t        | dd      }|j                         }|j                  d      }t	        |j
                  |j
                         t	        |j                  |j                         t        |j                  j                  d       t        |j                  d u        t        |j                  d u        t        |j                  d u        t        |j                  d u        y )Nr   r   r)   T)r   concentrate_scale)
low_memoryr   )r   r   r	   r;   r   rG   llfr   ssmmemory_conserver   llf_obspredicted_statefiltered_statesmoothed_state)r#   r$   res1res2s       r%   test_low_memoryrq      s    KSb!E
Y$
?C779D77d7#D DKK-DHHdhh' ((!, DLLD !D  D()D4'(D4'(r'   c                    | j                  ||      }t        | j                  |j                         t        | j                  j                  |j                               t        | j                  |j                         t        | j                  |j                         | j                  }t        | j                  |      |j                  |             t        | j                  |j                         y )Nr   )cloner   r!   r   _indexequalsr   k_paramsr1   loglikerf   )r$   r#   r   mod_cps        r%   check_clonedr{      s    IIe$I'ECHHejj)CJJell+,u~~.C$$e&8&89ACKKNEMM!$45C))5+B+BCr'   c            
         t         d   j                  d d } t        j                  | j                  d         }t        t        |       |        t        t        | j                        | j                         t        t        | d      |        t        t        | d      |        t        t        | d      |        t        t        | |      | |       t        t        | |d	      | |       t        t        | |dd
      | |       t         d   j                  d d } t        j                  | j                  d         }t        t        | dd|g dd
      | |       y )Nr   r   r   r2   r4   tctrs   r   r4   T)r   r4   rf   realgdpr6   )rB   r   r   )r   r   rB   r\   r9   )r   r]   r   r4   rf   )r   r   r   r=   shaper{   r	   values)r#   r   s     r%   
test_cloner      s   KSb!E99U[[^$D uu%u||$ell3uC(%0uC(%0uD)51u4(%d;u4s3UFu4sdKT#
 	N%E99U[[^$DuIl 	TKT#r'   c                     t        j                  t        d      5  t        t	        j
                  d      dd       d d d        t        j                  t        d      5  t        t	        j
                  d      ddd	       d d d        t        j                  t        d      5  t        t	        j
                  d      d
d       d d d        t        j                  t        d      5  t        t	        j
                  d      ddd	       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   hxY w# 1 sw Y   y xY w)NzIn models with integrationmatchr6   r   r   r   r2   r3   r)   )r   r   r      r^   )r   rB   r   r~   )pytestraisesr:   r	   r   r     r'   r%   $test_constant_integrated_model_errorr      s    	z)E	F 8bggcl)378 
z)E	F bggcl)L	 
z)E	F 8bggcl)378 
z)E	F bggcl)L	 8 8 8 8 s/   "D!#D$'"D0,#D<D!$D-0D9<Ec                  z   t         d   j                  d d j                  } t        | d d dd      }|j	                  g d      }| j                         }t        j                  |dd  |j                  |      }|j	                  |j                        }t        |j                  d      |j                  dd         y )	Nr   r6   r   r   r~   r3   )皙?333333?r0   )r   r   r   r	   filtercopyr   nanrt   rG   r   forecastfittedvalues)r#   r$   rK   endog2r>   rp   s         r%   test_forecastr     s    KTc"))E
cr
)3
7C
**_
%CZZ\F&&F23K99VD;;szz"DCLL$d&7&7&=>r'   c                  &   t         d   j                  d d j                  } t        j                  t        |             dz  }t        | d d d|d d d      }|j                  g d      }| j                         }t        j                  |dd  |j                  ||	      }t        |j                         t        |j                         |j                  |j                        }t        |j                  d|dd  	      |j                   d
d         y )Nr   r6   rB   r   r   r~   )r   r   r4   )r   g?r   r0   rs   r   )r   r   r   r   r=   lenr	   r   r   r   rt   printparam_namesrG   r   r   r   )r#   r   r$   rK   r   r>   rp   s          r%   test_forecast_with_exogr     s    KTc"))E99SZ !#D
cr
)$s)3
GC
***
+CZZ\F&&F23K99V$9'D	#//	$

;;szz"DCLL$rs)L4d6G6G6MNr'   c                  8   t         d   j                  d d j                  } t        | d d d      }|j	                         }|j                  | dd        }t        |       }|j                  |j                        }t        |j                  |j                         y )Nr   r6   r   r2   r}   )
r   r   r   r	   r;   appendr   rG   r   rh   )r#   r$   rK   res_er>   rp   s         r%   test_appendr   (  s|    KTc"))E
cr
#
&C
'')CJJuRSz"E<D;;u||$DDHHeii(r'   c                     t         d   j                  d d j                  } t        j                  t        |             }t        | d d |d d d      }|j                         }|j                  | dd  |dd        }t        | |d      }|j                  |j                        }t        |j                  |j                         y )Nr   r6   r   r2   r   rs   r   r   r   r   r=   r   r	   r;   r   r   rG   r   rh   r#   r   r$   rK   r   r>   rp   s          r%   test_append_with_exogr   3  s    KTc"))E99SZ D
cr
cr#
6C
'')CJJuRSzRS	J2ET-D;;u||$DDHHeii(r'   c                     t         d   j                  d d j                  } t        j                  t        |             dz  }t        | d d |d d d      }|j                         }|j                  | dd  |dd        }t        | |d      }|j                  |j                        }t        |j                  |j                         y )Nr   r6   rB   r   r   r   rs   r   r   s          r%   test_append_with_exog_and_trendr   @  s    KTc"))E99SZ !#D
cr
cr$
7C
'')CJJuRSzRS	J2ET.D;;u||$DDHHeii(r'   c                     t         d   j                  d d } t        j                  t	        j
                  t        |             | j                        }t        | j                  d d |j                  d d d      }|j                         }|j                  | j                  dd  |j                  dd        }t        | |d      }|j                  |j                        }t        |j                  |j                         y )Nr   r6   )indexr   r2   r   rs   )r   r   pdSeriesr   r=   r   r   r	   r;   r   r   rG   r   rh   r   s          r%   test_append_with_exog_pandasr   M  s    KTc"E99RYYs5z*%++>D


3BdiinC
@C
'')CJJuzz"#TYYrs^J<ET-D;;u||$DDHHeii(r'   c                      t         d   j                  d d j                  } t        | d d d      }|j	                  d      }t        |j                         t        j                         y )Nr   r6   r   r2   r}   none)cov_type)	r   r   r   r	   r;   r   
cov_paramsr   r   )r#   r$   rK   s      r%   test_cov_type_noner   Z  sU    KTc"))E
cr
#
&C
''6'
"CCNN$bff-r'   c                      t        j                  t        j                  d      d       } t	        | ddd      }t        j                  t        d      5  |j                  dd	d
       d d d        y # 1 sw Y   y xY w)Na  data

9.112
9.102
9.103
9.099
9.094
9.090
9.108
9.088
9.091
9.083
9.095

9.090
9.098
9.093
9.087
9.088
9.083
9.095
9.077
9.082
9.082
9.081

9.081
9.079
9.088
9.096
9.081
9.098
9.081
9.094
9.091
9.095
9.097

9.108
9.104
9.098
9.085
9.093
9.094
9.092
9.093
9.106
9.097
9.108

9.100
9.106
9.114
9.111
9.097
9.099
9.108
9.108
9.110
9.101
9.111

9.114
9.111
9.126
9.124
9.112
9.120
9.142
9.136
9.131
9.106
9.112

9.119
9.125
9.123
9.138
9.133
9.133
9.137
9.133
9.138
9.136
9.128

9.127
9.143
9.128
9.135
9.133
9.131
9.136
9.120
9.127
9.130
9.116

9.132
9.128
9.119
9.119
9.110
9.132
9.130
9.124
9.130
9.135
9.135

9.119
9.119
9.136
9.126
9.122
9.119
9.123
9.121
9.130
9.121
9.119

9.106
9.118
9.124
9.121
9.127
9.113
9.118
9.103
9.112
9.110
9.111

9.108
9.113
9.117
9.111
9.100
9.106
9.109
9.113
9.110
9.101
9.113

9.111
9.101
9.097
9.102
9.100
9.110
9.110
9.096
9.095
9.090
9.104

9.097
9.099
9.095
9.096
9.085
9.097
9.098
9.090
9.080
9.093
9.085

9.075
9.067
9.072
9.062
9.068
9.053
9.051
9.049
9.052
9.059
9.070

9.058
9.074
9.063
9.057
9.062
9.058
9.049
9.047
9.062
9.052
9.052

9.044
9.060
9.062
9.055
9.058
9.054
9.044
9.047
9.050
9.048
9.041

9.055
9.051
9.028
9.030
9.029
9.027
9.016
9.023
9.031
9.042
9.035

)	index_col)   r   '   F)r   r.   enforce_invertibilityzRoots of the autoregressiver   r   Tr   )r,   rg   r   )	r   read_csvioStringIOr	   r   r   r:   r;   r"   s     r%   test_nonstationary_gls_errorr   a  s{    KK
	
. 1E4 "#	C 
z)F	G L(TFKL L Ls   A33A<z ar_order, ma_order, fixed_paramsr   r-   rB      rV   )ar.L2zma.L1r      r9   i)zar.L5zma.L3c                 H   t         d   j                         j                  dd }t        || |d|      \  }}t	        || d|fddd      }|j                  |      5  |j                  d	
      }d d d        t        j                  |j                         y # 1 sw Y   *xY w)Nr   r   rP   F)rD   rQ   rE   fixed_paramsr   r7   )r   r4   r.   r   r   r+   )	r   rS   r   r   r	   r<   r;   r   rG   )rD   rQ   r   r#   rI   rJ   r$   rK   s           r%   &test_hannan_rissanen_with_fixed_paramsr     s     K##Ac*E"8<LIq
 h84C%*%IC		% 0gg.g/0 CJJ	 0 010 0s   BB!random_state_type   c                     t         j                  j                  d      }t        |d      j	                         } fd} |       }|j                  d|      } |       }|j                  d|      }t        ||       y )Nr6   r)   r   c                 6    t        t              ry d      S )Nr   )
isinstanceint)valr   s    r%   get_random_statez6test_reproducible_simulation.<locals>.get_random_state  s    '- ##r'   r   )random_state)r   randomrandnr	   r;   simulater   )r   xrK   r   r   sim1sim2s   `      r%   test_reproducible_simulationr     sw     			A

#
'
'
)C$
 $$56L<<<5D#$56L<<<5DD$r'   )N)=__doc__statsmodels.compat.platformr   r   numpyr   pandasr   r   numpy.testingr   r   r   r   statsmodels.datasetsr   statsmodels.tsa.arima.modelr	   ,statsmodels.tsa.arima.estimators.yule_walkerr
   %statsmodels.tsa.arima.estimators.burgr   0statsmodels.tsa.arima.estimators.hannan_rissanenr   ,statsmodels.tsa.arima.estimators.innovationsr   r   +statsmodels.tsa.arima.estimators.statespacer   load_pandasdatar   
date_ranger   r&   r@   rL   rN   rT   rW   r_   rd   rq   r{   r   r   r   r   r   r   r   r   r   r   markparametrizer   r   RandomStatedefault_rngr   r   r'   r%   <module>r      s  
 7 	    O O * - D 6 L" Bi""BMM,TJ	!"!BH22	26=*=>),	D#6 ?O$)
)
)
).#LL &	
Ar
	
A|	
Aa()
QWaL!
QcA67	2	2" !RYY22BII4I4IJ  r'   