ó
áp7]c           @   sª   d  Z  d d l m Z d d l Z d d l Z d d l m	 Z	 m
 Z
 d d l m Z d d l m Z d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d S(   s   
Tests for Results.predict
iÿÿÿÿ(   t   testingN(   t   assert_allcloset   assert_equal(   t   OLS(   t   GLMt   CheckPredictReturnsc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sò   |  j  } |  j } | j j d d d … } | j | j d d d … ƒ } t j | j | j ƒ t | j	 | j	 d d ƒt
 t | j | j d d d … j	 j ƒ ƒ } | j | ƒ } t | j t j t | ƒ ƒ ƒ t | j	 | j	 d d ƒd  S(   Ni   i
   i   t   rtolg‚vIhÂ%<=(   t   rest   datat   fittedvaluest   iloct   predictt   pdtt   assert_index_equalt   indexR   t   valuest   dictt   zipt   columnst   TR   t   npt   aranget   len(   t   selfR   R   t   fittedt   predt   xd(    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyt   test_2d   s    		.c         C   sS  |  j  } |  j } | j | j d  ƒ } t j | j | j d  j ƒ t | j | j	 d d d ƒ| j	 j
 ƒ  } | j
 ƒ  } | j | j ƒ  j ƒ } t | j t j d ƒ ƒ t | | d d ƒ| j | j
 ƒ  ƒ } t | j t j d ƒ ƒ t | j | d d ƒ| j | j
 ƒ  j ƒ  ƒ } t | j t j d ƒ ƒ t | j | d d ƒd  S(   Ni   i    R   g‚vIhÂ%<=(   R   R   R   R
   R   R   R   R   R   R	   t   meant   to_frameR   R   R   R   t   to_dict(   R   R   R   R   t   fittedmt   xmean(    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyt   test_1d"   s     		c         C   sy  |  j  } |  j } | j j d d d … } | j | j j d d d … d t ƒ} t | | j	 d d ƒt
 j | j j d d d … d | j d d d … d | j j ƒ} | j | ƒ } t j | j | j ƒ t | j	 | j	 d d ƒ| j | j j d d t ƒ} t | | j	 d	 d d ƒ| j | j d	 ƒ } t j | j | j d  ƒ t | j	 d	 | j	 d	 d d ƒd  S(
   Ni   i
   i   t	   transformR   g‚vIhÂ%<=R   R   i    (   R   R   R	   R
   R   t   modelt   exogt   FalseR   R   t   pdt	   DataFrameR   t
   exog_namesR   R   (   R   R   R   R   R   t   x(    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyt   test_nopatsy<   s     		((   t   __name__t
   __module__R   R!   R*   (    (    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyR      s   		t   TestPredictOLSc           B   s   e  Z e d  „  ƒ Z RS(   c         C   sÑ   d } t  j j d ƒ t  j j | d ƒ } | j d ƒ t  j j | ƒ } g  t | ƒ D] } d | ^ qW } t j t  j t  j	 | | f ƒ d ƒ d d j
 ƒ  d	 | ƒ|  _ t j d
 d |  j ƒj ƒ  |  _ d  S(   Ni   iø i   i   s   obs%02di   R   s   y var1 var2 var3R   s   y ~ var1 + var2R   (   R   t   randomt   seedt   randnt   sumt   rangeR&   R'   t   roundt   column_stackt   splitR   R   t   from_formulat   fitR   (   t   clst   nobsR)   t   yt   iR   (    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyt   setup_classY   s    #'(   R+   R,   t   classmethodR<   (    (    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyR-   W   s   t   TestPredictGLMc           B   s    e  Z e d  „  ƒ Z d „  Z RS(   c         C   sÑ   d } t  j j d ƒ t  j j | d ƒ } | j d ƒ t  j j | ƒ } g  t | ƒ D] } d | ^ qW } t j t  j t  j	 | | f ƒ d ƒ d d j
 ƒ  d	 | ƒ|  _ t j d
 d |  j ƒj ƒ  |  _ d  S(   Ni   iø i   i   s   obs%02di   R   s   y var1 var2 var3R   s   y ~ var1 + var2R   (   R   R.   R/   R0   R1   R2   R&   R'   R3   R4   R5   R   R   R6   R7   R   (   R8   R9   R)   R:   R;   R   (    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyR<   j   s    #'c   	      C   s"  |  j  } |  j } | j j d d d … } t j t | ƒ ƒ } | | } | j | j d d d … d | ƒ} t j	 | j
 | j
 ƒ t | j | j d d ƒt t | j | j d d d … j j ƒ ƒ } | j | d | ƒ} t | j
 t j t | ƒ ƒ ƒ t | j | j d d ƒ| j d d d … j ƒ  } | | d <| j | d | d ƒ} t j	 | j
 | j
 ƒ t | j | j d d ƒ| j d d d … j ƒ  } | | d <t j | j d <| j | d | d ƒ} t j	 | j
 | j
 ƒ | j ƒ  } t j | d <t | j | j d d ƒd  S(	   Ni   i
   i   t   offsetR   g‚vIhÂ%<=i    (   i    i   (   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   copyt   nan(	   R   R   R   R   R?   R   R   t   data2t
   fitted_nan(    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyt   test_predict_offsetx   s2    		
%.

(   R+   R,   R=   R<   RD   (    (    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyR>   h   s   (   t   __doc__t   statsmodels.compat.pandasR    R   t   numpyR   t   pandasR&   t   numpy.testingR   R   t#   statsmodels.regression.linear_modelR   t+   statsmodels.genmod.generalized_linear_modelR   t   objectR   R-   R>   (    (    (    sB   lib/python2.7/site-packages/statsmodels/base/tests/test_predict.pyt   <module>   s   G