U
    Kvf                     @   s  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
  mZ ddlmZ ddlmZ d	d
lmZmZ G dd dZG dd deZG dd deZG dd deZG dd deZ G dd deZ!G dd dZ"G dd dee"Z#G dd dee"Z$G dd dee"Z%G dd  d eZ&G d!d" d"e&e"Z'G d#d$ d$e&e"Z(G d%d& d&e&e"Z)G d'd( d(e&e"Z*G d)d* d*e&e"Z+G d+d, d,e&e"Z,G d-d. d.e&e"Z-G d/d0 d0e&e"Z.G d1d2 d2e&e"Z/G d3d4 d4e&e"Z0G d5d6 d6e&e"Z1G d7d8 d8eZ2G d9d: d:e2e"Z3G d;d< d<e2e"Z4G d=d> d>e2e"Z5G d?d@ d@Z6dAdB Z7ej89dCdDi fdEi fdFi fdGi fdHi fdIdJdKifdLdMe:dNdO ifgdPdQ Z;dS )RzrTesting 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                   @   sL   e Zd Zdd Zejjdd Zejjdd Zejjdd Z	d	d
 Z
dS )CheckOLSRobustc                 C   sR   | j }| j}t| dd}t|j|j|d t| j|j|d t| j|j|d d S Nrtol绽|=r   )	res1res2getattrr   params
bse_robustbse
cov_robustZcov)selfr   r   r    r   O/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/regression/tests/test_robustcov.py
test_basic"   s    zCheckOLSRobust.test_basicc                 C   s2   | j }tt|j}|j|| jd}|  d S NZcov_p)r   npeyelenr   t_testr   summaryr   r   matttr   r   r   test_t_test_summary*   s    z"CheckOLSRobust.test_t_test_summaryc                 C   s2   | j }tt|j}|j|| jd}|  d S r   )r   r!   r"   r#   r   r$   r   Zsummary_framer&   r   r   r   test_t_test_summary_frame3   s    z(CheckOLSRobust.test_t_test_summary_framec                 C   s:   | j }tt|j}|j|d d | jd}|  d S )Nr    )r   r!   r"   r#   r   f_testr   r%   )r   r   r'   ftr   r   r   test_f_test_summary;   s    z"CheckOLSRobust.test_f_test_summaryc           
      C   s  | j }| j}t| dd}t| dd}tt|j}|j|| jd}t	|j
|j|d t	|j|j|d t	|j|j|d | jrt	|j|jd| d n.tjt|jd }t	||jd| d	d
 |j|d d | jd}| jrt	|j|j|d t|drLt	|j|j|d n4t| ddsL|jd |j }	t	|j|	 |j|d t|drvt|j|j t|j |j! nt|j|j" t|j |j# d S )Nr   r   rtolh-q=r    r         g}:r   Zatolr+   Fpskip_fF      ?df_r)$r   r   r   r!   r"   r#   r   r$   r   r   effectsdr   tvaluetvaluessmallpvaluepvaluesr   ZnormZsfabsr,   fvalueFhasattrr4   df_residnobsr   Zdf_numdf_mZdf_denomr7   ZFdf1ZFdf2)
r   r   r   r   r/   r'   r(   pvalr-   Zdof_corrr   r   r   
test_testsC   s4    zCheckOLSRobust.test_testsN)__name__
__module____qualname__r   pytestmarksmoker)   r*   r.   rG   r   r   r   r   r   !   s   


r   c                   @   s(   e Zd Zdd Zedd Zdd ZdS )TestOLSRobust1c                 C   s(   | j }|j| _|j| _d| _tj| _d S NT)	r   HC1_ser   cov_HC1r   r<   resZresults_hc0r   r   res_olsr   r   r   setup_methodo   s
    zTestOLSRobust1.setup_methodc                 C   sv   t  j}dtt|d j }dtt|d j }ttj||d d d jf dd}t	||
 | _d S )Ni  ZrealgdpZrealinvZrealintr+   Fprepend)r   load_pandasdatar!   difflogvaluesr   Zc_r   fitr   )clsZd2Zg_gdpZg_invZexoggr   r   r   setup_classv   s    
 zTestOLSRobust1.setup_classc                 C   s$   | j jjdd}t| j j|j d S )Nqr)method)r   modelr]   r   HC0_se)r   r   r   r   r   test_qr_equiv   s    zTestOLSRobust1.test_qr_equivN)rH   rI   rJ   rU   classmethodr_   rd   r   r   r   r   rN   l   s   

