U
    mdt                     @   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   gMbp?ZatolrtolgHz>)resresultsr   paramsbser   ZtvaluesZpvalues)selfr   r    r   f/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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 )NgMb`?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realintF)prepend      )r   )r   Zload_pandasdatanp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llf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{Gz?r
      g?gMbP?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.   r3   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?gI+?r   r   gdy=r   )r   r   r3   r   r"   arrayr   r4   r&   r   r   r+   )r   r3   r   r+   r(   Zres1Zres0Zres0br   r   r   test_glsar_iter0P   s    



zTestGLSARCorc.test_glsar_iter0N)r   r   r   classmethodr)   r-   r7   r9   r   r   r   r   r   '   s
   
r   )__doc__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   