
    M/Phz                        d 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	m
Z
mZ ddlZddlmZ ddlmZ ddlmc mc mZ d Z e            \  ZZZ ej        ee          Z eej        eeg          \  ZZej        ej         k    sJ ej        ej         k    sJ  ej!        g d	          Z" ej!        g d
          Z# ej!        g d          Z$ ej!        g d          Z% ej!        g d          Z&d Z'd Z(d Z) e e*e#                    Z+e+dd         e+dd         z   Z+edde+f         Z, G d d          Z- G d d          Z. G d de.          Z/ G d de.          Z0 G d de.          Z1 G d de.          Z2 G d de.          Z3 G d  d!e.          Z4 G d" d#e.          Z5 G d$ d%e.          Z6 G d& d'e.          Z7 G d( d)e.          Z8 G d* d+          Z9 G d, d-          Z: G d. d/e:          Z;d0 Z<d1 Z=dS )2z>

Created on Fri Oct 04 13:19:01 2013

Author: Josef Perktold
    )lrangelmapN)assert_allcloseassert_equal)add_constant)OLSc                  d   t           j                            t                    d         } t           j                            | d          }t          j        |          }|d                                         }|j        d         }|D ]g}t          j
        |          |d|z  <   t          |          D ];}|j        |j        |         df         |k    rd|j        |j        |         d|z  f<   ;<hd|d<   t          |g d         d	          }t          |g d
                   }|d         }	|	||fS )Nr   zgriliches76.dtayearzD_%i   const)siqexprtenurernssmsaD_67D_68D_69D_70D_71D_73T)prepend)r   r   r   r   r   r   r   r   r   r   medkwwagemrtlw)ospathsplit__file__joinpd
read_statauniqueshapenpzerosrangelocindexr   )
curdirr    griliches76_datayearsNyriXZYs
             m/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/sandbox/regression/tests/test_gmm.pyget_griliches76_datar7      sn   W]]8$$Q'F7<< 122D}T** V$++--Eq!A  (*"%q 	 	A#$4$:1$=v$EF"LLOP $%5%;A%>%KLL		 !"W% '7 '7 '7 8 04		5 	5 	5A 	% 'K 'K 'K L 	M 	MA 	Aa7N    )dtype)z(Intercept)r   r   r   r   r   r   r   r   r   r   r   r   )gjP"@U?AAJh9L,x<?Vyz?So"ZpRg$?<vC"	^?1?j(S?]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                  .   t          j        t          t          t                    } |                                 }t          j        \  }}t          |j        t          dd           t          |j	        t          dd           t          | d          rJ d S )NHz>&.>rtolatolr   gv!>_results)gmmIV2SLSendogexog
instrumentfitr'   r   paramsbsehasattr)modresnks       r6   test_iv2sls_rrY   T   s    
*UD*
-
-C
''))C
 :DAqCJT==== CGSqt4444 sJ'''''''r8   c            	         t           j        \  } }t          j        \  }}t          j        t          j        t                    |z  }t          j                            |          }t          j	        t          t           t                    }|                    t          j        t           j        d         t                    d|dddd          }t          |j        t          dd           t          |j        t           d	d           |j                            |j        |          }t          |t          j        |j                  dd
           d S )Nr   r   bfgs:0yE>gtoldispmaxiterinv_weightsoptim_method
optim_argsg-C6?rH   g
ףp=
?h㈵>)rO   r'   rP   r(   dotTlinalginvrL   IVGMMrN   rQ   onesfloatr   rR   rS   modelscorer)   )	rW   rX   nobsk_instrw0invw0rU   rV   rn   s	            r6   test_ivgmm0_rrs   h   s   :DAq$MD'F:<,,t3E	u		B
)E4
,
,C
''"'$*Q-//%%)155  7 7C
 CJT==== CGSt!4444IOOCJ++EE28EK00qtDDDDDDr8   c            	         t          j        g d          } t          j        g d          }t          j        \  }}t          j        \  }}t          j        t          j        t                    |z  }t           j                            |          }t          t          t                                                    j        }t          j        t          t          t                    }	|	                    |d|dddd          }