rN   c                   @   s   e Zd Zdd ZdS )TestOLSRobust2c                 C   s(   | j }|j| _|j| _d| _tj| _d S rO   )	r   rP   r   rQ   r   r<   rR   results_ivhc0_smallr   rS   r   r   r   rU      s
    zTestOLSRobust2.setup_methodNrH   rI   rJ   rU   r   r   r   r   rf      s   rf   c                   @   s   e Zd Zdd ZdS )TestOLSRobust3c                 C   s(   | j }|j| _|j| _d| _tj| _d S )NF)	r   rc   r   cov_HC0r   r<   rR   results_ivhc0_larger   rS   r   r   r   rU      s
    zTestOLSRobust3.setup_methodNrh   r   r   r   r   ri      s   ri   c                   @   s   e Zd Zdd ZdS )TestOLSRobustHacSmallc                 C   s>   | j }tj|ddd}t|}|| _|| _d| _tj| _	d S )N   TZnlagsuse_correction)
r   swcov_hac_simplese_covr   r   r<   rR   results_ivhac4_smallr   r   rT   cov1se1r   r   r   rU      s    
z"TestOLSRobustHacSmall.setup_methodNrh   r   r   r   r   rl      s   rl   c                   @   s   e Zd Zdd ZdS )TestOLSRobustHacLargec                 C   s>   | j }tj|ddd}t|}|| _|| _d| _tj| _	d S )Nrm   Frn   )
r   rp   rq   rr   r   r   r<   rR   Zresults_ivhac4_larger   rt   r   r   r   rU      s    
z"TestOLSRobustHacLarge.setup_methodNrh   r   r   r   r   rw      s   rw   c                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	j
dd ZdS )CheckOLSRobustNewMixinc                 C   s4   t | dd}t| j| j|d t| j| j|d d S r   )r   r   r   cov_robust2r   bse_robust2r   r   r   r   r   test_compare   s    z#CheckOLSRobustNewMixin.test_comparec                 C   s`   t | ddsRt | dd}t| jj| jj|d t| jdr\t| jj| jj|d n
t	
dd S )Nr5   Fr   r   r   r4   z'TODO: document why this test is skipped)r   r   r   r@   r   rA   rB   Zf_pvaluer4   rK   skipr{   r   r   r   test_fvalue   s    z"CheckOLSRobustNewMixin.test_fvaluec                 C   s   t | dd}| j }| jjd d ddf }t|||d t|d d | jj	 }t|d d | jj	 }t||dd d S )	Nr   r   rm      r   r   r2      )
r   r   conf_intr   params_tabler   r!   rZ   Zravelr   )r   r   ci1ci2Zcrit1Zcrit2r   r   r   test_confint   s    
z#CheckOLSRobustNewMixin.test_confintc           	      C   s   | j }| j}t| dd}t| dd}tt|j}|j|| jd}t	|j
|j|d t	|j|j|d t	|j|j|d t	|j|jd| d | }| jjd d ddf }t	|||d d S )	Nr   r   r0   r    r   r1   rm   r   )r   r   r   r!   r"   r#   r   r$   r   r   r8   r9   r   r:   r;   r=   r>   r   r   )	r   r   r   r   r/   r'   r(   r   r   r   r   r   
test_ttest   s    z!CheckOLSRobustNewMixin.test_ttestc           	      C   s   | j }| j}d}d}t|dr6|j|j|j d  }nt|drL|jd }nd}t|jt	r`d}|stt
|j||d |jd	kst|d
r|jn|j}t
|j||t|d |j|j d }t|j| |jd  }t
||dd d S )Ngh㈵>Frssr   rmser2   Tr   z
Newey-Westr2)r   err_msgvIh%<=)r   r   rB   r   NrE   r   
isinstancerb   r	   r   scaleZvcetyper   Zr2cZrsquaredstrrD   Zdf_modelr   rC   Zresid_pearsonsum)	r   r   r   r   r}   r   r   rC   Zpsumr   r   r   
test_scale   s(    


z!CheckOLSRobustNewMixin.test_scalec                 C   s   | j   d S N)r   r%   r   r   r   r   test_summary  s    z#CheckOLSRobustNewMixin.test_summaryN)rH   rI   rJ   r|   r~   r   r   r   rK   rL   rM   r   r   r   r   r   rx      s   
"rx   c                   @   s   e Zd Zdd Zdd ZdS )TestOLSRobust2SmallNewc                 C   sR   | j jddd}| j | _|| _ |j| _| | _|j| _|j	| _
d| _tj| _d S )NHC1Tuse_t)r   get_robustcov_resultsres3r   r   
cov_paramsr   rP   rz   rQ   ry   r<   rR   rg   r   rS   r   r   r   rU     s    
z#TestOLSRobust2SmallNew.setup_methodc              	   C   s   | j }|jj}|jjd d ddgf }t|| }d}d}d}tt|j| dd l	}|
   |d ||\}	}
}W 5 Q R X t|	|dd t|
|dd t|| tt|j| d S )	Nr   r2   g!w?g H@r   ignoregdy=r   )r   rb   endogexogr   r]   r   r
   Zcompare_lr_testwarningscatch_warningssimplefilterr   r   Zcompare_f_test)r   r   r   r   Zres_ols2Zr_pvalZr_chi2Zr_dfr   Zchi2rF   Zdfr   r   r   r|     s     


z#TestOLSRobust2SmallNew.test_compareN)rH   rI   rJ   rU   r|   r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )TestOLSRobustHACSmallNewc                 C   sl   | j jddddd}| j | _|| _ |j| _| | _tj|ddd}t	|}|| _
|| _d| _tj| _d S )NHACrm   T)maxlagsro   r   rn   )r   r   r   r   r   r   r   rp   rq   rr   rz   ry   r<   rR   rs   r   rt   r   r   r   rU   :  s        

z%TestOLSRobustHACSmallNew.setup_methodNrh   r   r   r   r   r   7  s   r   c                       sL   e Zd Zdd Zejjdd fddZejjdd fddZ  Z	S )	TestOLSRobust2LargeNewc                 C   sT   | j d}d|_| j | _|| _ |j| _| | _|j| _	|j
| _d| _tj| _d S )NHC0F)r   r   r   r   r   r   r   r   rc   rz   rj   ry   r<   rR   rk   r   rS   r   r   r   rU   M  s    
z#TestOLSRobust2LargeNew.setup_methodznot refactored yet for `large`reasonc                    s   t t|   d S r   )superr   r~   r   	__class__r   r   r~   Y  s    z"TestOLSRobust2LargeNew.test_fvaluec                    s   t t|   d S r   )r   r   r   r   r   r   r   r   ]  s    z#TestOLSRobust2LargeNew.test_confint)
rH   rI   rJ   rU   rK   rL   r}   r~   r   __classcell__r   r   r   r   r   J  s
   r   c                   @   s   e Zd Zedd ZdS )CheckOLSRobustClusterc           	      C   s   ddl m} |j }|jd d }|jd d }t|ddg dd}t|| | _	t
jt
|dg d	d
d\}}|| _t
j|dg dd}|| 8 }t
|t| _dd tdD | _d S )Nr   grunfeld   valuecapitalFrV   firmS20TZreturn_inverseyearWrequirementsc                 S   s    g | ]}|d  d |d  fqS    r   r   .0ir   r   r   
<listcomp>  s     z5CheckOLSRobustCluster.setup_class.<locals>.<listcomp>
   )statsmodels.datasetsr   rY   rX   r   r   r   r   r]   r   r!   uniqueasarraygroupsrequireminsqueezeastypeinttimerangetidx	r^   r   dtapadtapa_endog
dtapa_exogr   
firm_namesfirm_idr   r   r   r   r_   j  s    
 
z!CheckOLSRobustCluster.setup_classNrH   rI   rJ   re   r_   r   r   r   r   r   g  s   r   c                   @   s   e Zd Zdd ZdS )TestOLSRobustCluster2c                 C   s~   | j jd| jddd}| j | _|| _ |j| _| | _tj	| j | jdd}t
|}|| _|| _d| _tj| _d| _d| _d S NclusterTr   ro   r   ro   ư>r   )r   r   r   r   r   r   r   r   rp   cov_clusterrr   rz   ry   r<   r   results_clusterr   r/   rt   r   r   r   rU     s$       

z"TestOLSRobustCluster2.setup_methodNrh   r   r   r   r   r     s   r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestOLSRobustCluster2Inputc                 C   s   dd l }| jdd}||}| jjd|ddd}| j| _|| _|j| _|	 | _
tj| j| jdd}t|}|| _|| _d| _tj| _d| _d	| _d S )
Nr   r+   r   r   Tr   r   r   r   )pandasr   reshape	DataFramer   r   r   r   r   r   r   rp   r   rr   rz   ry   r<   r   r   r   r/   )r   pdZ	fat_arrayZ
fat_groupsrT   ru   rv   r   r   r   rU     s*    
   

z'TestOLSRobustCluster2Input.setup_methodc                 C   s:   | j dd}t|||f}tt| jjd|ddd d S )Nr+   r   r   Tr   )r   r   r!   hstackr   
ValueErrorr   r   )r   long_groupsZgroups3r   r   r   test_too_many_groups  s    z/TestOLSRobustCluster2Input.test_too_many_groupsc                 C   sB   dd l }| jdd}|t||f}| jjd|ddd}d S )Nr   r+   r   r   Tr   )r   r   r   r   r!   r   r   r   )r   r   r   Zgroups2rR   r   r   r   test_2way_dataframe  s       z.TestOLSRobustCluster2Input.test_2way_dataframeN)rH   rI   rJ   rU   r   r   r   r   r   r   r     s   r   c                   @   s   e Zd Zdd Zdd ZdS )TestOLSRobustCluster2Fitc                 C   s   | j jjdt| jdddd}| j | _|| _ |j| _| | _	t
j| j | jdd}t
|}|| _|| _d| _tj| _d| _d| _d S )Nr   Tr   cov_typecov_kwdsr   r   r   )r   rb   r]   dictr   r   r   r   r   r   rp   r   rr   rz   ry   r<   r   r   r   r/   rt   r   r   r   rU     s     

z%TestOLSRobustCluster2Fit.setup_methodc                 C   sv   | j }| j}d}t|j|jdd t|j|j|d t|j|j|dd |jd d ddf }t| |ddd d S )	NHz>g:0yE>r   g#B;r3   rm   r   gƠ>)r   r   r   r   r   r>   r   r   )r   r   r   r   cir   r   r   test_basic_inference  s    z-TestOLSRobustCluster2Fit.test_basic_inferenceN)rH   rI   rJ   rU   r   r   r   r   r   r     s   r   c                       s2   e Zd Zdd Zejjdd fddZ  ZS )TestOLSRobustCluster2Largec                 C   s   | j jd| jdddd}| j | _|| _ |j| _| | _tj	| j | jdd}t
|}|| _|| _d| _tj| _d| _d| _d| _d S Nr   FTr   ro   r   df_correctionr   r   r   )r   r   r   r   r   r   r   r   rp   r   rr   rz   ry   r<   r   results_cluster_larger5   r   r/   rt   r   r   r   rU     s(    

z'TestOLSRobustCluster2Large.setup_methodGH#1189 issuecomment-29141741r   c                    s   t t|   d S r   )r   r   r~   r   r   r   r   test_f_value	  s    z'TestOLSRobustCluster2Large.test_f_value)	rH   rI   rJ   rU   rK   rL   r}   r   r   r   r   r   r   r     s   r   c                       s2   e Zd Zdd Zejjdd fddZ  ZS )TestOLSRobustCluster2LargeFitc                 C   s   t | jjj| jjj}|jdt| jddddd}| j| _|| _|j	| _
| | _tj| j| jdd}t|}|| _|| _d| _tj| _d| _d| _d| _d S )	Nr   FTr   r   r   r   r   )r   r   rb   r   r   r]   r   r   r   r   r   r   r   rp   r   rr   rz   ry   r<   r   r   r5   r   r/   )r   rb   rT   ru   rv   r   r   r   rU     s.    	

z*TestOLSRobustCluster2LargeFit.setup_methodr   r   c                    s   t t|   d S r   )r   r   r~   r   r   r   r   r~   .  s    z)TestOLSRobustCluster2LargeFit.test_fvalue)	rH   rI   rJ   rU   rK   rL   r}   r~   r   r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )TestOLSRobustClusterGSc                 C   s   | j jd| jdddd}| j | _|| _ |j| _| | _tj	| j d| jdd}t
|}|| _|| _d| _tj| _d| _d| _d| _d S )	Nnw-groupsumrm   FTr   r   ro   r   r   r   r   )r   r   r   r   r   r   r   r   rp   cov_nw_groupsumrr   rz   ry   r<   r   results_nw_groupsum4r5   r   r/   rt   r   r   r   rU   6  s2    
   
z#TestOLSRobustClusterGS.setup_methodNrh   r   r   r   r   r   3  s   r   c                   @   s   e Zd Zdd ZdS )TestOLSRobustClusterGSFitc                 C   s   | j jjdt| jddddd}| j | _|| _ |j| _| | _	t
j| j d| jdd}t
|}|| _|| _d| _tj| _d| _d| _d	| _d S )
Nr   rm   FTr   r   r   r   r   )r   rb   r]   r   r   r   r   r   r   r   rp   r   rr   rz   ry   r<   r   r   r5   r   r/   rt   r   r   r   rU   S  s6       
   
z&TestOLSRobustClusterGSFit.setup_methodNrh   r   r   r   r   r   P  s   r   c                   @   s   e Zd Zdd Zdd ZdS )TestOLSRobustClusterNWPc                 C   s   | j jd| jddddd}| j | _|| _ |j| _| | _t	| j d| j
}t|}|| _|| _d| _tj| _d| _d| _d| _d S )	Nnw-panelrm   hacTFr   r   ro   r   r   r   r   )r   r   r   r   r   r   r   r   rp   cov_nw_panelr   rr   rz   ry   r<   r   results_nw_panel4r5   r   r/   rt   r   r   r   rU   o  s*    

z$TestOLSRobustClusterNWP.setup_methodc                 C   s2   | j jd| jddddd}t|j| j jdd d S )	Nz	hac-panelrm   r   TFr   r0   r   )r   r   r   r   r   rS   r   r   r   test_keyword  s    z$TestOLSRobustClusterNWP.test_keywordN)rH   rI   rJ   rU   r  r   r   r   r   r   l  s   r   c                   @   s   e Zd Zdd ZdS ) TestOLSRobustClusterNWPGroupsFitc              	   C   s   | j jjdt| jdddddd}| j | _|| _ |j| _| | _	t
| j d| j}t
|}|| _|| _d| _tj| _d| _d| _d	| _d S )
Nr   rm   r   TF)r   r   ro   r   r   r   r   r   )r   rb   r]   r   r   r   r   r   r   r   rp   r   r   rr   rz   ry   r<   r   r  r5   r   r/   rt   r   r   r   rU     s.    


z-TestOLSRobustClusterNWPGroupsFit.setup_methodNrh   r   r   r   r   r    s   r  c                   @   s   e Zd Zdd ZdS )TestOLSRobustCluster2Gc                 C   s   | j jd| j| jfddd}| j | _|| _ |j| _| | _t	j
| j | j| jddd }t	|}|| _|| _d| _tj| _d| _d| _d S )Nr   Tr   Zgroup2ro   r   gffffff?r   )r   r   r   r   r   r   r   r   r   rp   cov_cluster_2groupsrr   rz   ry   r<   r   Zresults_cluster_2groups_smallr   r/   rt   r   r   r   rU     s4    

   
z#TestOLSRobustCluster2G.setup_methodNrh   r   r   r   r   r    s   r  c                   @   s   e Zd Zdd ZdS )TestOLSRobustCluster2GLargec                 C   s   | j jd| j| jfddd}| j | _|| _ |j| _| | _t	j
| j | j| jddd }t	|}|| _|| _d| _tj| _d| _d| _d| _d S )	Nr   Fr   r  r   Tr   r   )r   r   r   r   r   r   r   r   r   rp   r  rr   rz   ry   r<   r   Zresults_cluster_2groups_larger5   r   r/   rt   r   r   r   rU     s4    

   
z(TestOLSRobustCluster2GLarge.setup_methodNrh   r   r   r   r   r    s   r  c                   @   s   e Zd Zedd ZdS )CheckWLSRobustClusterc           	      C   s   ddl m} |j }|jd d }|jd d }t|ddg dd}t||d|d  d	 | _	t
jt
|d
g ddd\}}|| _t
j|dg dd}|| 8 }t
|t| _dd tdD | _d S )Nr   r   r   r   r   FrV   r   weightsr   r   Tr   r   r   r   c                 S   s    g | ]}|d  d |d  fqS r   r   r   r   r   r   r     s     z5CheckWLSRobustCluster.setup_class.<locals>.<listcomp>r   )r   r   rY   rX   r   r   r   r	   r]   r   r!   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r_     s&    
  
 
z!CheckWLSRobustCluster.setup_classNr   r   r   r   r   r    s   r  c                   @   s   e Zd Zdd ZdS )TestWLSRobustCluster2c                 C   s~   | j jd| jddd}| j | _|| _ |j| _| | _tj	| j | jdd}t
|}|| _|| _d| _tj| _d| _d| _d S r   )r   r   r   r   r   r   r   r   rp   r   rr   rz   ry   r<   r   Zresults_cluster_wls_smallr   r/   rt   r   r   r   rU     s$       

z"TestWLSRobustCluster2.setup_methodNrh   r   r   r   r   r    s   r  c                   @   s   e Zd Zdd ZdS )TestWLSRobustCluster2Largec                 C   s   | j jd| jdddd}| j | _|| _ |j| _| | _tj	| j | jdd}t
|}|| _|| _d| _tj| _d| _d| _d| _d S r   )r   r   r   r   r   r   r   r   rp   r   rr   rz   ry   r<   r   Zresults_cluster_wls_larger5   r   r/   rt   r   r   r   rU   0  s(    

z'TestWLSRobustCluster2Large.setup_methodNrh   r   r   r   r   r  +  s   r  c                   @   s   e Zd Zdd ZdS )TestWLSRobustSmallc                 C   sp   | j jddd}| j | _|| _ |j| _| | _|j}t	|}|| _
|| _d| _tj| _d| _d| _d| _d S )Nr   Tr   r   r   )r   r   r   r   r   r   r   rQ   rp   rr   rz   ry   r<   r   Zresults_hc1_wls_smallr5   r   r/   rt   r   r   r   rU   K  s    

zTestWLSRobustSmall.setup_methodNrh   r   r   r   r   r  H  s   r  c                   @   s(   e Zd Zedd Zdd Zdd ZdS )TestWLSOLSRobustSmallc                 C   s  ddl m} |j }|jd d }|jd d }t|ddg dd}t||d|d  d	 | _	dt
t
|d  }t|| t
||d d d f   | _t
|d
g d}t
j|dd\}}	|	| _t
j|dg dd}
|
|
 8 }
t
|
t| _dd tdD | _d S )Nr   r   r   r   r   FrV   r   r	  r   r   Tr   r   r   r   c                 S   s    g | ]}|d  d |d  fqS r   r   r   r   r   r   r   z  s     z5TestWLSOLSRobustSmall.setup_class.<locals>.<listcomp>r   )r   r   rY   rX   r   r   r   r	   r]   res_wlsr!   sqrtr   r   rT   r   r   r   r   r   r   r   r   r   r   )r^   r   r   r   r   r   Zw_sqrtidsr   r   r   r   r   r   r_   `  s,    
  
 
z!TestWLSOLSRobustSmall.setup_classc           	      C   s   dt ddfdt ddfdt ddfdt ddfg}|D ]\}}| jj|f|}| jj|f|}t|j|jdd t| | dd t|j|jdd t|j|jdd t	
t|j}||}||}t|j|jd	d t|j|jd
d q8d S )Nr   Tr   r   HC2HC3r   r   r0   g|=)r   rT   r   r  r   r   r   r   r>   r!   r"   r#   r,   r@   r=   )	r   Zall_covr   kwdsr   r   r'   Zft1Zft2r   r   r   test_all|  s"    

