
    M/Ph	D                        d dl mZ d dlZd dlZd dlmZmZm	Z	m
Z
mZmZ d dlZd dlZd dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ d dl m!Z! d	gd
dgd
dgg dgZ"d	gd
dgd
dgg dgZ#dZ$d Z%d Z&d Z'd Z(d Z)d Z*ej+        ,                    de"          ej+        ,                    de#          ej+        ,                    dej-        j.        g          d                                     Z/d Z0d Z1ej+        ,                    de"          ej+        ,                    de#          d                         Z2ej+        ,                    de"          ej+        ,                    de#          d                         Z3d Z4 G d d           Z5ej+        ,                    d!d d
g          ej+        ,                    d"d#g          d$                         Z6dS )%    )QUARTER_ENDN)assert_assert_allcloseassert_almost_equalassert_array_almost_equalassert_equalassert_raises)ArmaFft)ARIMA)	ArmaProcessarma_acf
arma_acovfarma_generate_samplearma_impulse_response
index2lpol
lpol2index	lpol_fiar	lpol_fima)results_arma_acf)armarep      ?   ?)r   r   333333?)r   r   g333333ӿ   c                      d} ddt          d gdg|           }fdt          |           D             }t          ||           d S )N   r   r   c                 8    g | ]}d z  |z  z  ddz  z
  z  S r   r       .0iphisigmas     h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/tests/test_arima_process.py
<listcomp>z#test_arma_acovf.<locals>.<listcomp>7   s3    FFFC%K#("a#(l3FFF    )r   ranger   )Nrep1rep2r&   r'   s      @@r(   test_arma_acovfr/   /   sd    
A
CEq3$i!a((DFFFFFU1XXFFFDD$r*   c                  ,   t          j        ddg          } t          j        dg          }t          | |          }|                    d          }d}dt          j        d          z  }||z  }t          |j        d           t          ||           d S )Nr   gCl
   g  B@gCl?)nparrayr   acovfaranger   ndimr   )armaprocessressig2corrsexpecteds          r(   test_arma_acovf_persistentr>   ;   s     
1g,		B	1#B"b!!G
--

C !Dbimm#Ee|H1C"""""r*   c                      d} ddt          d gdg|           }t          j        fdt          |           D                       }|dddz  z
  z  z  }t	          ||           d S )Nr   r   r   c                 8    g | ]}d z  |z  z  ddz  z
  z  S r    r"   r#   s     r(   r)   z!test_arma_acf.<locals>.<listcomp>W   s3    CCCQusax	1sax<	0CCCr*   r   r!   )r   r2   r3   r+   r   )r,   r-   r4   r.   r&   r'   s       @@r(   test_arma_acfrA   N   s    
A
CEQIsA&&DHCCCCC%((CCC E C1sax<()DD$r*   c                     t          g dddg          } t          | t          j                   t          g dg d          }t          |t          j                   t          g dg d          }t          |t          j                   t          g dg d          }t          |t          j                   t          g dg d          }t          |t          j                   t          g dg d          }t          |t          j                   t          g dg d          }t          |t          j	                   t          g d	g d          }t          |t          j
                   d S )
N)r         ?r   )r   r   皙?)r   r   rE   r   )r   r   rE   r   ffffffֿ)r   r   rE   r   rF   皙)r   rC   rD   rG   )r   rC   rD   rG   皙?)r   rC   rD   rG   rH   g{Gz)r   r   r   bd_example_3_3_2custom_example_1custom_example_2custom_example_3custom_example_4custom_example_5custom_example_6custom_example_7)rI   	example_1	example_2	example_3	example_4	example_5	example_6	example_7s           r(   test_arma_acf_compare_R_ARMAacfrX   ]   st   1v66$&6&GHHH44II/@AAA(8(8(899II/@AAA(?(?(?@@II/@AAA(E(E(EFFII/@AAA,,,kkk::II/@AAA222KKK@@II/@AAA999;;;GGII/@AAAAAr*   c                      dd} t          t          ddgddg           | ddgddg                     t          t          ddgddg           | ddgddg                     d S )Nr1   c                 8   t          j        t          j        |           dz
            dk    rt          ddz            }nt          ddz            }t	          | ||          d         dk    r#|d	z  }t	          | ||          d         dk    #|d
k    rEdk     r?t                    t          j        fdt                    D                       }n.t          j        d          t                    dz
  d          }|d          S )Nr   r   i  r!   d   leadsrC   g-C6
?r1   iP  i  c           	      l    g | ]0}t          j        d z
  |z
           |z
                     1S )N)r2   dot)r$   tendirnobss     r(   r)   z_test_arma_acov_compare_theoretical_arma_acov.<locals>.arma_acovf_historical.<locals>.<listcomp>   sU        F2.d
