o
    þ0GfË  ã                   @   s  d dl Zd dlmZ d dlmZ ddd„Zdd	d
„Zedkr|	 g d¢Z	g d¢Z
dZdZer~dD ]PZd dlZe ¡ Zeded\ZZZedƒ edƒ eeƒ ededeƒ ede ¡ e ƒ edƒ eeeƒ edƒ eeƒ edƒ eee d ¡ƒ q/dS dS dS )é    N)Úarma_generate_sample)ÚArmaé
   éè  ç      à?c              	   C   s  |du rg d¢}|du rg d¢}g }g }t | ƒD ]V}t|||d |ƒ| d… }|| ¡ 8 }t|ƒ}	|	 d¡\}
}}}}| |
¡ |	 |
¡}t t 	||¡| ¡}|durc| |t t 
|¡¡ ¡ q| tjt |
¡ ¡ qtj|dd… |dd… f t |¡t |¡fS )zÇrun Monte Carlo for ARMA(2,2)

    DGP parameters currently hard coded
    also sample size `nsample`

    was not a self contained function, used instances from outer scope
      now corrected

    N©ç      ð?gš™™™™™á¿gš™™™™™¹¿©r   g333333Ó?gš™™™™™É?r   )é   r
   é   )Úranger   Úmeanr   ZfitÚappendZ	geterrorsÚnpÚsqrtÚdotZdiagÚnanZ
zeros_likeZr_Zarray)ÚniterÚnsampleÚarÚmaÚsigÚresultsZresults_bseÚ_Zy2Zarest2Zrhohat2aZcov_x2aZinfodictZmesgZierZerr2aZsige2a© r   úClib/python3.10/site-packages/statsmodels/sandbox/mcevaluate/arma.pyÚmcarma22   s$   

0r   c                 C   sþ   |d u rt  | jd ¡}t  | ¡ d¡}td| ¡ ƒ | |  } tdƒ tt  | | d  d¡¡ƒ tdƒ t| |  d¡ƒ tdƒ tt  | | d¡ƒ tdƒ tt  | | | d	 d¡ƒ td
ƒ tt  t  	| | ¡d¡ƒ tdƒ t| |k d¡ƒ d S )Nr   z!fractions of iterations with nansZRMSEr
   r   z	mean biaszmedian biaszmedian bias percentéd   zmedian absolute errorzpositive error fraction)
r   ZzerosÚshapeZisnanÚanyÚprintr   r   ZmedianÚabs)ÚresÚrtZnanrowsr   r   r   Ú
mc_summary,   s"   
r$   Ú__main__r   r	   éÈ   T)gš™™™™™¹?r   r   r   )r   r   z
Results for Monte CarloÚtruez	nsample =zsigma = zelapsed time for Monte Carloz
MC of rho versus truez
MC of bse versus zeroz
MC of bse versus std)r   r   NNr   )N)Znumpyr   Zstatsmodels.tsa.arima_processr   Zstatsmodels.tsa.arma_mler   r   r$   Ú__name__r   r   r   Zrun_mcr   ÚtimeZt0r#   Zres_rhoZres_bser    Zstdr   r   r   r   Ú<module>   s<    

$0
®?