U
    Kvft  ã                   @   sv   d Z ddlZddlmZmZmZ ddlmZ ddl	m
Z
 ddlmZ G dd„ dƒZG d	d
„ d
eƒZG dd„ deƒZdS )zYTesting GLSAR against STATA

Created on Wed May 30 09:25:24 2012

Author: Josef Perktold
é    N)Úassert_almost_equalÚassert_allcloseÚassert_equal)ÚGLSAR)Úadd_constant)Ú	macrodatac                   @   s   e Zd Zdd„ ZdS )ÚCheckStataResultsMixinc                 C   sZ   | j | j }}t|j|jdƒ t|j|jdƒ t|j|jddd t|j|jddd d S )Né   r   gü©ñÒMbp?©ZatolÚrtolgH¯¼šò×z>)ÚresÚresultsr   ÚparamsÚbser   ZtvaluesZpvalues)Úselfr   r   © r   úQ/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/regression/tests/test_glsar_stata.pyÚtest_params_table   s
    z(CheckStataResultsMixin.test_params_tableN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd„ ZdS )ÚCheckStataResultsPMixinc                 C   sB   | j | j }}t|j|jdd | |jj¡}t||jdd d S )Ngü©ñÒMb`?©r   g-Cëâ6Z?)r   r   r   ZfittedvaluesZpredictÚmodelÚexog)r   r   r   Z	predictedr   r   r   Útest_predicted   s    z&CheckStataResultsPMixin.test_predictedN)r   r   r   r   r   r   r   r   r      s   r   c                   @   s0   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	S )
ÚTestGLSARCorcc                 C   s   t  ¡ j}dt t |d j¡¡ }dt t |d j¡¡ }ttj||d d d… jf dd}t	||dƒ}| 
d	¡| _dd
lm} || _d S )Ni  ZrealgdpZrealinvZrealintéÿÿÿÿF)Úprependé   é   )r   )r   Zload_pandasÚdataÚnpZdiffÚlogÚvaluesr   Zc_r   Úiterative_fitr   Zresults.macro_gr_corc_statar   )ÚclsZd2Zg_gdpZg_invZexoggÚmod1r   r   r   r   Úsetup_class)   s    
$zTestGLSARCorc.setup_classc                 C   s.   t | jjj| jjdƒ t | jj| jjdƒ d S )Nr	   é   )r   r   r   Úrhor   ZllfZll)r   r   r   r   Útest_rho6   s    zTestGLSARCorc.test_rhoc           	      C   s  ddl m} | jjj}| jjj}t||dƒ}| d¡}||d|d d …d d…f d}| ¡ }t	|j
|j
dd	dg d
d
d t	|jj|j
dd… ddd t	|j|jdd	dg ddd tt|jd ƒdƒ t|jd d |j
ƒ |jddd}tt|jd ƒdƒ tt|jd ƒdƒ d S )Nr   )ÚARIMAr	   é
   )r	   r   r   r   )Úorderr   r   é   g{®Gáz„?r
   é   gš™™™™™©?gü©ñÒMbP?gš™™™™™¹?r   r    r)   r   r*   )Zstatsmodels.tsa.arima.modelr,   r   r   Úendogr   r   r%   Úfitr   r   r*   r   r   ÚlenÚhistory)	r   r,   r1   r   r'   r   Zmod_armaZres_armaZres2r   r   r   Útest_glsar_arima;   s    


zTestGLSARCorc.test_glsar_arimac                 C   s˜   | j jj}| j jj}t dddg¡}t|||ƒ}| ¡ }| d¡}| d¡}t	|j
|j
dd t	|j
|j
dd t	|jj|dd t	|jj|dd d S )NgåÐ"Ûù~Ê?gš™™™™™Ñ?gºI+‡ð?r   r   g•dyáý¥=r   )r   r   r1   r   r"   Úarrayr   r2   r%   r   r   r*   )r   r1   r   r*   r'   Zres1Zres0Zres0br   r   r   Útest_glsar_iter0P   s    



zTestGLSARCorc.test_glsar_iter0N)r   r   r   Úclassmethodr(   r+   r5   r7   r   r   r   r   r   '   s
   
r   )Ú__doc__Znumpyr"   Znumpy.testingr   r   r   Z#statsmodels.regression.linear_modelr   Zstatsmodels.tools.toolsr   Zstatsmodels.datasetsr   r   r   r   r   r   r   r   Ú<module>   s   