
    M/PhI                        d dl Zd dlmZ d dlZd dlmZmZ d dlm	Z
 e
j        Z G d d          Z G d de          Z G d de          Z G d	 d
e          Zej                            dg d          d             ZdS )    N)assert_allcloseassert_equalc                       e Zd Zd ZdS )KDETestBasec                 l   d}t           j                            d           t           j                            dd|df          | _        t           j                            dd|df          | _        t           j                            |df          | _        t           j                            dd|df          | _        t           j                            dd|df          | _	        t           j                            |df          | _
        d	}d
}d}||| j        z  z   || j        z  z   | j
        z   | _        ||| j        z  z   || j        z  z   | j        z   | j
        z   | _        g d| _        g d| _        g d| _        g d| _        t           j                            |          | _        d S )N<   i@    gffffff?   size   
   333333?333333?皙@)2g&1!@g/$(@gC,#@grh< @gS%@gv/@g-F!@g;O@g+@glq@g/$@gS@gX9v@gK7A`@gn@g-@gʡE	@gv@goʡ@g+@g@gK7	!@g/$'@gV-"@g
ףp=
 @gS@g(\u@gET!@g㥛 @g-'@g/$@g/$@g(\@gzG@g!rhm@g㥛 @gMb@gQ@gx@gGz@gʡ@gh|?5@gS"@gQ(@gn#@g)\ @g/ݤ@gQ8@gvo!@g@)2  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   r   r   r   r   )2gC\g5V~?gNp?g/ٺ̗?g\vc?gP]L?g$	tܧ?g1	?V`?gV:֢?gA?gQ,bg?gbnW?g:>f^g0
?gB]	gmU?gw?gw}8l?g1ݱ?gqw\?gs ?gp,?gNB


?go- g2?g2lM?g'ei?gr@n?g7*e?g^e?g행ǊggaJEߴ{?gInfWΜ?gM R?gDI?gc+&>^?g:m?gĺeEܭ?g+)pR?g5 H?gMfk?g5|?g6?g_7|?gt^c:g8䨒2?gH¾D?g)"*n)2r   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   r   r   r   r   r   r   )nprandomseedbinomialoo2normalc1c2c3noiseyy2	Italy_gdp
Italy_yeargrowthoecdweights)selfnobsb0b1b2s        s/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pysetup_methodzKDETestBase.setup_method   s   
	v##As$#;;)$$Q4)$<<)""q	"22)""2qay"99)""2qay"99Y%%D!9%55
b47l"R$'\1DJ>rDG|#b47l2TV;djH	 	 	 		+ 	+ 	+ 			A 		A 		A 		 	 	 		
 y''--    N)__name__
__module____qualname__r-    r.   r,   r   r      s#        3. 3. 3. 3. 3.r.   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestKDEUnivariatec                    t                               | j                  }|                    dd           |j        fdt          d          D             }g d}|j        dt          j        d          z           }|	                    |          }t          j        ||d	           t          j        ||d	           d S )
NFscott)fftbwc                 &    g | ]}d |z           S r   r2   .0igrids     r,   
<listcomp>z6TestKDEUnivariate.test_pdf_non_fft.<locals>.<listcomp>K   !    ...bd...r.      )gh.&?g9r?gȃ?g_Vo?gjga?g<?r   ư>atol)nparamKDEUnivariater   fitsupportrangedensityr   arangeevaluatenptr   r'   kdetestxkde_expected	kde_vals0kde_valsr>   s         @r,   test_pdf_non_fftz"TestKDEUnivariate.test_pdf_non_fftD   s    ""4:..Eg&&& {....U1XX.... . . KRYq\\ 12	<<&&Hl!%	' 	' 	' 	'I|!%	' 	' 	' 	' 	' 	'r.   c                    t                               | j                  }|                    | j        dd           |j        fdt          d          D             }g d}|j        dt          j	        d          z           }|
                    |          }t          j        ||d	           t          j        ||d	           d S )
