
    M/Phk+                        d dl 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 ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  ddgZ! G d	 d
          Z"eeeeeeeeeeeeeeedZ#d6dZ$d Z% G d de"          Z& G d de"          Z' G d de"          Z( G d de"          Z) G d de"          Z* G d de"          Z+ G d de"          Z, G d de"          Z- G d  d!e"          Z. G d" d#e"          Z/ G d$ d%e"          Z0 G d& d'e"          Z1 G d( d)e"          Z2 G d* d+e"          Z3 G d, d-e"          Z4 G d. d/e"          Z5d0 Z6d1 Z7d2 Z8d3 Z9d4 Z:d5 Z;dS )7    N)assert_allcloseassert_equalassert_almost_equal)	dmatrices)QuantReg   )biweight_chamberlainbiweight_hsheatherbiweight_bofingercosine_chamberlaincosine_hsheathercosine_bofingergaussian_chamberlaingaussian_hsheathergaussian_bofingerepan2_chamberlainepan2_hsheatherepan2_bofingerparzen_chamberlainparzen_hsheatherparzen_bofingerepanechnikov_hsheather_q75	Rquantregincome	Interceptc                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )CheckModelResultsMixinc                     t          t          j        | j        j        j        t                             | j        j        d d df         d           d S )Nr   MbP?rtol)	r   npravelres1paramslocidxres2tableselfs    u/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/regression/tests/test_quantile_regression.pytest_paramsz"CheckModelResultsMixin.test_params   sR    !1!5c!:;;	1-D	: 	: 	: 	: 	: 	:    c                     t          | j        j        d           t          t	          j        | j        j        j        t                             | j	        j
        d d df         d           d S )Nr   r   r    )r   r$   scaler   r"   r#   bser&   r'   r(   r)   r*   s    r,   test_bsezCheckModelResultsMixin.test_bse   se    TY_a(((!23!788	1-D	: 	: 	: 	: 	: 	:r.   c                     t          t          j        | j        j        j        t                             | j        j        d d df         d           d S )N   {Gz?r    )	r   r"   r#   r$   tvaluesr&   r'   r(   r)   r*   s    r,   test_tvaluesz#CheckModelResultsMixin.test_tvalues   sR    !2!6s!;<<	1-D	: 	: 	: 	: 	: 	:r.   c                    t           j        j                            | j        j        d d df         | j        j                  }t          t          j	        | j
        j        j        t                             |d           t           j        j                            | j
        j        | j        j                  dz  }t          t          j	        | j
        j                  |dd           d S )Nr4   g?r    g&.>g|=r!   atol)scipystatstsfr(   r)   df_rr   r"   r#   r$   pvaluesr&   r'   r6   )r+   pvals_statapvals_ts      r,   test_pvaluesz#CheckModelResultsMixin.test_pvalues#   s    km&&tyqqq!t'<dinMM!2!6s!;<<##	/ 	/ 	/ 	/ +-""49#4dinEEI!233d	8 	8 	8 	8 	8 	8r.   c                     t          | j                                        j        t                   | j        j        d d dd f         d           d S )Nr   r    )r   r$   conf_intr&   r'   r(   r)   r*   s    r,   test_conf_intz$CheckModelResultsMixin.test_conf_int-   sU    	**,,05	233/d	< 	< 	< 	< 	< 	<r.   c                 R    t          | j        j        | j        j        d           d S Nr   r    )r   r$   nobsr(   Nr*   s    r,   	test_nobsz CheckModelResultsMixin.test_nobs1   s%    		$??????r.   c                 R    t          | j        j        | j        j        d           d S rI   )r   r$   df_modelr(   df_mr*   s    r,   test_df_modelz$CheckModelResultsMixin.test_df_model4   &    	*DINFFFFFFr.   c                 R    t          | j        j        | j        j        d           d S rI   )r   r$   df_residr(   r?   r*   s    r,   test_df_residz$CheckModelResultsMixin.test_df_resid7   rQ   r.   c                 R    t          | j        j        | j        j        d           d S rI   )r   r$   	prsquaredr(   
