U
    KvfÌ  ã                   @   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þdddgZ	dddgZ
dZdZe rþdD ]˜Z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 ¡ƒ qddS ) é    N)Úarma_generate_sample)ÚArmaé
   éè  ç      à?c              	   C   s  |dkrdddg}|dkr$dddg}g }g }t | ƒD ]¬}t|||d |ƒ| d… }|| ¡ 8 }t|ƒ}	|	 d¡\}
}}}}| |
¡ |	 |
¡}t t 	||¡| ¡}|dk	rÊ| |t t 
|¡¡ ¡ q4| tjt |
¡ ¡ q4t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ç      ð?çš™™™™™á¿çš™™™™™¹¿ç333333Ó?çš™™™™™É?r   )é   r   é   )Úranger   Úmeanr   ZfitÚappendZ	geterrorsÚnpÚsqrtÚdotZdiagÚnanZ
zeros_likeZr_Úarray)ÚniterÚnsampleÚarÚmaÚsigÚresultsZresults_bseÚ_Úy2Zarest2Zrhohat2aZcov_x2aZinfodictZmesgZierZerr2aZsige2a© r   úG/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/sandbox/mcevaluate/arma.pyÚmcarma22	   s$    



r    c                 C   sþ   |d k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   ÚzerosÚshapeÚisnanÚanyÚprintr   r   ZmedianÚabs)ÚresÚrtZnanrowsr   r   r   Ú
mc_summary-   s"    
r*   Ú__main__r   r   r	   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   ÚtimeÚt0r)   Zres_rhoZres_bser&   Zstdr   r   r   r   Ú<module>   s2   
$

8