NFr6   )r&   r7   r8   c                 &    g | ]}d |z           S r:   r2   r;   s     r,   r?   z?TestKDEUnivariate.test_weighted_pdf_non_fft.<locals>.<listcomp>d   r@   r.   rA   )gX?g/=W6?gbWw?gp5e?g:*?g
x?r   rB   rC   )rE   rF   r   rG   r&   rH   rI   rJ   r   rK   rL   rM   r   rN   s         @r,   test_weighted_pdf_non_fftz+TestKDEUnivariate.test_weighted_pdf_non_fft^   s    ""4:..%G<<<{....U1XX...- - - KRYq\\ 12	<<&&Hl!%	' 	' 	' 	'I|!%	' 	' 	' 	' 	' 	'r.   c                     t          j        d          }t                              |          }t	          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nd   zSelected KDE bandwidth is 0)match)r   onesrE   rF   pytestraisesRuntimeErrorrG   )r'   xrO   s      r,   !test_all_samples_same_location_bwz3TestKDEUnivariate.test_all_samples_same_location_bwv   s    GCLL""1%%]</LMMM 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   
A,,A03A0c                 \   t           j                            ddd          }t                              |          }|                                 t                              |                    d                    }|                                 t          |j        |j                   d S )Nr   rY   i  r   double)	r   r   randintrE   rF   rG   astyper   r8   )r'   reset_randomstater_   rO   
kde_doubles        r,   test_intzTestKDEUnivariate.test_int|   s    Ia400""1%%			))!((8*<*<==

.....r.   N)r/   r0   r1   rT   rW   r`   rg   r2   r.   r,   r4   r4   B   sP        ' ' '4' ' '0  / / / / /r.   r4   c                   V   e Zd Zej        j        d             Zej        j        d             Zd Zej        j        d             Z	d Z
ej        j        d             ZddZdd	Zej        j        d
             Zej        j        d             Zej        j        d             Zd ZdS )TestKDEMultivariatec                     t                               | j        | j        | j        gdd          }t          j        |j        g dd           d S )Ncoocv_lsdatavar_typer8   )g*-?gd]?gK,?rB   rC   rE   KDEMultivariater   r   r   rM   r   r8   )r'   dens_us     r,   test_pdf_mixeddata_CV_LSz,TestKDEMultivariate.test_pdf_mixeddata_CV_LS   sf    ''dgtvtw-G167 ( D DFI'K'K'K!%	' 	' 	' 	' 	' 	'r.   c                    t                               | j        | j        | j        gdd          }t                               | j        | j        | j        gdd          }t          j        |j        |j        dd           d S )Nrk   rl   rm   cv_mlr         ?rD   rtolrp   )r'   dens_lsdens_mls      r,   test_pdf_mixeddata_LS_vs_MLz/TestKDEMultivariate.test_pdf_mixeddata_LS_vs_ML   s    ((tw.H27G ) E E((tw.H27G ) E EGJ
EEEEEEr.   c                     t                               | j        | j        | j        gdd          }g d}t          j        |j        |dd           d S )Ncocru   rm   )gۼqRX?gsW=g>۴ct?皙?rw   )rE   rq   r   r   r   rM   r   r8   )r'   rz   R_bws      r,   test_pdf_mixeddata_CV_MLz,TestKDEMultivariate.test_pdf_mixeddata_CV_ML   s_    ((tw.H27G ) E E222GJ3SAAAAAAr.   c                     t                               | j        | j        gdd          }t	          j        |                                dd                   }g d}t          j        ||d           d S )	Nccrl   rm   r      )gw`t?gyYS?g5?ga@g0v?MbP?rC   )	rE   rq   r$   r"   r   squeezepdfrM   r   r'   dens	sm_resultR_results       r,   test_pdf_continuousz'TestKDEMultivariate.test_pdf_continuous   s|     %%DK+H/3 & A A Jtxxzz!A#//	JJJ 	Ixd;;;;;;r.   c                     t                               | j        gdd          }t          j        |                                dd                   }g d}t          j        ||d           d S )	Nr   rl   rm   r   r   )X S(?r   PY?r   r   r~   rC   )rE   rq   r%   r   r   r   rM   r   r   s       r,   test_pdf_orderedz$TestKDEMultivariate.test_pdf_ordered   sh    %%DI;%QQJtxxzz!A#//	JJJIxd;;;;;;r.   c                     t                               | j        | j        gdd          }ddg}t	          j        |j        |d           d S )Ncurl   rm   g+[dQu?g@KH?g{Gz?rC   )rE   rq   r$   r%   rM   r   r8   )r'   r   r   s      r,   test_unordered_CV_LSz(TestKDEMultivariate.test_unordered_CV_LS   sX    %%DK+C/3 & A Az*DGXD999999r.   Nc                     t                               | j        | j        gdd          }|                                dd         }g d}t          j        ||d           d S )	Nr   ru   rm   r   r   )g%a?gUs+?g'&mn?g&m?gͱe?r   rC   )rE   rq   r"   r$   cdfrM   r   r'   data_predictr   r   r   s        r,   test_continuous_cdfz'TestKDEMultivariate.test_continuous_cdf   sr    %%DNDK+H/3 & A AHHJJqsO	. . .Ixd;;;;;;r.   c                     t                               | j        | j        gdd          }|                                dd         }g d}t          j        ||d           d S )	Nr   ru   rm   r   r   )gPZ?gY?g*T?gKjpt?g|sꐼ/?r   rC   )rE   rq   r"   r%   r   rM   r   r   s        r,   test_mixeddata_cdfz&TestKDEMultivariate.test_mixeddata_cdf   sl    %%DNDI+F/3 & A AHHJJqsO	OOOIxd;;;;;;r.   c           	         d}t           j                            d           t           j                            |f          }t           j                            dd|f          }dd|z  z   d|z  z
  }t                              ||gd	d