zTestWLSOLSRobustSmall.test_allc           	      C   sn  d}i }| j j|f|}| jj|f|}t|j|jdd t| | dd t|j|jdd t|j|jdd |jt	
t|j|jd}t| |jdd t|j|jdd t|j|jdd t|j|jdd | jj}t|j|j|jd}|j||d}|jt	
t|j|jd}t| |jdd t|j|jdd t|j|jdd t|j|jdd d S )NZfixed_scaler   r   r0   r    r	  r   )rT   r   r  r   r   r   r   r>   r$   r!   r"   r#   Znormalized_cov_paramsr9   r=   r;   r:   rb   r	   r   r   r
  r]   )	r   r   r  r   r   r(   modZmod3r   r   r   r   test_fixed_scale  sF          z&TestWLSOLSRobustSmall.test_fixed_scaleN)rH   rI   rJ   re   r_   r  r  r   r   r   r   r  _  s   
r  c                  C   s>  t ddddddg} t dddddd	g}t ddddddg}t | t t| f} d
|d  }t|| |d }t|jddgdd t|| |d }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}t|jddgdd d S )Nr   r   r2      rm   r1         r   r6   r	  gN"q?g~uM/N?gMbP?r   zfixed scale)r   gO=N?g5=`6?g      "@g[u|?g-/i@r   	   r   )	r!   arrayZcolumn_stackonesr#   r	   r]   r   r   )ZxdataZydatasigmar
  rR   r   r   r   test_cov_type_fixed_scale  s$     r  cov_infoZ	nonrobustr   r   r  r  r   r   r  r   r        c           
      C   st   | \}}t jd}|d}t d}|| |d }t||}|j||d}|j||dd}	t|j|	j d S )Nij )r!  r  r  r!  r   r`   )r   r   ra   )	r!   randomZRandomStateZstandard_normalr  r   r]   r   r   )
r   r   r   rsxbyr  Zpinv_fitZqr_fitr   r   r   rd     s    


rd   )<__doc__Znumpyr!   Znumpy.testingr   r   r   r   rK   Zscipyr   r   r   Z#statsmodels.regression.linear_modelr   r	   Z%statsmodels.stats.sandwich_covarianceZsandwich_covariancerp   Zstatsmodels.tools.sm_exceptionsr
   Zstatsmodels.tools.toolsr   resultsr   r   r   rR   r   rN   rf   ri   rl   rw   rx   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  rL   ZparametrizeZarangerd   r   r   r   r   <module>   s   KV&
 2"
 !
 %(
 !
 #
 U
