
    M/Ph~                     F   d Z ddlZddlmZmZmZmZ ddlZddl	m
Z
 ddlmZ ddlmZmZ ddlm
c mZ ddlmZ ddlmZ d	d
lmZmZ  G d d          Z G d de          Z G d de          Z G d de          Z G d de          Z  G d de          Z! G d d          Z" G d dee"          Z# G d dee"          Z$ G d dee"          Z% G d d e          Z& G d! d"e&e"          Z' G d# d$e&e"          Z( G d% d&e&e"          Z) G d' d(e&e"          Z* G d) d*e&e"          Z+ G d+ d,e&e"          Z, G d- d.e&e"          Z- G d/ d0e&e"          Z. G d1 d2e&e"          Z/ G d3 d4e&e"          Z0 G d5 d6e&e"          Z1 G d7 d8e          Z2 G d9 d:e2e"          Z3 G d; d<e2e"          Z4 G d= d>e2e"          Z5 G d? d@          Z6dA Z7ej8        9                    dBdCi fdDi fdEi fdFi fdGi fdHdIdJifdKdL ej:        dM          dNz  ifg          dO             Z;dS )PzrTesting OLS robust covariance matrices against STATA

Created on Mon Oct 28 15:25:14 2013

Author: Josef Perktold
    N)assert_allcloseassert_equalassert_raisesassert_warns)stats)	macrodata)OLSWLS)InvalidTestWarning)add_constant   )#results_grunfeld_ols_robust_clusterresults_macro_ols_robustc                       e Zd Zd Zej        j        d             Zej        j        d             Zej        j        d             Z	d Z
dS )CheckOLSRobustc                     | j         }| j        }t          | dd          }t          |j        |j        |           t          | j        |j        |           t          | j        |j        |           d S Nrtol绽|=r   )	res1res2getattrr   params
bse_robustbse
cov_robustcov)selfr   r   r   s       k/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/regression/tests/test_robustcov.py
test_basiczCheckOLSRobust.test_basic!   sr    yytVU++T[t<<<<==========    c                     | j         }t          j        t          |j                            }|                    || j                  }|                                 d S Ncov_p)r   npeyelenr   t_testr   summaryr   r   mattts       r    test_t_test_summaryz"CheckOLSRobust.test_t_test_summary)   sJ    yfS%%&&[[DO[44


r"   c                     | j         }t          j        t          |j                            }|                    || j                  }|                                 d S r$   )r   r'   r(   r)   r   r*   r   summary_framer,   s       r    test_t_test_summary_framez(CheckOLSRobust.test_t_test_summary_frame2   sQ    yfS%%&&[[DO[44
r"   c                     | j         }t          j        t          |j                            }|                    |d d         | j                  }|                                 d S )Nr%   )r   r'   r(   r)   r   f_testr   r+   )r   r   r-   fts       r    test_f_test_summaryz"CheckOLSRobust.test_f_test_summary:   sR    yfS%%&&[[SbS[99


r"   c                    | j         }| j        }t          | dd          }t          | dd          }t          j        t          |j                            }|                    || j                  }t          |j
        |j        |           t          |j        |j        |           t          |j        |j        |           | j        r t          |j        |j        d|z             nTt$          j                            t          j        |j                            dz  }t          ||j        d|z  d	
           |                    |d d         | j                  }| j        rIt          |j        |j        |           t3          |d          rt          |j        |j        |           nBt          | dd          s1|j        dz  |j        z  }	t          |j        |	z  |j        |           t3          |d          r6t;          |j        |j                   t;          |j         |j!                   d S t;          |j        |j"                   t;          |j         |j#                   d S )Nr   r   rtolh-q=r%   r         g}:r   atolr4   Fpskip_fF      ?df_r)$r   r   r   r'   r(   r)   r   r*   r   r   effectsdr   tvaluetvaluessmallpvaluepvaluesr   normsfabsr5   fvalueFhasattrr?   df_residnobsr   df_numdf_mdf_denomrB   Fdf1Fdf2)
r   r   r   r   r9   r-   r.   pvalr6   dof_corrs
             r    
