
p7]c           @   sx   d  d l  Z  d  d l Z d  d l j Z d  d l j Z e j	 Z
 d e f d     YZ d e f d     YZ d   Z d S(   iNt   KernelRegressionTestBasec           B   s    e  Z e d     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 |  _ 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   oecd(   t   clst   nobst   b0t   b1t   b2(    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   setup_class   sN    $$$$&-!!!!EEc         C   s   d d l  } | j t | d   } t j |  } t t j |   } t t j |   } t j | | | f  } x7 t	 |  D]) } | j
 t | | d d  f   q Wd S(   s7   Write some data to a csv file.  Only use for debugging!iNt   w(   t   csvt   writert   openR   t   column_stackt   maxt   shapet   mint   reshapet   ranget   writerowt   list(   t   selft	   file_namet   dataR   t	   data_fileR   t   Kt   i(    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt
   write2file?   s    (   t   __name__t
   __module__t   classmethodR   R+   (    (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyR    
   s   4t   TestKernelRegc           B   s   e  Z d    Z d   Z d   Z d d  Z d d  Z e j j	 e j j
 d d  d d    Z e j j	 d	    Z e j j	 d
    Z e j j	 d    Z e j j	 d    Z e j j	 d    Z d   Z d   Z RS(   c   	      C   s   t  j d |  j g d |  j g d d d d d d  } | j } d	 } | j   \ } } | d
 d !} | d
 d !} d } | j   } d } t j | | d d t j | | d d t j | | d d d  S(   Nt   endogt   exogt   reg_typet   lct   var_typeR   t   bwt   cv_lsg>
?i    i   g(b@gr53D_?t   atolg{Gz?(	   t   nparamt	   KernelRegR   R   R5   t   fitt	   r_squaredt   nptt   assert_allclose(	   R%   t   modelt   sm_bwt   R_bwt   sm_meant   sm_mfxt   R_meant   sm_R2t   R_R2(    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_ordered_lc_cvlsM   s    	c   	      C   s   t  j d |  j g d |  j |  j g d d d d d d  } | j } d	 d
 g } | j   \ } } | d d !} | d d !} d d d d d g } | j   } d } t j	 | | d d t j	 | | d d t j	 | | d d d  S(   NR0   R1   R2   R3   R4   t   ccR5   R6   ghi?g{?i    i   gٱ}?@gEB[ΥB@gxEE@g#KD@g%#gaOgB@gO/֭?R7   g{Gz?(
   R8   R9   R   R	   R
   R5   R:   R;   R<   R=   (	   R%   R>   R?   R@   RA   RB   RC   RD   RE   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_continuousdata_lc_cvlse   s    '	c   	      C   s   t  j d |  j g d |  j |  j g d d d d d d  } | j } d	 d
 g } | j   \ } } | d d !} | d d !} d d d d d g } | j   } d } t j	 | | d d t j	 | | d d t j	 | | d d d  S(   NR0   R1   R2   t   llR4   RG   R5   R6   g{E{|?g:f@i    i   g`(?@gB=ЦB@gAf?F@gSW^D@g?mB@gx?R7   g{Gz?(
   R8   R9   R   R	   R
   R5   R:   R;   R<   R=   (	   R%   R>   R?   R@   RA   RB   RC   RD   RE   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_continuousdata_ll_cvlsx   s    '	s   RegData.csvc         C   s\  d } t  j j d  t  j j d | f  } t  j j d d d | f } t  j j d d d | f } t  j j d | f  } d } d	 } d
 }	 d }
 | | | |	 | |
 | | } t  j d d d g  } t j d | g d | | | g d d d d d |  } | j   \ } } | d d !} t	 j
 | d d  d   f | |	 |
 g d d d  S(   Ni   i  R   i   i   g      ?g?i   g333333?g@gffffff@gX9v?gX2ı.?g0*?R0   R1   R2   RI   R4   t   cccR5   i    i   t   rtol(   R   R   R   R   t   betat   arrayR8   R9   R:   R<   R=   (   R%   R&   R   t   C1t   C2t   C3R   R   R   R   t   b3t   Yt   bw_cv_lsR>   RA   RB   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_continuous_mfx_ll_cvls   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 d d | f } t  j j d | f  } d } d } d	 }	 d
 }
 | | | |	 | |
 | | } t  j d d d g  } t j d | g d | | | g d d d d d |  } | j   \ } } | j	   } t
 j | d d  d   f | |	 |
 g d d d  S(   Ni   i  i   g      ?R   i   i   g333333?g@gffffff@g?g#J{/?gRZ?R0   R1   R2   RI   R4   t   ccoR5   i    RL   g?(   R   R   R   R   R   RN   R8   R9   R:   R;   R<   R=   (   R%   R&   R   t   ovalsRO   RP   R   R   R   R   RR   RS   RT   R>   RA   RB   RD   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_mixed_mfx_ll_cvls   s"    "!t   reasons@   Test doesn't make much sense - always passes with very small bw.c         C   s  d } t  j j d  t  j j d | f  } t  j j d d d | f } t  j j d d d | f } t  j j d | f  } d } d	 } d
 }	 | | | | |	 | | }
 t j d |
 g d | | | g d d d d d d  } | j } | j   \ } } | j	   } | | } | | } t
 j | |
 d d t
 j | d  d   d f | d d t
 j | d d  d f | d d !d d d  S(   Ni   i  R   i   i   g      ?g?i   g333333?gffffff@R0   R1   R2   RI   R4   RK   R5   R6   RL   i    i
   (   R   R   R   R   RM   R8   R9   R5   R:   R;   R<   R=   (   R%   R&   R   RO   RP   RQ   R   R   R   RR   RS   R>   R?   RA   RB   RD   t   mfx1t   mfx2(    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_mfx_nonlinear_ll_cvls   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
 | g d d d d d d d t j d t d d   } t j d	 | g d
 | g d d d d d d  }	 t j	 |	 j
 | j
 d d d d d  S(   Ni  i90  R   i   i   i   g333333?g@R0   R1   R2   R3   R4   t   cR5   R6   t   defaultst	   efficientt   n_subid   RI   R7   g?RL   g?(   R   R   R   R   R8   R9   t   EstimatorSettingst   TrueR<   R=   R5   (
   R%   R   RO   RP   R   R   R   RS   t   model_efficientR>   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.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 } t  j j d | f  } d d | d | | } d	 | | d	 k <t j d
 | g d | | g d d d d d d d d	  } | j   \ } } t j | d	 d  d   f d d g d d d  S(   Ni   i  R   i   i   g333333?g333333?g?i    R0   R1   R2   RI   R4   RG   R5   R6   t
   censor_valgRL   g?(	   R   R   R   R   R8   t   KernelCensoredRegR:   R<   R=   (	   R%   R   RO   RP   R   RS   R>   RA   RB   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_censored_ll_cvls   s    c         C   s   d } t  j j d  t  j j d | f  } t  j j d d d | f } t  j j d | f  } d d | d | | } t j d	 | g d
 | | g d d d d d d  } d d g } t j | j | d d d  S(   Ni   i  R   i   i   g333333?g333333?g?R0   R1   R2   R3   R4   RG   R5   t   aicgn[?gLzxL?RL   gMbP?(	   R   R   R   R   R8   R9   R<   R=   R5   (   R%   R   RO   RP   R   RS   R>   t   bw_expected(    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_continuous_lc_aic   s    c         C   sz  d } t  j j d  t  j j d | f  } t  j j d d d | f } t  j j d d d | f } t  j j d | f  } d } d	 } | | | | | } d
 d g }	 t j d | g d | | g d d d d d |	  }
 d } |
 j d d g d | } t j	 | d k t
  |
 j d g d | } t j	 | d k t
  |
 j d g d | } t j	 | d k t  d  S(   Ni   i90  R   i   i   g      ?g?g333333?g@gz#/eAg =Z4AR0   R1   R2   RI   R4   RG   R5   i-   i    t   nboots   Not Significant(   R   R   R   R   RM   R8   R9   t   sig_testR<   t   assert_equalt   FalseRb   (   R%   R   RO   RP   RQ   R   R   R   RS   R5   R>   Rk   t	   sig_var12t   sig_var1t   sig_var2(    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_significance_continuous  s&    c         C   sO  d } t  j j d  t  j j d d d | f } t  j j d d d | f } t  j j d d d | f } t  j j d | f  } d } d	 } | | | | | } d
 d g }	 t j d | g d | | g d d d d d |	  }
 d } |
 j d g d | } t	 j
 | d k t  |
 j d g d | } t	 j
 | d k t  d  S(   Ni   i90  i   g      ?R   i   g?g333333?g@gE>\@g{`2AR0   R1   R2   RI   R4   t   ocR5   i-   i    Rk   s   Not Significant(   R   R   R   R   R   RM   R8   R9   Rl   R<   Rm   Rn   Rb   (   R%   R   RW   RP   RQ   R   R   R   RS   R5   R>   Rk   Rp   Rq   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_significance_discrete  s"    c         C   sq   d d g } t  j d |  j g d |  j |  j g d d d d d	 | d
 t  j d t   } t j | j	 |  d  S(   Ngq=
ףp?gG$AR0   R1   R2   R3   R4   RG   R5   R^   R_   (
   R8   R9   R   R	   R
   Ra   Rb   R<   Rm   R5   (   R%   t   bw_userR>   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt!   test_efficient_user_specificed_bw4  s
    'c         C   s   d } t  j j d  t  j j d | f  } t  j j d d d | f } t  j j d | f  } d d | d | | } d	 | | d	 k <d
 d g } t j d | g d | | g d d d d d | d d	 d t j d t   } t j	 | j
 |  d  S(   Ni   i  R   i   i   g333333?g333333?g?i    gq=
ףp?gG$AR0   R1   R2   RI   R4   RG   R5   Re   R^   R_   (   R   R   R   R   R8   Rf   Ra   Rb   R<   Rm   R5   (   R%   R   RO   RP   R   RS   Ru   R>   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt*   test_censored_efficient_user_specificed_bw=  s    (   R,   R-   RF   RH   RJ   RU   RX   t   pytestt   markt   slowt   xfailR\   Rd   Rg   Rj   Rr   Rt   Rv   Rw   (    (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyR/   L   s   						c          C   sR   t  j d  }  |  d } t j t  $ t j |  | d d d d g Wd  QXd  S(   Ni  i   R]   R5   g      )@g      ?(   R   t   arangeRx   t   raisest
   ValueErrorR8   R9   (   t   xR   (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   test_invalid_bwO  s    
(   Rx   t   numpyR   t   numpy.testingt   testingR<   t   statsmodels.apit   apit   smt   nonparametricR8   t   objectR    R/   R   (    (    (    sU   lib/python2.7/site-packages/statsmodels/nonparametric/tests/test_kernel_regression.pyt   <module>   s   	B 