
    !g	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jV                  jY                  de"      ejV                  jY                  de#      ejV                  jY                  dejZ                  j\                  g      d                      Z/d Z0d Z1ejV                  jY                  de"      ejV                  jY                  de#      d               Z2ejV                  jY                  de"      ejV                  jY                  de#      d               Z3d Z4 G d d       Z5ejV                  jY                  d!d d
g      ejV                  jY                  d"d#g      d$               Z6y)%    )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|       }t        |       D cg c]  }d|z  ||z  z  d|dz  z
  z   }}t        ||       y c c}w N   r   r   r      )r   ranger   )Nphisigmarep1irep2s         e/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/tsa/tests/test_arima_process.pytest_arma_acovfr)   /   sh    
A
CEq3$i!a(D=B1XFC%K#("a#(l3FDFD$ Gs   Ac                     t        j                  ddg      } t        j                  dg      }t        | |      }|j                  d      }d}dt        j                  d      z  }||z  }t        |j                  d       t        ||       y )Nr   gCl
   g  B@gCl?)nparrayr   acovfaranger   ndimr   )armaprocessressig2corrsexpecteds          r(   test_arma_acovf_persistentr8   ;   sy     
1g,	B	1#B"b!G
--
C !Dbiim#Ee|H1C"    c            	          d} d}d}t        d| gdg|       }t        j                  t        |       D cg c]  }d|z  ||z  z  d|dz  z
  z   c}      }|dd|dz  z
  z  z  }t	        ||       y c c}w r   )r   r,   r-   r!   r   )r"   r#   r$   r%   r&   r.   r'   s          r(   test_arma_acfr;   N   s    
A
CEQIsA&DHH:?(CQusax	1sax<	0CE C1sax<()DD$ 	Ds   A1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                         y )
N)r         ?r   )r   r   皙?)r   r   r?   r   )r   r   r?   r   ffffffֿ)r   r   r?   r   r@   皙)r   r=   r>   rA   )r   r=   r>   rA   皙?)r   r=   r>   rA   rB   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)rC   	example_1	example_2	example_3	example_4	example_5	example_6	example_7s           r(   test_arma_acf_compare_R_ARMAacfrR   ]   s    1v6$&6&G&GH4II/@@A(89II/@@A(?@II/@@A(EFII/@@A,k:II/@@A2K@II/@@A9;GII/@@Ar9   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             y )Nc                 *   t        j                  t        j                  |       dz
        dkD  rt        dd|z        }nt        dd|z        }t	        | ||      }|d   dkD  r|d	z  }t	        | ||      }|d   dkD  r|d
