
    M/Ph=                     ~   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j6        7                    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j6        7                    d1d2ej9        j:        ej9        j;        g          d3             Z<dS )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                  h   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            d S )Ninfl2   r      )r   r   r   order)dtailocr	   r   _spec_arimatrend_orderr   exognponesnobsendogmods     f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/arima/tests/test_model.pytest_default_trendr&   $   s    KSbS!E ,,C,a000CHbgsxm44555 Y
'
'
'C,d3334         c                     t           d         j        d d         } t          | d          }t          t          |j        d           |                    ddi          5  t          t          |j        d	           d d d            n# 1 swxY w Y   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           d S )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SbS!E
Y
'
'
'C *cgn==== 
#	'	' A Aj#'-@@@@A A A A A A A A A A A A A A A *cglK' ( ( ( ( *cgm #Ry* * * * is333D*dh}%HHHH 3#%YcBBBD*dh/@AAAA 2$ISAAAD*dh/@AAAAAAs   BBBc                      t           d         j        d d         } t          | dd          \  }}t          | dd          }|                    d	
          }t          |j        |j                   d S )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   ss    KSbS!E uq???LIq
Yc
2
2
2C
'''
'
'CCJ	 011111r'   c                      t           d         j        d d         } t          | dd          \  }}t          | dd          }|                    d	
          }t          |j        |j                   d S )Nr   r   rB   FrC   rF   r7   r3   r   r+   )r   r   r   r	   r;   r   rG   rH   s        r%   	test_burgrN   d   ss    KSbS!E %888LIq
Yc
2
2
2C
'''
 
 CCJ	 011111r'   c                     t           d                                         j        dd         } t          | ddd          \  }}t	          | dd          }|                    d	
          }t          |j        |j                   d S )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   s    K#AcE*E #Ae5 5 5LIq
Yc
2
2
2C
''*'
+
+CCJ	 011111r'   c                      t           d         j        d d         } t          | dd          \  }}t          | dd          }|                    d	
          }t          |j        |d         j                   d S )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   {   sw    KSbS!E uq???LIq
Yc
2
2
2C
'''
'
'CCJ	" 455555r'   c                     t           d         j        d d         } t          | dd          \  }}t          | dd          }|                    d	          }t          |j        |j        d
           t          | ddd          \  }}t          | ddd          }|                    d	          }t          |j        |j        d
           d S )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TcT"E #Yu. . .LIq
Yc
2
2
2C
''*'
+
+CCJ	 0t<<<< #Y|EK K KLIq
Y|3
O
O
OC
''*'
+
+CCJ	 0t<<<<<<r'   c                  l   t           d         j        d d         } t          | dd          \  }}t          | dd          }|                    d	          }t
          sd
nd}t          |j        |j        |d           t          | dd          \  }}t          | dd          }|                    d	          }t          |j        |j        d           t          | ddd          \  }}t          | ddd          }|                    d	          }t          |j        |j        d           d S )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TcT"E e9/46 6 6LIq
Yc
2
2
2C
'''
&
&C%/444DCJ	 0t$GGGG e9/35 5 5LIq
Yc
2
2
2C
'''
&
&CCJ	 0t<<<< "%y1=38: : :Iu Y|3
O
O
OC
'''
&
&CCJ	 0t<<<<<<r'   c                     t           d         j        d d         } t          | dd          }|                                }|                    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            d S )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SbS!E
Y$
?
?
?C7799D77d7##D DK---DHdh''' (!,,, DLD !!!D D()))D4'(((D4'(((((r'   c                    |                      ||          }t          | j        |j                   t          | j                            |j                             t          | j        |j                   t          | j        |j                   | j        }t          | 	                    |          |	                    |                     t          | j
        |j
                   d S )Nr   )cloner   r!   r   _indexequalsr   k_paramsr1   loglikerf   )r$   r#   r   mod_cps        r%   check_clonedr{      s    IIe$I''ECHej)))CJel++,,,u~...C$e&8999ACKKNNEMM!$4$4555C)5+BCCCCCr'   c            
      F   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
          | |           d S )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SbS!E9U[^$$D uu%%%u|$$el333uC(((%000uC(((%000uD)))5111u4(((%d;;;;u4s333UFFFFu4sdKKKT# # # #
 	N%E9U[^$$DuIl 			TK K KT# # # # # #r'   c                     t          j        t          d          5  t          t	          j        d          dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          t	          j        d          ddd	           d d d            n# 1 swxY w Y   t          j        t          d          5  t          t	          j        d          d
d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          t	          j        d          ddd	           d d d            d S # 1 swxY w Y   d S )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      sM   	z)E	F	F	F 8 8bgcll)377778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
z)E	F	F	F  bgcll)L	 	 	 	               
z)E	F	F	F 8 8bgcll)377778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
z)E	F	F	F  bgcll)L	 	 	 	                 sG   %AAA3&B%%B),B)%C<<D D "&EEEc                     t           d         j        d d         j        } t          | d d         dd          }|                    g d          }|                                 }t          j        |dd <   |                    |          }|                    |j	                  }t          |                    d          |j        dd                     d S )	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TcT")E
crc
)3
7
7
7C
**___
%
%CZZ\\F&F233K99VD;;sz""DCLL$$d&7&=>>>>>r'   c                  p   t           d         j        d d         j        } t          j        t          |                     dz  }t          | d d         d|d d         d          }|                    g d          }|                                 }t          j	        |dd <   |
                    ||	          }t          |j                   t          |j                   |                    |j                  }t          |                    d|dd          	          |j        d