t                              dd                    }t          j        ddg          }t          j	        ||j
        dd           d S )N  90  r   r	   r
   r   r   ?r   rl   TrY   	efficientn_subrn   ro   r8   defaultsgӼ?g&S?r~   皙?rw   r   r   r   r   rE   rq   EstimatorSettingsarrayrM   r   r8   r'   r(   C1C2Ydens_efficientr8   s          r,   test_continuous_cvls_efficientz2TestKDEMultivariate.test_continuous_cvls_efficient   s    
	uYD8,,Ya$22rMC"H$//aWt--C-HH 0 J J Xvv&''B 1#FFFFFFr.   c           	         d}t           j                            d           t           j                            |f          }t           j                            dd|f          }dd|z  z   d|z  z
  }t                              ||gd	d
t                              dd                    }t          j        ddg          }t          j	        ||j
        dd           d S )Nr   r   r   r	   r
   r   r   r   r   ru   TrY   r   r   gQI?g_vO?r~   r   rw   r   r   s          r,   test_continuous_cvml_efficientz2TestKDEMultivariate.test_continuous_cvml_efficient   s    
	uYD8,,Ya$22rMC"H$//aWt!9!9D@C ": "E "E 0 F F Xvv&''B 1CHHHHHHr.   c           
         d}t           j                            d           t           j                            |f          }t           j                            dd|f          }dd|z  z   d|z  z
  }t                              ||gd	d
t                              ddd                    }t                              ||gd	d
          }t          j        |j	        |j	        dd           d S )Nr   r   r   r	   r
   r   r   r   r   ru   TFrY   r   	randomizer   r   rm   r~   r   rw   )