Q./Ad
N1CDD  r*   full)	r2   abssummaxr   lenr3   r+   	correlate)r7   r8   rc   nobs_irr4   ra   rb   s     `  @@r(   arma_acovf_historicalzKtest_arma_acov_compare_theoretical_arma_acov.<locals>.arma_acovf_historicalw   s<   6"&**q.!!C''$D))GG#q4x((G"2r999fxrMG&r2W===B fx U??td{{b''CH     "4[[   EE LR00R1?EUdU|r*   r         rE   gGz)r1   )r   r   )rk   s    r(   ,test_arma_acov_compare_theoretical_arma_acovrm   q   s       * At9q#h''q$i!S22   Au:3x((q%j1c(33    r*   c                 <   t          |          }| d d d         } |d d d         }t          |           t          |          }}dgt          ||          z  }t          |          D ]}||         }|r!|t          j        || d          |           z  }|rH|t          j        dg||z
  z  t          |t          d||z
            |                   z   |          z  }|                    |           t          j        |t          ||          d                    S )NrC   r   )rh   rg   r+   r2   r_   listappendr3   )	r7   r8   etaTpqr.   r`   yts	            r(   _manual_arma_generate_samplerv      s   CA	DDbDB	DDbDBr77CGGqA3Q?D1XX  V 	("&qbccB'''B 	K"&!Ac#aQ--!2C.D)E)EErJJJBB8DQ%&&&r*   r7   r8   distc                 |   d}t           j                            d            | |          }t           j                            d           t          ||||           }dt          j        |dd                    z  }t          j        |dd                    }t          |||          }t          ||d           d S )Nr[   i  )distrvsrC   r      )r2   randomseedr   r3   rv   r   )	rw   r7   r8   rr   rq   r-   	ar_params	ma_paramsr.   s	            r(   test_arma_generate_sampler      s     	AINN4
$q''C INN4B4888DRXbf%%%IABB  I'	9cBBDdD"-----r*   c                      d} t          t          d|           dg|           }t          |t          d|           d           d S )Nr[   皙?)nr   rz   )r   r   r   r   )r   mafromars     r(   test_fir      sL    A$Ysa%8%8%81#qAAHh	#(;(;(;R@@@@@r*   c                  t   t          t          j        t          j        d          dd          } t          t          j        t          j        d          dd          }t	          t          j                                        |d           t	          t          j                                         | d           d S )N   r\   r      )r   r   r8   r7   r   marepravelarrep)r   r   s     r(   test_arma_impulse_responser      s    !'*gjCCCABBGE!'*gjCCCABBGEgm1133UB???w}22444eR@@@@@r*   c           	         d}t          j        dt           j        |d          }t          | |d          }|                    |          \  }}|                    |d          \  }}|                    |dz            \  }	}
t          ||           t          ||           t          ||
d |         d           t          ||	d |         d	d
|  d|            t          ||d	d|  d|            d S )Nr   r   Fendpoint   r!   r   )decimal   zspdr spdd not equal for , )r   err_msgzspdr spdp not equal for )	r2   linspacepir
   spdrootsspdpoly	spddirectr   r   )r7   r8   nfreqwarmaspdrwrspdpwpspddwds              r(   test_spectrumr      s0    E
Aruee444A2r2D}}QHD"||As##HD"~~eai((HD"BB2fuf:r2222VeV525555	    525555	     r*   c           	         d}t          j        dt           j        |d          }t          | |d          }|                    d          d d         }|                    d          d d         }t          ||dd|  d	| 
           d S )Nr   r   Fr   i   r1   gV瞯<zacovf not equal for r   )atolr   )r2   r   r   r
   invpowerspdr4   r   )r7   r8   r   r   r   ac1ac2s          r(   test_armafftr      s     E
Aruee444A2r2D


4
 
 "
%C
**R.."
CSu&GR&G&G2&G&G     r*   c                  |   t          g d          } t          | j                  \  }}t          |dg           t	          |dg           t          g d          } t          | j                  \  }}t          |g d           t	          |g d           t          ||          }t	          | j        |           d S )N)r   r   r   皙皙?r!   )r   皙?r   r   )rG   rG   r   )r   r   r!   )r   r   arcoefsr   r   r   )r9   coefslocsr7   s       r(   test_lpol2index_index2lpolr      s    ///**GW_--KE4u%%%s---..GW_--KE4000111yyy!!!	E4	 	 B"%%%%%r*   c                   \    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestArmaProcessc                 @   t                      }t          |j        t          j        g                      t          |j        t          j        g                      t          ddg          }t          |j        t          j        dg                     t          |j        t          j        g                      t          ddg          }t          |j        t          j        g                      t          |j        t          j        dg                     d S )Nr   r   r   r8   )r   r   r   r2   r3   macoefs)selfr9   s     r(   test_empty_coeffz TestArmaProcess.test_empty_coeff  s    --W_bhrll333W_bhrll333q$i((W_bhuoo666W_bhrll333!T+++W_bhrll333W_bhv&6&677777r*   c                 &   ddg}dg}|                     dd           |                     dd           dt          j        |          z  }|}t          ||          }t          j        t          j        |j                  t          j        |j                            }t          |j        |j                   t          |j	        |j	                   t          |j
        |j
                   t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |          }t          j        t          j        |j                            }t          |j        |j                   t          |j	        |j	                   t          |j
        |j
                   t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |	          }t          j        t          j        |j                  
          }t          |j        |j                   t          |j	        |j	                   t          |j
        |j
                   t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |j        |j                   t                      }t          j                    }t          |j        |j                   t          |j	        |j	                   t          |j
        |j
                   t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |j        |j                   d S )N?r   r   r   rC   r   )r7   )arrootsr   )maroots)insertr2   r3   r   