d S )	N)gr^RkP"@r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   g(㗏޷?)grh-q?geE<?gЪt?g+i|?g a?g¯B?gLǵ?gO8z?gM?gZ?gmK?gZ2}e?gP'?r   r[   ư>r   r]   r`   )r(   arrayrO   r'   rP   rf   rg   rh   ri   r   rN   rQ   rR   rL   rj   )params_stata	bse_statarW   rX   ro   rp   rq   rr   startrU   rV   s              r6   test_ivgmm1_statarz   ~   s     82 2 23 3L 2 2 23 3I
 :DAq$MD'F:<,,t3E	u		Bt  "")E
)E4
,
,C
''%F_cmnWoWo'
p
pCCCr8   r   c                   v    e Zd Zed             Zd Zej                            de	d          d             Z
dS )
TestGMMOLSc           	         t           }t          t          |                                          }|j        \  }}t          j        |j        |          |z  }t          j	        t          ||          }|                    t          j
        |j        d         t                    d|dddd          }|| _        || _        d S )Nr   r   r[   ru   r]   r`   )exog_str   rN   rQ   r'   r(   rf   rg   rL   rj   rk   rl   res1res2)clsrO   res_olsro   rp   rq   rU   rV   s           r6   setup_classzTestGMMOLS.setup_class   s    eT""&&(( 
gtvt$$t+ itT**ggbgdjmU33QE%+a8P8P  R R r8   c                 H   | j         | j        }}t          |j        |j        dd           t          |j        |j        dd           |j        j        j        d         }d}t          |j        |z  |j        dd           t          |j        |z  |j        dd           d S )NMb@?r   rH   h㈵>r   re   rF   )	r   r   r   rR   rm   rO   r'   rS   HC0_se)selfr   r   rW   dffacs        r6   
test_basiczTestGMMOLS.test_basic   s    Y	dT[t!DDDDT[qtDDDDJO!!$5($+DqIIII5($+ADIIIIIIr8   z!Not asserting anything meaningfulTreasonraisesstrictc                 ,    | j         | j        }}t          N)r   r   NotImplementedErrorr   r   r   s      r6   
test_otherzTestGMMOLS.test_other   s     Y	d!!r8   N)__name__
__module____qualname__classmethodr   r   pytestmarkxfailr   r    r8   r6   r|   r|      s          ["	J 	J 	J [A1$  @ @" "@ @" " "r8   r|   c                   `    e Zd ZddgZddgZd Zd Zd Zej	        j
        d             Zd ZdS )	CheckGMMre   Ơ>c                 p   | j         | j        }}| j        \  }}t          |j        |j        |d           t          |j        |j        d|           |j        j        j        d         }d}| j        \  }}t          |j	        |z  |j	        |d           t          |j	        |z  |j	        d|           d S )Nr   rH   r   )
r   r   
params_tolr   rR   rm   rO   r'   bse_tolrS   )r   r   r   rI   rJ   rW   r   s          r6   r   zCheckGMM.test_basic   s    Y	dotT[t!DDDDT[qtDDDDJO!!$lt5($(AFFFF5($(FFFFFFr8   c                     | j         | j        }}t          |j        |j        dd           t          |j        |j        dd           d S )Nre   r   rH   -C6
?)r   r   r   qQjvalJr   s      r6   r   zCheckGMM.test_other   sK    Y	dT::::	461======r8   c                    | j         | j        }}t          j        t	          |j                            }|                    |          }t          |j        |j	        dd           t          |j
        |j        dd           | j        \  }}t          |j        |j	        |dz  |           t          |j
        |j        |dz  |           |                    |d d                   }|                    |d d         d          }d S )N-q=r   rH   
   T)scalar)r   r   r(   eyelenrR   t_testr   tvaluetvaluespvaluepvaluesr   f_test	wald_test)	r   r   r   restrictionres_trI   rJ   res_fres_walds	            r6   test_hypothesiszCheckGMM.test_hypothesis   s    Y	dfS--..K((dlQGGGGdlQGGGGltdlbtLLLLdlbtLLLLK,-- >>+crc"24>@@r8   c                     | j         }|                                }t          t          |j        d                   t          |j                  dz              d S Nr   r   summaryr   r   tablesrR   r   r   summs      r6   test_summaryzCheckGMM.test_summary   sI    y||~~SQ((#dk*:*:Q*>?????r8   c                     t          j        | j                  }d|_        |                                }dt          |          v sJ dt          |          vsJ d S )NTzP>|t|zP>|z|)copydeepcopyr   use_tr   strr   s      r6   
test_use_tzCheckGMM.test_use_t   s[    }TY''
||~~#d))####c$ii''''''r8   N)r   r   r   r   r   r   r   r   r   r   smoker   r   r   r8   r6   r   r      s        JTlGG G G> > >A A A( [@ @ @( ( ( ( (r8   r   c                   $    e Zd Zed             ZdS )
TestGMMSt1c           	         t           }t          t          |                                          j        }t
          j        \  }}t          j        t
          j	        t
                    |z  }t          j        t          |t
                    }|                    |d|ddddddi          }|| _        d	d
