
    Vfd#              	          d dl mZ d dlZd dlmZ d dlZd dlZd dlm	Z	m
Z
 d dlZd dlZd dlmZmZ d dlmZmZ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! n# e"$ r Y nw xY wej#        j        d             Z$ej#        j        d             Z%ej#        j        d             Z&ej#        j        d             Z'ej#        j        d             Z(ej#        j        d             Z)ej#        j        d             Z*ej#        j        d             Z+ej#        j        d             Z,ej#        j        d             Z-ej#        j        ej#        .                    de e/dd          fe e/d          fg          ej#        .                    dddg          ej#        .                    dddg          d                                                 Z0dS )     )lmapN)BytesIO)assert_assert_equal)elnino	macrodata)
month_plotplot_acf	plot_pacfplot_predictquarter_plotseasonal_plot)arima_process)AutoReg)ARIMA)pyplotc                    t          j                    }|                    d          }t          j        d         }t          j        d         }t          j        ||          }t          j                            d          }|	                    d|j
                  }t          ||d           t          ||	           t          ||d 
           d S )No         ?g쿩r   ?  d   distrvs
   axlagsr   r   alpha)pltfigureadd_subplotnpr_tspArmaProcessrandomRandomStategenerate_samplestandard_normalr
   close_figuresfigr   armaarmaprocessrsacfs           Hlib/python3.11/site-packages/statsmodels/graphics/tests/test_tsaplots.pytest_plot_acfr8      s     *,,C			B	y	B	xB/"b))K			t	$	$B

%
%c23E
%
F
FCSRb!!!!SRSRt$$$$$$    c                    t          j                    }|                    d          }t          j        d         }t          j        d         }t          j        ||          }t          j                            d          }|	                    d|j
                  }t          ||t          j        dd          	           t          ||d
d           t          ||d d           d S Nr   r   r   r   r   r         r   r   F)r   r    zero)r   r#   r>   )r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r
   aranger/   s           r7   test_plot_acf_irregularr@   /   s     *,,C			B	y	B	xB/"b))K			t	$	$B

%
%c23E
%
F
FCSRbi2..////SRbu----SRt%000000r9   c                    t          j                    }|                    d          }t          j        d         }t          j        d         }t          j        ||          }t          j                            d          }|	                    d|j
                  }t          ||           t          ||d            d S )	Nr   r   r   r   r   r   r!   r"   )r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r0   r1   r   r2   r3   r4   r5   pacfs           r7   test_plot_pacfrD   ?   s     *,,C			B	y	B	xB/"b))K			t	$	$B&&sB4F&GGDdrdr&&&&&&r9   c                    t          j                    }|                    d          }t          j        d         }t          j        d         }t          j        ||          }t          j                            d          }|	                    d|j
                  }t                      }t          ||           |                    |d	           t                      }	t          j                    }
|
                    d          }t          ||d
           |
                    |	d	           t                      }t          j                    }|                    d          }ddi}t          |||           |                    |d	           |                    d           |	                    d           |                    d           |                                }|	                                }|                                }t!          ||k               t!          ||k               t!          ||k               d S )Nr   r   r   r   r   r   r!   rgbaformat-)r   ls