test_testszCheckOLSRobust.test_testsB   sB    yytVU++gu--fS%%&&[[DO[44 		4;T::::txd3333	4<d;;;;: 	KBIt|!d(CCCCC:==	!2!233a7DD$,QXEJJJJ[[SbS[99: 		IBItvD9999tT"" ?	47>>>>4511 I=3.:	H 4df4HHHH4   	1DI...di00000 DI...di00000r"   N)__name__
__module____qualname__r!   pytestmarksmoker/   r2   r7   rY    r"   r    r   r       s        > > > [   [   [  &1 &1 &1 &1 &1r"   r   c                   0    e Zd Zd Zed             Zd ZdS )TestOLSRobust1c                 t    | j         }|j        | _        |j        | _        d| _        t          j        | _        d S NT)	r   HC1_ser   cov_HC1r   rG   resresults_hc0r   r   res_olss     r    setup_methodzTestOLSRobust1.setup_methodn   s/    )!.!/
O			r"   c                    t          j                    j        }dt          j        t          j        |d         j                            z  }dt          j        t          j        |d         j                            z  }t          t          j        ||d         d d         j        f         d          }t          ||          
                                | _        d S )Ni  realgdprealinvrealintr4   Fprepend)r   load_pandasdatar'   difflogvaluesr   c_r	   fitr   )clsd2g_gdpg_invexoggs        r    setup_classzTestOLSRobust1.setup_classu   s    "$$)bgbfR	]%9::;;;bgbfR	]%9::;;;E%Iss+223U
 
 
 ue$$((**r"   c                     | j         j                            d          }t          | j         j        |j                   d S )Nqr)method)r   modelrx   r   HC0_se)r   r   s     r    test_qr_equivzTestOLSRobust1.test_qr_equiv   s9    y""$"//	($+66666r"   N)rZ   r[   r\   rk   classmethodr~   r   r`   r"   r    rb   rb   k   sM        $ $ $ + + [+7 7 7 7 7r"   rb   c                       e Zd Zd ZdS )TestOLSRobust2c                 t    | j         }|j        | _        |j        | _        d| _        t          j        | _        d S rd   )	r   re   r   rf   r   rG   rg   results_ivhc0_smallr   ri   s     r    rk   zTestOLSRobust2.setup_method   s0    )!.!/
+			r"   NrZ   r[   r\   rk   r`   r"   r    r   r      #        , , , , ,r"   r   c                       e Zd Zd ZdS )TestOLSRobust3c                 t    | j         }|j        | _        |j        | _        d| _        t          j        | _        d S )NF)	r   r   r   cov_HC0r   rG   rg   results_ivhc0_larger   ri   s     r    rk   zTestOLSRobust3.setup_method   s0    )!.!/
+			r"   Nr   r`   r"   r    r   r      r   r"   r   c                       e Zd Zd ZdS )TestOLSRobustHacSmallc                     | j         }t          j        |dd          }t          j        |          }|| _        || _        d| _        t          j        | _	        d S )N   Tnlagsuse_correction)
r   swcov_hac_simplese_covr   r   rG   rg   results_ivhac4_smallr   r   rj   cov1se1s       r    rk   z"TestOLSRobustHacSmall.setup_method   sP    ) $GGGioo
,			r"   Nr   r`   r"   r    r   r      #        - - - - -r"   r   c                       e Zd Zd ZdS )TestOLSRobustHacLargec                     | j         }t          j        |dd          }t          j        |          }|| _        || _        d| _        t          j        | _	        d S )Nr   Fr   )
r   r   r   r   r   r   rG   rg   results_ivhac4_larger   r   s       r    rk   z"TestOLSRobustHacLarge.setup_method   sP    ) %HHHioo
,			r"   Nr   r`   r"   r    r   r      r   r"   r   c                   V    e Zd Zd Zd Zd Zd Zd Zej	        j
        d             ZdS )CheckOLSRobustNewMixinc                     t          | dd          }t          | j        | j        |           t          | j        | j        |           d S r   )r   r   r   cov_robust2r   bse_robust2r   r   s     r    test_comparez#CheckOLSRobustNewMixin.test_compare   sM    tVU++)9EEEE)9EEEEEEr"   c                 8   t          | dd          svt          | dd          }t          | j        j        | j        j        |           t          | j        d          r(t          | j        j        | j        j        |           d S d S t          j
        d          )Nr@   Fr   r   r   r?   z'TODO: document why this test is skipped)r   r   r   rM   r   rN   rO   f_pvaluer?   r]   skipr   s     r    test_fvaluez"CheckOLSRobustNewMixin.test_fvalue   s    tXu-- 	I4//DDI,dikEEEEty$'' M	 2DILtLLLLLLM M +GHHHr"   c                    t          | dd          }| j                                        }| j        j        d d ddf         }t          |||           t          j        |d                                          dz  | j        j	        z  }t          j        |d                                          dz  | j        j	        z  }t          ||d           d S )	Nr   r   r      r   r   r<      )
