
    VfdC                        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 Z.d Z/ej)        *                    de           ej)        *                    de!          d                         Z0ej)        *                    de           ej)        *                    de!          d                         Z1d Z2 G d d          Z3ej)        *                    d d d	g          ej)        *                    d!d"g          d#                         Z4dS )$    N)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     Hlib/python3.11/site-packages/statsmodels/tsa/tests/test_arima_process.py
<listcomp>z#test_arma_acovf.<locals>.<listcomp>5   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=   9   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>U   s3    CCCQusax	1sax<	0CCCr)   r   r    )r   r1   r2   r*   r   )r+   r,   r3   r-   r%   r&   s       @@r'   test_arma_acfr@   L   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   rD   r   )r   r   rD   r   ffffffֿ)r   r   rD   r   rE   皙)r   rB   rC   rF   )r   rB   rC   rF   皙?)r   rB   rC   rF   rG   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)rH   	example_1	example_2	example_3	example_4	example_5	example_6	example_7s           r'   test_arma_acf_compare_R_ARMAacfrW   [   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 )Nr0   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   leadsrB   g-C6
?r0   iP  i  c           	      l    g | ]0}t          j        d z
  |z
           |z
                     1S )N)r1   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)	r1   abssummaxr   lenr2   r*   	correlate)r6   r7   rb   nobs_irr3   r`   ra   s     `  @@r'   arma_acovf_historicalzKtest_arma_acov_compare_theoretical_arma_acov.<locals>.arma_acovf_historicalu   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         rD   gGz)r0   )r   r   )rj   s    r'   ,test_arma_acov_compare_theoretical_arma_acovrl   o   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 )NrB   r   )rg   rf   r*   r1   r^   listappendr2   )	r6   r7   etaTpqr-   r_   yts	            r'   _manual_arma_generate_sampleru      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)   r6   r7   distc                 |   d}t           j                            d            | |          }t           j                            d           t          ||||           }dt          j        |dd                    z  }t          j        |dd                    }t          |||          }t          ||d           d S )NrZ   i  )distrvsrB   r      )r1   randomseedr   r2   ru   r   )	rv   r6   r7   rq   rp   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 )NrZ   皙?)nr   ry   )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   r7   r6   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 )	r1   linspacepir	   spdrootsspdpoly	spddirectr   r   )r6   r7   nfreqwarmaspdrwrspdpwpspddwds              r'   test_spectrumr      s*    E
Aruee444A2r2D}}QHD"||As##HD"~~eai((HD"BB2fuf:r2222VeV46BB;	    46BB;	     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   r0   gV瞯<zacovf not equal for r   )atolr   )r1   r   r   r	   invpowerspdr3   r   )r6   r7   r   r   r   ac1ac2s          r'   test_armafftr      s     E
Aruee444A2r2D


4
 
 "
%C
**R.."
CSuubbb""&M     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   )rF   rF   r   )r   r   r    )r   r   arcoefsr   r   r   )r8   coefslocsr6   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   r7   )r   r   r   r1   r2   macoefs)selfr8   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   rB   r   )r6   )arrootsr   )maroots)insertr1   r2   r   
from_rootsr   r   r   r   r   rb   isinvertibleisstationary)r   r6   r7   ar_pma_pprocess_directr8   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   rB   r   )r   from_coeffsr1   r2   r   r   r   r   rb   r   r   r   r   )r   r6   r7   r8   r   r   r   s          r'   test_from_coeffzTestArmaProcess.test_from_coeffC  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)\(rD   r   gffffff   )
r   r   r   r   r1   r2   r   r   	TypeError__mul__)r   process1process2process3s       r'   test_process_multiplicationz+TestArmaProcess.test_process_multiplicationV  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   rD   zAR: [1.0, -0.9]rB   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_reprj  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   r0   g      $@r   )
r   r   acfr1   r2   r4   r   r   shaperb   )r   r   r   r<   s       r'   test_acfzTestArmaProcess.test_acfu  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   r0   r   r      )	r   r   pacfr1   r2   r   r   r   rb   )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      ?rk   )r   r   r   r   r   r1   rd   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   rZ   r   g      Y@)r   r   arma2arr   r1   r4   )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   r7   r1   r2   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  rZ   r   r   r   r   r    )burninr   )rZ      )nsample)r   r   r1   rz   r{   generate_samplerandnr*   r   r   r   )r   r8   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   r0   )r   r   impulse_responser   r1   r4   )r   r8   ra   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   rZ   Fr   r    )r   periodogramr   r1   r   r   sqrtones)r   r8   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d	          }|                    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   rD   g{GzĿr   )r   r   r   rD   g{Gzi  il  r   Q)periodsfreq)index)r   r   r   r   )orderseasonal_order)r   )r   )r   r   pd
date_rangedtdatetimer   r1   cumsumSeriesr
   fitfrom_estimationr   r   r   )r   r  r6   r7   apidxdatar  modr9   ap_fromr   s               r'   test_from_estimationr    s,    	;#$;$;$;B	;#$;$;$;B		 R	-	-B
-D!Q//3
G
G
GCc""DAvvy9T%%%D%-7\\4N
Q1In
E
E
EC
''))C)#..G&DD$E? E))))? E))))))r)   )5r  r  numpyr1   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=   r@   rW   rl   ru   markparametrizerz   standard_normalr~   r   r   r   r   r   r   r  r!   r)   r'   <module>r&     s                               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)   