psrsquaredr*   s    r,   test_prsquaredz%CheckModelResultsMixin.test_prsquared:   s'    	+TY-AMMMMMMr.   c                 v    t          t          j        | j        j                  | j        j        d           d S rI   )r   r"   arrayr$   sparsityr(   r*   s    r,   test_sparsityz$CheckModelResultsMixin.test_sparsity=   s>    !344	*	7 	7 	7 	7 	7 	7r.   c                 v    t          t          j        | j        j                  | j        j        d           d S rI   )r   r"   rZ   r$   	bandwidthr(   kbwidthr*   s    r,   test_bandwidthz%CheckModelResultsMixin.test_bandwidthA   s>    !455	)	6 	6 	6 	6 	6 	6r.   N)__name__
__module____qualname__r-   r2   r7   rC   rG   rL   rP   rT   rX   r\   r`    r.   r,   r   r      s        : : :: : :
: : :8 8 8< < <@ @ @G G GG G GN N N7 7 76 6 6 6 6r.   r   ))biwbofinger)re   chamberlain)re   	hsheather)cosrf   )ri   rg   )ri   rh   gaurf   )rk   rg   )rk   rh   )parrf   )rl   rg   )rl   rh   )eparf   )rm   rg   )rm   rh   rk   rf   c                     t           j        j                                        j        }t          d|d          \  }}t          ||                              d| |          }t          | |f         }||fS )Nfoodexp ~ income	dataframereturn_typeiid)vcovkernelr^   )	smdatasetsengelload_pandasdatar   r   fitd)ru   r^   rz   yXstatsmstatas          r,   	setup_funr   a   so    ;((**/D';GGGDAqa^^U6YOOFvy!"E5=r.   c                     t           j        j                                        j        } t          d| d          \  }}t          ||                              d          }t          t          j
        |j                  t          j        d           t          t          j
        |                                          t          j        d           t          t          j
        |j                  t          j        d           d S )Nro   rp   rq   皙?)q   )rv   rw   rx   ry   rz   r   r   r{   r   r"   rZ   fittedvaluesr   predictresid	residuals)rz   r}   r~   ress       r,   test_fitted_residualsr   i   s    ;((**/D';GGGDAq
1a..

r

"
"C!122I4JANNN//1GKKK++Y-@!DDDDDr.   c                   $    e Zd Zed             ZdS )TestEpanechnikovHsheatherQ75c                     t           j        j                                        j        }t          d|d          \  }}t          ||                              dddd          | _        t          | _
        d S )	Nro   rp   rq   g      ?rs   rm   rh   )r   rt   ru   r^   )rv   rw   rx   ry   rz   r   r   r{   r$   r   r(   )clsrz   r}   r~   s       r,   setup_classz(TestEpanechnikovHsheatherQ75.setup_classu   sl    { ,,..3+T{KKK1Aq>>%%%0; & = =-r.   Nra   rb   rc   classmethodr   rd   r.   r,   r   r   s   s-        . . [. . .r.   r   c                   $    e Zd Zed             ZdS )TestEpanechnikovBofingerc                 @    t          dd          \  | _        | _        d S )Nrm   rf   r   r$   r(   r   s    r,   r   z$TestEpanechnikovBofinger.setup_class       &uj99#(((r.   Nr   rd   r.   r,   r   r   ~   -        : : [: : :r.   r   c                   $    e Zd Zed             ZdS )TestEpanechnikovChamberlainc                 @    t          dd          \  | _        | _        d S )Nrm   rg   r   r   s    r,   r   z'TestEpanechnikovChamberlain.setup_class       &um<<#(((r.   Nr   rd   r.   r,   r   r      -        = = [= = =r.   r   c                   $    e Zd Zed             ZdS )TestEpanechnikovHsheatherc                 @    t          dd          \  | _        | _        d S )Nrm   rh   r   r   s    r,   r   z%TestEpanechnikovHsheather.setup_class       &uk::#(((r.   Nr   rd   r.   r,   r   r      -        ; ; [; ; ;r.   r   c                   $    e Zd Zed             ZdS )TestGaussianBofingerc                 @    t          dd          \  | _        | _        d S )Nrk   rf   r   r   s    r,   r   z TestGaussianBofinger.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestGaussianChamberlainc                 @    t          dd          \  | _        | _        d S )Nrk   rg   r   r   s    r,   r   z#TestGaussianChamberlain.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestGaussianHsheatherc                 @    t          dd          \  | _        | _        d S )Nrk   rh   r   r   s    r,   r   z!TestGaussianHsheather.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestBiweightBofingerc                 @    t          dd          \  | _        | _        d S )Nre   rf   r   r   s    r,   r   z TestBiweightBofinger.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestBiweightChamberlainc                 @    t          dd          \  | _        | _        d S )Nre   rg   r   r   s    r,   r   z#TestBiweightChamberlain.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestBiweightHsheatherc                 @    t          dd          \  | _        | _        d S )Nre   rh   r   r   s    r,   r   z!TestBiweightHsheather.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestCosineBofingerc                 @    t          dd          \  | _        | _        d S )Nri   rf   r   r   s    r,   r   zTestCosineBofinger.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestCosineChamberlainc                 @    t          dd          \  | _        | _        d S )Nri   rg   r   r   s    r,   r   z!TestCosineChamberlain.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestCosineHsheatherc                 @    t          dd          \  | _        | _        d S )Nri   rh   r   r   s    r,   r   zTestCosineHsheather.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestParzeneBofingerc                 @    t          dd          \  | _        | _        d S )Nrl   rf   r   r   s    r,   r   zTestParzeneBofinger.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestParzeneChamberlainc                 @    t          dd          \  | _        | _        d S )Nrl   rg   r   r   s    r,   r   z"TestParzeneChamberlain.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                   $    e Zd Zed             ZdS )TestParzeneHsheatherc                 @    t          dd          \  | _        | _        d S )Nrl   rh   r   r   s    r,   r   z TestParzeneHsheather.setup_class   r   r.   Nr   rd   r.   r,   r   r      r   r.   r   c                  2   t          j        ddgddgddgddggt           j                  } t          j        g dt           j                  }t          ||                               dd	          }|                                 t          |j        t          j        d
dg          dd           t          |j        t          j        ddg          dd           t          |j	        t          j        g d          dd           t          j        ddgddgddgddggt           j                  } t          j        g dt           j                  }t          ||                               dd	          }|                                 t          |j        t          j        ddg          dd           t          |j        t          j        ddg          dd           t          |j	        t          j        g d          dd           d S )Nr   r    @@dtyper   r   r4            ?rg   )r^           g|zK?g-C6?g#B;r9   g~w?gjȲ?Ԧ?)r   g'*7+?g]gՐ>r   g6Vz>g'KϦ?gר?)g6Vzg)*?gg/>)
r"   rZ   float64r   r{   summaryr   r%   r1   r   r~   r}   r   s      r,   test_zero_residr      sH    	1a&1a&1c(QH5RZHHHA
RZ000A
1a..

SM

:
:CKKMMMCJHc:.//E+ + + + CGHi455E+ + + + CIH ? ? ? @ @E+ + + +
 	1a&3(QHq#h7rzJJJA
RZ000A
1a..

SM

:
:CKKMMMCJ..)I J JE+ + + +CGRXz:&>??d       CIrx )J )J )J  K  KE+ + + + + +r.   c                  b   t          j        ddgddgddgddggt           j                  } t          j        g dt           j                  }t          ||                               ddd	
          }|                                }dt          |          v sJ dt          |          vsJ d S )Nr   r   r   r   r   r   r   rg   Tr^   use_tzP>|t|zP>|z|r"   rZ   r   r   r{   r   str)r~   r}   r   summs       r,   test_use_t_summaryr   
  s    
1a&1a&1c(QH5RZHHHA
RZ000A
1a..

SM

F
FC;;==Dc$ii#d))######r.   c                  f   t          j        ddgddgddgddggt           j                  } t          j        g dt           j                  }t          ||                               ddd	
          }|                    d          }dt          |          vsJ dt          |          v sJ d S )Nr   r   r   r   r   r   r   rg   Tr   g?)alphaz[0.025      0.975]z[0.1        0.9]r   )r~   r}   r   summ_20s       r,   test_alpha_summaryr     s    
1a&1a&1c(QH5RZHHHA
RZ000A
1a..

SM

F
FCkkk##Gs7||3333W------r.   c                     t          j        ddgddgddgddggt           j                  } t          j        g dt           j                  }t          ||                               d          }|                                 d S )Nr   r   r   r   r   r   r   )r"   rZ   r   r   r{   remove_datar   s      r,   test_remove_datar     s|    
1a&1a&1c(QH5RZHHHA
RZ000A
1a..

S
!
!COOr.   c                  2   t          j        g dg dg dg dgt           j                  } t          j        g dt           j                  }t          ||                               d          }t          |j                  | j        d         k    sJ d S )	N)r   r   r   )r   r   g?)r   r   g      ?)r   r   g      ?r   r   r   r   )r"   rZ   r   r   r{   lenr%   shape)r~   r}   res_collinears      r,   test_collinear_matrixr   &  s    
***jjj++{{{,35:	? 	? 	?A
RZ000AQNN&&s++M}#$$
222222r.   c                  t   t           j                            d          } t           j                            d          dz  }t           j                            d          }t          j        d          }t           j                            d          dz  }t          j        || ||| f          }t           j                            |          |j        d         k     sJ t          ||                              d          }t          |j
                  |j        d         k    sJ t           j                            |                                          |j        d         dz
  k    sJ t          ||d d d df                                       d          }t          |j        |j        d           d S )	Ni  
   r   r   r   r5   r    )r"   randomonescolumn_stacklinalgmatrix_rankr   r   r{   r   r%   
cov_paramsr   r   )x_onex_twox_three	interceptr}   r~   res_singularres_nss           r,   test_nontrivial_singular_matrixr   /  sr   IT""EIT""2%Eit$$GI
	q A
E5'5ABBA9  ##agaj0000Aq>>%%c**L|"##qwqz11119  !8!8!:!:;;qwqzA~MMMM a111crc6##'',,FL-v/BNNNNNNr.   rj   )<scipy.statsr;   numpyr"   numpy.testingr   r   r   patsyr   statsmodels.apiapirv   *statsmodels.regression.quantile_regressionr   #results.results_quantile_regressionr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'   r   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   r.   r,   <module>r      s           L L L L L L L L L L             ? ? ? ? ? ?	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ .6 .6 .6 .6 .6 .6 .6 .6b ,1-)/++1-)/+ ).*) 6   E E E. . . . .#9 . . .: : : : :5 : : := = = = ="8 = = =; ; ; ; ; 6 ; ; ;: : : : :1 : : := = = = =4 = = =; ; ; ; ;2 ; ; ;: : : : :1 : : := = = = =4 = = =; ; ; ; ;2 ; ; ;: : : : :/ : : := = = = =2 = = =; ; ; ; ;0 ; ; ;: : : : :0 : : := = = = =3 = = =; ; ; ; ;1 ; ; ;* +  +  +F$ $ $. . .  3 3 3O O O O Or.   