r   r   conf_intr   params_tabler   r'   rt   ravelr   )r   r   ci1ci2crit1crit2s         r    test_confintz#CheckOLSRobustNewMixin.test_confint   s    tVU++i  ""i$QQQ!V,St,,,, Q%%''!+dim;Q%%''!+dim;u2......r"   c                 L   | j         }| j        }t          | dd          }t          | dd          }t          j        t          |j                            }|                    || j                  }t          |j
        |j        |           t          |j        |j        |           t          |j        |j        |           t          |j        |j        d|z             |                                }| j        j        d d ddf         }t          |||           d S )	Nr   r   r:   r%   r   r;   r   r   )r   r   r   r'   r(   r)   r   r*   r   r   rC   rD   r   rE   rF   rH   rI   r   r   )	r   r   r   r   r9   r-   r.   r   r   s	            r    
test_ttestz!CheckOLSRobustNewMixin.test_ttest   s   yytVU++fe,,fS%%&&[[DO[44 		4;U;;;;txd3333	4<e<<<<	4<a$h????kkmmi$QQQ!V,St,,,,,,r"   c                 j   | j         }| j        }d}d}t          |d          r|j        |j        |j        z
  dz
  z  }nt          |d          r|j        dz  }nd}t          |j        t                    rd}|st          |j        ||           |j        d	k    sCt          |d
          r|j        n|j        }t          |j        ||t!          |                     |j        |j        z
  dz
  }t'          |j        |           |j        dz                                  }t          ||d           d S )Ngh㈵>Frssr   rmser<   Tr   z
Newey-Westr2)r   err_msgvIh%<=)r   r   rO   r   NrS   r   
isinstancer   r
   r   scalevcetyper   r2crsquaredstrrQ   df_modelr   rP   resid_pearsonsum)	r   r   r   r   r   r   r   rP   psums	            r    
test_scalez!CheckOLSRobustNewMixin.test_scale   sK   yy 4 	H 2Q 67EET6"" 	IqLEEDdj#&& 	D  	:DJD9999||++#D$//=TXBDM2D#d))LLLL 9t},q0T]H---"A%**,,hU333333r"   c                 8    | j                                          d S N)r   r+   )r   s    r    test_summaryz#CheckOLSRobustNewMixin.test_summary  s    	r"   N)rZ   r[   r\   r   r   r   r   r   r]   r^   r_   r   r`   r"   r    r   r      s        F F F
I I I	/ 	/ 	/- - -$ 4  4  4D [    r"   r   c                       e Zd Zd Zd ZdS )TestOLSRobust2SmallNewc                    | j                             dd          }| j         | _        || _         |j        | _        |                                | _        |j        | _        |j	        | _
        d| _        t          j        | _        d S )NHC1Tuse_t)r   get_robustcov_resultsres3r   r   
cov_paramsr   re   r   rf   r   rG   rg   r   r   ri   s     r    rk   z#TestOLSRobust2SmallNew.setup_method  sq    )11%t1DDI		!+!,,..">"?
+			r"   c                 <   | j         }|j        j        }|j        j        d d ddgf         }t	          ||                                          }d}d}d}t          t          |j        |           dd l	}|
                                5  |                    d           |                    |          \  }	}
}d d d            n# 1 swxY w Y   t          |	|d           t          |
|d           t          ||           t          t          |j        |           d S )	Nr   r<   g!w?g H@r   ignoregdy=r   )r   r   endogexogr	   rx   r   r   compare_lr_testwarningscatch_warningssimplefilterr   r   compare_f_test)r   r   r   r   res_ols2r_pvalr_chi2r_dfr   chi2rW   dfs               r    r   z#TestOLSRobust2SmallNew.test_compare  sb   y
 zqqq1a&y)ud##''))#"')=xHHH$$&& 	< 	<!!(+++!11(;;ND$	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	f51111f51111R')<hGGGGGs   /CC	CN)rZ   r[   r\   rk   r   r`   r"   r    r   r     s7        	, 	, 	,H H H H Hr"   r   c                       e Zd Zd ZdS )TestOLSRobustHACSmallNewc                 T   | j                             dddd          }| j         | _        || _         |j        | _        |                                | _        t          j        |dd          }t          j	        |          }|| _
        || _        d| _        t          j        | _        d S )NHACr   T)maxlagsr   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   rG   rg   r   r   r   s       r    rk   z%TestOLSRobustHACSmallNew.setup_method9  s    )111T 2 
 
 I		!+!,,.. $GGGioo
,			r"   Nr   r`   r"   r    r   r   6  s#        - - - - -r"   r   c                        e Zd Zd Zej                            d           fd            Zej                            d           fd            Z xZ	S )TestOLSRobust2LargeNewc                    | j                             d          }d|_        | j         | _        || _         |j        | _        |                                | _        |j        | _	        |j
        | _        d| _        t          j        | _        d S )NHC0F)r   r   r   r   r   r   r   r   r   r   r   r   rG   rg   r   r   ri   s     r    rk   z#TestOLSRobust2LargeNew.setup_methodL  ss    )11%88I		!+!,,..">"?
