
    M/Ph
                         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dS )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    h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/robust/tests/test_mquantiles.py	mean_funcr      s    tad{?    c                 `    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)    dRVAYY..////r   c                   0    e Zd Zed             Zd Zd ZdS )TestMQuantilesc                 @   t           j                            d           d}t           j                            dd|          }t	          |          t          |          t           j                            |          z  z   }t          j        ||d          | _	        d S )Ni+	       )tempdens)
r   randomseeduniformr   r   randnpd	DataFramedf)clsnobsr   ys       r   setup_classzTestMQuantiles.setup_class"   s~     		v Ib!T**aLL8A;;)>)>>>q!4455r   c                    t          d| j                                      d          }|j        j        }|j        j        }t          j        dt          j                              }t          |||          }|                                }t          |j        |j        d           t          |j        |j        d           t          |j        |j        d           d S )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     4dg>>BBBOOM]%c5+=+?+?@@aw'''++--UCCCCW[u====uEEEEEEr   c                    d}t          d| j                  }|j        }|j        }dD ]}|                    |          }t          j        |t          j        |                    }t          |||          }|                                }	t          |	j
        |j
        d           t          |	j        |j        d	           d
}d}t          ||t          j        |                    }|                                }t          j        |t          j        |                    }t          |||          }|                                }	t          |	j
        |j
        d           t          |	j        |j        d           d S )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>   sx    6@@JY 
	P 
	PA 88a8==D)!U\E-B-B-BCCG!R7+++GkkmmGGNDKdCCCCG0$2C$OOOOO 1bEL5111222xxzz%a)>)>)>??aw'''++--%@@@@,d.?eLLLLLLr   N)__name__
__module____qualname__classmethodr)   rC   rM   r   r   r   r   r       sS        	6 	6 [	6F F F  M  M  M  M  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[      s         ) ) ) ) ) )     3 3 3 3 3 3 ? ? ? ? ? ? $ $ $ $ $ $ 6 6 6 6 6 6	   
0 0 0
>M >M >M >M >M >M >M >M >M >Mr   