from_rootsr   r   r   r   r   rc   isinvertibleisstationary)r   r7   r8   ar_pma_pprocess_directr9   s          r(   test_from_rootszTestArmaProcess.test_from_roots  s[   4[U
		!R
		!QBHRLL $T400(.2H)I)I28TbTjKkKkllGO^-CDDDGO^-CDDDGL.*=>>>GO^-CDDDGO^-CDDDG0.2MNNNG0.2MNNN$---(.:P1Q1QRRRGO^-CDDDGO^-CDDDGL.*=>>>GO^-CDDDGO^-CDDDG0.2MNNNG0.2MNNN$---(.:P1Q1QRRRGO^-CDDDGO^-CDDDGL.*=>>>GO^-CDDDGO^-CDDDG0.2MNNNG0.2MNNN$(**GO^-CDDDGO^-CDDDGL.*=>>>GO^-CDDDGO^-CDDDG0.2MNNNG0.2MNNNNNr*   c                    ddg}dg}t          j        t          j        |          t          j        |                    }|                    dd           |                    dd           dt          j        |          z  }|}t          ||          }t          |j        |j                   t          |j        |j                   t          |j        |j                   t          |j	        |j	                   t          |j
        |j
                   t          |j        |j                   t          |j        |j                   d S )Nr   r   r   r   rC   r   )r   from_coeffsr2   r3   r   r   r   r   rc   r   r   r   r   )r   r7   r8   r9   r   r   r   s          r(   test_from_coeffzTestArmaProcess.test_from_coeffE  s   4[U)"(2,,EE
		!R
		!QBHRLL $T400W_n&<===W_n&<===W\>#6777W_n&<===W_n&<===W)>+FGGGW)>+FGGGGGr*   c                    t          j        dg          }t          j        dg          }||z  }t          |j        t	          j        ddg                     t          |j        t	          j        g                      t          j        dgdg          }t          j        dg          }||z  }t          |j        t	          j        ddg                     t          |j        t	          j        dg                     t          j        dgdg          }|t	          j        ddg          t	          j        dg          fz  }t          |j        t	          j        ddg                     t          t          |j	        dg           d S )	Nr   gffffff?皙?g)\(rE   r   gffffff   )
r   r   r   r   r2   r3   r   r	   	TypeError__mul__)r   process1process2process3s       r(   test_process_multiplicationz+TestArmaProcess.test_process_multiplicationX  sZ   *C511*C511h&X%rxj0A'B'BCCCX%rx||444*C53%88*C511h&X%rxj0A'B'BCCCX%rx777*C53%88rxd44bhuooFFX%rxj0A'B'BCCCi!1A377777r*   c                 &   t          j        dgdg          }|                                }t          |           t	          |                    d          dk               t	          |                    d          dk               |                                }t	          |                    d          dk               t	          |                    dt          t          t          |                              z             dk               d S )Nr   rE   zAR: [1.0, -0.9]rC   zMA: [1.0, 0.2]znobs=100zat )
r   r   __str__printr   find__repr__strhexid)r   r   outs      r(   test_str_reprzTestArmaProcess.test_str_reprl  s    *C53%88  c


*++r1222)**b0111!!$$*+++SH%6%6!7!7788B>?????r*   c                 :   t          j        dg          }|                    d          }t          j        d          t          j        d          z  }t          ||           |                                }t          |j        d         |j	        k               d S )Nr   r1   g      $@r   )
r   r   acfr2   r3   r5   r   r   shaperc   )r   r   r   r=   s       r(   test_acfzTestArmaProcess.test_acfw  s}    *C511ll28C==BIdOO3!#x000llnn	!-.....r*   c                 "   t          j        dg          }|                    d          }t          j        ddgdgdz  z             }t          ||           |                                }t          |j        d         |j        k               d S )Nr   r1   r   r      )	r   r   pacfr2   r3   r   r   r   rc   )r   r   r   r=   s       r(   	test_pacfzTestArmaProcess.test_pacf  s    *C511}}R  8QHsQw.//!$111}}
1./////r*   c                 R   t          j        dg          }t          |j        d           t          j        ddg          }t          |j        d           t          j        ddg          }t	          t          j        |j                             t          |j        d           d S )Ng?Fr   r   Tg      ?rl   )r   r   r   r   r   r2   re   r   )r   r   s     r(   test_isstationaryz!TestArmaProcess.test_isstationary  s    *C511X*E222*C;77X*D111*C;77bfX%&&'''X*E22222r*   c                     t          j        g dg          }|                    d          }t          |dt	          j        d          z             d S )Nr   r[   r   g      Y@)r   r   arma2arr   r2   r5   )r   r   valss      r(   test_arma2arzTestArmaProcess.test_arma2ar  sN    *2u55$$D4BIe,<,<"<=====r*   c                    t          j        g dg          }|                    d          }t          |j        t          j        ddg                     t          j        g dg          }|                    d          }t          |j        t          j        ddg                     t          j        g dg          }|                    d          \  }}t          |d           t          |t          j        ddg                     d S )Ng      @Tr   r   Fr   )r   r   invertrootsr   r8   r2   r3   r   )r   r   r   roots
invertables        r(   test_invertrootsz TestArmaProcess.test_invertroots  s    *2u55''--HK3*)=)=>>>*2u55''--HK3*)=)=>>>*2u55$0077zZ'''E28QH#5#566666r*   c                    t          j        dg          }t          j                            d           |                                }t          j                            d           t          j                            d          }t          dd          D ]}d||dz
           z  ||         z   ||<   t          ||           t          j        ddg          }t          j                            d           |                                }t          j                            d           t          j                            d          }d|d         z  |d         z   |d<   t          dd          D ]+}d||dz
           z  d||dz
           z  z
  ||         z   ||<   ,t          ||           t          j        ddg          }t          j                            d           |                    d	          }t          j                            d           t          j                            d
          }d|d         z  |d         z   |d<   t          dd
          D ]+}d||dz
           z  d||dz
           z  z
  ||         z   ||<   ,t          ||dd                     t          j                            d           |                    d          }t          |j
        d           d S )Nr   i90  r[   r   r   r   r   r!   )burninr   )r[      )nsample)r   r   r2   r{   r|   generate_samplerandnr+   r   r   r   )r   r9   sampler=   r%   s        r(   test_generate_samplez$TestArmaProcess.test_generate_sample  s   )3%00
	u((**
	u9??3''q# 	> 	>AQ/(1+=HQKKFH---)3+66
	u((**
	u9??3''HQK'(1+5q# 	 	Ahq1uo%hq1uo(==K QKK 	FH---)3+66
	u(((44
	u9??3''HQK'(1+5q# 	 	Ahq1uo%hq1uo(==K QKK 	FHSTTN333
	u(((::V\8,,,,,r*   c                     t          j        dg          }|                    d          }t          |dt	          j        d          z             d S )Nr   r1   )r   r   impulse_responser   r2   r5   )r   r9   rb   s      r(   test_impulse_responsez%TestArmaProcess.test_impulse_response  sJ    )3%00%%b))Bry}} 455555r*   c           	      N   t                      }|                                }t          |d         t          j        dt          j        dd                     t          |d         t          j        dt          j        z            dz  t          j        d          z             d S )Nr   r[   Fr   r!   )r   periodogramr   r2   r   r   sqrtones)r   r9   pgs      r(   test_periodogramz TestArmaProcess.test_periodogram  s~    --  ""BqE2;q"%e#D#DEEEBqE271ru9#5#5#9BGCLL#HIIIIIr*   N)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r*   r(   r   r     s        8 8 83O 3O 3OjH H H&8 8 8(	@ 	@ 	@/ / /0 0 0	3 	3 	3> > >
7 7 7$- $- $-L6 6 6
J J J J Jr*   r   dseasonalTc                    |sdgng d}|sdgng d}t          j        ||d          }t          j        t	          j        ddd          dt                    }|                    d          }| dk    rt          j	        |          }t          j
        ||	          }|rd
nd }t          |d| df|          }|                                }	t          j        |	          }
|rdnd}|
j        j        |k    sJ |
j        j        |k    sJ d S )Nr   )r   r   r   rE   g{GzĿr   )r   r   r   rE   g{Gzi  il  r   )periodsfreq)index)r   r   r   r   )orderseasonal_order)r   )r   )r   r   pd
date_rangedtdatetimer   r   r2   cumsumSeriesr   fitfrom_estimationr   r   r   )r  r  r7   r8   apidxdatar  modr:   ap_fromr   s               r(   test_from_estimationr    s,    	;#$;$;$;B	;#$;$;$;B		 R	-	-B
-D!Q//;
O
O
OCc""DAvvy9T%%%D%-7\\4N
Q1In
E
E
EC
''))C)#..G&DD$E? E))))? E))))))r*   )7statsmodels.compat.pandasr   r  r  numpyr2   numpy.testingr   r   r   r   r   r	   pandasr	  pyteststatsmodels.sandbox.tsa.fftarmar
   statsmodels.tsa.arima.modelr   statsmodels.tsa.arima_processr   r   r   r   r   r   r   r   r   statsmodels.tsa.tests.resultsr   -statsmodels.tsa.tests.results.results_processr   arlistmalist	DECIMAL_4r/   r>   rA   rX   rm   rv   markparametrizer{   standard_normalr   r   r   r   r   r   r   r  r"   r*   r(   <module>r'     s   1 1 1 1 1 1                             3 3 3 3 3 3 - - - - - -
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ; : : : : :     
 	EIHNN	
 %!SAt9nnn	5		  	  	 # # #&     B B B(" " "J' ' '" v&&v&&")";!<==. . >= '& '&."A A AA A A v&&v&&  '& '&2 v&&v&&
 
 '& '&
& & &TJ TJ TJ TJ TJ TJ TJ TJn q!f%%dV,,* * -, &%* * *r*   