+			r"   znot refactored yet for `large`reasonc                 H    t                                                       d S r   superr   r   	__class__s    r    r   z"TestOLSRobust2LargeNew.test_fvalueX      r"   c                 H    t                                                       d S r   )r   r   r   s    r    r   z#TestOLSRobust2LargeNew.test_confint\  s    r"   )
rZ   r[   r\   rk   r]   r^   r   r   r   __classcell__r   s   @r    r   r   I  s        
, 
, 
, [=>>    ?> [=>>    ?>    r"   r   c                   $    e Zd Zed             ZdS )CheckOLSRobustClusterc                 z   ddl m} |j                                        }|j        d d         }|j        d d         }t          |ddg         d          }t          ||                                          | _	        t          j        t          j        |dg         d	          d
          \  }}|| _        t          j        |dg         d          }||                                z  }t          j        |                              t$                    | _        d t)          d          D             | _        d S )Nr   grunfeld   valuecapitalFrp   firmS20Treturn_inverseyearWrequirementsc                 (    g | ]}|d z  d |dz   z  fS    r   r`   .0is     r    
<listcomp>z5CheckOLSRobustCluster.setup_class.<locals>.<listcomp>  )    >>>qQVR1q5\*>>>r"   
   )statsmodels.datasetsr  rs   rr   r   r   r   r	   rx   r   r'   uniqueasarraygroupsrequireminsqueezeastypeinttimerangetidx	ry   r  dtapadtapa_endog
dtapa_exogr   
firm_namesfirm_idr  s	            r    r~   z!CheckOLSRobustCluster.setup_classi  s)    	211111))++k$3$'Z%
J';<eLLL{D))--// iJz6(+U33D
 
 

G 
z*fX.SAAA

:d##**3//>>E"II>>>r"   NrZ   r[   r\   r   r~   r`   r"   r    r   r   f  s/         ? ? [? ? ?r"   r   c                       e Zd Zd ZdS )TestOLSRobustCluster2c                    | j                             d| j        dd          }| j         | _        || _         |j        | _        |                                | _        t          j	        | j         | j        d          }t          j
        |          }|| _        || _        d| _        t          j        | _        d| _        d| _        d S NclusterTr  r   r   r   ư>r   )r   r   r  r   r   r   r   r   r   cov_clusterr   r   r   rG   r   results_clusterr   r9   r   s       r    rk   z"TestOLSRobustCluster2.setup_method  s    )11dk$d 2 
 
 I		!+!,,..~diTJJJioo
(		


r"   Nr   r`   r"   r    r*  r*    #            r"   r*  c                        e Zd Zd Zd Zd ZdS )TestOLSRobustCluster2Inputc                    dd l }| j                            dd          }|                    |          }| j                            d|dd          }| j        | _        || _        |j        | _        |	                                | _
        t          j        | j        | j        d          }t          j        |          }|| _        || _        d| _        t"          j        | _        d| _        d	| _        d S )
Nr   r4   r   r-  Tr.  r/  r0  r   )pandasr  reshape	DataFramer   r   r   r   r   r   r   r   r1  r   r   r   rG   r   r2  r   r9   )r   pd	fat_array
fat_groupsrj   r   r   s          r    rk   z'TestOLSRobustCluster2Input.setup_method  s    K''A..	\\),,
)11jT 2 
 
 I		!+!,,..~diTJJJioo
(		


r"   c                     | j                             dd          }t          j        |||f          }t	          t
          | j        j        d|dd           d S )Nr4   r   r-  Tr.  )r  r8  r'   hstackr   
ValueErrorr   r   )r   long_groupsgroups3s      r    test_too_many_groupsz/TestOLSRobustCluster2Input.test_too_many_groups  sg    k))"a00)[+{CDDI+	
 	
 	
 	
 	
 	
r"   c                     dd l }| j                            dd          }|                    t	          j        ||f                    }| j                            d|dd          }d S )Nr   r4   r   r-  Tr.  )r7  r  r8  r9  r'   r>  r   r   )r   r:  r@  groups2rg   s        r    test_2way_dataframez.TestOLSRobustCluster2Input.test_2way_dataframe  sn    k))"a00,,ry+{)CDDEEi--gd$ . 
 
r"   N)rZ   r[   r\   rk   rB  rE  r`   r"   r    r5  r5    sA        
  .

 

 


 
 
 
 
r"   r5  c                       e Zd Zd Zd ZdS )TestOLSRobustCluster2Fitc                    | j         j                            dt          | j        dd                    }| j         | _        || _         |j        | _        |                                | _	        t          j        | j         | j        d          }t          j        |          }|| _        || _        d| _        t           j        | _        d| _        d| _        d S )Nr-  Tr.  cov_typecov_kwdsr/  r0  r   )r   r   rx   dictr  r   r   r   r   r   r   r1  r   r   r   rG   r   r2  r   r9   r   s       r    rk   z%TestOLSRobustCluster2Fit.setup_method  s    )/%%TNNN & 
 
 I		!+!,,..~diTJJJioo
