
p7]c           @  s  d  Z  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
 m Z m Z d d l Z d d l m Z d d l m Z d d l m Z d d l j j j Z d	   Z e   \ Z Z Z e	 j e d
 e Z e e	 j e e g  \ Z  Z! e  j" e	 j# k st$  e! j" e	 j# k s5t$  e	 j% d d d d d d d d d d d d d g  Z& e	 j% d d d d d d d d d  d! d" d# d$ g  Z' e	 j% d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 g  Z( e	 j% d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> g  Z) e	 j% d? d@ dA dB dC dD dE dF dG dH dI dJ dK g  Z* dL   Z+ dM   Z, dN   Z- e e. e'   Z/ e/ dO e/ dO  Z/ e  d d  e/ f Z0 dP e1 f dQ     YZ2 dR e1 f dS     YZ3 dT e3 f dU     YZ4 dV e3 f dW     YZ5 dX e3 f dY     YZ6 dZ e3 f d[     YZ7 d\ e3 f d]     YZ8 d^ e3 f d_     YZ9 d` e3 f da     YZ: db e3 f dc     YZ; dd e3 f de     YZ< df e3 f dg     YZ= dh e1 f di     YZ> dj e1 f dk     YZ? dl e? f dm     YZ@ dn   ZA do   ZB d S(p   s>   

Created on Fri Oct 04 13:19:01 2013

