a
    \:b!                     @   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e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g d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g d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.6Fr   %#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   )%#12.6gr#   z%#10.4gz%#5.4gz    )r   r"   r   r   r   r   c                 C   s   || _ |  | _d S N)modelmakesummary)selfZ	estimator r)   ?lib/python3.9/site-packages/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(   r9   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):)r8   )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*   r0   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-      r6   )r%   r?   r4   r   paramsTZravelstderrZtvaluesZpvaluesr   Zk_arZk_trendZk_exog_userrangenamesr.   r   default_fmtr=   r3   )r(   r%   kZXnamesdataheaderr5   ZdimiZsectiontabler)   r)   r*   r1      s*    


zVARSummary._coef_tablec                 C   s:   t  }| jj}|d |t| jj||d  | S )Nz Correlation matrix of residuals
r-   )r   r%   rF   r.   pprint_matrixZ
resid_corrr3   )r(   r5   rF   r)   r)   r*   r2      s
    
zVARSummary._resid_info)NN)__name__
__module____qualname__dictrG   r<   r@   r+   r,   r&   r/   r0   r1   r2   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)resultsr7   null_hypr)   r)   r*   normality_summary   s    rU   c                 C   s   t tg dd}t }t| d | d | d t| d ggg ddgd |d	}||d
  |t|d
  ||d
  |d| d   |d| d d   | S )N)r   r   r   r	   )r   Z	statisticZ
crit_valueZpvaluedf)zTest statisticzCritical Valuezp-valuerV   r   r6   r-   zConclusion: %s H_0Z
conclusionz at %.2f%% significance levelZsignifd   )rQ   _default_table_fmtr   r   r=   r.   r3   )rS   r7   rT   r   r5   rL   r)   r)   r*   rR      s$    
rR   c                    s   t  }t|t| }}|d u 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>       z!pprint_matrix.<locals>.<listcomp>c                 S   s   g | ]}t t|qS r)   )r\   r=   )r]   xr)   r)   r*   r_      r`   rZ   r   r-   r	   )	r   r\   r[   _pfixed	enumerater.   ljustrE   r3   )valuesZrlabelsZclabelsZ	col_spacer5   rC   KZ	row_spaceheadjhrK   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)sZspaceZnanRepZfloat_formatZ	formattedr)   r)   r*   rb      s    


rb   )N)NN)Zstatsmodels.compat.pythonr   ior   ZnumpyZnpZstatsmodels.iolibr   ZarrayZmatrQ   rX   objectr   rU   rR   rM   rb   r)   r)   r)   r*   <module>   s4    
