U
    Ãmœdª
  ã                   @   s~   d Z ddlZddlmZ ddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ ejZe
jZdd	„ Zd
d„ ZG dd„ dƒZdS )zA
Created on Nov. 29, 2022

Author: Josef Perktold
License: BSD-3
é    N)Úassert_allclose)ÚOLS)ÚQuantReg)Únorms)ÚRLMc                 C   s   | d| d   S )zmean function for exampleç      Ð?é   © ©Úxr	   r	   úa/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/robust/tests/test_mquantiles.pyÚ	mean_func   s    r   c                 C   s   dt  ddt  | ¡  ¡ S )z'standard deviation function for examplegš™™™™™¹?g      @ç      è?)ÚnpÚexpÚabsr
   r	   r	   r   Ústd_func   s    r   c                   @   s(   e Zd Zedd„ ƒZdd„ Zdd„ ZdS )ÚTestMQuantilesc                 C   sR   t j d¡ d}t j dd|¡}t|ƒt|ƒt j |¡  }t ||dœ¡| _	d S )Ni+û	 éÈ   éüÿÿÿé   )ÚtempZdens)
r   ÚrandomÚseedÚuniformr   r   ZrandnÚpdZ	DataFrameÚdf)ÚclsZnobsr   Úyr	   r	   r   Úsetup_class"   s
    zTestMQuantiles.setup_classc                 C   s„   t d| jƒjdd�}|jj}|jj}t dt ¡ ¡}t	|||d�}| ¡ }t
|j|jdd� t
|j|jdd� t
|j|jdd� d S )Núdens ~ temp + I(temp ** 2.0)F)Zuse_tç      à?©ÚMç»½×Ùß|Û=©Zrtol)Úolsr   ÚfitÚmodelÚendogÚexogr   ÚMQuantileNormZLeastSquaresr   r   ÚparamsZbseZpvalues)ÚselfZres_olsr   ÚxxÚmq_normÚmod_rlmÚres_rlmr	   r	   r   Útest_ols.   s    zTestMQuantiles.test_olsc           
      C   sø   d}t d| jƒ}|j}|j}dD ]^}|j|d�}t |tj|d�¡}t|||d�}| ¡ }	t	|	j
|j
dd� t	|	j|jd	d� q d
}d}t||tj|d�d�}| ¡ }t |tj|d�¡}t|||d�}| ¡ }	t	|	j
|j
dd� t	|	j|jdd� d S )Ng�íµ ÷Æ°>r    )r   r   )Úq)Útr"   gü©ñÒMb@?r%   gü©ñÒMbP?r!   g{®Gáz„?r$   )Úquantregr   r)   r*   r'   r   r+   ZHuberTr   r   r,   Zfittedvalues)
r-   Zt_epsZmod1r   r.   r3   Zres1r/   r0   r1   r	   r	   r   Útest_quantreg>   s(    zTestMQuantiles.test_quantregN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r2   r6   r	   r	   r	   r   r       s   
r   )Ú__doc__Únumpyr   Znumpy.testingr   Zpandasr   Z#statsmodels.regression.linear_modelr   Z*statsmodels.regression.quantile_regressionr   Zstatsmodels.robustr   Z&statsmodels.robust.robust_linear_modelr   Zfrom_formular&   r5   r   r   r   r	   r	   r	   r   Ú<module>   s   