d                     d S )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TcT")E9SZZ  !#D
crc
)$ss)3
G
G
GC
*****
+
+CZZ\\F&F233K99V$9''D	#/	$
;;sz""DCLL$rss)L44d6G6MNNNNNr'   c                  ^   t           d         j        d d         j        } t          | d d         d          }|                                }|                    | dd                    }t          |           }|                    |j                  }t          |j	        |j	                   d S )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TcT")E
crc
#
&
&
&C
''))CJJuRSSz""E<<D;;u|$$DDHei(((((r'   c                     t           d         j        d d         j        } t          j        t          |                     }t          | d d         |d d         d          }|                                }|                    | dd          |dd                    }t          | |d          }|	                    |j
                  }t          |j        |j                   d S )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TcT")E9SZZ  D
crc
crc#
6
6
6C
''))CJJuRSSzRSS	J22ET---D;;u|$$DDHei(((((r'   c                     t           d         j        d d         j        } t          j        t          |                     dz  }t          | d d         |d d         d          }|                                }|                    | dd          |dd                    }t          | |d          }|	                    |j
                  }t          |j        |j                   d S )Nr   r6   rB   r   r   r   rs   r   r   s          r%   test_append_with_exog_and_trendr   @  s    KTcT")E9SZZ  !#D
crc
crc$
7
7
7C
''))CJJuRSSzRSS	J22ET...D;;u|$$DDHei(((((r'   c                     t           d         j        d d         } t          j        t	          j        t          |                     | j                  }t          | j        d d         |j        d d         d          }|	                                }|
                    | j        dd          |j        dd                    }t          | |d          }|                    |j                  }t          |j        |j                   d S )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TcT"E9RYs5zz**%+>>>D

3B3dinC
@
@
@C
''))CJJuz"##TYrss^J<<ET---D;;u|$$DDHei(((((r'   c                      t           d         j        d d         j        } t          | d d         d          }|                    d          }t          |                                t          j                   d S )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  si    KTcT")E
crc
#
&
&
&C
''6'
"
"CCNN$$bf-----r'   c                     t          j        t          j        d          d           } t	          | ddd          }t          j        t          d          5  |                    dd	d
           d d d            d S # 1 swxY w Y   d S )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    K
	
 	
. 1  E4 "#	  C 
z)F	G	G	G L L(TFKKKL L L L L L L L L L L L L L L L L Ls   A==BBz ar_order, ma_order, fixed_paramsr   r-   rB      rV   )ar.L2zma.L1r      r9   i)zar.L5zma.L3c                 t   t           d                                         j        dd         }t          || |d|          \  }}t	          || d|fddd          }|                    |          5  |                    d	
          }d d d            n# 1 swxY w Y   t          |j        |j                   d S )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#AcE*E"8<  LIq
 h84C%*%I I IC		%	% 0 0gg.g//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CJ	 011111s   0BBBrandom_state_type   c                 >    t           j                            d          }t          |d                                          } fd} |           }|                    d|          } |           }|                    d|          }t          ||           d S )Nr6   r)   r   c                 H    t          t                    rdS  d          S )Nr   )
isinstanceint)valr   s    r%   get_random_statez6test_reproducible_simulation.<locals>.get_random_state  s,    '-- 	1  ###r'   r   )random_state)r   randomrandnr	   r;   simulater   )r   xrK   r   r   sim1sim2s   `      r%   test_reproducible_simulationr     s     		A

#
#
#
'
'
)
)C$ $ $ $ $
 $#$566L<<<55D##$566L<<<5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      sO  
 
 7 6 6 6 6 6 				          O O O O O O O O O O O O * * * * * * - - - - - - D D D D D D 6 6 6 6 6 6 L L L L L L" " " " " " " " B B B B B Bi"BM,TJJJ	! ! !"!B !B !BH2 2 22 2 2	2 	2 	26 6 6= = =*= = =>) ) ),	D 	D 	D 	D# # #6   ? ? ?O O O$) ) )
) 
) 
)
) 
) 
)
) 
) 
). . .#L #L #LL &	
Ar
	
A|	
Aa(()
QWaL!
QcA667	 	2 2	 	2" !RY2BI4IJ          r'   