kD  r`|dk  r[t        |      }t        j                  t        |      D cg c]'  }t        j                  |d ||z
  |z
   ||||z
         ) c}      }n&t        j                  ||d      t        |      dz
  d  }|d | S c c}w )Nr   r   i  r    d   leadsr=   g-C6
?r+   iP  i  full)
r,   abssummaxr   lenr-   r!   dot	correlate)r1   r2   nobsnobs_irirendtr.   s           r(   arma_acovf_historicalzKtest_arma_acov_compare_theoretical_arma_acov.<locals>.arma_acovf_historicalw   s   66"&&*q.!C'$D)G#q4x(G"2r9fxrMG&r2W=B fx U?td{b'CHH #4[ FF2.d
Q/Ad
1CDE LLR0R1?EUd|s   1,Dr         r?   gGz)r+   )r   r   )rd   s    r(   ,test_arma_acov_compare_theoretical_arma_acovrf   q   sc    * At9q#h'q$i!S2 Au:3x(q%j1c(3r9   c                    t        |      }| d d d   } |d d d   }t        |       t        |      }}dgt        ||      z  }t        |      D ]u  }||   }|r|t        j                  || d  |       z  }|r<|t        j                  dg||z
  z  t        |t        d||z
        |       z   |      z  }|j                  |       w t        j                  |t        ||      d        S )Nr=   r   )r\   r[   r!   r,   r]   listappendr-   )	r1   r2   etaTpqr'   rc   yts	            r(   _manual_arma_generate_samplero      s    CA	DbDB	DbDBr7CGqA3Q?D1X V"&&qbcB''B"&&!Ac#aQ-!.D)EErJJBB 88DQ%&&r9   r1   r2   distc                 L   d}t         j                  j                  d        | |      }t         j                  j                  d       t        ||||       }dt        j                  |dd        z  }t        j                  |dd        }t        |||      }t        ||d       y )NrU   i  )distrvsr=   r      )r,   randomseedr   r-   ro   r   )	rp   r1   r2   rk   rj   r%   	ar_params	ma_paramsr'   s	            r(   test_arma_generate_samplerx      s     	AIINN4
q'C IINN4B48DRXXbf%%IAB I'	9cBDdD"-r9   c                  j    d} t        t        d|       dg|       }t        |t        d|       d       y )NrU   皙?)nr   rs   )r   r   r   r   )r{   mafromars     r(   test_fir}      s1    A$Ysa%81#qAHh	#(;R@r9   c                  ^   t        t        j                  t        j                  d      dd  } t        t        j                  t        j                  d      dd  }t	        t        j
                  j                         |d       t	        t        j                  j                          | d       y )N   rV   r      )r   r   r2   r1   r   marepravelarrep)r   r   s     r(   test_arma_impulse_responser      sq    !'**gjjCABGE!'**gjjCABGEgmm113UB?w}}2244eR@r9   c           	         d}t        j                  dt         j                  |d      }t        | |d      }|j	                  |      \  }}|j                  |d      \  }}|j                  |dz        \  }	}
t        ||       t        ||       t        ||
d | d       t        ||	d | d	d
|  d|        t        ||d	d|  d|        y )Nr   r   Fendpoint   r    r   )decimal   zspdr spdd not equal for , )r   err_msgzspdr spdp not equal for )	r,   linspacepir
   spdrootsspdpoly	spddirectr   r   )r1   r2   nfreqwarmaspdrwrspdpwpspddwds              r(   test_spectrumr      s     E
Aruuee4A2r2D}}QHD"||As#HD"~~eai(HD"BB2fu:r2Ve*2$b5	 *2$b5	r9   c           	          d}t        j                  dt         j                  |d      }t        | |d      }|j	                  d      d d }|j                  d      d d }t        ||dd|  d	| 
       y )Nr   r   Fr   i   r+   gV瞯<zacovf not equal for r   )atolr   )r,   r   r   r
   invpowerspdr.   r   )r1   r2   r   r   r   ac1ac2s          r(   test_armafftr      sy     E
Aruuee4A2r2D


4
 "
%C
**R."
CSu(<RD2$&Gr9   c                  H   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                  |       y )N)r   r   r   皙皙?r    )r   皙?r   r   )rA   rA   r   )r   r   r    )r   r   arcoefsr   r   r   )r3   coefslocsr1   s       r(   test_lpol2index_index2lpolr      s    /*GW__-KE4u%s-.GW__-KE401y!	E4	 B"%r9   c                   Z    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y)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             y )Nr   r   r   r2   )r   r   r   r,   r-   macoefs)selfr3   s     r(   test_empty_coeffz TestArmaProcess.test_empty_coeff  s    -W__bhhrl3W__bhhrl3q$i(W__bhhuo6W__bhhrl3!T+W__bhhrl3W__bhhv&67r9   c                 ~	   ddg}dg}|j                  dd       |j                  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                         y )N?r   r   r   r=   r   )r1   )arrootsr   )maroots)insertr,   r-   r   
from_rootsr   r   r   r   r   r_   isinvertibleisstationary)r   r1   r2   ar_pma_pprocess_directr3   s          r(   test_from_rootszTestArmaProcess.test_from_roots  s(   4[U
		!R
		!QBHHRL $T40((.2H2H)I288TbTjTjKklGOO^-C-CDGOO^-C-CDGLL.*=*=>GOO^-C-CDGOO^-C-CDG00.2M2MNG00.2M2MN$-((.:P:P1QRGOO^-C-CDGOO^-C-CDGLL.*=*=>GOO^-C-CDGOO^-C-CDG00.2M2MNG00.2M2MN$-((.:P:P1QRGOO^-C-CDGOO^-C-CDGLL.*=*=>GOO^-C-CDGOO^-C-CDG00.2M2MNG00.2M2MN$((*GOO^-C-CDGOO^-C-CDGLL.*=*=>GOO^-C-CDGOO^-C-CDG00.2M2MNG00.2M2MNr9   c                    ddg}dg}t        j                  t        j                  |      t        j                  |            }|j	                  dd       |j	                  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                         y )Nr   r   r   r   r=   r   )r   from_coeffsr,   r-   r   r   r   r   r_   r   r   r   r   )r   r1   r2   r3   r   r   r   s          r(   test_from_coeffzTestArmaProcess.test_from_coeffE  s   4[U))"((2,E
		!R
		!QBHHRL $T40W__n&<&<=W__n&<&<=W\\>#6#67W__n&<&<=W__n&<&<=W))>+F+FGW))>+F+FGr9   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       y )	Nr   gffffff?皙?g)\(r?   r   gffffff   )
r   r   r   r   r,   r-   r   r	   	TypeError__mul__)r   process1process2process3s       r(   test_process_multiplicationz+TestArmaProcess.test_process_multiplicationX  s>   **C51**C51h&X%%rxxj0A'BCX%%rxx|4**C53%8**C51h&X%%rxxj0A'BCX%%rxx7**C53%8rxxd4bhhuoFFX%%rxxj0A'BCi!1!1A37r9   c                    t        j                  dgdg      }|j                         }t        |       t	        |j                  d      dk7         t	        |j                  d      dk7         |j                         }t	        |j                  d      dk7         t	        |j                  dt        t        t        |                  z         dk7         y )Nr   r?   zAR: [1.0, -0.9]r=   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 c
*+r12)*b01!$*+SH%6!778B>?r9   c                 *   t        j                  dg      }|j                  d      }t        j                  d      t        j
                  d      z  }t        ||       |j                         }t        |j                  d   |j                  k(         y )Nr   r+   g      $@r   )
r   r   acfr,   r-   r/   r   r   shaper_   )r   r   r   r7   s       r(   test_acfzTestArmaProcess.test_acfw  sj    **C51ll288C=BIIdO3!#x0lln		!-.r9   c                    t        j                  dg      }|j                  d      }t        j                  ddgdgdz  z         }t        ||       |j                         }t        |j                  d   |j                  k(         y )Nr   r+   r   r      )	r   r   pacfr,   r-   r   r   r   r_   )r   r   r   r7   s       r(   	test_pacfzTestArmaProcess.test_pacf  sm    **C51}}R 88QHsQw./!$1}}

1./r9   c                 `   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       y )Ng?Fr   r   Tg      ?re   )r   r   r   r   r   r,   rY   r   )r   r   s     r(   test_isstationaryz!TestArmaProcess.test_isstationary  s    **C51X**E2**C;7X**D1**C;7bffX%%&'X**E2r9   c                     t        j                  g dg      }|j                  d      }t        |dt	        j
                  d      z         y )Nr   rU   r   g      Y@)r   r   arma2arr   r,   r/   )r   r   valss      r(   test_arma2arzTestArmaProcess.test_arma2ar  s>    **2u5$D4BIIe,<"<=r9   c                     t        j                  g dg      }|j                  d      }t        |j                  t        j                  ddg             t        j                  g dg      }|j                  d      }t        |j                  t        j                  ddg             t        j                  g dg      }|j                  d      \  }}t        |d       t        |t        j                  ddg             y )Ng      @Tr   rz   Fr   )r   r   invertrootsr   r2   r,   r-   r   )r   r   r   roots
invertables        r(   test_invertrootsz TestArmaProcess.test_invertroots  s    **2u5''-HKK3*)=>**2u5''-HKK3*)=>**2u5$007zZ'E288QH#56r9   c                 L   t        j                  dg      }t        j                  j	                  d       |j                         }t        j                  j	                  d       t        j                  j                  d      }t        dd      D ]  }d||dz
     z  ||   z   ||<    t        ||       t        j                  ddg      }t        j                  j	                  d       |j                         }t        j                  j	                  d       t        j                  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                  j	                  d       |j                  d	      }t        j                  j	                  d       t        j                  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                  j	                  d       |j                  d      }t        |j                  d       y )Nr   i90  rU   r   r   r   r   r    )burninr   )rU      )nsample)r   r   r,   rt   ru   generate_samplerandnr!   r   r   r   )r   r3   sampler7   r&   s        r(   test_generate_samplez$TestArmaProcess.test_generate_sample  sV   ))3%0
		u((*
		u99??3'q# 	>AQ/(1+=HQK	>FH-))3+6
		u((*
		u99??3'HQK'(1+5q# 	Ahq1uo%hq1uo(==K QK	 	FH-))3+6
		u(((4
		u99??3'HQK'(1+5q# 	Ahq1uo%hq1uo(==K QK	 	FHSTN3
		u(((:V\\8,r9   c                     t        j                  dg      }|j                  d      }t        |dt	        j
                  d      z         y )Nr   r+   )r   r   impulse_responser   r,   r/   )r   r3   ra   s      r(   test_impulse_responsez%TestArmaProcess.test_impulse_response  s;    ))3%0%%b)Bryy} 45r9   c           	      6   t               }|j                         }t        |d   t        j                  dt        j
                  dd             t        |d   t        j                  dt        j
                  z        dz  t        j                  d      z         y )Nr   rU   Fr   r    )r   periodogramr   r,   r   r   sqrtones)r   r3   pgs      r(   test_periodogramz TestArmaProcess.test_periodogram  si    -  "BqE2;;q"%%e#DEBqE2771ruu9#5#9BGGCL#HIr9   N)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   r    r9   r(   r   r     sI    83OjH&8(	@/0	3>
7$-L6
Jr9   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              }|j                  d      }| dk(  rt        j                  |      }t        j                  ||	      }|rd
nd }t        |d| df|      }|j                         }	t        j                  |	      }
|rdnd}|
j                  j                  |k(  sJ |
j                   j                  |k(  sJ y )Nr   )r   r   r   r?   g{GzĿrz   )rz   r   r   r?   g{Gzi  il  r   )periodsfreq)index)r   r   r   r   )orderseasonal_order)r   )r   )r   r   pd
date_rangedtdatetimer   r   r,   cumsumSeriesr   fitfrom_estimationr   r   r   )r   r   r1   r2   apidxdatar  modr4   ap_fromr   s               r(   test_from_estimationr    s     #$;B#$;B		 	 R	-B
--D!Q/;
OCc"DAvyy99T%D%-\4N
Q1In
EC
'')C))#.GD$E??  E)))??  E)))r9   )7statsmodels.compat.pandasr   r  r  numpyr,   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)   r8   r;   rR   rf   ro   markparametrizert   standard_normalrx   r}   r   r   r   r   r   r  r   r9   r(   <module>r!     s   1      3 -
 
 
 ;
 	EIH	
 %!SAt9n	5		 #& B("J'" v&v&"))";";!<=. > ' '."AA v&v& ' '2 v&v&
 ' '
&TJ TJn q!f%dV,* - &*r9   