
p7]c           @   sZ  d  Z  d d l Z d d l Z d d l m Z d d l m Z m Z m	 Z	 m
 Z
 d d l m Z m Z d d l j j Z d d l m Z d d l m Z d d l 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 e f d     YZ  d e f d     YZ! d e f d     YZ" d e f d     YZ# d e e# f d     YZ$ d e e# f d     YZ% d e e# f d     YZ& d  e f d!     YZ' d" e' e# f d#     YZ( d$ e' e# f d%     YZ) d& e' e# f d'     YZ* d( e' e# f d)     YZ+ d* e' e# f d+     YZ, d, e' e# f d-     YZ- d. e' e# f d/     YZ. d0 e' e# f d1     YZ/ d2 e' e# f d3     YZ0 d4 e' e# f d5     YZ1 d6 e' e# f d7     YZ2 d8 e f d9     YZ3 d: e3 e# f d;     YZ4 d< e3 e# f d=     YZ5 d> e3 e# f d?     YZ6 d@ e f dA     YZ7 dB   Z8 d S(C   sr   Testing OLS robust covariance matrices against STATA

Created on Mon Oct 28 15:25:14 2013

Author: Josef Perktold
iN(   t   stats(   t   assert_allcloset   assert_equalt   assert_warnst   assert_raises(   t   OLSt   WLS(   t   add_constant(   t	   macrodata(   t   InvalidTestWarningi   (   t   results_macro_ols_robust(   t#   results_grunfeld_ols_robust_clustert   CheckOLSRobustc           B   sY   e  Z d    Z e j j d    Z e j j d    Z e j j d    Z d   Z	 RS(   c         C   ss   |  j  } |  j } t |  d d  } t | j | j d | t |  j | j d | t |  j | j d | d  S(   Nt   rtolg|=(	   t   res1t   res2t   getattrR   t   paramst
   bse_robustt   bset
   cov_robustt   cov(   t   selfR   R   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt
   test_basic   s    		c         C   sG   |  j  } t j t | j   } | j | d |  j } | j   d  S(   Nt   cov_p(   R   t   npt   eyet   lenR   t   t_testR   t   summary(   R   R   t   matt   tt(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_t_test_summary&   s    	c         C   sG   |  j  } t j t | j   } | j | d |  j } | j   d  S(   NR   (   R   R   R   R   R   R   R   t   summary_frame(   R   R   R   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_t_test_summary_frame/   s    	c         C   sK   |  j  } t j t | j   } | j | d  d |  j } | j   d  S(   NiR   (   R   R   R   R   R   t   f_testR   R   (   R   R   R   t   ft(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_f_test_summary7   s    	c   
      C   s0  |  j  } |  j } t |  d d  } t |  d d  } t j t | j   } | j | d |  j } t	 | j
 | j d | t	 | j | j d | t	 | j | j d | |  j r t	 | j | j d d | nB t j j t j | j   d } t	 | | j d d | d d	 | j | d
  d |  j } |  j rt	 | j | j d | t | d  rt	 | j | j d | qnF t |  d t  s| j d | j }	 t	 | j |	 | j d | n  t | d  rt | j | j   t | j! | j"  n& t | j | j#  t | j! | j$  d  S(   NR   g|=t   rtolhg-q=R   i   i   t   atolg}:it   Fpt   skip_fg      ?t   df_r(%   R   R   R   R   R   R   R   R   R   R   t   effectt   sdR   t   tvaluet   tvaluest   smallt   pvaluet   pvaluesR    t   normt   sft   absR#   t   fvaluet   Ft   hasattrR(   t   Falset   df_residt   nobsR   t   df_numt   df_mt   df_denomR*   t   Fdf1t   Fdf2(
   R   R   R   R   R&   R   R   t   pvalR$   t   dof_corr(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt
   test_tests?   s4    			 " 	 (
   t   __name__t
   __module__R   t   pytestt   markt   smokeR    R"   R%   RB   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR      s
   		t   TestOLSRobust1c           B   s    e  Z d    Z e d    Z RS(   c         C   s:   |  j  } | j |  _ | j |  _ t |  _ t j |  _	 d  S(   N(
   R   t   HC1_seR   t   cov_HC1R   t   TrueR/   t   rest   results_hc0R   (   R   t   res_ols(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   setupk   s
    		c         C   s   t  j   j } d t j t j | d j   } d t j t j | d j   } t t j | | d d  j f d t	 } t
 | |  j   |  _ } d  S(   Ni  t   realgdpt   realinvt   realintit   prepend(   R   t   load_pandast   dataR   t   difft   logt   valuesR   t   c_R8   R   t   fitR   (   t   clst   d2t   g_gdpt   g_invt   exoggRN   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   setup_classr   s
    ##*(   RC   RD   RO   t   classmethodR`   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRH   h   s   	t   TestOLSRobust2c           B   s   e  Z d    Z RS(   c         C   s:   |  j  } | j |  _ | j |  _ t |  _ t j |  _	 d  S(   N(
   R   RI   R   RJ   R   RK   R/   RL   t   results_ivhc0_smallR   (   R   RN   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO      s
    		(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRb   |   s   t   TestOLSRobust3c           B   s   e  Z d    Z RS(   c         C   s:   |  j  } | j |  _ | j |  _ t |  _ t j |  _	 d  S(   N(
   R   t   HC0_seR   t   cov_HC0R   R8   R/   RL   t   results_ivhc0_largeR   (   R   RN   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO      s
    		(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRd      s   t   TestOLSRobustHacSmallc           B   s   e  Z d    Z RS(   c         C   s^   |  j  } t j | d d d t } t j |  } | |  _ | |  _ t |  _ t j	 |  _
 d  S(   Nt   nlagsi   t   use_correction(   R   t   swt   cov_hac_simpleRK   t   se_covR   R   R/   RL   t   results_ivhac4_smallR   (   R   RN   t   cov1t   se1(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO      s    				(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRh      s   t   TestOLSRobustHacLargec           B   s   e  Z d    Z RS(   c         C   s^   |  j  } t j | d d d t } t j |  } | |  _ | |  _ t |  _ t j	 |  _
 d  S(   NRi   i   Rj   (   R   Rk   Rl   R8   Rm   R   R   R/   RL   t   results_ivhac4_largeR   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO      s    				(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRq      s   t   CheckOLSRobustNewMixinc           B   sJ   e  Z d    Z d   Z d   Z d   Z d   Z e j j	 d    Z
 RS(   c         C   sH   t  |  d d  } t |  j |  j d | t |  j |  j d | d  S(   NR   g|=(   R   R   R   t   cov_robust2R   t   bse_robust2(   R   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_compare   s    c         C   s   t  |  d t  sz t  |  d d  } t |  j j |  j j d | t |  j d  r t |  j j |  j j	 d | q n t
 j d   d  S(   NR)   R   g|=R(   s'   TODO: document why this test is skipped(   R   R8   R   R   R5   R   R6   R7   t   f_pvalueR(   RE   t   skip(   R   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_fvalue   s    %c         C   s   t  |  d d  } |  j j   } |  j j d  d   d d  f } t | | d | t j | d  j   d |  j j	 } t j | d  j   d |  j j	 } t | | d d d  S(   NR   g|=i   i   i   i   i   (
   R   R   t   conf_intR   t   params_tableR   R   RV   t   ravelR   (   R   R   t   ci1t   ci2t   crit1t   crit2(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_confint   s    "&&c   	      C   s  |  j  } |  j } t |  d d  } t |  d d  } t j t | j   } | j | d |  j } t	 | j
 | j d | t	 | j | j d | t	 | j | j d | t	 | j | j d d | | j   } |  j j d  d   d d  f } t	 | | d | d  S(   NR   g|=g-q=R   i   i   i   (   R   R   R   R   R   R   R   R   R   R   R+   R,   R   R-   R.   R0   R1   Rz   R{   (	   R   R   R   R   R&   R   R   R}   R~   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt
   test_ttest   s    		"c   	      C   sM  |  j  } |  j } d } t } t | d  rK | j | j | j d } n% t | d  rj | j d } n t } t	 | j
 t  r t } n  | s t | j | d | n  | j d k s t | d  r | j n | j } t | j | d | d	 t |  n  | j | j d } t | j |  | j d j   } t | | d d
 d  S(   Ngh㈵>t   rssi   t   rmsei   R   s
   Newey-Westt   r2t   err_msggvIh%<=(   R   R   R8   R7   R   t   NR<   R   RK   t
   isinstancet   modelR   R   t   scalet   vcetypeR   t   r2ct   rsquaredt   strR:   t   df_modelR   R9   t   resid_pearsont   sum(	   R   R   R   R   Rx   R   R   R9   t   psum(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt
   test_scale   s(    			!%c         C   s   |  j  j   d  S(   N(   R   R   (   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_summary  s    (   RC   RD   Rv   Ry   R   R   R   RE   RF   RG   R   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRs      s   		
			#t   TestOLSRobust2SmallNewc           B   s   e  Z d    Z d   Z RS(   c         C   sy   |  j  j d d t } |  j  |  _ | |  _  | j |  _ | j   |  _ | j |  _	 | j
 |  _ t |  _ t j |  _ d  S(   Nt   HC1t   use_t(   R   t   get_robustcov_resultsRK   t   res3R   R   t
   cov_paramsR   RI   Ru   RJ   Rt   R/   RL   Rc   R   (   R   RN   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s    		c         C   s   |  j  } | j j } | j j d  d   d d g f } t | |  j   } d } d } d } t t | j |  d d  l	 } | j
   * | j d  | j |  \ }	 }
 } Wd  QXt |	 | d d	 t |
 | d d	 t | |  t t | j |  d  S(
   Ni    i   g!w?g H@i   it   ignoreR   gdy=(   R   R   t   endogt   exogR   RZ   R   R	   t   compare_lr_testt   warningst   catch_warningst   simplefilterR   R   t   compare_f_test(   R   R   R   R   t   res_ols2t   r_pvalt   r_chi2t   r_dfR   t   chi2R@   t   df(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRv     s     	"(   RC   RD   RO   Rv   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   	t   TestOLSRobustHACSmallNewc           B   s   e  Z d    Z RS(   c         C   s   |  j  j d d d d t d t } |  j  |  _ | |  _  | j |  _ | j   |  _ t j	 | d d d t } t j
 |  } | |  _ | |  _ t |  _ t j |  _ d  S(   Nt   HACt   maxlagsi   Rj   R   Ri   (   R   R   RK   R   R   R   R   R   Rk   Rl   Rm   Ru   Rt   R/   RL   Rn   R   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO   4  s    					(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR   1  s   t   TestOLSRobust2LargeNewc           B   sM   e  Z d    Z e j j d d  d    Z e j j d d  d    Z RS(   c         C   s|   |  j  j d  } t | _ |  j  |  _ | |  _  | j |  _ | j   |  _ | j	 |  _
 | j |  _ t |  _ t j |  _ d  S(   Nt   HC0(   R   R   R8   R   R   R   R   R   R   Re   Ru   Rf   Rt   R/   RL   Rg   R   (   R   RN   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO   G  s    			t   reasons   not refactored yet for `large`c         C   s   t  t |   j   d  S(   N(   t   superR   Ry   (   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRy   S  s    c         C   s   t  t |   j   d  S(   N(   R   R   R   (   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR   W  s    (   RC   RD   RO   RE   RF   Rx   Ry   R   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR   D  s   	t   CheckOLSRobustClusterc           B   s   e  Z e d     Z RS(   c   
      C   s  d d l  m } | j j   } | j d  } | j d  } t | d d g d t } t | |  j	   |  _
 t j t j | d g d  d	 t \ } } | |  _ t j | d
 g  } | | j   8} t j |  j t  |  _ g  t d  D] }	 |	 d d |	 d f ^ q |  _ d  S(   Ni(   t   grunfeldi   t   valuet   capitalRS   t   firmt   S20t   return_inverset   yeari
   i   i   (   t   statsmodels.datasetsR   RU   RT   R   R   R   R8   R   RZ   R   R   t   uniquet   asarrayRK   t   groupst   mint   squeezet   astypet   intt   timet   ranget   tidx(
   R[   R   t   dtapat   dtapa_endogt
   dtapa_exogR   t
   firm_namest   firm_idR   t   i(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR`   e  s    	(   RC   RD   Ra   R`   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR   a  s   t   TestOLSRobustCluster2c           B   s   e  Z d    Z RS(   c         C   s   |  j  j d d |  j d t d t } |  j  |  _ | |  _  | j |  _ | j   |  _ t	 j
 |  j  |  j d t } t	 j |  } | |  _ | |  _ t |  _ t j |  _ d |  _ d |  _ d  S(   Nt   clusterR   Rj   R   gư>g|=(   R   R   R   RK   R   R   R   R   R   Rk   t   cov_clusterRm   Ru   Rt   R/   R   t   results_clusterR   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s     							(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR   ~  s   t   TestOLSRobustCluster2Inputc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   d d  l  } |  j j d d  } | j |  } |  j j d d | d t d t } |  j |  _ | |  _ | j |  _	 | j
   |  _ t j |  j |  j d t } t j |  } | |  _ | |  _ t |  _ t j |  _ d |  _ d |  _ d  S(	   Nii   R   R   Rj   R   gư>g|=(   t   pandasR   t   reshapet	   DataFrameR   R   RK   R   R   R   R   R   Rk   R   Rm   Ru   Rt   R/   R   R   R   R&   (   R   t   pdt	   fat_arrayt
   fat_groupsRN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s&    						c      
   C   sY   |  j  j d d  } t j | | | f  } t t |  j j d d | d t d t d  S(   Nii   R   R   Rj   R   (	   R   R   R   t   hstackR   t
   ValueErrorR   R   RK   (   R   t   long_groupst   groups3(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_too_many_groups  s    c         C   sg   d d  l  } |  j j d d  } | j t j | | f   } |  j j d d | d t d t } d  S(   Nii   R   R   Rj   R   (	   R   R   R   R   R   R   R   R   RK   (   R   R   R   t   groups2RL   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_2way_dataframe  s
    	(   RC   RD   RO   R   R   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   		t   TestOLSRobustCluster2Fitc           B   s   e  Z d    Z d   Z RS(   c         C   s   |  j  j j d d d t d |  j d t d t   } |  j  |  _ | |  _  | j |  _ | j	   |  _
 t j |  j  |  j d t } t j |  } | |  _ | |  _ t |  _ t j |  _ d |  _ d |  _ d  S(	   Nt   cov_typeR   t   cov_kwdsR   Rj   R   gư>g|=(   R   R   RZ   t   dictR   RK   R   R   R   R   R   Rk   R   Rm   Ru   Rt   R/   R   R   R   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s     					c         C   s   |  j  } |  j } d } t | j | j d d t | j | j d | t | j | j d | d d | j d  d   d d  f } t | j   | d d d d d  S(	   NgHz>R   g:0yE>R'   g#B;i   i   gƠ>(   R   R   R   R   R   R1   R{   Rz   (   R   R   R   R   t   ci(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_basic_inference  s    		(   RC   RD   RO   R   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   	t   TestOLSRobustCluster2Largec           B   s/   e  Z d    Z e j j d d  d    Z RS(   c      
   C   s   |  j  j d d |  j d t d t d t } |  j  |  _ | |  _  | j |  _ | j   |  _	 t
 j |  j  |  j d t } t
 j |  } | |  _ | |  _ t |  _ t j |  _ t |  _ d |  _ d |  _ d  S(   NR   R   Rj   R   t   df_correctiongư>g|=(   R   R   R   R8   RK   R   R   R   R   R   Rk   R   Rm   Ru   Rt   R/   R   t   results_cluster_largeR)   R   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s$    								R   s   GH#1189 issuecomment-29141741c         C   s   t  t |   j   d  S(   N(   R   R   Ry   (   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_f_value  s    (   RC   RD   RO   RE   RF   Rx   R   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   	t   TestOLSRobustCluster2LargeFitc           B   s/   e  Z d    Z e j j d d  d    Z RS(   c         C   s   t  |  j j j |  j j j  } | j d d d t d |  j d t d t d t	   } |  j |  _
 | |  _ | j |  _ | j   |  _ t j |  j |  j d t } t j |  } | |  _ | |  _ t |  _ t j |  _ t	 |  _ d |  _ d	 |  _ d  S(
   NR   R   R   R   Rj   R   R   gư>g|=(   R   R   R   R   R   RZ   R   R   R8   RK   R   R   R   R   R   Rk   R   Rm   Ru   Rt   R/   R   R   R)   R   R&   (   R   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s&    !						R   s   GH#1189 issuecomment-29141741c         C   s   t  t |   j   d  S(   N(   R   R   Ry   (   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRy     s    (   RC   RD   RO   RE   RF   Rx   Ry   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   	t   TestOLSRobustClusterGSc           B   s   e  Z d    Z RS(   c      
   C   s   |  j  j d d |  j d d d t d t } |  j  |  _ | |  _  | j |  _ | j   |  _	 t
 j |  j  d |  j d t } t
 j |  } | |  _ | |  _ t |  _ t j |  _ t |  _ d |  _ d |  _ d  S(	   Ns   nw-groupsumR   R   i   Rj   R   gư>g|=(   R   R   R   R8   RK   R   R   R   R   R   Rk   t   cov_nw_groupsumRm   Ru   Rt   R/   R   t   results_nw_groupsum4R)   R   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s$    			!					(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   t   TestOLSRobustClusterGSFitc           B   s   e  Z d    Z RS(   c         C   s   |  j  j j d d d t d |  j d d d t d t   } |  j  |  _ | |  _  | j |  _	 | j
   |  _ t j |  j  d |  j d t } t j |  } | |  _ | |  _ t |  _ t j |  _ t |  _ d	 |  _ d
 |  _ d  S(   NR   s   nw-groupsumR   R   R   i   Rj   R   gư>g|=(   R   R   RZ   R   R   R8   RK   R   R   R   R   R   Rk   R   Rm   Ru   Rt   R/   R   R   R)   R   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO   7  s$    	!					(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR   4  s   t   TestOLSRobustClusterNWPc           B   s   e  Z d    Z d   Z RS(   c         C   s   |  j  j d d |  j d d d d d t d t } |  j  |  _ | |  _  | j |  _ | j   |  _	 t
 j |  j  d |  j  } t
 j |  } | |  _ | |  _ t |  _ t j |  _ t |  _ d	 |  _ d
 |  _ d  S(   Ns   nw-panelR   R   i   Rj   t   hacR   R   gư>g|=(   R   R   R   RK   R8   R   R   R   R   R   Rk   t   cov_nw_panelR   Rm   Ru   Rt   R/   R   t   results_nw_panel4R)   R   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO   P  s&    								c         C   sS   |  j  j d d |  j d d d d d t d t } t | j |  j  j d	 d
 d  S(   Ns	   hac-panelR   R   i   Rj   R   R   R   R   g-q=(   R   R   R   RK   R8   R   R   (   R   RN   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_keywordg  s    		(   RC   RD   RO   R   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR   M  s   	t    TestOLSRobustClusterNWPGroupsFitc           B   s   e  Z d    Z RS(   c         C   s   |  j  j j d d d t d |  j d d d d d	 t d
 t   } |  j  |  _ | |  _  | j |  _	 | j
   |  _ t j |  j  d |  j  } t j |  } | |  _ | |  _ t |  _ t j |  _ t |  _ d |  _ d |  _ d  S(   NR   s   nw-panelR   R   R   i   Rj   R   R   R   gư>g|=(   R   R   RZ   R   R   RK   R8   R   R   R   R   R   Rk   R   R   Rm   Ru   Rt   R/   R   R   R)   R   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO   u  s&    						(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR   r  s   t   TestOLSRobustCluster2Gc           B   s   e  Z d    Z RS(   c         C   s   |  j  j d d |  j |  j f d t d t } |  j  |  _ | |  _  | j |  _ | j   |  _	 t
 j |  j  |  j d |  j d t d } t
 j |  } | |  _ | |  _ t |  _ t j |  _ d |  _ d |  _ d  S(	   NR   R   Rj   R   t   group2i    gffffff?g|=(   R   R   R   R   RK   R   R   R   R   R   Rk   t   cov_cluster_2groupsRm   Ru   Rt   R/   R   t   results_cluster_2groups_smallR   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s"    						(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   t   TestOLSRobustCluster2GLargec           B   s   e  Z d    Z RS(   c         C   s   |  j  j d d |  j |  j f d t d t } |  j  |  _ | |  _  | j |  _ | j   |  _	 t
 j |  j  |  j d |  j d t d } t
 j |  } | |  _ | |  _ t |  _ t j |  _ t |  _ d |  _ d |  _ d  S(	   NR   R   Rj   R   R   i    gHz>g|=(   R   R   R   R   R8   R   R   R   R   R   Rk   R   Rm   Ru   Rt   R/   R   t   results_cluster_2groups_largeRK   R)   R   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s$    							(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   t   CheckWLSRobustClusterc           B   s   e  Z e d     Z RS(   c   
      C   s+  d d l  m } | j j   } | j d  } | j d  } t | d d g d t } t | | d d | d j	   |  _
 t j t j | d	 g d
  d t \ } } | |  _ t j | d g  } | | j   8} t j |  j t  |  _ g  t d  D] }	 |	 d d |	 d f ^ q |  _ d  S(   Ni(   R   i   R   R   RS   t   weightsi   R   R   R   R   i
   i   (   R   R   RU   RT   R   R   R   R8   R   RZ   R   R   R   R   RK   R   R   R   R   R   R   R   R   (
   R[   R   R   R   R   R   R   R   R   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR`     s    &	(   RC   RD   Ra   R`   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   t   TestWLSRobustCluster2c           B   s   e  Z d    Z RS(   c         C   s   |  j  j d d |  j d t d t } |  j  |  _ | |  _  | j |  _ | j   |  _ t	 j
 |  j  |  j d t } t	 j |  } | |  _ | |  _ t |  _ t j |  _ d |  _ d |  _ d  S(   NR   R   Rj   R   gư>g|=(   R   R   R   RK   R   R   R   R   R   Rk   R   Rm   Ru   Rt   R/   R   t   results_cluster_wls_smallR   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s     							(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   t   TestWLSRobustCluster2Largec           B   s   e  Z d    Z RS(   c      
   C   s   |  j  j d d |  j d t d t d t } |  j  |  _ | |  _  | j |  _ | j   |  _	 t
 j |  j  |  j d t } t
 j |  } | |  _ | |  _ t |  _ t j |  _ t |  _ d |  _ d |  _ d  S(   NR   R   Rj   R   R   gư>g|=(   R   R   R   R8   RK   R   R   R   R   R   Rk   R   Rm   Ru   Rt   R/   R   t   results_cluster_wls_largeR)   R   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s$    								(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   t   TestWLSRobustSmallc           B   s   e  Z d    Z RS(   c         C   s   |  j  j d d t } |  j  |  _ | |  _  | j |  _ | j   |  _ | j } t	 j
 |  } | |  _ | |  _ t |  _ t j |  _ t |  _ d |  _ d |  _ d  S(   NR   R   gư>g|=(   R   R   RK   R   R   R   R   R   RJ   Rk   Rm   Ru   Rt   R/   R   t   results_hc1_wls_smallR)   R   R&   (   R   RN   Ro   Rp   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyRO     s    								(   RC   RD   RO   (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR     s   t   TestWLSOLSRobustSmallc           B   s)   e  Z e d     Z d   Z d   Z RS(   c         C   s  d d l  m } | j j   } | j d  } | j d  } t | d d g d t } t | | d d | d j	   |  _
 d t j t j | d   } t | | t j |  | d  d   d  f  j	   |  _ t j t j | d	 g d
  d t \ } } | |  _ t j | d g  }	 |	 |	 j   8}	 t j |	  j t  |  _ g  t d  D] }
 |
 d d |
 d f ^ qY|  _ d  S(   Ni(   R   i   R   R   RS   R   i   R   R   R   R   i
   i   (   R   R   RU   RT   R   R   R   R8   R   RZ   t   res_wlsR   t   sqrtR   R   t   NoneRN   R   RK   R   R   R   R   R   R   R   R   (   R[   R   R   R   R   R   t   w_sqrtR   R   R   R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR`   *  s     & 
/	c   	      C   se  d t  d t  f d t  d t  f d t  d t  f d t  d t  f g } x| D]\ } } |  j j | |  } |  j j | |  } t | j | j d d t | j   | j   d d t | j | j d d t | j	 | j	 d d t
 j t | j   } | j |  } | j |  } t | j | j d d t | j | j d d	 qU Wd  S(
   NR   R   R   t   HC2t   HC3R   gvIh%<=g-q=g|=(   R   RK   RN   R   R   R   R   R   R   R1   R   R   R   R#   R5   R0   (	   R   t   all_covR   t   kwdsR   R   R   t   ft1t   ft2(    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_allE  s     c   	      C   s  d } i  } |  j  j | |  } |  j j | |  } t | j | j d d t | j   | j   d d t | j | j d d t | j | j d d | j t	 j
 t | j   d | j } t | j   | j d d t | j | j d d t | j | j d d t | j | j d d |  j j } t | j | j d | j } | j d | d |  } | j t	 j
 t | j   d | j } t | j   | j d d t | j | j d d t | j | j d d t | j | j d d d  S(	   Nt   fixed_scaleR   gvIh%<=g-q=R   R   R   R   (   RN   R   R   R   R   R   R   R1   R   R   R   R   t   normalized_cov_paramsR,   R0   R.   R-   R   R   R   R   R   RZ   (	   R   R   R  R   R   R   t   modt   mod3R   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_fixed_scaleb  s2    (   RC   RD   Ra   R`   R	  R  (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyR   (  s   	c          C   s  t  j d d d d d d g  }  t  j d d d d d d	 g  } t  j d d d d d d g  } t  j |  t  j t |    f  }  d
 | d } t | |  d | j   } t | j d d g d d t | |  d | j   } t | j d d g d d t | |  d | j d d  } t | j d d g d d t | |  d | d j d d  } t | j d d g d d t | |  d | j d d d i d d 6 } t | j d d g d d d  S(   Ni    i   i   i   i   i   i   i   i   g      ?R   gN"q?g~uM/N?R   gMbP?R   s   fixed scalegO=N?g5=`6?g      "@R   i	   R   g[u|?g-/i@g[u|?g-/i@(	   R   t   arrayt   column_stackt   onesR   R   RZ   R   R   (   t   xdatat   ydatat   sigmaR   RL   (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   test_cov_type_fixed_scale  s     !!!$!%(9   t   __doc__RE   t   numpyR   t   scipyR    t   numpy.testingR   R   R   R   t#   statsmodels.regression.linear_modelR   R   t%   statsmodels.stats.sandwich_covariancet   sandwich_covarianceRk   t   statsmodels.tools.toolsR   R   R   t   statsmodels.tools.sm_exceptionsR	   t   resultsR
   RL   R   R   t   objectR   RH   Rb   Rd   Rh   Rq   Rs   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  (    (    (    sJ   lib/python2.7/site-packages/statsmodels/regression/tests/test_robustcov.pyt   <module>   sN   "LY&'#%Y