
    M/Ph%              	          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                            d           dZd\  ZZ ej        eej                            eez            z   eej                            dez
  ez            z   g          Z eed          Z ej        ddd          Ze                    e          Z e
j                      e
j         edd            e
j!        eedd            e
j!        eeej"        #                    ee          z  dez
  ej"        #                    ee          z  z   dd            e
j$        d            e
j%                      eed          Ze                    e          Z e
j                      e
j         edd            e
j!        eedd            e
j!        eeej"        #                    ee          z  dez
  ej"        #                    ee          z  z   dd            e
j$        d            e
j%                     d D ]Z& ee&            e             ej                            d           dZej                            e          Ze'                                Z(e)                    d!          Z* ej        e          ZdS dS )"z$subclassing kde

Author: josef pktd
    N)assert_almost_equalassert_)statsc                       e Zd ZdZd Zd ZdS )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                 ^    || _         t          j        j                            | |           d S N)
covariancescipyr   gaussian_kde__init__)selfdatasetr
   s      m/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/sandbox/nonparametric/kdecovclass.pyr   z$gaussian_kde_set_covariance.__init__   s*    $ ))$88888    c                     t           j                            | j                  | _        t          j        t           j                            dt           j        z  | j        z                      | j        z  | _	        d S )N   
nplinalginvr
   inv_covsqrtdetpin_norm_factorr   s    r   _compute_covariancez/gaussian_kde_set_covariance._compute_covariance   sS    y}}T_55GBIMM!BE'$/2I$J$JKKdfTr   N)__name__
__module____qualname____doc__r   r    r   r   r   r      sA         9 9 9U U U U Ur   r   c                   (    e Zd ZddZd Zd Zd ZdS )gaussian_kde_covfactscottsc                 ^    || _         t          j        j                            | |           d S r	   )covfactr   r   r   r   )r   r   r)   s      r   r   zgaussian_kde_covfact.__init__   s*     ))$88888r   c                     t           j                            | j                  | _        t          j        t           j                            dt           j        z  | j        z                      | j        z  | _	        dS )znot usedr   Nr   r   s    r   _compute_covariance_z)gaussian_kde_covfact._compute_covariance_    sS    y}}T_55GBIMM!BE'$/2I$J$JKKdfTr   c                     | j         dv r|                                 S | j         dv r|                                 S | j         rt          | j                   S t	          d          )N)scr'   )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%   sl    <+++%%'''<...((***\ 	Z&&&XYYYr   c                 d    || _         |                                  |                                  d S r	   )r)   r4   r   )r   r)   s     r   reset_covfactz"gaussian_kde_covfact.reset_covfact/   s3         """""r   N)r'   )r    r!   r"   r   r+   r4   r6   r$   r   r   r&   r&      s[        9 9 9 9U U U
Z Z Z# # # # #r   r&   c           	         t                               |            t                               t                    }t	          j                     t	          j        t          dd           t	          j        t          |dd           t	          j        t          t          t          j                            t          t                    z  dt          z
  t          j                            t          t                    z  z   dd	
           t	          j        dt!          t           j                  z              t	          j                     d S )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JLLLHRb####HS&S1111HS%%*..$.777U7ejnnSen<<<=#46 6 6 6 I,s4</@/@@AAAJLLLLLr   c            	      *   t           j                            d           d} t           j                            |           }|                                }|                    d          }t          ||           t          j        |          }t          j	        ddd          }|
                    |          }t          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          |                    dd                     t          |                    t           j         d                     t          |                    dt           j                             t          |                    t           j         |                     t          |                    |t           j                             t)          |                    |t           j                  dd           t)          |                    t           j         |          dd           t)          |                    |t           j                  dd           t)          |                    t           j         |          dd           t)          |                    |          |d
z                                  |z  d
           t)          |                    ||d
z            ||z                                  |z  d
           d S )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   INN7L		&	&BWWYYFFFFNNE	&% b!!D 
R#		B]]2FjnnRV5n99G	%')A-..///	,rvfw&6778899911IBFFW$q()))3d:;;;	$
!
!#s
+
+,,,	$


-
-...	$

RV
,
,---	$


0
0111	$


/
/000--fbf==sANNNN--rvgv>>QOOOO**626::CKKKK**BF7F;;S!LLLL**400)))3Q@ @ @ @//qAA,,..y8!E E E E E 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 6 6 6 6 6 6 6             U U U U U%"4 U U U# # # # #5- # # #2   "E "E "ER zLINN7EKD%
".$1E!F!FFry%</GHHHJ K KB
  C((D
"+b3

C]]3FCJLLLCHRb####CHS&S1111CHS%%*..$.777U7ejnnSen<<<=#46 6 6 6 CI)***CJLLLH--D]]3FCJLLLCHRb####CHS&S1111CHS%%*..$.777U7ejnnSen<<<=#46 6 6 6 CI)***CJLLL5  KMMM INN7L		&	&BWWYYFFFFNNE 5b!!DDDo r   