
    'YHh%              	          d Z ddlZddlmZmZ ddlZddlmZ ddlm	Z
  G d dej                        Z G d dej                        Zd	 Zd
 Zedk(  rdZej$                  j'                  d       dZd\  ZZ ej.                  eej$                  j1                  eez        z   eej$                  j1                  dez
  ez        z   g      Z eed      Z ej6                  ddd      Zej;                  e      Z e
j>                           e
j@                  edd        e
jB                  eedd        e
jB                  eeejD                  jG                  ee      z  dez
  ejD                  jG                  ee      z  z   dd        e
jH                  d        e
jJ                           eed      Zej;                  e      Z e
j>                           e
j@                  edd        e
jB                  eedd        e
jB                  eeejD                  jG                  ee      z  dez
  ejD                  jG                  ee      z  z   dd        e
jH                  d        e
jJ                          d D ]
  Z& ee&         e        ej$                  j'                  d       dZej$                  j1                  e      ZejO                         Z(ejS                  d!      Z* ej                  e      Zyy)"z$subclassing kde

Author: josef pktd
    N)assert_almost_equalassert_)statsc                       e Zd ZdZd Zd Zy)gaussian_kde_set_covariancez
    from Anne Archibald in mailinglist:
    http://www.nabble.com/Width-of-the-gaussian-in-stats.kde.gaussian_kde---td19558924.html#a19558924
    c                 f    || _         t        j                  j                  j	                  | |       y N)
covariancescipyr   gaussian_kde__init__)selfdatasetr
   s      f/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/sandbox/nonparametric/kdecovclass.pyr   z$gaussian_kde_set_covariance.__init__   s#    $  ))$8    c                 $   t         j                  j                  | j                        | _        t        j
                  t         j                  j                  dt         j                  z  | j                  z              | j                  z  | _	        y )N   
nplinalginvr
   inv_covsqrtdetpin_norm_factorr   s    r   _compute_covariancez/gaussian_kde_set_covariance._compute_covariance   sR    yy}}T__5GGBIIMM!BEE'$//2I$JKdffTr   N)__name__
__module____qualname____doc__r   r    r   r   r   r      s    9Ur   r   c                   &    e Zd ZddZd Zd Zd Zy)gaussian_kde_covfactc                 f    || _         t        j                  j                  j	                  | |       y r	   )covfactr   r   r   r   )r   r   r(   s      r   r   zgaussian_kde_covfact.__init__   s#      ))$8r   c                 $   t         j                  j                  | j                        | _        t        j
                  t         j                  j                  dt         j                  z  | j                  z              | j                  z  | _	        y)znot usedr   Nr   r   s    r   _compute_covariance_z)gaussian_kde_covfact._compute_covariance_    sR    yy}}T__5GGBIIMM!BEE'$//2I$JKdffTr   c                     | j                   dv r| j                         S | j                   dv r| j                         S | j                   rt        | j                         S t	        d      )N)scscotts)si	silvermanz9covariance factor has to be scotts, silverman or a number)r(   scotts_factorsilverman_factorfloat
ValueErrorr   s    r   covariance_factorz&gaussian_kde_covfact.covariance_factor%   s\    <<++%%''<<..((**\\&&XYYr   c                 R    || _         | j                          | j                          y r	   )r(   r4   r   )r   r(   s     r   reset_covfactz"gaussian_kde_covfact.reset_covfact/   s!       "r   N)r-   )r    r!   r"   r   r*   r4   r6   r$   r   r   r&   r&      s    9U
Z#r   r&   c           	      ~   t         j                  |        t         j                  t              }t	        j
                          t	        j                  t        dd       t	        j                  t        |dd       t	        j                  t        t        t        j                  j                  t        t              z  dt        z
  t        j                  j                  t        t              z  z   dd	
       t	        j                  dt!        t         j"                        z          t	        j$                          y )N      binsnormedkdeglabelcolorlocrDGP: normal mixrA   r@   zKernel Density Estimation - )gkder6   evaluateindpltfigurehistxnplotalphar   normpdfmlowmhightitlestrr(   legend)r(   kdepdfs     r   plotkderX   4   s    w]]3FJJLHHRb#HHS&S1HHS%%**..$.77U7ejjnnSen<<=#46 II,s4<</@@AJJLr   c            	      n   t         j                  j                  d       d} t         j                  j                  |       }|j	                         }|j                  d      }t        ||       t        j                  |      }t        j                  ddd      }|j                  |      }t        j                  j                  |||      }t        d	t        j                  ||z
  d
z               t        dt        j                  t        j                  ||z
                     |d   |d   z
  }t!        t        j                  ||z
  d
z        |z  dk         t        |j#                  dd             t        |j%                  t         j&                   d             t        |j%                  dt         j&                               t        |j%                  t         j&                   |             t        |j%                  |t         j&                               t)        |j%                  |t         j&                        dd       t)        |j%                  t         j&                   |      dd       t)        |j+                  |t         j&                        dd       t)        |j+                  t         j&                   |      dd       t)        |j-                  |      |d
z  j                         |z  d
       t)        |j#                  ||d
z        ||z  j                         |z  d
       y )N i  r9   ddof   i  )rC   scaleMSEr   
axabserrorr   g{Gz?g        g      ?      ?)decimal)r   randomseedrandnmeanstdprintr   r   linspacerH   rP   rQ   summaxabsr   integrate_gaussianintegrate_box_1dinfr   integrate_boxintegrate_kde)	n_basesamplerM   xnmeanxnstdrG   xsrW   normpdf	intervalls	            r   test_kde_1dry   D   s`   IINN7L		&BWWYFFFFNE	&% b!D 
R#	B]]2FjjnnRV5n9G	%')A-./	,rvvfw&678911IBFFFW$q())3d:;	$
!
!#s
+,	$


-.	$

RVV
,-	$


01	$


/0--fbff=sAN--rvvgv>QO**6266:CK**BFF7F;S!L**40))3Q@//qA,,.y8!Er   __main__i  rZ   g333333?)   r9   皙?r]   r^   e   r8   r:   r=   r>   r?   rB   rD   rE   rF   zKernel Density Estimationr-   )r-   r/   g?r}   rb   r[   )+r#   numpyr   numpy.testingr   r   r   r   matplotlib.pylabpylabrJ   r   r   r&   rX   ry   r    rs   rd   re   rO   rR   rS   concatenaterf   rM   rG   rj   rI   rH   rW   rK   rL   rN   rP   rQ   rT   rV   cvrg   rt   rh   ru   r$   r   r   <module>r      s  
  6   U%"4"4 U#5-- #2 "ER zLIINN7EKD%
"..$1E!FFryy%</GHHJ KB
  C(D
"++b3
C]]3FCJJLCHHRb#CHHS&S1CHHS%%**..$.77U7ejjnnSen<<=#46 CII)*CJJLH-D]]3FCJJLCHHRb#CHHS&S1CHHS%%**..$.77U7ejjnnSen<<=#46 CII)*CJJL5  M IINN7L		&BWWYFFFFNE 5b!Do r   