
    !g
                         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 Zd	 Z G d
 d      Zy)zA
Created on Nov. 29, 2022

Author: Josef Perktold
License: BSD-3
    N)assert_allclose)OLS)QuantReg)norms)RLMc                     | d| dz  z  z   S )zmean function for example      ?    xs    e/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/robust/tests/test_mquantiles.py	mean_funcr      s    tad{?    c                 d    dt        j                  ddt        j                  |       z  z         z  S )z'standard deviation function for exampleg?g      @      ?)npexpabsr   s    r   std_funcr      s(    dRVVAY..///r   c                   (    e Zd Zed        Zd Zd Zy)TestMQuantilesc                 0   t         j                  j                  d       d}t         j                  j                  dd|      }t	        |      t        |      t         j                  j                  |      z  z   }t        j                  ||d      | _	        y )Ni+	       )tempdens)
r   randomseeduniformr   r   randnpd	DataFramedf)clsnobsr   ys       r   setup_classzTestMQuantiles.setup_class"   sl     			v IIb!T*aL8A;)>>>q!45r   c                     t        d| j                        j                  d      }|j                  j                  }|j                  j
                  }t        j                  dt        j                               }t        |||      }|j                         }t        |j                  |j                  d       t        |j                  |j                  d       t        |j                  |j                  d       y )Ndens ~ temp + I(temp ** 2.0)F)use_t      ?M绽|=rtol)olsr%   fitmodelendogexogr   MQuantileNormLeastSquaresr   r   paramsbsepvalues)selfres_olsr(   xxmq_normmod_rlmres_rlms          r   test_olszTestMQuantiles.test_ols.   s     4dgg>BBBOMM]]%%c5+=+=+?@aw'++-UCW[[u=uEr   c                 2   d}t        d| j                        }|j                  }|j                  }dD ]  }|j	                  |      }t        j                  |t        j                  |            }t        |||      }|j	                         }	t        |	j                  |j                  d       t        |	j                  |j                  d	        d
}d}t        ||t        j                  |            }|j	                         }t        j                  |t        j                  |            }t        |||      }|j	                         }	t        |	j                  |j                  d       t        |	j                  |j                  d       y )Ngư>r+   )r	   r   )q)tr.   gMb@?r1   gMbP?r-   g{Gz?r0   )quantregr%   r6   r7   r4   r   r8   HuberTr   r   r:   fittedvalues)
r=   t_epsmod1r(   r?   rE   res1r@   rA   rB   s
             r   test_quantregzTestMQuantiles.test_quantreg>   s<    6@JJYY 
	PA 88a8=D))!U\\E-BCG!R7+GkkmGGNNDKKdCG00$2C2C$O
	P 1bELL512xxz%%a)>?aw'++-%@,,d.?.?eLr   N)__name__
__module____qualname__classmethodr)   rC   rM   r   r   r   r   r       s     	6 	6F  Mr   r   )__doc__numpyr   numpy.testingr   pandasr#   #statsmodels.regression.linear_modelr   *statsmodels.regression.quantile_regressionr   statsmodels.robustr   &statsmodels.robust.robust_linear_modelr   from_formular3   rG   r   r   r   r   r   r   <module>r[      sM     )  3 ? $ 6	  
0
>M >Mr   