linestylesdashdotr   vlines_kwargsr   )r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r   savefigseekreadr   )r0   r1   r   r2   r3   r4   r5   rC   buffbuff_linestylefig_linestylebuff_with_vlinesfig_with_vlinesrN   plain	linestylewith_vliness                    r7   test_plot_pacf_kwargsrZ   N   s    *,,C			B	y	B	xB/"b))K			t	$	$B&&sB4F&GGD99DdrKKVK$$$YYNJLLM		"	"3	'	'Bdrc"""".888yyjllO		$	$S	)	)B!9-Mdr7777,V<<<IIaLLL!IIKKE##%%I"''))KEYK5 !!!I$%%%%%r9   c                 :   t          j                    }|                    d          }t          j        d         }t          j        d         }t          j        ||          }t          j                            d          }|	                    d|j
                  }t                      }t          ||           |                    |d	           t                      }	t          j                    }
|
                    d          }d
di}t          |||           |
                    |	d	           |                    d           |	                    d           |                                }|	                                }t!          ||k               d S )Nr   r   r   r   r   r   r!   rF   rG   rK   rL   rM   r   )r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r
   rO   rP   rQ   r   )r0   r1   r   r2   r3   r4   r5   r6   rR   rU   rV   rN   rW   rY   s                 r7   test_plot_acf_kwargsr\   w   se    *,,C			B	y	B	xB/"b))K			t	$	$B

%
%c23E
%
F
FC99DSRKKVK$$$yyjllO		$	$S	)	)B!9-MSR}5555,V<<<IIaLLL!IIKKE"''))KK5 !!!!!r9   c                 P   t          j                    }|                    d          }t          j        d         }t          j        d         }t          j        ||          }t          j                            d          }|	                    d|j
                  }t          j        |d d d<   t                      }t          ||d	           |                    |d
           |                    d           t          j                    }|                    d          }t                      }	t          ||d	           |                    |	d
           |	                    d           t!          |                                |	                                k               d S )Nr   r   r   r   r   r      drop)r   missingrF   rG   r   conservative)r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   nanr   r
   rO   rP   r   rQ   )
r0   r1   r   r2   r3   r4   r5   r6   rR   buff_conservatives
             r7   test_plot_acf_missingrd      s`    *,,C			B	y	B	xB/"b))K			t	$	$B

%
%c23E
%
F
FCC"I99DSR((((KKVK$$$IIaLLL
*,,C			B		SR0000KK!&K1111DIIKK,1133344444r9   c                    t          j                    }|                    d          }t          j        d         }t          j        d         }t          j        ||          }t          j                            d          }|	                    d|j
                  }t          ||t          j        dd          	           t          ||d
d           t          ||d d           d S r;   )r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r?   rB   s           r7   test_plot_pacf_irregularrf      s     *,,C			B	y	B	xB/"b))K			t	$	$B&&sB4F&GGDdr	!R 0 01111dr////drE222222r9   c                    t          j                    j        }|j                            t
                                        t                    |d<   |                    d          j	        
                                }t          j        d |j        j        D                       }t          |j        |d          }t          j        |          |_        t          |          }t          j        |d          |_        t          |          }t          j        |d          |_        t          |          }	 t%          j        d          5  t          |          }d	 |j        d
                                         D             }g d}t-          ||          D ])\  }}t/          |t0                    r||v sJ !||k    sJ *	 d d d            d S # 1 swxY w Y   d S # t2          j        $ r t7          j        d           Y d S w xY w)NYEARc                 T    g | ]%}d                      |d         |d         g          &S )rI   r<   r   )join).0xs     r7   
<listcomp>z#test_plot_month.<locals>.<listcomp>   s0    MMMqCHHadAaD\22MMMr9   zel nino)datesylabelMSfreqMDE_dec                 6    g | ]}|                                 S  get_text)rk   _s     r7   rm   z#test_plot_month.<locals>.<listcomp>   s     JJJqajjllJJJr9   r   )JanFeb)u   MärMrzAprMaiJunJulAugSepOktNovDezz!Failure due to unsupported locale)reason)r   load_pandasdatarh   astypeintapplystr	set_indexTunstackpdto_datetimeindexvaluesr	   DatetimeIndexPeriodIndexcalendardifferent_localeaxesget_xticklabelszip
isinstancetuplelocaleErrorpytestxfail)r0   dtarn   r1   labelsexpectedlblexps           r7   test_plot_monthr      sI   




#C(//#&&,,S11CK
--


!
)
)
+
+CNMMCI<LMMMNNE SZuY
?
?
?C  ''CI
S//C  T222CI
S//C u3///CI
S//CA&w// 	& 	&S//CJJCHQK,G,G,I,IJJJF  H  11 & &Sc5)) &#:::::#:::::	&#	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&, < A A A?@@@@@@@As7   ;G! A7GG! GG! GG! !$H	H	c           	         t          j                    j        }t          dj        t          |j                            t                    	                    t                    |j                            t                    	                    t                                        }t          |j        j        |           |                    t!          j        |          d           t          |j                   t!          j        t!          j        |          d          |_        t          |j                   t!          j        t!          j        |          d          |_        t          |j                   d S )NQT)inplacezQS-Octrq   )r   r   r   r   rj   r   yearr   r   r   r   quarterr   unempr   r   r   r   r   r   r   )r0   r   rn   s      r7   test_plot_quarterr      s'   


!
!
&CHOOC  &&s++S[-?-?-D-D-J-J3-O-O	
 	
 E !5))) MM".''M666  !6!6XFFFCI r~e443???CIr9   c                    t           j                            d          }|                    dd          }|dt          j        t          j        d          dz  t           j        z            d d d f         z  z  }|                                }t          j        t          j        dd          d	          }|                                }t          j
        ||gd
dg          j        }|                    d          d
         }g d}t          ||          }|                                d         }d |                                D             }	t!          ||	           d S )Nr            g      (@r=   r<   r^   )r   r<   r   monthsr   )rz   r{   Marr}   Mayr   r   r   r   Octr   Decr   c                 6    g | ]}|                                 S rv   rw   )rk   tls     r7   rm   z&test_seasonal_plot.<locals>.<listcomp>'  s     ;;;bkkmm;;;r9   )r'   r+   r,   randnsinr?   piraveltiler   	DataFramer   groupbyr   get_axesr   r   )
r0   r5   r   r   dfgroupedr   r1   r   outputs
             r7   test_seasonal_plotr     s:   			t	$	$B88BDAry+be344T111W===D::<<DWRYq"%%w//F\\^^F	tVnVX,>	?	?	?	ABjj""6*G  F 
(
(C		B;;b&8&8&:&:;;;F     r9   model_and_args   F)r    	old_names)r   r   r   )order
use_pandasTr#   g?c           	         |\  }}t           j                            d          }|                    d          }t	          dd          D ]-}||xx         d||dz
           z  d||dz
           z  z
  z  cc<   .|dd          }| rbt          j        dd	|j        d         d
z             }||j        d         dz           }	|d         }
t          j        ||d d                   }n |j        d         dz  }	|j        d         d
z   }
 ||fi |	                                }t          ||	|
|          }t          |t          j                  sJ d S )Nr   i  r   g?r<   r   r   z1960-1-1rs      )rr   periodsir   )r#   )r'   r+   r,   r.   ranger   
date_rangeshapeSeriesfitr   r   r$   Figure)r   r   r#   modelkwargsr5   yir   startendresr1   s                r7   test_predict_plotr   +  sg    #ME6			q	!	!B
4  A1d^^ 0 0	!aAhqQx//	#$$A jsAGAJOLLLek!n)*BiIauTcT{+++
agaj2o
%

V


 
 
"
"C
sE3e
4
4
4Cc3:&&&&&&&r9   )1statsmodels.compat.pythonr   r   ior   r   numpyr'   numpy.testingr   r   pandasr   r   statsmodels.datasetsr   r   statsmodels.graphics.tsaplotsr	   r
   r   r   r   r   statsmodels.tsar   r)   statsmodels.tsa.ar_modelr   statsmodels.tsa.arima.modelr   
matplotlibr   r$   ImportErrormarkr8   r@   rD   rZ   r\   rd   rf   r   r   r   parametrizedictr   rv   r9   r7   <module>r      s\   * * * * * *             / / / / / / / /      2 2 2 2 2 2 2 2                1 0 0 0 0 0 , , , , , , - - - - - -	((((((( 	 	 	D	 % % % 1 1 1 ' ' ' %& %& %&P " " "< 5 5 54 3 3 3 .A .A .Ab   2 ! ! !: tte,,,-tt)7L7L7L/MN  e}554,//' ' 0/ 65	  ' ' 's   A A#"A#