
    g`                        d dl mZ d dlZd dlmZ ddlmZ  G d d      Ze	dk(  r)d d	lm
Z
 d dlmZ d dlmc mZ d d
lmZ  e
j(                  d        e
j*                  dd      Z ej.                  e      Z ej2                  ddd      Z ej6                  e      Z eee      Z eej?                  d              ed        ej@                  ddd      Z! ejD                         Z#e#jI                  d      Z%e%jM                  e! ee!      d       e%jO                  dd       e%jO                  d d        eejP                  d   ejP                  d         Z ejR                  e      ZeejU                  d       z
  ejW                  d       z  ZejX                  d    Z-ej\                  Z/ ej`                  d      Z eee      Z eej?                   ejb                  ddg                    ejD                           ejL                  eddd f   edddf   d       dZ2 ej2                  ejg                  d       d    eji                  d       d    e2      Z5 ej2                  ejg                  d       d   eji                  d       d   e2      Z6 ejn                  e5e6      \  Z8Z9 ejR                   e:e8jw                         e9jw                               D  cg c](  \  } }ej?                   ejb                  | |g            * c}}       Z< ejz                  e5e6e<j}                  e2e2              ej~                          yyc c}} w )    )lzipN)
array_like   kernelsc                   .    e Zd ZdZddZd ZddZd	dZy)
KDEz
    Kernel Density Estimator

    Parameters
    ----------
    x : array_like
        N-dimensional array from which the density is to be estimated
    kernel : Kernel Class
        Should be a class from *
    Nc                 2   t        |ddd      }|j                  dk(  r	|d d d f   }|j                  \  }}|t        j                         }|dkD  r1t        |t        j                        rt        j                  ||      }|| _        || _	        || _
        y )Nx   T)maxdim
contiguousr   r   )r   ndimshaper   Gaussian
isinstanceCustomKernelNdKernelkernelnr   )selfr   r   nobsn_seriess        Y/var/www/html/venv/lib/python3.12/site-packages/statsmodels/sandbox/nonparametric/kde2.py__init__zKDE.__init__   s    q#aD966Q;!D&	Ah>%%'Fa<67#7#79 ))(fE    c                 N    | j                   j                  | j                  |      S N)r   densityr   )r   r   s     r   r   zKDE.density(   s    {{""4661--r   c                 p    t        j                  |D cg c]  }| j                  |       c}      S c c}w r   )nparrayr   )r   r   hxxs       r   __call__zKDE.__call__+   s(    xxA6bb)6776s   3c                     | j                   j                  }t        j                  |D cg c]
  } ||       c}      S c c}w r   )r   r   r!   r"   )r   r   r#   r   r$   s        r   evaluatezKDE.evaluate.   s2    ++%%xxq11221s   A r   )scott)	silverman)__name__
__module____qualname____doc__r   r   r%   r'    r   r   r	   r	   
   s    	$.83r   r	   __main__)random)kdetest   g@2   )sizei
   i   )r#   gl\??gA&9?g?o   -g?	eruptionswaitingr   o)@statsmodels.compat.pythonr   numpyr!   statsmodels.tools.validationr    r   r	   r*   r0   matplotlib.pyplotpyplotplt$statsmodels.nonparametric.bandwidthsnonparametric
bandwidthsbw*statsmodels.sandbox.nonparametric.testdatar1   seed
standard_tr   bw_silvermanr#   linspacesupportr   kernkdeprintr   arangeXsfigurefigadd_subplotaxplotset_ylimfaithfulDatar"   meanstdr   r   HpiHr   matrixn_gridminmaxxspyspmeshgridxryrzipravelkde_valscontourreshapeshow)xiyis   00r   <module>rm      s   *  3 &3 &3R z#55B FKK#b)AAbkk#b%G 7"D
q$-C	#++h
 	)	3r#	B
#**,C		BGGBBKKRKK# 	W!!+.0D0DY0OPAA	
QVVAYa A771:DA7Q D
q$.C	#++yryy1Q&)
*+CJJLCHHQqsVQqsVS! F
"++aeeAhqk1558A;
7C
"++aeeAhqk1558A;
7C R[[c"FBrxx288:rxxz*,&"bibii"b&;= , -HCKKS(**66:;CHHJk b,s   %-M