lm} || _        d S )Nr   r[   ru   r   r]   centeredFra   rb   rc   rd   wargsr   )results)r~   r   rN   rQ   rR   rP   r'   r(   rf   rg   rL   rj   r   results_gmm_griliches_iterr   r   	r   rO   ry   ro   rp   rq   rU   res10r   s	            r6   r   zTestGMMSt1.setup_class  s     E4  $$&&-"(gz|Z0047 itZ00ru%+a8P8P)%0  2 2 777777r8   Nr   r   r   r   r   r   r8   r6   r   r      s-          [  r8   r   c                   $    e Zd Zed             ZdS )TestGMMStTwostepc           	         ddg| _         ddg| _        t          }t          t          |                                          j        }t          j        \  }}t          j
        t          j        t                    |z  }t          j        t          |t                    }|                    |d|ddddd	d
i          }|| _        ddlm} || _        d S )Nr   re   r      r[   ru   r   r]   r   Fr   r   results_twostepr   r   r~   r   rN   rQ   rR   rP   r'   r(   rf   rg   rL   rj   r   results_gmm_grilichesr   r   r   s	            r6   r   zTestGMMStTwostep.setup_class  s     TlE4  $$&&-"(gz|Z0047 itZ00qe%+a8P8P)%0  2 2 EEEEEEr8   Nr   r   r8   r6   r   r     /           [  r8   r   c                   $    e Zd Zed             ZdS )TestGMMStTwostepNOc           	         ddg| _         ddg| _        t          }t          t          |                                          j        }t          j        \  }}t          j
        t          j        t                    |z  }t          j        t          |t                    }|                    |d|dddddd	id	
          }|| _        ddlm} || _        d S )Nr   re   ru   r   r[   r   r]   r   Fra   rb   rc   rd   r   has_optimal_weightsr   r   r   r   s	            r6   r   zTestGMMStTwostepNO.setup_class0  s     TlE4  $$&&-"(gz|Z0047 itZ00qe%+a8P8P)%0e  M M EEEEEEr8   Nr   r   r8   r6   r   r   -  r   r8   r   c                        e Zd Zed             Zd Zej                            de	d           fd            Z
 xZS )TestGMMStOnestepc           	         ddg| _         ddg| _        t          }t          t          |                                          j        }t          j        \  }}t          j
        t          j        t                    |z  }t          j        t          |t                    }|                    |d|dddd          }|| _        d	d
