
p7]c           @   s   d  d l  Z d  d l j Z d  d l m Z m Z d  d l Z d  d l j	 Z
 e
 j Z d e f d     YZ d e f d     YZ d e f d     YZ d	 e f d
     YZ d S(   iN(   t   assert_allcloset   assert_equalt   KDETestBasec           B   s   e  Z d    Z RS(   c      2   C   s  d } t  j j d  t  j j d d d | d f |  _ t  j j d d d | d f |  _ t  j j d | d f  |  _ t  j j d d d | d f |  _ t  j j d d d | d f |  _	 t  j j d | d f  |  _
 d	 } d
 } d } | | |  j | |  j |  j
 |  _ | | |  j | |  j |  j |  j
 |  _ d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= g2 |  _ d> d> d> d> d> d> d> d> d> d> d> d> d> d> d> d> d> d> d> d> d> d? d? d? d? d? d? d? d? d? d? d? d? d? d? d? d? d? d? d? d? d? d@ d@ d@ d@ d@ d@ d@ d@ g2 |  _ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr g2 |  _ ds ds d d ds ds d ds ds ds ds ds d ds ds ds ds ds ds d ds ds ds ds ds d d d ds d ds ds ds ds ds d ds ds d ds d ds d ds ds ds ds ds ds ds g2 |  _ t  j j |  |  _ d  S(t   Ni<   i@ i   gffffff?t   sizei   i   i
   g333333?g333333?g@g&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@i  i  i  g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)"*ni    (   t   npt   randomt   seedt   binomialt   ot   o2t   normalt   c1t   c2t   c3t   noiset   yt   y2t	   Italy_gdpt
   Italy_yeart   growtht   oecdt   weights(   t   selft   nobst   b0t   b1t   b2(    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   setup   sP    $$$$&-!!!!EE(   t   __name__t
   __module__R   (    (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyR   
   s   t   TestKDEUnivariatec           B   s   e  Z d    Z d   Z RS(   c         C   s   t  j |  j  } | j d t d d  | j } g  t d  D] } | d | ^ q> } d d d d	 d
 d g } | j d t j	 d  } | j
 |  } t j | | d d t j | | d d d  S(   Nt   fftt   bwt   scotti   i
   gh.&?g9r?gȃ?g_Vo?gjga?g<?t   atolgư>(   t   nparamt   KDEUnivariateR   t   fitt   Falset   supportt   ranget   densityR   t   aranget   evaluatet   nptR    (   R   t   kdet   gridt   it   testxt   kde_expectedt	   kde_vals0t   kde_vals(    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_pdf_non_fftC   s     	'	c         C   s   t  j |  j  } | j d |  j d t d d  | j } g  t d  D] } | d | ^ qG } d d d	 d
 d d g } | j d t	 j
 d  } | j |  } t j | | d d t j | | d d d  S(   NR   R   R    R!   i   i
   gX?g/=W6?gbWw?gp5e?g:*?g
x?R"   gư>(   R#   R$   R   R%   R   R&   R'   R(   R)   R   R*   R+   R,   R    (   R   R-   R.   R/   R0   R1   R2   R3   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_weighted_pdf_non_fft]   s     	'	(   R   R   R4   R5   (    (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyR   A   s   	t   TestKDEMultivariatec           B   s   e  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 RS(   c         C   sV   t  j d |  j |  j |  j g d d d d  } t j | j d d d g d	 d
 d  S(   Nt   datat   var_typet   cooR    t   cv_lsg*-?gd]?gK,?R"   gư>(   R#   t   KDEMultivariateR   R   R	   R,   R    R    (   R   t   dens_u(    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_pdf_mixeddata_CV_LSx   s    !c         C   s   t  j d |  j |  j |  j g d d d d  } t  j d |  j |  j |  j g d d d d  } t j | j | j d d d	 d
 d  S(   NR7   R8   R9   R    R:   t   cv_mlR"   i    t   rtolg      ?(   R#   R;   R   R   R	   R,   R    R    (   R   t   dens_lst   dens_ml(    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_pdf_mixeddata_LS_vs_ML   s
    !!c         C   sb   t  j d |  j |  j |  j g d d d d  } d d d g } t j | j | d	 d
 d d
 d  S(   NR7   R8   t   cocR    R>   gۼqRX?gsW=g>۴ct?R"   g?R?   (   R#   R;   R   R   R   R,   R    R    (   R   RA   t   R_bw(    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_pdf_mixeddata_CV_ML   s    !c         C   su   t  j d |  j |  j g d d d d  } t j | j   d d ! } d d	 d
 d d g } t j | | d d d  S(   NR7   R8   t   ccR    R:   i    i   gw`t?gyYS?g5?ga@g0v?R"   gMbP?(	   R#   R;   R   R   R   t   squeezet   pdfR,   R    (   R   t   denst	   sm_resultt   R_result(    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_pdf_continuous   s
    
c         C   so   t  j d |  j g d d d d  } t j | j   d d ! } d d d	 d	 d g } t j | | d
 d d  S(   NR7   R8   R   R    R:   i    i   gX S(?gPY?R"   g?(   R#   R;   R   R   RG   RH   R,   R    (   R   RI   RJ   RK   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_pdf_ordered   s    $c         C   sS   t  j d |  j |  j g d d d d  } d d g } t j | j | d d	 d  S(
   NR7   R8   t   cuR    R:   g+[dQu?g@KH?R"   g{Gz?(   R#   R;   R   R   R,   R    R    (   R   RI   RK   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_unordered_CV_LS   s    c         C   sl   t  j d |  j |  j g d d d d  } | j   d d !} d d	 d
 d d g } t j | | d d d  S(   NR7   R8   RF   R    R>   i    i   g%a?gUs+?g'&mn?g&m?gͱe?R"   gMbP?(   R#   R;   R   R   t   cdfR,   R    (   R   t   data_predictRI   RJ   RK   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_continuous_cdf   s    	c         C   sl   t  j d |  j |  j g d d d d  } | j   d d !} d d	 d
 d d g } t j | | d d d  S(   NR7   R8   RN   R    R>   i    i   gPZ?gY?g*T?gKjpt?g|sꐼ/?R"   gMbP?(   R#   R;   R   R   RP   R,   R    (   R   RQ   RI   RJ   RK   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_mixeddata_cdf   s
    c         C   s   d } t  j j d  t  j j d | f  } t  j j d d d | f } d d | d | } t j d	 | | g d
 d d d d t j d t d d   } t  j d d g  } t	 j
 | | j d d d d d  S(   Ni  i90  R   i   i   g333333?g333333?g?R7   R8   RF   R    R:   t   defaultst	   efficientt   n_subid   gӼ?g&S?R"   g?R?   g?(   R   R   R   R
   R#   R;   t   EstimatorSettingst   Truet   arrayR,   R    R    (   R   R   t   C1t   C2t   Yt   dens_efficientR    (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_continuous_cvls_efficient   s    c         C   s   d } t  j j d  t  j j d | f  } t  j j d d d | f } d d | d | } t j d	 | | g d
 d d d d t j d t d d   } t  j d d g  } t	 j
 | | j d d d d d  S(   Ni  i90  R   i   i   g333333?g333333?g?R7   R8   RF   R    R>   RT   RU   RV   id   gQI?g_vO?R"   g?R?   g?(   R   R   R   R
   R#   R;   RW   RX   RY   R,   R    R    (   R   R   RZ   R[   R\   R]   R    (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_continuous_cvml_efficient   s    c         C   s   d } t  j j d  t  j j d | f  } t  j j d d d | f } d d | d | } t j d	 | | g d
 d d d d t j d t d t d d   } t j d	 | | g d
 d d d  } t	 j
 | j | j d d d d d  S(   Ni  i90  R   i   i   g333333?g333333?g?R7   R8   RF   R    R>   RT   RU   t	   randomizeRV   id   R"   g?R?   g?(   R   R   R   R
   R#   R;   RW   RX   R&   R,   R    R    (   R   R   RZ   R[   R\   R]   RI   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_efficient_notrandom   s    $c         C   s   d } t  j j d  t  j j d | f  } t  j j d d d | f } d d g } t j d | | g d	 d
 d | d t j d t d t d d   } t	 j
 | j |  d  S(   Ni  i90  R   i   i   gq=
ףp?gG$AR7   R8   RF   R    RT   RU   R`   RV   id   (   R   R   R   R
   R#   R;   RW   RX   R&   R,   R   R    (   R   R   RZ   R[   t   bw_userRI   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt    test_efficient_user_specified_bw   s    N(   R   R   t   pytestt   markt   slowR=   RB   RE   RL   RM   RO   t   NoneRR   RS   R^   R_   Ra   Rc   (    (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyR6   w   s   		t   TestKDEMultivariateConditionalc           B   s   e  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 RS(
   c         C   sY   t  j d |  j g d |  j g d d d d d d  } t j | j d	 d
 g d d d  S(   Nt   endogt   exogt   dep_typet   ct
   indep_typeR   R    R:   g N1?gQ"Vk?R"   gh㈵>(   R#   t   KDEMultivariateConditionalR   R   R,   R    R    (   R   R@   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_mixeddata_CV_LS  s
    c         C   sY   t  j d |  j g d |  j g d d d d d d  } t j | j d d	 g d
 d d  S(   NRi   Rj   Rk   Rl   Rm   R    R>   gn;F{?geq?R"   gMbP?(   R#   Rn   R   R   R,   R    R    (   R   RA   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_continuous_CV_ML  s
    c         C   s:   t  j d |  j g d |  j g d d d d d d  } d  S(	   NRi   Rj   Rk   t   uRm   Rl   R    R:   (   R#   Rn   R   R   (   R   R@   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyRO     s    c         C   s   t  j d d g  } t j d |  j g d |  j g d d d d d |  } t  j | j   d	 d
 ! } d d d d d g } t j	 | | d d d  S(   Ngnl?gfffgARi   Rj   Rk   Rl   Rm   R    i    i   g_'@gz6>w)@gu*@g=!7*@g1t(@R"   gMbP?(
   R   RY   R#   Rn   R   R   RG   RH   R,   R    (   R   t   bw_cv_mlRI   RJ   RK   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyRL   $  s    	c         C   s   t  j d |  j g d |  j g d d d d d d  } t j | j   d	 d
 ! } d d d d d g } t j | | d d	 d d d  S(   NRi   Rj   Rk   Rl   Rm   R   R    R:   i    i   gܗT?g\ʓ?g[Z0?gk?gL5?R"   R?   gh㈵>(	   R#   Rn   R   R   R   RG   RH   R,   R    (   R   RI   RJ   t   expected(    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_pdf_mixeddata0  s    		c         C   s   t  j d |  j g d |  j g d d d d d d  } | j } d d	 g } t j | | d
 d t  j d |  j g d |  j g d d d d d d   } t | j | j d d t | j	 d  t
 |  d  S(   NRi   Rj   Rk   Rl   Rm   R    t   normal_referenceg[X?goVq?R"   g?R?   g|=(   R#   Rn   R   R   R    R,   R    Rg   R   t
   _bw_methodt   repr(   R   t   dens_nmRJ   RK   t   dens_nm2(    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   test_continuous_normal_refC  s     			c         C   sx   t  j d |  j g d |  j g d d d d d d  } | j   d d	 !} d
 d d d d g } t j | | d d d  S(   NRi   Rj   Rk   Rl   Rm   R    Ru   i    i   g0??gWW>j?g?g[<?g1Պ>8?R"   gMbP?(   R#   Rn   R   R   RP   R,   R    (   R   Rx   RJ   RK   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyRR   Z  s    	c         C   s~   t  j d |  j g d |  j g d d d d d d  } | j   d	 d
 !} d d d d d g } t j | | d d	 d d d  S(   NRi   Rj   Rk   Rl   Rm   R   R    R:   i    i   gUPe?geOB?g$x?gtCg?gB_0?R"   R?   gh㈵>(   R#   Rn   R   R   RP   R,   R    (   R   RI   RJ   Rs   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyRS   d  s    	c         C   s  d } t  j j d  t  j j d d d | f } t  j j d | f  } t  j j d | f  } d } d } d } | | | | | | } t j d	 | g d
 | g d d d d d d d t j d t d d   }	 t  j	 d d g  }
 t
 j |	 j |
 d d d d d  S(   Ni  i90  i   g      ?R   i   g333333?g@Ri   Rj   Rk   Rl   Rm   R    R>   RT   RU   RV   i2   g$0{?gё\C?R"   i    R?   gMbP?(   R   R   R   R   R
   R#   Rn   RW   RX   RY   R,   R    R    (   R   R   t   ovalsRZ   R   R   R   R   R\   R]   t   bw_expected(    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyR_   p  s    c         C   s   d } t  j j d  t  j j d | f  } t  j j d d d | f } d d g } t j d | | g d	 d
 d | d t j d t d t d d   } t	 j
 | j |  d  S(   Ni  i90  R   i   i   gq=
ףp?gG$AR7   R8   RF   R    RT   RU   R`   RV   id   (   R   R   R   R
   R#   R;   RW   RX   R&   R,   R   R    (   R   R   RZ   R[   Rb   RI   (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyRc     s    (   R   R   Rd   Re   Rf   Ro   Rp   RO   RL   Rt   Rz   RR   RS   R_   Rc   (    (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyRh   
  s   					
(   t   numpyR   t   numpy.testingt   testingR,   R    R   Rd   t   statsmodels.apit   apit   smt   nonparametricR#   t   objectR   R   R6   Rh   (    (    (    sR   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_density.pyt   <module>   s   	76