r   r   r   r   rE   rq   r   rM   r   r8   )r'   r(   r   r   r   r   r   s          r,   test_efficient_notrandomz,TestKDEMultivariate.test_efficient_notrandom   s    
	uYD8,,Ya$22rMC"H$//aWt!9!9DDI@C ": "E "E 0 F F %%Ar7Tg%NNDG^%6SMMMMMMr.   c           
         d}t           j                            d           t           j                            |f          }t           j                            dd|f          }ddg}t                              ||gd|t                              d	d
d                    }t          j        |j	        |           d S Nr   r   r   r	   r
   gq=
ףp?gG$Ar   TFrY   r   r   
r   r   r   r   rE   rq   r   rM   r   r8   r'   r(   r   r   bw_userr   s         r,    test_efficient_user_specified_bwz4TestKDEMultivariate.test_efficient_user_specified_bw      
	uYD8,,Ya$22y!%%B8d!9!9DDI@C ": "E "E & F F 	'*****r.   )N)r/   r0   r1   r\   markslowrs   r{   r   r   r   r   r   r   r   r   r   r   r2   r.   r,   ri   ri      s]       [' ' '& [F F FB B B [< < <$< < < [: : :< < < << < < < [G G G [I I I  [N N N+ + + + +r.   ri   c                       e Zd Zej        j        d             Zd Zej        j        d             Zd Z	ej        j        d             Z
d Zd Zej        j        d             Zej        j        d	             Zd
 ZdS )TestKDEMultivariateConditionalc                     t                               | j        g| j        gddd          }t	          j        |j        ddgd           d S )	Ncr   rl   endogexogdep_type
indep_typer8   g N1?gQ"Vk?h㈵>rC   )rE   KDEMultivariateConditionalr"   r#   rM   r   r8   r'   ry   s     r,   test_mixeddata_CV_LSz3TestKDEMultivariateConditional.test_mixeddata_CV_LS  s\    334>:J:>/9J=@?Bw 4 P P
 	GJZ(@tLLLLLLr.   c                     t                               | j        g| j        gddd          }t	          j        |j        ddgd           d S )Nr   ru   r   gn;F{?geq?r   rC   )rE   r   r"   r$   rM   r   r8   )r'   rz   s     r,   test_continuous_CV_MLz4TestKDEMultivariateConditional.test_continuous_CV_ML$  s[    334>:J:>+=@?Bw 4 P P
 	GJJ(?dKKKKKKr.   c                 \    t                               | j        g| j        gddd          }d S )Nur   rl   r   )rE   r   r%   r$   r   s     r,   r   z3TestKDEMultivariateConditional.test_unordered_CV_LS,  s7    3349+:>+=@?Bw 4 P Pr.   c                    t          j        ddg          }t                              | j        g| j        gdd|          }t          j        |                                dd                   }g d}t          j	        ||d	           d S )
Ngnl?gfffgAr   r   r   r   )g_'@gz6>w)@gu*@g=!7*@g1t(@r   rC   )
r   r   rE   r   r$   r"   r   r   rM   r   )r'   bw_cv_mlr   r   r   s        r,   r   z2TestKDEMultivariateConditional.test_pdf_continuous4  s     8Xz23300}7;~6F:=#4< 1 > > Jtxxzz!A#//	EEEIxd;;;;;;r.   c                     t                               | j        g| j        gddd          }t	          j        |                                dd                   }g d}t          j        ||dd	           d S )
Nr   r   rl   r   r   r   )gܗT?g\ʓ?g[Z0?gk?gL5?r   rw   )	rE   r   r"   r#   r   r   r   rM   r   r'   r   r   expecteds       r,   test_pdf_mixeddataz1TestKDEMultivariateConditional.test_pdf_mixeddata@  s    007G7;6G:=#4; 1 = = Jtxxzz!A#//	LLL 	IxadCCCCCCr.   c                 v   t                               | j        g| j        gddd          }|j        }ddg}t          j        ||d           t                               | j        g| j        gddd           }t          |j        |j        d	           t          |j        d           t          |           d S )
Nr   normal_referencer   g[X?goVq?r~   rC   g|=)rx   )
rE   r   r"   r$   r8   rM   r   r   
_bw_methodrepr)r'   dens_nmr   r   dens_nm2s        r,   test_continuous_normal_refz9TestKDEMultivariateConditional.test_continuous_normal_refS  s    334>:J:>+=@?B7I	 4 K K
 J	j)Ixd;;;; 44DN;K:>+=@?B7;	 5 = =
 	WZe<<<<X(*<===Xr.   c                     t                               | j        g| j        gddd          }|                                dd         }g d}t          j        ||d           d S )	Nr   r   r   r   r   )g0??gWW>j?g?g[<?g1Պ>8?r   rC   )rE   r   r"   r$   r   rM   r   )r'   r   r   r   s       r,   r   z2TestKDEMultivariateConditional.test_continuous_cdfj  sv    334>:J:>+=@?B7I	 4 K K
 KKMM!A#&	OOOIxd;;;;;;r.   c                     t                               | j        g| j        gddd          }|                                dd         }g d}t          j        ||dd	           d S )