(		


r"   c                 @   | j         }| j        }d}t          |j        |j        d           t          |j        |j        |           t          |j        |j        |d           |j        d d ddf         }t          |                                |dd           d S )	NHz>g:0yE>r   g#B;r=   r   r   gƠ>)r   r   r   r   r   rI   r   r   )r   r   r   r   cis        r    test_basic_inferencez-TestOLSRobustCluster2Fit.test_basic_inference  s    yyT[t<<<<$(6666dlEJJJJqqq!A#v&$UCCCCCCr"   N)rZ   r[   r\   rk   rP  r`   r"   r    rG  rG    s7          &D D D D Dr"   rG  c                   f     e Zd Zd Zej                            d           fd            Z xZS )TestOLSRobustCluster2Largec                    | j                             d| j        ddd          }| j         | _        || _         |j        | _        |                                | _        t          j	        | j         | j        d          }t          j
        |          }|| _        || _        d| _        t          j        | _        d| _        d| _        d| _        d S Nr-  FTr  r   r   df_correctionr/  r0  r   )r   r   r  r   r   r   r   r   r   r1  r   r   r   rG   r   results_cluster_larger@   r   r9   r   s       r    rk   z'TestOLSRobustCluster2Large.setup_method  s    )11;  2 
 
 I		!+!,,..~diUKKKioo
.		


r"   GH#1189 issuecomment-29141741r   c                 H    t                                                       d S r   r   r   s    r    test_f_valuez'TestOLSRobustCluster2Large.test_f_value  r   r"   )	rZ   r[   r\   rk   r]   r^   r   rZ  r   r   s   @r    rR  rR    sh        
  . [<==    >=    r"   rR  c                   f     e Zd Zd Zej                            d           fd            Z xZS )TestOLSRobustCluster2LargeFitc           	         t          | j        j        j        | j        j        j                  }|                    dt          | j        ddd                    }| j        | _        || _        |j	        | _
        |                                | _        t          j        | j        | j        d          }t          j        |          }|| _        || _        d| _        t&          j        | _        d| _        d| _        d| _        d S )	Nr-  FTrU  rI  r/  r0  r   )r	   r   r   r   r   rx   rL  r  r   r   r   r   r   r   r1  r   r   r   rG   r   rW  r@   r   r9   )r   r   rj   r   r   s        r    rk   z*TestOLSRobustCluster2LargeFit.setup_method  s    DIO)49?+?@@)){$"	    
 
 I		!+!,,..~diUKKKioo
.		


r"   rX  r   c                 H    t                                                       d S r   r   r   s    r    r   z)TestOLSRobustCluster2LargeFit.test_fvalue-  r   r"   )	rZ   r[   r\   rk   r]   r^   r   r   r   r   s   @r    r\  r\    sh        
  6 [<==    >=    r"   r\  c                       e Zd Zd ZdS )TestOLSRobustClusterGSc                    | j                             d| j        ddd          }| j         | _        || _         |j        | _        |                                | _        t          j	        | j         d| j        d          }t          j
        |          }|| _        || _        d| _        t          j        | _        d| _        d| _        d| _        d S )	Nnw-groupsumr   FTr  r   r   r   r/  r0  r   )r   r   r  r   r   r   r   r   r   cov_nw_groupsumr   r   r   rG   r   results_nw_groupsum4r@   r   r9   r   s       r    rk   z#TestOLSRobustClusterGS.setup_method5  s    )11  2 
 
 I		!+!,,..!Iq$)E
 
 
 ioo
-		


r"   Nr   r`   r"   r    r`  r`  2  #            r"   r`  c                       e Zd Zd ZdS )TestOLSRobustClusterGSFitc           	         | j         j                            dt          | j        ddd                    }| j         | _        || _         |j        | _        |                                | _	        t          j        | j         d| j        d          }t          j        |          }|| _        || _        d| _        t           j        | _        d| _        d| _        d	| _        d S )
Nrb  r   FTrc  rI  r/  r0  r   )r   r   rx   rL  r  r   r   r   r   r   r   rd  r   r   r   rG   r   re  r@   r   r9   r   s       r    rk   z&TestOLSRobustClusterGSFit.setup_methodR  s    )/%%"Y%t   & 
 
 I		!+!,,..!Iq$)E
 
 
 ioo
-		


r"   Nr   r`   r"   r    rh  rh  O  s#            r"   rh  c                       e Zd Zd Zd ZdS )TestOLSRobustClusterNWPc                    | j                             d| j        dddd          }| j         | _        || _         |j        | _        |                                | _        t          j	        | j         d| j
                  }t          j        |          }|| _        || _        d| _        t          j        | _        d| _        d| _        d| _        d S )	Nnw-panelr   hacTFr  r   r   r   rV  r0  r   )r   r   r  r   r   r   r   r   r   cov_nw_panelr!  r   r   r   rG   r   results_nw_panel4r@   r   r9   r   s       r    rk   z$TestOLSRobustClusterNWP.setup_methodn  s    )11  2 
 
 I		!+!,,..ty!TY77ioo