Author: Josef Perktold
i(   t   print_function(   t   lranget   lmapN(   t   assert_allcloset   assert_equal(   t   iolib(   t   add_constant(   t   OLSc          C  s  d d  l  }  |  j j t  d } |  j j | d  } t j t  # t j	 | d t
 j d t } Wd  QX| d j   } | j d } x} | D]u } t
 j |  | d | <xU t |  D]G } | j | j | d f | k r d | j | j | d | f <q q Wq Wd | d	 <t | d
 d d d d d d d d d d d g d t } t | d d d d d d d d d d d d d d g  }	 | d }
 |
 | |	 f S(   Nii    s   griliches76.dtat   missing_fltt   pandast   years   D_%ii   t   constt   st   iqt   exprt   tenuret   rnst   smsat   D_67t   D_68t   D_69t   D_70t   D_71t   D_73t   prependt   medt   kwwt   aget   mrtt   lw(   t   ost   patht   splitt   __file__t   joint   pytestt   warnst   FutureWarningR   t
   genfromdtat   npt   NaNt   Truet   uniquet   shapet   zerost   ranget   loct   indexR   (   R   t   curdirR   t   griliches76_datat   yearst   Nt   yrt   it   Xt   Zt   Y(    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   get_griliches76_data   s0     !
	
t   dtypes   (Intercept)R   R   R   R   R   R   R   R   R   R   R   R   gjP"@gU?gAAJhg9L,x<?gVyz?gSo"gZpRg$?g<vC"g	^?g1?gj(S?g]Nkw?g(޷?g%/\?gk?ge^os?gÆ~؀?g+B|D?g?wY~?g`0?g{{?gC_ݪ?g,?g)RĖܮ?g/i?g(V?gZ)@gZtS| @g2AMgK|%@g0@gMC']gZ)r+@ggĜ?g`3eLf@g͛y(&@g%?g-cyW?g_`!9g SF<g r?gEȨ+>g :5>gmj?gĊÛ?g j6E?gW?g ]k?gg	p?g
?g{=?c          C  s   t  j t t t  }  |  j   } t j \ } } t | j t d d d d t | j	 t	 d d d d t
 |  d  s~ t  d  S(   Nt   rtolgHz>t   atolg&.>i    gv!>t   _results(   t   gmmt   IV2SLSt   endogt   exogt
   instrumentt   fitR+   R   t   paramst   bset   hasattrt   AssertionError(   t   modt   rest   nt   k(    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_iv2sls_rY   s    c    	      C  s  t  j \ }  } t j \ } } t j t j t  | } t j j |  } t j	 t
 t  t  } | j t j t  j d t  d d d | d d d i d d	 6d d
 6} t | j t d d d d t | j t d d d d | j j | j |  } t | t j | j  d d d d d  S(   Ni   t   maxiteri    t   inv_weightst   optim_methodt   bfgst
   optim_argsg:0yE>t   gtolt   dispR;   g-C6?R<   g
ףp=
?gh㈵>(   RA   R+   RB   R'   t   dott   Tt   linalgt   invR>   t   IVGMMR@   RC   t   onest   floatR   RD   RE   t   modelt   scoreR,   (	   RJ   RK   t   nobst   k_instrt   w0invt   w0RH   RI   R\   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_ivgmm0_rm   s    +c          C  s  t  j d d d d d d d d d	 d
 d d d g  }  t  j d d d d d d d d d d d d d g  } t j \ } } t j \ } } t  j t j t  | } t  j j |  } t	 t
 t  j   j } t j t
 t t  }	 |	 j | d d d | d d d  i d! d" 6d# d$ 6}
 d  S(%   Ngr^RkP"@gU?gAAJhg9L,x<?gVyz?gSo"gZpRg$?g<vC"g	^?g1?gj(S?g]Nkw?g(㗏޷?grh-q?geE<?gЪt?g+i|?g a?g¯B?gLǵ?gO8z?gM?gZ?gmK?gZ2}e?gP'?RM   i   RN   RO   RP   RQ   gư>RR   i    RS   (   R'   t   arrayRA   R+   RB   RT   RU   RV   RW   R   R@   RC   RD   R>   RX   (   t   params_statat	   bse_stataRJ   RK   R]   R^   R_   R`   t   startRH   RI   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_ivgmm1_stata   s    i   t
   TestGMMOLSc           B  s)   e  Z e d     Z d   Z d   Z RS(   c         C  s   t  } t t |  j   } | j \ } } t j | j |  | } t j	 t | |  } | j t j
 | j d t  d d d | d d d i d d	 6d d
 6} | |  _ | |  _ d  S(   Ni   RM   i    RN   RO   RP   RQ   gư>RR   RS   (   t   exog_stR   R@   RC   R+   R'   RT   RU   R>   RX   RY   RZ   t   res1t   res2(   t   clsRA   t   res_olsR]   R^   R_   RH   RI   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   setup_class   s    +	c         C  s   |  j  |  j } } t | j | j d d d d t | j | j d d d d | j j j d } d } t | j | | j d d d d t | j | | j d d d d d  S(	   NR;   gMb@?R<   i    gh㈵>i   gh㈵>gHz>(	   Ri   Rj   R   RD   R[   RA   R+   RE   t   HC0_se(   t   selfRi   Rj   RJ   t   dffac(    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt
   test_basic   s    #c         C  s   |  j  |  j } } d  S(   N(   Ri   Rj   (   Ro   Ri   Rj   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt
   test_other   s    (   t   __name__t
   __module__t   classmethodRm   Rq   Rr   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRg      s   	t   CheckGMMc           B  sY   e  Z d  d  g Z d d g Z d   Z d   Z d   Z e j j	 d    Z
 d   Z RS(   gh㈵>gƠ>c         C  s   |  j  |  j } } |  j \ } } t | j | j d | d d t | j | j d d d | | j j j d } d } |  j \ } } t | j	 | | j	 d | d d t | j	 | | j	 d d d | d  S(   NR;   R<   i    i   (
   Ri   Rj   t
   params_tolR   RD   R[   RA   R+   t   bse_tolRE   (   Ro   Ri   Rj   R;   R<   RJ   Rp   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRq      s    #c         C  sU   |  j  |  j } } t | j | j d d d d t | j | j d d d d d  S(   NR;   gh㈵>R<   i    g-C6
?(   Ri   Rj   R   t   qt   Qt   jvalt   J(   Ro   Ri   Rj   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt
   _est_other   s    c   	      C  s   |  j  |  j } } t j t | j   } | j |  } t | j | j	 d d d d t | j
 | j d d d d |  j \ } } t | j | j	 d | d d | t | j
 | j d | d d | | j | d   } | j | d   } d  S(   NR;   g-q=R<   i    i
   i(   Ri   Rj   R'   t   eyet   lenRD   t   t_testR   t   tvaluet   tvaluest   pvaluet   pvaluesRx   t   f_testt	   wald_test(	   Ro   Ri   Rj   t   restrictiont   res_tR;   R<   t   res_ft   res_wald(    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_hypothesis   s    ##c         C  s@   |  j  } | j   } t t | j d  t | j  d  d  S(   Ni   (   Ri   t   summaryR   R   t   tablesRD   (   Ro   Ri   t   summ(    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_summary   s    	c         C  s[   t  j |  j  } t | _ | j   } d t |  k s? t  d t |  k sW t  d  S(   Ns   P>|t|s   P>|z|(   t   copyt   deepcopyRi   R)   t   use_tR   t   strRG   (   Ro   Ri   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt
   test_use_t   s
    	(   Rs   Rt   Rw   Rx   Rq   R}   R   R#   t   markt   smokeR   R   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRv      s   			t
   TestGMMSt1c           B  s   e  Z e d     Z RS(   c   	      C  s   t  } t t |  j   j } t j \ } } t j t j	 t  | } t
 j t | t  } | j | d d d | d d d i d d 6d	 d
 6d i t d 6} | |  _ d d l m } | |  _ d  S(   NRM   i
   RN   RO   RP   RQ   gư>RR   i    RS   t   wargst   centeredi   (   t   results(   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   RX   t   FalseRi   t   results_gmm_griliches_iterR   Rj   (	   Rk   RA   Re   R]   R^   R_   RH   t   res10R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm     s    	(   Rs   Rt   Ru   Rm   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s   t   TestGMMStTwostepc           B  s   e  Z e d     Z RS(   c   	      C  s   d d g |  _  d d g |  _ t } t t |  j   j } t j \ } } t	 j
 t j t  | } t j t | t  } | j | d d d | d d d	 i d
 d 6d d 6d i t d 6} | |  _ d d l m } | |  _ d  S(   Ng-C6
?gh㈵>gƠ>RM   i   RN   RO   RP   RQ   gư>RR   i    RS   R   R   i   (   t   results_twostep(   Rw   Rx   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   RX   R   Ri   t   results_gmm_grilichesR   Rj   (	   Rk   RA   Re   R]   R^   R_   RH   R   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm     s    	(   Rs   Rt   Ru   Rm   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s   t   TestGMMStTwostepNOc           B  s   e  Z e d     Z RS(   c   	      C  s   d d g |  _  d d g |  _ t } t t |  j   j } t j \ } } t	 j
 t j t  | } t j t | t  } | j | d d d | d d d	 i d d
 6d d 6d i t d 6d t } | |  _ d d l m } | |  _ d  S(   Ng-C6
?gh㈵>gư>RM   i   RN   RO   RP   RQ   RR   i    RS   R   R   t   has_optimal_weightsi   (   R   (   Rw   Rx   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   RX   R   Ri   R   R   Rj   (	   Rk   RA   Re   R]   R^   R_   RH   R   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm   5  s    	(   Rs   Rt   Ru   Rm   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR   2  s   t   TestGMMStOnestepc           B  s    e  Z e d     Z d   Z RS(   c   	      C  s   d d g |  _  d d g |  _ t } t t |  j   j } t j \ } } t	 j
 t j t  | } t j t | t  } | j | d d d | d d d	 i d
 d 6d d 6} | |  _ d d l m } | |  _ d  S(   NgMb@?g-C6
?gy&1|?RM   i    RN   RO   RP   RQ   gư>RR   RS   i   (   t   results_onestep(   Rw   Rx   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   RX   Ri   R   R   Rj   (	   Rk   RA   Re   R]   R^   R_   RH   RI   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm   L  s    	c         C  sk   |  j  |  j } } t j t j | j d t    } |  j  j j |  j  j	 t j
 j |  j  j   } d  S(   NR   (   Ri   Rj   R'   t   sqrtt   diagt   _cov_paramsR   R[   t   gmmobjectiveRD   RV   RW   t   weights(   Ro   Ri   Rj   RE   Ry   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_bse_other`  s    $(   Rs   Rt   Ru   Rm   R   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR   J  s   t   TestGMMStOnestepNOc           B  s   e  Z e d     Z RS(   c   	      C  s   d d g |  _  d d g |  _ t } t t |  j   j } t j \ } } t	 j
 t j t  | } t j t | t  } | j | d d d | d d	 d
 i d d 6d d 6d i t d 6d t } | |  _ d d l m } | |  _ d  S(   Ngh㈵>gư>gh㈵>gƠ>RM   i    RN   RO   RP   RQ   RR   RS   R   R   R   i   (   R   (   Rw   Rx   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   RX   R   Ri   R   R   Rj   (	   Rk   RA   Re   R]   R^   R_   RH   RI   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm   p  s    	(   Rs   Rt   Ru   Rm   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR   m  s   t   TestGMMStOneiterc           B  s    e  Z e d     Z d   Z RS(   c   	      C  s   d d g |  _  d d g |  _ t } t t |  j   j } t j \ } } t	 j
 t j t  | } t j t | t  } | j | d d d | d d d	 i d
 d 6d d 6} | |  _ d d l m } | |  _ d  S(   NgMb@?g-C6
?gy&1|?RM   i   RN   RO   RP   RQ   gư>RR   i    RS   (   R   (   Rw   Rx   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   RX   Ri   R   R   Rj   (	   Rk   RA   Re   R]   R^   R_   RH   RI   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm     s    	c   	      C  s   |  j  |  j } } | j j | j  } | j j |  } t j t j | j	 d t
 d | j    } t j t j | j	 d t
    } t j d } t j t j t  | } |  j  j j |  j  j |  } d  S(   NR   R   i    (   Ri   Rj   R[   t   momcondRD   t   calc_weightmatrixR'   R   R   R   R   R   RB   R+   RT   RU   R   (	   Ro   Ri   Rj   t   momst   wRE   R]   R_   Ry   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s    $(   Rs   Rt   Ru   Rm   R   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s   t   TestGMMStOneiterNOc           B  s   e  Z e d     Z RS(   c   	      C  s   d d g |  _  d d g |  _ t } t t |  j   j } t j \ } } t	 j
 t j t  | } t j t | t  } | j | d d d | d d	 d
 i d d 6d d 6d i t d 6d t } | |  _ d d l m } | |  _ d  S(   Ngh㈵>gư>gh㈵>gƠ>RM   i   RN   RO   RP   RQ   RR   i    RS   R   R   R   (   R   (   Rw   Rx   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   RX   R   Ri   R   R   Rj   (	   Rk   RA   Re   R]   R^   R_   RH   RI   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm     s    	(   Rs   Rt   Ru   Rm   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s   t   TestGMMStOneiterNO_Linearc           B  s   e  Z e d     Z RS(   c   	      C  sM  d d g |  _  d d g |  _ t } t t |  j   j } t j \ } } t	 j
 t j t  | } t j t | t  } | j | d d d | d d	 d
 i d d 6d d 6d i t d 6d t } | |  _ t j t | t  } | j | d d d | d d	 d
 i d d 6d d 6d i t d 6d t } | |  _ d d l m } | |  _ d  S(   Ng:0y5>g&.>g&.>g|=RM   i   RN   RO   RP   RQ   g:0yE>RR   i    RS   R   R   R   gư>(   R   (   Rw   Rx   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   t   LinearIVGMMR   Ri   RX   t   res3R   R   Rj   (	   Rk   RA   Re   R]   R^   R_   RH   RI   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm     s$    		(   Rs   Rt   Ru   Rm   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s   t   TestGMMStOneiterNO_Nonlinearc           B  s    e  Z e d     Z d   Z RS(   c   
      C  sY  d d g |  _  d d g |  _ t } t t |  j   j } t j \ } } t	 j
 t j t  | } d   } t j t | t |  } | j | d d d | d d	 d
 i d d 6d d 6d i t d 6d t } | |  _ t j t | t  } | j | d d d | d d	 d
 i d d 6d d 6d i t d 6d t } | |  _ d d l m }	 |	 |  _ d  S(   Ng-C6
?gh㈵>g?c         S  s   t  j | |   S(   N(   R'   RT   (   RD   RA   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   func  s    RM   i   RN   RO   RP   RQ   g:0yE>RR   i    RS   R   R   R   gư>(   R   (   Rw   Rx   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   t   NonlinearIVGMMR   Ri   RX   R   R   R   Rj   (
   Rk   RA   Re   R]   R^   R_   R   RH   RI   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm     s&    			c         C  s   |  j  j d } |  j  j } |  j  j j | |  } t |  j  j j |  j  j  j | |  } t | | d d d d t | | d d d d |  j  j j |  j  j |  } t | t j	 t
 |   d d d d d  S(   Ng?R;   gư>R<   i    gHz>g:0yE>(   Ri   RD   R   R[   R\   t   supert	   __class__R   R'   R,   R   (   Ro   RD   R   t   sc1t   sc2(    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt
   test_score
  s    !	(   Rs   Rt   Ru   Rm   R   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s   t   TestGMMStOneiterOLS_Linearc           B  s   e  Z e d     Z RS(   c   	      C  s  d d g |  _  d d g |  _ t } t t |  j   } t j t | j	   } t
 j \ } } t j | j |  | } t j t | |  } | j | d d d | d i d d 6d d	 d
 i t d 6d d 6d t } t | _ | j t | j	  | _ | |  _ | |  _ d  S(   Ngdy=g-q=RM   i    RN   RQ   RS   t   weights_methodt   iidR   R   t   k_paramst   ddofR   (   Rw   Rx   Rh   R   R@   RC   R'   RY   R   RD   RB   R+   RT   RU   R>   R   R   R)   R   R]   t   df_residRi   Rj   (	   Rk   RA   Rl   Re   R]   R^   R_   RH   RI   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm     s"    			(   Rs   Rt   Ru   Rm   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s   t
   TestGMMSt2c           B  s    e  Z e d     Z d   Z RS(   c   	      C  s1  t  } t t |  j   j } t j \ } } t j t j	 t  | } t
 j t | t  } | j | d d d | d i d d 6t d 6d d	 d
 i d d 6d d 6} | |  _ d d l m } | |  _ t
 j t | t  } | j | d d d | d i d d 6t d 6d d	 d
 i d d 6d d 6} | |  _ d  S(   NRM   i   RN   R   i    R   R   RO   RP   RQ   gư>RR   RS   i   (   t   results_gmm2s_robust(   Rh   R   R@   RC   RD   RB   R+   R'   RT   RU   R>   RX   R   Ri   t   results_ivreg2_grilichesR   Rj   R   (	   Rk   RA   Re   R]   R^   R_   RH   RI   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm   @  s     		c      	   C  s  |  j  |  j } } t | j | j d d d d t | j | j d d d d | j j j d } t j d d  } t | j	 | | j	 d d d d t | j	 | | j	 d d d d t j t j
 | j d	 t d
 | j    } t | j	 | j	 d d d d t j t j
 | j d	 t d
 | j d t    } t | j	 | j	 d d d d t |  j j	 | j	 d d d d t |  j j	 | j	 d d d d d  S(   NR;   g-C6
?R<   i    gh㈵>g     H@i  g{Gzt?R   R   g      ?t   use_weightsg?(   Ri   Rj   R   RD   R[   RA   R+   R'   R   RE   R   R   R)   R   R   (   Ro   Ri   Rj   RJ   t   dffactRE   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRq   [  s     ##	"(   Rs   Rt   Ru   Rm   Rq   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR   <  s   t   CheckIV2SLSc           B  sA   e  Z d    Z d   Z d   Z d   Z e j j d    Z	 RS(   c         C  s   |  j  |  j } } t | j | j d d d d t | j | j d d d d | j j j d } t | j | j d d d d t | j | j d d d d t | j | j d d d d d  S(   NR;   g&.>R<   i    g|=gdy=g&.>(	   Ri   Rj   R   RD   R[   RA   R+   RE   R   (   Ro   Ri   Rj   RJ   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRq     s    c         C  s]  |  j  |  j } } t | j | j d d d d t | j | j d d d d t | j | j d d d d t | j	 | j
 d d d d t t j | j  | j d d d d t | j | j d d d d t | j | j d d d d t | j | j d d d d t | j | j d d d d t | j | j  t | j | j  d  S(   NR;   gHz>R<   i    g|=g:0yE>g&.>(   Ri   Rj   R   t   rsquaredt   r2t   rsquared_adjt   r2_at   fvaluet   Ft   f_pvaluet   FpR'   R   t	   mse_residt   rmset   ssrt   rsst   uncentered_tsst   yyt   centered_tsst   yyct   esst   mssR   t   df_modelt   df_mR   t   df_r(   Ro   Ri   Rj   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRr     s    (c         C  s  |  j  |  j } } t j t | j   } | j |  } t | j | j	 d d d d t | j
 | j d d d d | j | d   } t | j | j d d d d t | j
 | j d d d d t | j | j d d d d t | j
 | j d d d d d  S(   NR;   g-q=R<   i    ig|=g:0yE>(   Ri   Rj   R'   R~   R   RD   R   R   R   R   R   R   R   R   R   R   R   (   Ro   Ri   Rj   R   R   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s    c         C  sk   |  j  |  j } } | j   } t | d | j d d d d d t | d | j d d d d d	 d  S(
   Ni    t   DWHR;   gdy=R<   i   t   DWHpg|=g}:(   Ri   Rj   t   spec_hausmanR   t   hausman(   Ro   Ri   Rj   t   hausm(    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_hausman  s    $c         C  s@   |  j  } | j   } t t | j d  t | j  d  d  S(   Ni   (   Ri   R   R   R   R   RD   (   Ro   Ri   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s    	(
   Rs   Rt   Rq   Rr   R   R   R#   R   R   R   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s
   				t   TestIV2SLSSt1c           B  s    e  Z e d     Z d   Z RS(   c         C  st   t  } t t |  j   j } t j \ } } t j t | t  } | j   } | |  _	 d d l
 m } | |  _ d  S(   Ni   (   t   results_small(   Rh   R   R@   RC   RD   RB   R+   R>   R?   Ri   R   R   Rj   (   Rk   RA   Re   R]   R^   RH   RI   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyRm     s    	c         C  sh  t  j j d  } | j d d  } | j d  } t  j d  | d  d   d f t  j d  | | d  d   d f <t  j | d  d   d g f | d  d   d  f f  } t  j d  | j d  t  j d  | d  d   d f } | d  d   d f | d  d   d f | } } | d  d   d  f } t j |  } t j	 |  }	 | d  d   d f }
 | } t j	 |  } | j
 d  d   d g f } | j
 d  d   d f } | } t j | d  d   d f  } | j } t j	 |  } |	 | | | f } | |
 | | | f } | | | | f } t j | | |  j   } t j | |
 |  j   } t j | |
 |  j   } x | D] } x | D] } x | D] } t  j |  | j d k }
 t  j |  | j d k } | r|
 rqn  t j | | |  j   } | r"t | j | j  q|
 rE| rEt | j | j  qt | j | j  qWqWqWd  S(   Ni  i   i   g      ?i    i   (   R'   t   randomt   RandomStatet   randnR   t   column_stackt   Nonet   pdt   Seriest	   DataFramet   iloct   valuesR>   R?   RC   t   sizeR+   R   RD   (   Ro   t   rst   xt   zt   et   y_1dt   yt   y_2dt   y_seriest   y_dft   x_1dt   x_2dt   x_dft   x_df_singlet   x_seriest   z_2dt   z_seriest   z_1dt   z_dft   yst   xst   zsRj   Ri   t   res1_2sintrt   _yt   _xt   _zRI   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_input_dimensions  sL    D8=2	(   Rs   Rt   Ru   Rm   R
  (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s   c          C  s   t  d  d   d  d  f }  t j t |  t  } | j   } t | j t j	  | j
   } t t | j d  t | j  d  d  S(   Nii   (   Rh   R>   R?   R@   RB   RC   R   R   R'   t   nanR   R   R   RD   (   RA   RH   RI   R   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_noconstant  s    c          C  s  t  j d d d d d d d d d d d d d d d d d	 d d
 d g  }  t  j d d d d d d d d d d d d d d d d d d d d g  } t  j t  j t |    |  f  } d t j f d     Y} t  j d d d d g  } | d | d |  d | d d  d! d   j | d" i d d# 6} | j   } t	 t | j
 d  t | j  d  g  t t | j   D] } d$ | ^ qt} t	 | j j |  | d | d |  d | d d  d! d   }	 d% d& d' d( g } |	 j |  |	 j | d" i d d# 6}
 t	 |
 j j |  d  S()   Ng      ?g333333?g@g       @g?gffffff?g?g?gffffff?gQ?i    g?g      ?gɿg?g333333ӿg      gٿgg333333?gQѿgQ?t   GMMbasec           B  s   e  Z d    Z RS(   c         S  s   | \ } } } } |  j  d  d   d  f } |  j } |  j } | | | | | }	 | | | | d | | d | d | }
 t j |	 |
 f  } | S(   Ni   i   (   R@   R   RA   RB   R'   R   (   Ro   RD   t   p0t   p1t   p2t   p3R@   RA   t   instt   mom0t   mom1t   g(    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR     s    		(   Rs   Rt   R   (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyR    s   g?g{Gz?i   R@   RA   RB   t   k_momsi   R   RQ   RS   s   p%2dt   betat   gammat   psit   phi(   R'   Rb   R   RY   R   R>   t   GMMRC   R   R   R   RD   R-   R[   t
   exog_namest   set_param_names(   t   cdt   dcdR  R  t   beta0RI   R   R5   t   pnamesRH   Ri   (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   test_gmm_basic
  s&    *!'$$',	(C   t   __doc__t
   __future__R    t   statsmodels.compat.pythonR   R   R   R#   t   numpyR'   t   numpy.testingR   R   R	   R   t   statsmodelsR   t   statsmodels.tools.toolsR   t#   statsmodels.regression.linear_modelR   t"   statsmodels.sandbox.regression.gmmt   sandboxt
   regressionR>   R9   t   yg_dft   xg_dft   zg_dft   asarrayRZ   R@   RA   RB   R:   t   float64RG   Rb   t   varnamesRD   RE   R   R   RL   Ra   Rf   R   t   idxRh   t   objectRg   Rv   R   R   R   R   R   R   R   R   R   R   R   R   R   R  R"  (    (    (    sL   lib/python2.7/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyt   <module>   sp   	$'						&=#-0#E?>	