U
    Kvf                     @   s   d dl mZ d dlmZ d dlZd dlmZ ejZ	e
dddddddd	d	d
dddddZG dd dZdd Zdd ZdddZdddZdS )    )lzip)StringION)SimpleTable   =-%scrltxt)
empty_cellcolseprow_prerow_posttable_dec_abovetable_dec_belowheader_dec_below
header_fmtstub_fmttitle_alignheader_aligndata_alignsstubs_alignfmtc                   @   s   e Zd Zeddddgdddddddddd	d
d
dddZeedgdddddZeeddddgddddddZdd Zdd Zd%ddZ	dd Z
dd  Zd!d" Zd#d$ ZdS )&
VARSummary%#15.6F%#15.3Fz%#14.3Fr   r   r   r   r	   r
   r   r   r   )	data_fmtsr   r   r   r   r   r   r   r   r   r   r   r   r   r       N)r   	colwidthsr   r   r   z%#12.6gz%#10.4gz%#5.4gz    )r   r"   r   r   r   r   c                 C   s   || _ |  | _d S N)modelmakesummary)selfZ	estimator r(   D/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/tsa/vector_ar/output.py__init__E   s    zVARSummary.__init__c                 C   s   | j S r#   )r&   )r'   r(   r(   r)   __repr__I   s    zVARSummary.__repr__c                 C   sV   t  }||  d  ||  d  ||  d  ||  d  | S )z&
        Summary of VAR model
        
)r   write_header_table_stats_table_coef_table_resid_infogetvalue)r'   Zendog_names
exog_namesbufr(   r(   r)   r%   L   s    zVARSummary.makec           	      C   sd   dd l }| j}| }d}|jgdg|d|g|d|gg}d }d}t||||| jd}t|S )Nr   zSummary of Regression ResultsZOLSz%a, %d, %b, %Yz%H:%M:%S)zModel:zMethod:zDate:zTime:titletxt_fmt)timer$   	localtimeZ_model_typestrftimer   	part1_fmtstr)	r'   r8   r$   tZ
part1titleZ	part1dataZpart1headerZ
part1stubsZpart1r(   r(   r)   r.   Y   s      zVARSummary._header_tablec           	      C   s   | j }d}d}|jg|jg|jg|jgg}|jg|jg|jg|jgg}d }t	|||| j
d}t	|||| j
d}|| t|S )N)zNo. of Equations:zNobs:zLog likelihood:zAIC:)zBIC:zHQIC:zFPE:zDet(Omega_mle):)r7   )r$   neqsZnobsZllfZaicZbicZhqicZfpeZdetomegar   	part2_fmtZextend_rightr<   )	r'   r$   Zpart2LstubsZpart2RstubsZ
part2LdataZ
part2RdataZpart2LheaderZpart2LZpart2Rr(   r(   r)   r/   s   s    
zVARSummary._stats_tablec                 C   s   | j }|j}| j j}t|jj |jj |jj |j	j }d}t
 }||j |j |j }t|D ]p}d|j|  }	||	d  t||| ||d   ||d | jd}
|t|
d  ||d k rj|d qj| S )N)Zcoefficientz
std. errorzt-statZprobzResults for equation %sr,      r5   )r$   r>   r3   r   paramsTZravelstderrZtvaluesZpvaluesr   Zk_arZk_trendZk_exog_userrangenamesr-   r   default_fmtr<   r2   )r'   r$   kZXnamesdataheaderr4   Zdimisectiontabler(   r(   r)   r0      s.    


  zVARSummary._coef_tablec                 C   s:   t  }| jj}|d |t| jj||d  | S )Nz Correlation matrix of residuals
r,   )r   r$   rE   r-   pprint_matrixZ
resid_corrr2   )r'   r4   rE   r(   r(   r)   r1      s
    
zVARSummary._resid_info)NN)__name__
__module____qualname__dictrF   r;   r?   r*   r+   r%   r.   r/   r0   r1   r(   r(   r(   r)   r      sR   



r   c                 C   s   d}d}t | ||S )Nz"Normality skew/kurtosis Chi^2-testz3H_0: data generated by normally-distributed process)hypothesis_test_table)resultsr6   null_hypr(   r(   r)   normality_summary   s    rU   c                 C   s   t tddddgd}t }t| d | d | d t| d ggd	d
ddgdgd |d}||d  |t|d  ||d  |d| d   |d| d d   | S )Nr   r   r	   )r   Z	statisticZ
crit_valueZpvalueZdfzTest statisticzCritical Valuezp-valuer   r5   r,   zConclusion: %s H_0Z
conclusionz at %.2f%% significance levelZsignifd   )rQ   _default_table_fmtr   r   r<   r-   r2   )rS   r6   rT   r   r4   rL   r(   r(   r)   rR      s,    

  rR   c                    s   t  }t|t| }}|d kr8d  fdd|D }n
|f| }tdd |D d }td|}t|D ]\}	}
|t|
||	 7 }qj||d  t|D ]L\}}d| |}t|D ]}	|t| ||	f ||	 7 }q||d  q| S )	N
   c                    s"   g | ]}t tt|d   qS )   )maxlenr<   ).0r
   Z	min_spacer(   r)   
<listcomp>   s     z!pprint_matrix.<locals>.<listcomp>c                 S   s   g | ]}t t|qS r(   )r[   r<   )r\   xr(   r(   r)   r^      s     rY   r   r,   r	   )	r   r[   rZ   _pfixed	enumerater-   ljustrD   r2   )valuesZrlabelsZclabelsZ	col_spacer4   rB   KZ	row_spaceheadjhrJ   Zrlabliner(   r]   r)   rM      s"    

rM   c                 C   sD   t | tr*|r|| }nd|  }||S d|  d | |S d S )Nz%#8.6Fr	   )
isinstancefloatrjust)sspaceZnanRepZfloat_format	formattedr(   r(   r)   r`      s    


r`   )N)NN)Zstatsmodels.compat.pythonr   ior   ZnumpynpZstatsmodels.iolibr   arraymatrQ   rW   r   rU   rR   rM   r`   r(   r(   r(   r)   <module>   s4    