lm} || _        d S )Nr   r   y&1|?r   r[   ru   r]   r`   r   results_onestepr   r   r~   r   rN   rQ   rR   rP   r'   r(   rf   rg   rL   rj   r   r   r   r   	r   rO   ry   ro   rp   rq   rU   rV   r   s	            r6   r   zTestGMMStOnestep.setup_classG  s     TlE4  $$&&-"(gz|Z0047 itZ00ggeQE%++/#;#;  = = EEEEEEr8   c                 8   | j         | j        }}t          j        t          j        |                    d                              }| j         j                            | j         j        t          j	        
                    | j         j                            }d S )NFr   )r   r   r(   sqrtdiag_cov_paramsrm   gmmobjectiverR   rh   ri   weights)r   r   r   rS   r   s        r6   test_bse_otherzTestGMMStOnestep.test_bse_other[  sr    Y	d gbgd..5.IIJJKK IO(()929==IZ;[;[\\r8   q vs Q comparison failsTr   c                 H    t                                                       d S r   superr   r   	__class__s    r6   r   zTestGMMStOnestep.test_otherh  !     	r8   )r   r   r   r   r   r   r   r   r   AssertionErrorr   __classcell__r   s   @r6   r   r   E  s          [&
] 
] 
] [7,T  ; ;   ; ;    r8   r   c                   z     e Zd Zed             Zej                            ded           fd            Z	 xZ
S )TestGMMStOnestepNOc           	         ddg| _         ddg| _        t          }t          t          |                                          j        }t          j        \  }}t          j
        t          j        t                    |z  }t          j        t          |t                    }|                    |d|dddddd	id	
          }|| _        ddlm} || _        d S )Nr   ru   re   r   r   r[   r]   r   Fr   r   r   r   r   s	            r6   r   zTestGMMStOnestepNO.setup_classq  s     TlE4  $$&&-"(gz|Z0047 itZ00ggeQE%+a8P8P)%0e  M M EEEEEEr8   r   Tr   c                 H    t                                                       d S r   r   r   s    r6   r   zTestGMMStOnestepNO.test_other  r   r8   r   r   r   r   r   r   r   r   r   r   r   r   s   @r6   r   r   n  s           [& [7,T  ; ;   ; ;    r8   r   c                        e Zd Zed             Zej                            ded           fd            Z	d Z
 xZS )TestGMMStOneiterc           	         ddg| _         ddg| _        t          }t          t          |                                          j        }t          j        \  }}t          j
        t          j        t                    |z  }t          j        t          |t                    }|                    |d|dddd	          }|| _        dd
lm} || _        d S )Nr   r   r   r   r[   ru   r   r]   r`   r   r   r   s	            r6   r   zTestGMMStOneiter.setup_class  s     TlE4  $$&&-"(gz|Z0047 itZ00ggeQE%+a8P8P  R REEEEEEr8   r   Tr   c                 H    t                                                       d S r   r   r   s    r6   r   zTestGMMStOneiter.test_other  r   r8   c                 N   | j         | j        }}|j                            |j                  }|j                            |          }t          j        t          j        |	                    d|j
                                      }t          j        t          j        |	                    d                              }t          j        d         }t          j        t          j        t                    |z  }| j         j                            | j         j        |          }d S )NFr   r   r   r   )r   r   rm   momcondrR   calc_weightmatrixr(   r   r   r   r   rP   r'   rf   rg   r   )	r   r   r   momswrS   ro   rq   r   s	            r6   r   zTestGMMStOneiter.test_bse_other  s    Y	dz!!$+..J((.. gbgd..548L / B B C C D D gbgd..5.IIJJKK
 "z|Z0047IO(()91==r8   )r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r6   r  r    s          [& [7,T  ; ;   ; ;> > > > > > >r8   r  c                   z     e Zd Zed             Zej                            ded           fd            Z	 xZ
S )TestGMMStOneiterNOc           	         ddg| _         ddg| _        t          }t          t          |                                          j        }t          j        \  }}t          j
        t          j        t                    |z  }t          j        t          |t                    }|                    |d|ddddd	d
id
          }|| _        ddlm} || _        d S )Nr   ru   re   r   r   r[   r   r]   r   Fr   r   r   r   s	            r6   r   zTestGMMStOneiterNO.setup_class  s     TlE4  $$&&-"(gz|Z0047 itZ00ggeQE%+a8P8P)%0e  M M EEEEEEr8   r   Tr   c                 H    t                                                       d S r   r   r   s    r6   r   zTestGMMStOneiterNO.test_other  r   r8   r  r   s   @r6   r  r    s          [( [7,T  ; ;   ; ;    r8   r  c                   z     e Zd Zed             Zej                            ded           fd            Z	 xZ