*		


r"   c                     | j                             d| j        dddd          }t          |j        | j         j        d           d S )	Nz	hac-panelr   rn  TFro  r:   r   )r   r   r  r   r   ri   s     r    test_keywordz$TestOLSRobustClusterNWP.test_keyword  sU    )11  2 
 
 	TY]??????r"   N)rZ   r[   r\   rk   rs  r`   r"   r    rk  rk  k  s7          0
@ 
@ 
@ 
@ 
@r"   rk  c                       e Zd Zd ZdS ) TestOLSRobustClusterNWPGroupsFitc           
         | j         j                            dt          | j        dddd                    }| j         | _        || _         |j        | _        |                                | _	        t          j        | j         d| j                  }t          j        |          }|| _        || _        d| _        t"          j        | _        d| _        d| _        d	| _        d S )
Nrm  r   rn  TF)r  r   r   r   rV  rI  r0  r   )r   r   rx   rL  r  r   r   r   r   r   r   rp  r!  r   r   r   rG   r   rq  r@   r   r9   r   s       r    rk   z-TestOLSRobustClusterNWPGroupsFit.setup_method  s    )/%%{$#   & 	
 	
 I		!+!,,..ty!TY77ioo
*		


r"   Nr   r`   r"   r    ru  ru    s#        
    r"   ru  c                       e Zd Zd ZdS )TestOLSRobustCluster2Gc                    | j                             d| j        | j        fdd          }| j         | _        || _         |j        | _        |                                | _        t          j
        | j         | j        | j        d          d         }t          j        |          }|| _        || _        d| _        t          j        | _        d| _        d| _        d S )Nr-  Tr.  group2r   r   gffffff?r   )r   r   r  r  r   r   r   r   r   r   cov_cluster_2groupsr   r   r   rG   r   results_cluster_2groups_smallr   r9   r   s       r    rk   z#TestOLSRobustCluster2G.setup_method  s    )11K+	 2 
 
 I		!+!,,..%It{49T
 
 

 ioo
6	  		 


r"   Nr   r`   r"   r    rx  rx    rf  r"   rx  c                       e Zd Zd ZdS )TestOLSRobustCluster2GLargec                    | j                             d| j        | j        fdd          }| j         | _        || _         |j        | _        |                                | _        t          j
        | j         | j        | j        d          d         }t          j        |          }|| _        || _        d| _        t          j        | _        d| _        d| _        d| _        d S )	Nr-  Fr.  rz  r   TrN  r   )r   r   r  r  r   r   r   r   r   r   r|  r   r   r   rG   r   results_cluster_2groups_larger@   r   r9   r   s       r    rk   z(TestOLSRobustCluster2GLarge.setup_method  s    )11K+ 	 2 
 
 I		!+!,,..%It{49U
 
 

 ioo
6		


r"   Nr   r`   r"   r    r  r    s#        
    r"   r  c                   $    e Zd Zed             ZdS )CheckWLSRobustClusterc                    ddl m} |j                                        }|j        d d         }|j        d d         }t          |ddg         d          }t          ||d|d         z  	                                          | _	        t          j        t          j        |d
g         d          d          \  }}|| _        t          j        |dg         d          }||                                z  }t          j        |                              t$                    | _        d t)          d          D             | _        d S )Nr   r   r  r  r  Frp   r   weightsr  r  Tr  r	  r
  r  c                 (    g | ]}|d z  d |dz   z  fS r  r`   r  s     r    r  z5CheckWLSRobustCluster.setup_class.<locals>.<listcomp>  r  r"   r  )r  r  rs   rr   r   r   r   r
   rx   r   r'   r  r  r  r  r  r  r  r  r  r   r!  r"  s	            r    r~   z!CheckWLSRobustCluster.setup_class  sA    	211111))++k$3$'Z%
J';<eLLLq:g+>'>
 
 

#%% 	 !iJz6(+U33D
 
 

G 
z*fX.SAAA

:d##**3//>>E"II>>>r"   Nr(  r`   r"   r    r  r    s/         ? ? [? ? ?r"   r  c                       e Zd Zd ZdS )TestWLSRobustCluster2c                    | j                             d| j        dd          }| j         | _        || _         |j        | _        |                                | _        t          j	        | j         | j        d          }t          j
        |          }|| _        || _        d| _        t          j        | _        d| _        d| _        d S r,  )r   r   r  r   r   r   r   r   r   r1  r   r   r   rG   r   results_cluster_wls_smallr   r9   r   s       r    rk   z"TestWLSRobustCluster2.setup_method  s    )11dk$d 2 
 
 I		!+!,,..~diTJJJioo