Nr   r   rl   r   r   r   )gUPe?geOB?g$x?gtCg?gB_0?r   rw   )rE   r   r"   r#   r   rM   r   r   s       r,   r   z1TestKDEMultivariateConditional.test_mixeddata_cdft  sv    007G7;6G:=<?4;	 1 = =
 HHJJqsO	OOOIxadCCCCCCr.   c                    d}t           j                            d           t           j                            dd|f          }t           j                            |f          }t           j                            |f          }d}d}d}|||z  z   ||z  z   |z   }t
                              |g|gd	d	d
t
                              dd                    }	t          j        ddg          }
t          j
        |	j        |
dd           d S )Ni  r   r	   rv   r   r   r   r   r   ru   T2   r   )r   r   r   r   r8   r   g$0{?gё\C?r   r   rw   )r   r   r   r   r   rE   r   r   r   rM   r   r8   )r'   r(   ovalsr   r   r)   r*   r+   r   r   bw_expecteds              r,   r   z=TestKDEMultivariateConditional.test_continuous_cvml_efficient  s   
	u	""1c"99YD8,,	  th //RK"U("e+::!--B-GG ; I I h122N-{NNNNNNr.   c           
         d}t           j                            d           t           j                            |f          }t           j                            dd|f          }ddg}t                              ||gd|t                              d	d
d                    }t          j        |j	        |           d S r   r   r   s         r,   r   z?TestKDEMultivariateConditional.test_efficient_user_specified_bw  r   r.   N)r/   r0   r1   r\   r   r   r   r   r   r   r   r   r   r   r   r   r2   r.   r,   r   r     s       [M M ML L L [P P P
< 
< 
< [D D D$  .< < < [	D 	D 	D [O O O*+ + + + +r.   r   kernel)biwcosepagautritriwunic                 p   t           j                            d          }t          j        t	          |          t          |          d          }t          j                            |          }|	                    dd           t          |                    |          t           j                  sJ d S )N   r   r   F)r   r7   )r   r   r   linspaceminmaxsmnonparametricrF   rG   
isinstancerL   ndarray)r   re   rn   x_gridrJ   s        r,   test_all_kernelsr     s     9%%D[TCIIs33F,,T22GKKu%K(((g&&v..
;;;;;;;r.   )numpyr   numpy.testingtestingrM   r\   r   r   statsmodels.apiapir   r   rE   r   r4   ri   r   r   parametrizer   r2   r.   r,   <module>r      sk              7 7 7 7 7 7 7 7      		4. 4. 4. 4. 4. 4. 4. 4.nB/ B/ B/ B/ B/ B/ B/ B/JP+ P+ P+ P+ P++ P+ P+ P+fG+ G+ G+ G+ G+[ G+ G+ G+T  $: $: $: ; ;< <; ;< < <r.   