ó
áp7]c           @   sÙ   d  d l  m Z d  d l m Z m Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l j j Z d  d l m Z m Z d „  Z d „  Z d „  Z e	 j j d „  ƒ Z d	 „  Z e	 j j d
 „  ƒ Z d „  Z d S(   iÿÿÿÿ(   t   PLATFORM_OSX(   t
   ProcessMLEt   GaussianCovarianceN(   t   assert_allcloset   assert_equalc          C   sD   t  j d }  t  j d } t  j d	 } t  j d
 } |  | | | f S(   Ni   i    iÿÿÿÿg      à?gš™™™™™¹?g      Ð?(   i   i    iÿÿÿÿi    (   i   i   (   g      à?gš™™™™™¹?(   g      Ð?g      Ð?(   t   npt   r_(   t   mn_part   sc_part   sm_part   no_par(    (    sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyt   model1   s
    c      
   C   sù  | ƒ  \ } } } } t  j t  j |  d ƒ t  j d ƒ ƒ } t  j t  j |  d ƒ t  j d ƒ ƒ } | | j ƒ  | j ƒ  } t  j j d |  t | ƒ f ƒ }	 t  j j d |  t | ƒ f ƒ }
 d |
 d  d  … d f <| |
 d  d  … d f <t  j j d |  t | ƒ f ƒ } d | d  d  … d f <| | d  d  … d f <t  j j d |  t | ƒ f ƒ } d | d  d  … d f <| | d  d  … d f <t  j	 |	 | ƒ } t  j
 t  j	 |
 | ƒ ƒ } t  j
 t  j	 | | ƒ ƒ } t  j
 t  j	 | | ƒ ƒ } | j ƒ  } t ƒ  } t j d „  ƒ } x+ t | ƒ D] \ } } | | j | ƒ qWx~ | j ƒ  D]p \ } } | j | | | | | | ƒ } t  j j | ƒ } | | c t  j	 | t  j j d t | ƒ ƒ ƒ 7<qLW| | t  j j d | j ƒ 7} | |	 |
 | | | | f S(   Ni   t   sizei   i    c           S   s   g  S(   N(    (    (    (    sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyt   <lambda>4   t    (   R   t   kront   aranget   onest   meant   stdt   randomt   normalt   lent   dott   expt   copyR   t   collectionst   defaultdictt	   enumeratet   appendt   itemst   get_covt   linalgt   choleskyt   shape(   t   nt	   get_modelR   R   R	   R
   t   groupst   timet   time_zt   x_meant   x_sct   x_smt   x_not   mnt   sct   smt   not   yt   gct   ixt   it   gt   iit   ct   r(    (    sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyt   setup1   s:    ((!!!!	!5 c   
      C   sL   t  |  | ƒ \ } } } } } } } t | | | | | | | ƒ }	 |	 j ƒ  S(   N(   R8   R   t   fit(
   R#   R$   R0   R(   R)   R*   R+   R&   R%   t   preg(    (    sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyt
   run_arraysC   s    $c    	      C   sŽ  t  j j d ƒ t d t ƒ }  |  j } |  j ƒ  t  j t ƒ  ƒ } t |  j	 | d d d d ƒ|  j
 | j d d !| j d d … d  d  … f | j d d … d  d  … f ƒ } t | | j ƒ t  j j | ƒ \ } } t | d k t ƒ |  j ƒ  } t t  j | | j ƒ d d	 k t ƒ |  j d
 | j ƒ } t | | ƒ | j d |  j	 d
 | j ƒ } t | | ƒ |  j t  j t |  j	 ƒ ƒ ƒ d  S(   Ni*   iè  t   atolg333333Ó?t   rtoli    i   i   gš™™™™™É?t   exogt   params(   i    i   (   R   R   t   seedR;   R   t   modelt   summaryt   concatenateR   R?   t
   covarianceR&   t
   exog_scalet   exog_smootht   TR    t   eigR   t   Truet   predictt   corrcoeft   endogR>   t   t_testt   eyeR   (	   t   ft   modt   epart   cvt   at   _t   yhatt   yhatmt   yhat0(    (    sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyt   test_arraysL   s$    	
/"&c         C   s  t  |  | ƒ \ } } } } } } } t j i | d 6| d  d  … d f d 6| d  d  … d f d 6| d  d  … d f d 6| d  d  … d f d	 6| d  d  … d f d
 6| d  d  … d f d 6| d  d  … d f d 6| d  d  … d f d 6| d  d  … d f d 6| d  d  … d f d 6| d 6| d 6ƒ }	 d }
 d } d } d } t j |
 d |	 d | d | d | d d d d ƒ} | j ƒ  } | |	 f S(   NR0   i    t   x1i   t   x2i   t   x3i   t   x4t   xsc1t   xsc2t   xsm1t   xsm2t   xno1t   xno2R&   R%   s   y ~ 0 + x1 + x2 + x3 + x4s   0 + xsc1 + xsc2s   0 + xsm1 + xsm2s   0 + xno1 + xno2t   datat   scale_formulat   smooth_formulat   noise_formula(   R8   t   pdt	   DataFrameR   t   from_formulaR9   (   R#   R$   R0   R(   R)   R*   R+   R&   R%   t   dft   mean_formulaRd   Re   Rf   R:   RO   (    (    sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyt   run_formulam   s:    $		c          C   sÄ  t  j j d ƒ t d t ƒ \ }  } |  j } |  j ƒ  t  j t ƒ  ƒ } t |  j	 | d d d d ƒt
 j | j d d … d  d  … f d	 d
 d g ƒ} t
 j | j d d … d  d  … f d	 d d g ƒ} |  j | j d d !| | ƒ } t | | j ƒ t  j j | ƒ \ } } t | d k t ƒ |  j ƒ  }	 t t  j |	 | j ƒ d d k t ƒ |  j d | ƒ }
 t |	 |
 ƒ | j d |  j	 d | ƒ } t |	 | ƒ |  j t  j t |  j	 ƒ ƒ ƒ d  S(   NiU"  iè  R<   gš™™™™™¹?R=   i   i    i   t   columnsR]   R^   R_   R`   gš™™™™™É?R>   R?   (   i    i   (   R   R   R@   Rl   R   RA   RB   RC   R   R?   Rg   Rh   RE   RF   RD   R&   RG   R    RH   R   RI   RJ   RK   RL   RM   RN   R   (   RO   Rj   RP   RQ   RE   RF   RR   RS   RT   RU   RV   RW   (    (    sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyt   test_formulas’   s*    	
%%&c             s%  t  d t ƒ \ }  } } } } } } t |  | | | | | | ƒ ‰  ‡  f d †  } | j d | j d | j d | j d } t j j d ƒ t r› d n d }	 x} t d ƒ D]o }
 ˆ  j	 ƒ  } | d t j j
 d	 | ƒ } ˆ  j | ƒ } t j | | d
 d ƒ} t | | d |	 d d ƒq® Wd  S(   Niè  c            s   ˆ  j  |  ƒ S(   N(   t   loglike(   t   x(   R:   (    sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyRo   ½   s    i   iV  gü©ñÒMb`?g{®Gáz„?i   gš™™™™™¹?R   t   epsilongH¯¼šò×z>R<   R=   g-Cëâ6?(   R8   R   R   R"   R   R   R@   R    t   ranget
   _get_startR   t   scoret   ndt   approx_fprimeR   (   R0   R(   R)   R*   R+   R&   R%   Ro   t   qR<   RT   t   par0t   parRt   t   score_nd(    (   R:   sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyt   test_score_numdiff·   s    $.(   t   statsmodels.compat.platformR    t)   statsmodels.regression.process_regressionR   R   t   numpyR   t   pandasRg   t   pytestR   t   statsmodels.tools.numdifft   toolst   numdiffRu   t   numpy.testingR   R   R   R8   R;   t   markt   slowRX   Rl   Rn   R{   (    (    (    sK   lib/python2.7/site-packages/statsmodels/regression/tests/test_processreg.pyt   <module>   s   			+		!	%%