ó
áp7]c           @   sl  d  d l  Z  d  d l j Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z d  d l j j j Z d  d l m Z e  j j e  j j e ƒ ƒ Z e  j j e d d ƒ Z e j e e d ƒ d d	 d
 e ƒZ e  j j e d d ƒ Z e j e e d ƒ d d	 d
 e ƒZ e  j j e  j j e ƒ ƒ Z e  j j e d d ƒ Z e j e e d ƒ d d	 d
 e ƒZ e j j  d ƒ e d d g d d d e j! e j! g d e" d d  d d ƒ e" d d d d ƒ f ƒZ# d e$ f d „  ƒ  YZ% d e$ f d „  ƒ  YZ& d e& f d „  ƒ  YZ' d e& f d „  ƒ  YZ( d  e& f d! „  ƒ  YZ) d" e& f d# „  ƒ  YZ* d$ e& f d% „  ƒ  YZ+ d& e& f d' „  ƒ  YZ, d( e$ f d) „  ƒ  YZ- d* e- f d+ „  ƒ  YZ. d, e- f d- „  ƒ  YZ/ d. e- f d/ „  ƒ  YZ0 d0 e- f d1 „  ƒ  YZ1 d2 e- f d3 „  ƒ  YZ2 d4 e- f d5 „  ƒ  YZ3 d6 e- f d7 „  ƒ  YZ4 d8 e- f d9 „  ƒ  YZ5 d: d> d; „  ƒ  YZ6 d< d? d= „  ƒ  YZ7 d S(@   iÿÿÿÿN(   t   mixture_rvs(   t   KDEUnivariate(   t   statst   resultss   results_kde.csvt   rbt	   delimitert   ,t   namess   results_kde_univ_weights.csvs   results_kcde.csvi90  g      Ð?g      è?t   sizeiÈ   t   distt   kwargst   loct   scaleg      à?i   t   TestKDEExceptionsc           B   s;   e  Z e d  „  ƒ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sC   t  t ƒ |  _ t j d d d ƒ |  _ t j d d d ƒ |  _ d  S(   Ni   id   iÈ   (   t   KDEt   Xit   kdet   npt   linspacet   weights_200t   weights_100(   t   cls(    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   setup_class#   s    c         C   s*   t  j t ƒ  |  j j d ƒ Wd  QXd  S(   Ni    (   t   pytestt   raisest
   ValueErrorR   t   evaluate(   t   self(    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_check_is_fit_exception)   s    c         C   sH   t  j t ƒ 3 |  j j d d d d d |  j d t d d ƒ Wd  QXd  S(	   Nt   kernelt   gaut   gridsizei2   t   weightst   fftt   bwt	   silverman(   R   R   t   NotImplementedErrorR   t   fitR   t   True(   R   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_non_weighted_fft_exception-   s    !c         C   sH   t  j t ƒ 3 |  j j d d d d d |  j d t d d ƒ Wd  QXd  S(	   NR   R   R   i2   R    R!   R"   R#   (   R   R   R   R   R%   R   t   False(   R   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt"   test_wrong_weight_length_exception2   s    !c         C   s?   t  j t ƒ * |  j j d d d d d t d d ƒ Wd  QXd  S(   NR   t   epaR   i2   R!   R"   R#   (   R   R   R$   R   R%   R&   (   R   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_non_gaussian_fft_exception7   s    (   t   __name__t
   __module__t   classmethodR   R   R'   R)   R+   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR   !   s
   			t   CheckKDEc           B   s    e  Z d  Z d „  Z d „  Z RS(   i   c         C   s#   t  j |  j j |  j |  j ƒ d  S(   N(   t   nptt   assert_almost_equalt   res1t   densityt   res_densityt   decimal_density(   R   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_density?   s    c         C   sz   g  |  j  j D]! } t j |  j  j | ƒ ƒ ^ q } t j | ƒ } t j | ƒ } d | | <t j | |  j |  j	 ƒ d  S(   Ni    (
   R2   t   supportR   t   squeezeR   t   isfiniteR0   R1   R4   R5   (   R   t   xit   kde_valst
   mask_valid(    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_evaluateC   s    4(   R,   R-   R5   R6   R=   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR/   ;   s   	t   TestKDEGaussc           B   sD   e  Z e d  „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sB   t  t ƒ } | j d d d t d d ƒ | |  _ t d |  _ d  S(   NR   R   R!   R"   R#   t   gau_d(   R   R   R%   R(   R2   t
   KDEResultsR4   (   R   R2   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR   S   s    	c         C   sq   g  |  j  j D] } |  j  j | ƒ ^ q } t j | ƒ } t j | ƒ } d | | <t j | |  j |  j	 ƒ d  S(   Ni    (
   R2   R7   R   R   R8   R9   R0   R1   R4   R5   (   R   R:   R;   R<   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR=   Z   s    +c         C   s*   |  j  } t d } t j | | j ƒ d  S(   Nt   gau_support(   R2   t   KCDEResultsR0   t   assert_allcloseR7   (   R   R   R7   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_support_griddedf   s    	
c         C   s*   |  j  } t d } t j | | j ƒ d  S(   Nt   gau_cdf(   R2   RB   R0   RC   t   cdf(   R   R   RF   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_cdf_griddedk   s    	
c         C   s*   |  j  } t d } t j | | j ƒ d  S(   Nt   gau_sf(   R2   RB   R0   RC   t   sf(   R   R   RI   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_sf_griddedp   s    	
c         C   s*   |  j  } t d } t j | | j ƒ d  S(   Nt   gau_icdf(   R2   RB   R0   RC   t   icdf(   R   R   RL   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_icdf_griddedu   s    	
(	   R,   R-   R.   R   R=   RD   RG   RJ   RM   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR>   R   s   				t   TestKDEEpanechnikovc           B   s   e  Z e d  „  ƒ Z RS(   c         C   sB   t  t ƒ } | j d d d t d d ƒ | |  _ t d |  _ d  S(   NR   R*   R!   R"   R#   t   epa2_d(   R   R   R%   R(   R2   R@   R4   (   R   R2   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR   |   s    	(   R,   R-   R.   R   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyRN   {   s   t   TestKDETriangularc           B   s   e  Z e d  „  ƒ Z RS(   c         C   sB   t  t ƒ } | j d d d t d d ƒ | |  _ t d |  _ d  S(   NR   t   triR!   R"   R#   t   tri_d(   R   R   R%   R(   R2   R@   R4   (   R   R2   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR   „   s    	(   R,   R-   R.   R   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyRP   ƒ   s   t   TestKDEBiweightc           B   s   e  Z e d  „  ƒ Z RS(   c         C   sB   t  t ƒ } | j d d d t d d ƒ | |  _ t d |  _ d  S(   NR   t   biwR!   R"   R#   t   biw_d(   R   R   R%   R(   R2   R@   R4   (   R   R2   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR   Œ   s    	(   R,   R-   R.   R   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyRS   ‹   s   t   TestKdeWeightsc           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   s   t  t ƒ } t j d d d ƒ } | j d d d d d | d	 t d
 d ƒ | |  _ t j j	 t
 d d ƒ } t j t | d ƒ d d ƒ|  _ d  S(   Ni   id   iÈ   R   R   R   i2   R    R!   R"   R#   R   s   results_kde_weights.csvR   t   skip_header(   R   R   R   R   R%   R(   R2   t   ost   patht   joint   curdirt
   genfromtxtt   openR4   (   R   R2   R    t   rfname(    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR   Ÿ   s    !	c         C   sq   g  |  j  j D] } |  j  j | ƒ ^ q } t j | ƒ } t j | ƒ } d | | <t j | |  j |  j	 ƒ d  S(   Ni    (
   R2   R7   R   R   R8   R9   R0   R1   R4   R5   (   R   R:   R;   R<   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR=   ©   s    +(   R,   R-   R.   R   R=   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyRV      s   
t   TestKDEGaussFFTc           B   s   e  Z e d  „  ƒ Z RS(   c         C   sq   d |  _  t t ƒ } | j d d d t d d ƒ | |  _ t j j t	 d d ƒ } t
 j t | d	 ƒ ƒ |  _ d  S(
   Ni   R   R   R!   R"   R#   R   s   results_kde_fft.csvR   (   R5   R   R   R%   R&   R2   RX   RY   RZ   R[   R   R\   R]   R4   (   R   R2   t   rfname2(    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR   µ   s    		(   R,   R-   R.   R   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR_   ´   s   t   CheckKDEWeightsc           B   sA   e  Z e d  „  ƒ Z d Z d „  Z d „  Z d „  Z d „  Z RS(   c      	   C   si   t  d |  _ } t  d } t | ƒ } | j d |  j d | d t d d ƒ | |  _ t  |  j |  _ d  S(   Nt   xR    R   R!   R"   t   scott(	   t   KDEWResultsRb   R   R%   t   kernel_nameR(   R2   t   res_kernel_nameR4   (   R   Rb   R    R2   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR   À   s    
%	i   c         C   s#   t  j |  j j |  j |  j ƒ d  S(   N(   R0   R1   R2   R3   R4   R5   (   R   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   t_est_densityÌ   s    c         C   ss   |  j  d k r t j d ƒ n  g  |  j D] } |  j j | ƒ ^ q) } t j | ƒ } t j	 | |  j
 |  j ƒ d  S(   Nt   coss!   Cosine kernel fails against Stata(   Re   R   t   skipRb   R2   R   R   R8   R0   R1   R4   R5   (   R   R:   R;   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR=   Ð   s    (c         C   ss  |  j  j } g  | D]! } t j |  j  j | ƒ ƒ ^ q } t j | ƒ } t j | ƒ } d | | <t j |  j  j | |  j	 ƒ t
 |  j  j ƒ } |  j  j } | j | | ƒ } | | j | j | } t j | | d d ƒ| j | | ƒ }	 d }
 | |	 d  d  … d f } t j | |
 t j | ƒ d d ƒ|	 d  d  … d f | } t j | |
 t j | ƒ d d ƒd  S(   Ni    t   rtolg»½×Ùß|Û=g†ÿî1\ÿ?i   (   R2   R7   R   R8   R   R9   R0   R1   R3   R5   t   lent   endogR   t   density_vart   L2Normt   hRC   t   density_confintt   sqrt(   R   t   xxR:   R;   R<   t   nobst   kernt   vt   v_directt   cit   critt   hw(    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_compareØ   s$    .
#c         C   s£   |  j  j } | j } d  | _ | j } t j | | d d ƒ| j } d  | _ | j } t j | | d d ƒ| j	 } d  | _
 | j	 } t j | | d d ƒd  S(   NRj   g»½×Ùß|Û=(   R2   R   t
   norm_constt   Nonet   _norm_constR0   RC   Rn   t   _L2Normt
   kernel_vart   _kernel_var(   R   Rt   t   nct   nc2t   l2nt   l2n2Ru   t   v2(    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_kernel_constantsð   s    									(	   R,   R-   R.   R   R5   Rg   R=   Rz   R†   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyRa   ¾   s   
			t   TestKDEWGaussc           B   s   e  Z d  Z d Z RS(   R   t   x_gau_wd(   R,   R-   Re   Rf   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR‡     s   t   TestKDEWEpac           B   s   e  Z d  Z d Z RS(   R*   t
   x_epan2_wd(   R,   R-   Re   Rf   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR‰     s   t   TestKDEWTric           B   s   e  Z d  Z d e d Z RS(   RQ   t   x_t   _wd(   R,   R-   Re   Rf   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR‹     s   t   TestKDEWBiwc           B   s   e  Z d  Z d Z RS(   RT   t   x_bi_wd(   R,   R-   Re   Rf   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyRŽ     s   t   TestKDEWCosc           B   s   e  Z d  Z d Z RS(   Rh   t   x_cos_wd(   R,   R-   Re   Rf   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR     s   t   TestKDEWCos2c           B   s   e  Z d  Z d Z RS(   t   cos2R‘   (   R,   R-   Re   Rf   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR’   $  s   t   T_estKDEWRectc           B   s   e  Z d  Z d Z RS(   t   rectt   x_rec_wd(   R,   R-   Re   Rf   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR”   *  s   t   T_estKDEWParc           B   s   e  Z d  Z d Z RS(   t   part   x_par_wd(   R,   R-   Re   Rf   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR—   0  s   t   TestKdeRefitc           B   s¾   e  Z e j j d  ƒ e j j d ƒ d Z e e ƒ Z e j	 ƒ  e j j d ƒ d Z
 e e
 ƒ Z e j	 ƒ  xK d d d g D]: Z e j e j e e e ƒ d  e e e ƒ d  ƒ ƒ q~ WRS(   i90  id   RL   RF   RI   i
   (   R,   R-   R   t   randomt   seedt   randnt   data1R   t   pdfR%   t   data2t   pdf2t   attrR0   t   assert_t   allcloset   getattr(    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyRš   6  s   

t   TestNormConstantc           B   s   e  Z d  „  Z RS(   c         C   s/   t  j d „  ƒ } d } t j | | j ƒ d  S(   Nc         S   s   t  j |  d d ƒ S(   Ni   g       @(   R   t   exp(   Rb   (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   <lambda>H  t    gQ6Ô3EˆÙ?(   t   kernelst   CustomKernelR0   R1   R{   (   R   t   custom_gausst   gauss_true_const(    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   test_norm_constant_calculationG  s    (   R,   R-   R®   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyR¦   E  s   (    (    (8   RX   t   numpy.testingt   testingR0   t   numpyR   R   t%   statsmodels.distributions.mixture_rvsR    t   statsmodels.nonparametric.kdeR   R   t)   statsmodels.sandbox.nonparametric.kernelst   sandboxt   nonparametricRª   t   scipyR   RY   t   dirnamet   abspatht   __file__R[   RZ   R^   R\   R]   R&   R@   Rd   RB   R›   Rœ   t   normt   dictR   t   objectR   R/   R>   RN   RP   RS   RV   R_   Ra   R‡   R‰   R‹   RŽ   R   R’   R”   R—   Rš   R¦   (    (    (    sG   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kde.pyt   <module>   sJ   $$$'-)
H