2		


r"   Nr   r`   r"   r    r  r    r3  r"   r  c                       e Zd Zd ZdS )TestWLSRobustCluster2Largec                    | j                             d| j        ddd          }| j         | _        || _         |j        | _        |                                | _        t          j	        | j         | j        d          }t          j
        |          }|| _        || _        d| _        t          j        | _        d| _        d| _        d| _        d S rT  )r   r   r  r   r   r   r   r   r   r1  r   r   r   rG   r   results_cluster_wls_larger@   r   r9   r   s       r    rk   z'TestWLSRobustCluster2Large.setup_method/  s    )11;  2 
 
 I		!+!,,..~diUKKKioo
2		


r"   Nr   r`   r"   r    r  r  *  s#        
    r"   r  c                       e Zd Zd ZdS )TestWLSRobustSmallc                 Z   | j                             dd          }| j         | _        || _         |j        | _        |                                | _        |j        }t          j	        |          }|| _
        || _        d| _        t          j        | _        d| _        d| _        d| _        d S )Nr   Tr   r0  r   )r   r   r   r   r   r   r   rf   r   r   r   r   rG   r   results_hc1_wls_smallr@   r   r9   r   s       r    rk   zTestWLSRobustSmall.setup_methodJ  s    )11%t1DDI		!+!,,.. ioo
.		


r"   Nr   r`   r"   r    r  r  G  s#            r"   r  c                   0    e Zd Zed             Zd Zd ZdS )TestWLSOLSRobustSmallc                    ddl m} |j                                        }|j        d d         }|j        d d         }t          |ddg         d          }t          ||d|d         z  	                                          | _	        dt          j        t          j        |d                             z  }t          ||z  t          j        |          |d d d f         z                                            | _        t          j        |d
g         d          }t          j        |d          \  }}	|	| _        t          j        |dg         d          }
|
|
                                z  }