S )TestGMMStOneiterNO_Linearc           	      6   ddg| _         ddg| _        t          }t          t          |                                          j        }t          j        \  }}t          j
        t          j        t                    |z  }t          j        t          |t                    }|                    |d|dddd	d
did          }|| _        t          j        t          |t                    }|                    |d|dddd	d
did          }|| _        ddlm} || _        d S )Ng:0y5>rG   &.>绽|=r   r[   r\   r   r]   r   Fr   ru   r   )r   r   r~   r   rN   rQ   rR   rP   r'   r(   rf   rg   rL   LinearIVGMMr   rj   res3r   r   r   r   s	            r6   r   z%TestGMMStOneiterNO_Linear.setup_class  s&    enE4  $$&&-"(gz|Z0047 oeT:66ggeQE%+a8P8P)%0e  M M itZ00ggeQE%+a8P8P)%0e  M M EEEEEEr8   r   Tr   c                 H    t                                                       d S r   r   r   s    r6   r   z$TestGMMStOneiterNO_Linear.test_other  r   r8   r  r   s   @r6   r  r    s          [4 [7,T  ; ;   ; ;    r8   r  c                        e Zd Zed             Zej                            ded           fd            Z	 fdZ
 xZS )TestGMMStOneiterNO_Nonlinearc           	      >   ddg| _         ddg| _        t          }t          t          |                                          j        }t          j        \  }}t          j
        t          j        t                    |z  }d }t          j        t          |t          |          }|                    |d|dddd	d
