U
    Kvf
                     @   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	   L/tmp/pip-unpacked-wheel-2v6byqio/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"   gMb@?r%   gMbP?r!   g{Gz?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__Z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   