t          j        |
                              t*                    | _        d t/          d          D             | _        d S )Nr   r   r  r  r  Frp   r   r  r  r  Tr  r	  r
  r  c                 (    g | ]}|d z  d |dz   z  fS r  r`   r  s     r    r  z5TestWLSOLSRobustSmall.setup_class.<locals>.<listcomp>y  r  r"   r  )r  r  rs   rr   r   r   r   r
   rx   res_wlsr'   sqrtr  r	   rj   r  r  r  r  r  r  r  r  r   r!  )ry   r  r#  r$  r%  r   w_sqrtidsr&  r'  r  s              r    r~   z!TestWLSOLSRobustSmall.setup_class_  s    	211111))++k$3$'Z%
J';<eLLLq:g+>'>
 
 

#%% 	 RWRZ
7(;<<===& "*T"2"2VAAAtG_"D
 

#%% 	 jVH-u55 iDAAA
G
z*fX.SAAA

:d##**3//>>E"II>>>r"   c                    dt          d          fdt          d          fdt          d          fdt          d          fg}|D ]4\  }} | j        j        |fi |} | j        j        |fi |}t	          |j        |j        d           t	          |                                 |j                    d           t	          |j        |j        d           t	          |j        |j        d           t          j
        t          |j                            }|                    |          } |j        |          }t	          |j        |j        d	           t	          |j        |j        d
           6d S )Nr   Tr   r   HC2HC3r   r   r:   g|=)rL  rj   r   r  r   r   r   r   rI   r'   r(   r)   r5   rM   rH   )	r   all_covrJ  kwdsr   r   r-   ft1ft2s	            r    test_allzTestWLSOLSRobustSmall.test_all{  s   Dt$$$%Dt$$$%Dt$$$%Dt$$$%	
 & 	@ 	@NHd54<5hGG$GGD54<5hGG$GGDDK5AAAADOO--t/@/@uMMMMDHdhU;;;;DL$,UCCCC&T[))**C++c""C$+c""CCJ
????CJ
?????	@ 	@r"   c                    d}i } | j         j        |fi |} | j        j        |fi |}t          |j        |j        d           t          |                                 |j                    d           t          |j        |j        d           t          |j        |j        d            |j        t          j
        t          |j                            |j                  }t           |j                    |j        d           t          |j        |j        d           t          |j        |j        d           t          |j        |j        d           | j        j        }t%          |j        |j        |j                  }|                    ||          }|                    t          j
        t          |j                            |j                  }t          |                                |j        d           t          |j        |j        d           t          |j        |j        d           t          |j        |j        d           d S )Nfixed_scaler   r   r:   r%   r  rI  )rj   r   r  r   r   r   r   rI   r*   r'   r(   r)   normalized_cov_paramsrD   rH   rF   rE   r   r
   r   r   r  rx   )	r   rJ  r  r   r   r.   modmod3r   s	            r    test_fixed_scalez&TestWLSOLSRobustSmall.test_fixed_scale  sU    1t|1(CCdCC1t|1(CCdCCT[u====))?4?+<+<5IIII$(7777dl????T[F3t{##$$D,F
 
 
 	DOt9	
 	
 	
 	
 	"%e4444bie<<<<bie<<<< l 39ch<<<xxDx99[[F3t{##$$D,F  
 
 	OOt9	
 	
 	
 	
 	"%e4444bie<<<<bie<<<<<<r"   N)rZ   r[   r\   r   r~   r  r  r`   r"   r    r  r  ^  sN        ? ? [?6@ @ @* =  =  =  =  =r"   r  c                  ~   t          j        g d          } t          j        g d          }t          j        g d          }t          j        | t          j        t	          |                     f          } d|dz  z  }t          || |                                          }t          |j        ddgd	
           t          || |                                          }t          |j        ddgd	
           t          || |                              d          }t          |j        ddgd	
           t          || |dz                                d          }t          |j        ddgd	
           t          || |                              dddi          }t          |j        ddgd	
           d S )N)r   r   r<      r   r;   )r   r   r;         r   )r   r<   r   r<   r   r<   rA   r<   r  gN"q?g~uM/N?gMbP?r   zfixed scale)rJ  gO=N?g5=`6?g      "@g[u|?g-/i@r   	   rI  )	r'   arraycolumn_stackonesr)   r
   rx   r   r   )xdataydatasigmar  rg   s        r    test_cov_type_fixed_scaler    s   H'''((EH((())EH'''((EOUBGCJJ$7$7899EE1HnG
eUG
,
,
,
0
0
2
2CCGj*5DAAAA
eUG
,
,
,
0
0
2
2CCGj*5DAAAA
eUG
,
,
,
0
0-
0
H
HCCGj*5DAAAA
eUGcM
2
2
2
6
6
6
N
NCCGnn=DIIII
eUG
,
,
,
0
0'1 1  C CGnn=DIIIIIIr"   cov_info	nonrobustr   r   r  r  r   r   r  r-  r       c                    | \  }}t           j                            d          }|                    d          }t          j        d          }||z  |                    d          z   }t          ||          }|                    ||          }|                    ||d          }	t          |j        |	j                   d S )Nij )r  r  r  r  rI  r   )rJ  rK  r   )	r'   randomRandomStatestandard_normalr  r	   rx   r   r   )
r  rJ  rK  rsxbyr  pinv_fitqr_fits
             r    r   r     s     "Hh			v	&	&B
8$$A


A	A""3'''A
a))Cww8w<<HWWh$WGGFHL&*-----r"   )<__doc__numpyr'   numpy.testingr   r   r   r   r]   scipyr   r  r   #statsmodels.regression.linear_modelr	   r
   %statsmodels.stats.sandwich_covariancesandwich_covariancer   statsmodels.tools.sm_exceptionsr   statsmodels.tools.toolsr   resultsr   r   r   rg   r   rb   r   r   r   r   r   r   r   r   r   r*  r5  rG  rR  r\  r`  rh  rk  ru  rx  r  r  r  r  r  r  r  r^   parametrizearanger   r`   r"   r    <module>r     s                          * * * * * * 8 8 8 8 8 8 8 8 2 2 2 2 2 2 2 2 2 > > > > > > 0 0 0 0 0 0       H1 H1 H1 H1 H1 H1 H1 H1V7 7 7 7 7^ 7 7 76	, 	, 	, 	, 	,^ 	, 	, 	,	, 	, 	, 	, 	,^ 	, 	, 	,- - - - -N - - -- - - - -N - - -S S S S S S S Sl"H "H "H "H "H^-C "H "H "HL- - - - -~/E - - -&    ^-C   :? ? ? ? ?N ? ? ?8    13I   ,/
 /
 /
 /
 /
1/
 /
 /
dD D D D D46L D D DD    1  B" " " " "1" " "J    24J   :     57M   8%@ %@ %@ %@ %@35K %@ %@ %@P    1  B    24J   :    1  F? ? ? ? ?N ? ? ?>    13I   .    1  :    .0F   .R= R= R= R= R= R= R= R=jJ J J6 	b					A	X		# 356 	. 	. 	. 	. 	.r"   