did          }|| _        t          j        t          |t                    }|                    |d|dddd	d
did          }|| _        ddlm}	 |	| _        d S )Nr   re   皙?c                 ,    t          j        ||           S r   )r(   rf   )rR   rO   s     r6   funcz6TestGMMStOneiterNO_Nonlinear.setup_class.<locals>.func  s    6$'''r8   r   r[   r\   r   r]   r   Fr   ru   r   )r   r   r~   r   rN   rQ   rR   rP   r'   r(   rf   rg   rL   NonlinearIVGMMr   rj   r  r   r   r   )
r   rO   ry   ro   rp   rq   r  rU   rV   r   s
             r6   r   z(TestGMMStOneiterNO_Nonlinear.setup_class   s8    TlE4  $$&&-"(gz|Z0047	( 	( 	(  j$??ggeQE%+a8P8P)%0e  M M itZ00ggeQE%+a8P8P)%0e  M M EEEEEEr8   r   Tr   c                 H    t                                                       d S r   r   r   s    r6   r   z'TestGMMStOneiterNO_Nonlinear.test_other  r   r8   c                    | j         j        dz  }| j         j        }| j         j                            ||          }t          | j         j        j        | j         j                                      ||          }t          ||dd           t          ||dd           | j         j                            | j         j        |          }t          |t          j	        t          |                    dd           d S )N皙?ru   r   rH   rF   r\   )r   rR   r   rm   rn   r   r   r   r(   r)   r   )r   rR   r   sc1sc2r   s        r6   
test_scorez'TestGMMStOneiterNO_Nonlinear.test_score#  s    !C')#io##FG44DIO-ty??EEfFMO OSt!4444Sqt4444 io##DI$4g>>RXc&kk22FFFFFFr8   )r   r   r   r   r   r   r   r   r   r   r$  r   r   s   @r6   r  r    s          [: [7,T  ; ;   ; ;G G G G G G G G Gr8   r  c                   z     e Zd Zed             Zej                            ded           fd            Z	 xZ
S )TestGMMStOneiterOLS_Linearc           
         ddg| _         ddg| _        t          }t          t          |                                          }t          j        t          |j	                            }t          j        \  }}t          j        |j        |          |z  }t          j        t          ||          }|                    |d|ddiddddd	
          }d	|_        |j        t          |j	                  z
  |_        || _        || _        d S )Ndy=r   r   r_   iidFk_params)r   ddofT)ra   rb   rd   weights_methodr   r   )r   r   r~   r   rN   rQ   r(   rk   r   rR   rP   r'   rf   rg   rL   r  r   ro   df_residr   r   )	r   rO   r   ry   ro   rp   rq   rU   rV   s	            r6   r   z&TestGMMStOneiterOLS_Linear.setup_class3  s      eneT""&&((GN++,,"(gtvt$$t+ oeT400ggeQE$*A;',*/
CC,0  2 2 	x#cj//1 r8   z&RegressionResults has no `Q` attributeTr   c                 H    t                                                       d S r   r   r   s    r6   r   z%TestGMMStOneiterOLS_Linear.test_otherQ  r   r8   )r   r   r   r   r   r   r   r   AttributeErrorr   r   r   s   @r6   r&  r&  1  s          [: [F,T  ; ;   ; ;    r8   r&  c                   *    e Zd Zed             Zd ZdS )
TestGMMSt2c           
         t           }t          t          |                                          j        }t
          j        \  }}t          j        t
          j	        t
                    |z  }t          j        t          |t
                    }|                    |d|ddddddd          }|| _        d	d
lm} || _        t          j        t          |t
                    }|                    |d	|ddddddd          }|| _        d S )Nr   r   F)r+  r   r[   ru   r]   )ra   rb   r   rc   rd   r   )results_gmm2s_robust)r~   r   rN   rQ   rR   rP   r'   r(   rf   rg   rL   rj   r   results_ivreg2_grilichesr3  r   r  r   s	            r6   r   zTestGMMSt2.setup_class]  s    E4  $$&&-"(gz|Z0047 itZ00ggeQE$%%88#)dA6N6N  P P MMMMMM itZ00ggeQE$%%88#)dA6N6N  P P r8   c           	      j   | j         | j        }}t          |j        |j        dd           t          |j        |j        dd           |j        j        j        d         }t          j        d          }t          |j	        |z  |j	        dd           t          |j	        |z  |j	        dd           t          j        t          j
        |                    d|j                                      }t          |j	        |j	        d	d           t          j        t          j
        |                    d|j        d
                              }t          |j	        |j	        dd           t          | j        j	        |j	        dd           t          | j        j	        |j	        dd           d S )Nr   r   rH   re   gN`s?g{Gzt?Tr        ?)r   r   use_weightsg?)r   r   r   rR   rm   rO   r'   r(   r   rS   r   r   r   r  )r   r   r   rW   dffactrS   s         r6   r   zTestGMMSt2.test_basicx  s   Y	dT[u1EEEET[quEEEEJO!!$%%6)48%aHHHH6)48!%HHHH gbgd..448L / B B C C D D$(Q????gbgd..47;|;? / A A B B C C 	$(Q???? 		txe!DDDD	txaeDDDDDDr8   N)r   r   r   r   r   r   r   r8   r6   r1  r1  Y  sC           [4E E E E Er8   r1  c                   P    e Zd Zd Zd Zd Zd Zej        j	        d             Z
dS )CheckIV2SLSc                 r   | j         | j        }}t          |j        |j        dd           t          |j        |j        dd           |j        j        j        d         }t          |j        |j        dd           t          |j        |j        dd           t          |j        |j        dd           d S )NrG   r   rH   r  r(  r  )	r   r   r   rR   rm   rO   r'   rS   r   )r   r   r   rW   s       r6   r   zCheckIV2SLS.test_basic  s    Y	dT[t!DDDDT[quEEEEJO!!$$(Q????$(????dlQGGGGGGr8   c                    | j         | j        }}t          |j        |j        dd           t          |j        |j        dd           t          |j        |j        dd           t          |j	        |j
        dd           t          t          j        |j                  |j        dd           t          |j        |j        dd           t          |j        |j        dd           t          |j        |j        dd           t          |j        |j        dd           t/          |j        |j                   t/          |j        |j                   d S )NrF   r   rH   r  r\   rG   )r   r   r   rsquaredr2rsquared_adjr2_afvalueFf_pvalueFpr(   r   	mse_residrmsessrrssuncentered_tssyycentered_tssyycessmssr   df_modeldf_mr-  df_rr   s      r6   r   zCheckIV2SLS.test_other  s?   Y	dtwTBBBB)494aHHHH 	TV%a@@@@twTBBBB//QOOOO$(Q????+TW5qIIII)48%aHHHH$(A>>>>T]DI...T]DI.....r8   c                 .   | j         | j        }}t          j        t	          |j                            }|                    |          }t          |j        |j	        dd           t          |j
        |j        dd           |                    |d d                   }t          |j        |j        dd           t          |j
        |j        dd           t          |j        |j        dd           t          |j
        |j        dd           d S )Nr   r   rH   r   r  r\   )r   r   r(   r   r   rR   r   r   r   r   r   r   r   rA  rC  rB  rD  )r   r   r   r   r   r   s         r6   r   zCheckIV2SLS.test_hypothesis  s    Y	dfS--..K((dlQGGGGdlQGGGGK,--dkAFFFFdm%aHHHHdf5qAAAAdgEBBBBBBr8   c                     | j         | j        }}|                                }t          |d         |j        d         dd           t          |d         |j        d         dd           d S )	Nr   DWHr(  rH   r   DWHpr  g}:)r   r   spec_hausmanr   hausman)r   r   r   hausms       r6   test_hausmanzCheckIV2SLS.test_hausman  sj    Y	d!!##a$,u"5EJJJJa$,v"6UOOOOOOr8   c                     | j         }|                                }t          t          |j        d                   t          |j                  dz              d S r   r   r   s      r6   r   zCheckIV2SLS.test_summary  sI    y||~~SQ((#dk*:*:Q*>?????r8   N)r   r   r   r   r   r   rY  r   r   r   r   r   r8   r6   r:  r:    s        
H 
H 
H/ / /*C C CP P P [@ @ @ @ @r8   r:  c                   *    e Zd Zed             Zd ZdS )TestIV2SLSSt1c                    t           }t          t          |                                          j        }t
          j        \  }}t          j        t          |t
                    }|                                }|| _	        ddl
m} || _        d S )Nr   )results_small)r~   r   rN   rQ   rR   rP   r'   rL   rM   r   r4  r^  r   )r   rO   ry   ro   rp   rU   rV   r   s           r6   r   zTestIV2SLSSt1.setup_class  su    E4  $$&&-"(gjj11ggiiFFFFFFr8   c                 r   t           j                            d          }|                    dd          }|                    d          }t          j        d          |d d df         z  t          j        d          |z  z   |d d df<   t          j        |d d dgf         |d d d f         f          }t          j        d          |                    d          z  t          j        d          |d d df         z  z   }|d d df         |d d df         z   |z   x}}|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        |||                                          }t          j        ||
|                                          }t          j        ||
|                                          }|D ]}|D ]}|D ]}t          j        |          |j        d         k    }
t          j        |          |j        d         k    }|r|
sMt          j        |||                                          }|rt!          |j        |j                   |
r|st!          |j        |j                   t!          |j        |j                   ̌ьd S )Ni     r   r6  r   r   )r(   randomRandomStaterandnr   column_stackr$   Series	DataFrameilocvaluesrL   rM   rQ   sizer'   r   rR   )r   rsxzey_1dyy_2dy_seriesy_dfx_1dx_2dx_dfx_df_singlex_seriesz_2dz_seriesz_1dz_dfysxszsr   r   res1_2sintr_y_x_zrV   s                                r6   test_input_dimensionsz#TestIV2SLSSt1.test_input_dimensions  sM   Y""4((HHS!HHSMM'#,,111a4(273<<!+;;!!!Q$OQqqq1#vY!!!T'
344GCLL288C==(273<<!AAAqD'+AAQQQT7Qqqq!tW$q((qDz9Q<<|H%%Aw|AiA3'9QQQT?9Qqqq!tW%%|AHdD)D+tX6D(D)z$d++//11z$d++//11jtT226688  	A 	AB A A A AB72;;"(1+5D72;;"(1+5D !D ! *RR004466C A'
DK@@@@ Ad A'
K4FGGGG'
DK@@@@AA	A 	Ar8   N)r   r   r   r   r   r  r   r8   r6   r\  r\    sA        
 
 [
+A +A +A +A +Ar8   r\  c                  t   t           d d d df         } t          j        t          | t                    }|                                }t          |j        t          j	                   |
                                }t          t          |j        d                   t          |j                  dz              d S )Nr   r   )r~   rL   rM   rN   rP   rQ   r   rA  r(   nanr   r   r   rR   )rO   rU   rV   r   s       r6   test_noconstantr    s    111crc6?D
*UD*
-
-C
''))CRV$$$;;==DT[^$$c#*oo&9:::::r8   c                  V   t          j        g d          } t          j        g d          }t          j        t          j        t	          |                     | f          } G d dt
          j                  }t          j        g d          } ||| |dd                              |dd	i
          }|                                }t          t	          |j
        d                   t	          |j                  dz              d t          t	          |j                            D             }t          |j        j        |            ||| |dd          }g d}|                    |           |                    |dd	i
          }	t          |	j        j        |           d S )N)      ?r  333333?皙@       @?r  r  ffffff?g?r  r  r  r  r!  r  gffffff?r  gQ?r  )r   皙?r6  皙ɿr  r   皙?333333ӿr  r  r  r  g      gٿr  gg333333?gQѿgQ?r  c                       e Zd Zd ZdS )test_gmm_basic.<locals>.GMMbasec                     |\  }}}}| j         d d d f         }| j        }| j        }||z
  ||z  z
  |z  }	||z
  ||z  z
  dz  ||d|z  z  z  dz  z
  |z  }
t          j        |	|
f          }|S )Nr      )rN   rO   rP   r(   rd  )r   rR   p0p1p2p3rN   rO   instmom0mom1gs               r6   r  z'test_gmm_basic.<locals>.GMMbase.momcond1  s    #NBBJqqq$w'E9D?DBJd*d2DRZ"t)+a/$R.)B./267Dt--AHr8   N)r   r   r   r  r   r8   r6   GMMbaser  0  s#        
	 
	 
	 
	 
	r8   r  )r  r  g{Gz?r      )rN   rO   rP   k_momsr*  r_   r   )rd   r   c                     g | ]}d |z  S )zp%2dr   ).0r2   s     r6   
<listcomp>z"test_gmm_basic.<locals>.<listcomp>B  s    999Qfqj999r8   )betagammapsiphi)r(   rv   rd  rk   r   rL   GMMrQ   r   r   r   rR   r*   rm   
exog_namesset_param_names)
cddcdr  r  beta0rV   r   pnamesrU   r   s
             r6   test_gmm_basicr  '  s    
 < < < 
= 
=B
( H H H I IC?BGCGG,,b122D    #'    H((())E
'"a  !c%VQKc@@ ;;==DT[^$$c#*oo&9:::99%CJ"8"8999F%v... '"a  C -,,F775fa[711D&/////r8   )>__doc__statsmodels.compat.pythonr   r   r   r   r   numpyr(   numpy.testingr   r   pandasr$   statsmodels.tools.toolsr   #statsmodels.regression.linear_modelr   "statsmodels.sandbox.regression.gmmsandbox
regressionrL   r7   yg_dfxg_dfzg_dfasarrayrl   rN   rO   rP   r9   float64rv   varnamesrR   rS   r   r   rY   rs   rz   r   idxr~   r|   r   r   r   r   r   r   r  r  r  r  r&  r1  r:  r\  r  r  r   r8   r6   <module>r     s)    3 2 2 2 2 2 2 2 				       7 7 7 7 7 7 7 7     0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0  B +*,, ue
5&&&4
UEN33 jzRZ2:%%%%
 28     	 . . . 
/ 
/ bh . . . / / "( . . . / / "(     ( ( ((E E E,q q q4 fSS[[	!""gBQB
qqq#v,#" #" #" #" #" #" #" #"N9( 9( 9( 9( 9( 9( 9( 9(x       *    x   0       0& & & & &x & & &R       :-> -> -> -> ->x -> -> ->b       >               F0G 0G 0G 0G 0G8 0G 0G 0Gf# # # # # # # #P;E ;E ;E ;E ;E ;E ;E ;EJ<@ <@ <@ <@ <@ <@ <@ <@~<A <A <A <A <AK <A <A <A|	; 	; 	;%0 %0 %0 %0 %0r8   