a
    \:bW                     @   st  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m  m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 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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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 d0d1 d1e'e#Z/G d2d3 d3e'e#Z0G d4d5 d5e'e#Z1G d6d7 d7e'e#Z2G d8d9 d9eZ3G d:d; d;e3e#Z4G d<d= d=e3e#Z5G d>d? d?e3e#Z6G d@dA dAeZ7dBdC Z8dS )DzrTesting OLS robust covariance matrices against STATA

Created on Mon Oct 28 15:25:14 2013

Author: Josef Perktold
    N)stats)assert_allcloseassert_equalassert_warnsassert_raises)OLSWLS)add_constant)	macrodata)InvalidTestWarning   )results_macro_ols_robust)#results_grunfeld_ols_robust_clusterc                   @   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   Jlib/python3.9/site-packages/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_frame/   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_summary7   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_tests?   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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   setupk   s
    zTestOLSRobust1.setupc                 C   sz   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Zprepend)r
   load_pandasdatar!   difflogvaluesr	   Zc_r   fitr   )clsZd2Zg_gdpZg_invZexoggrT   r   r   r   setup_classr   s
    
$zTestOLSRobust1.setup_classN)rH   rI   rJ   rU   classmethodr^   r   r   r   r   rN   h   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.setupNrH   rI   rJ   rU   r   r   r   r   r`   |   s   r`   c                   @   s   e Zd Zdd ZdS )TestOLSRobust3c                 C   s(   | j }|j| _|j| _d| _tj| _d S )NF)	r   HC0_ser   cov_HC0r   r<   rR   results_ivhc0_larger   rS   r   r   r   rU      s
    zTestOLSRobust3.setupNrb   r   r   r   r   rc      s   rc   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.setupNrb   r   r   r   r   rg      s   rg   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 )Nrh   Fri   )
r   rk   rl   rm   r   r   r<   rR   Zresults_ivhac4_larger   ro   r   r   r   rU      s    
zTestOLSRobustHacLarge.setupNrb   r   r   r   r   rr      s   rr   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   skiprv   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   rh      r   r   r2      )
r   r   conf_intr   params_tabler   r!   rY   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   rh   rz   )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   
isinstancemodelr   r   scaleZvcetyper   Zr2cZrsquaredstrrD   Zdf_modelr   rC   Zresid_pearsonsum)	r   r   r   r   rx   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   rw   ry   r   r   r   rK   rL   rM   r   r   r   r   r   rs      s   
#rs   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   ru   rQ   rt   r<   rR   ra   r   rS   r   r   r   rU     s    
zTestOLSRobust2SmallNew.setupc                 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 d    n1 s0    Y  t|	|dd t|
|dd t|| tt|j| d S )	Nr   r2   g!w?g H@r   ignoregdy=r   )r   r   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   rw     s     

.
z#TestOLSRobust2SmallNew.test_compareN)rH   rI   rJ   rU   rw   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 )NZHACrh   T)maxlagsrj   r   ri   )r   r   r   r   r   r   r   rk   rl   rm   ru   rt   r<   rR   rn   r   ro   r   r   r   rU   4  s    


zTestOLSRobustHACSmallNew.setupNrb   r   r   r   r   r   1  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   rd   ru   re   rt   r<   rR   rf   r   rS   r   r   r   rU   G  s    
zTestOLSRobust2LargeNew.setupznot refactored yet for `large`reasonc                    s   t t|   d S r   )superr   ry   r   	__class__r   r   ry   S  s    z"TestOLSRobust2LargeNew.test_fvaluec                    s   t t|   d S r   )r   r   r   r   r   r   r   r   W  s    z#TestOLSRobust2LargeNew.test_confint)
rH   rI   rJ   rU   rK   rL   rx   ry   r   __classcell__r   r   r   r   r   D  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
|dg }|| 8 }t
|t| _dd tdD | _d S )Nr   grunfeld   valuecapitalFrV   firmS20TZreturn_inverseyearc                 S   s    g | ]}|d  d |d  fqS    r   r   .0ir   r   r   
<listcomp>z      z5CheckOLSRobustCluster.setup_class.<locals>.<listcomp>
   )statsmodels.datasetsr   rX   rW   r   r   r	   r   r\   r   r!   uniqueasarraygroupsminsqueezeastypeinttimerangetidx	r]   r   dtapadtapa_endog
dtapa_exogr   
firm_namesfirm_idr   r   r   r   r^   e  s    

z!CheckOLSRobustCluster.setup_classNrH   rI   rJ   r_   r^   r   r   r   r   r   a  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   rj   r   rj   ư>r   )r   r   r   r   r   r   r   r   rk   cov_clusterrm   ru   rt   r<   r   results_clusterr   r/   ro   r   r   r   rU     s"    

zTestOLSRobustCluster2.setupNrb   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   rk   r   rm   ru   rt   r<   r   r   r   r/   )r   pdZ	fat_arrayZ
fat_groupsrT   rp   rq   r   r   r   rU     s(    


z TestOLSRobustCluster2Input.setupc                 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_typeZcov_kwdsr   r   r   )r   r   r\   dictr   r   r   r   r   r   rk   r   rm   ru   rt   r<   r   r   r   r/   ro   r   r   r   rU     s$    


zTestOLSRobustCluster2Fit.setupc                 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   rh   rz   gƠ>)r   r   r   r   r   r>   r}   r|   )r   r   r   r   Z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   rj   r   df_correctionr   r   r   )r   r   r   r   r   r   r   r   rk   r   rm   ru   rt   r<   r   results_cluster_larger5   r   r/   ro   r   r   r   rU     s&    

z TestOLSRobustCluster2Large.setupGH#1189 issuecomment-29141741r   c                    s   t t|   d S r   )r   r   ry   r   r   r   r   test_f_value  s    z'TestOLSRobustCluster2Large.test_f_value)	rH   rI   rJ   rU   rK   rL   rx   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   r   r   r   r\   r   r   r   r   r   r   r   rk   r   rm   ru   rt   r<   r   r   r5   r   r/   )r   r   rT   rp   rq   r   r   r   rU     s*    

z#TestOLSRobustCluster2LargeFit.setupr   r   c                    s   t t|   d S r   )r   r   ry   r   r   r   r   ry     s    z)TestOLSRobustCluster2LargeFit.test_fvalue)	rH   rI   rJ   rU   rK   rL   rx   ry   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-groupsumrh   FTr   r   rj   r   r   r   r   )r   r   r   r   r   r   r   r   rk   cov_nw_groupsumrm   ru   rt   r<   r   results_nw_groupsum4r5   r   r/   ro   r   r   r   rU     s&    

zTestOLSRobustClusterGS.setupNrb   r   r   r   r   r     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   rh   FTr   r   r   r   r   )r   r   r\   r   r   r   r   r   r   r   rk   r   rm   ru   rt   r<   r   r   r5   r   r/   ro   r   r   r   rU   7  s(    


zTestOLSRobustClusterGSFit.setupNrb   r   r   r   r   r   4  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-panelrh   hacTFr   r   rj   r   r   r   r   )r   r   r   r   r   r   r   r   rk   cov_nw_panelr   rm   ru   rt   r<   r   results_nw_panel4r5   r   r/   ro   r   r   r   rU   P  s(    

zTestOLSRobustClusterNWP.setupc                 C   s2   | j jd| jddddd}t|j| j jdd d S )	Nz	hac-panelrh   r   TFr   r0   r   )r   r   r   r   r   rS   r   r   r   test_keywordg  s    z$TestOLSRobustClusterNWP.test_keywordN)rH   rI   rJ   rU   r   r   r   r   r   r   M  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   rh   r   TF)r   r   rj   r   r   r   r   r   )r   r   r\   r   r   r   r   r   r   r   rk   r   r   rm   ru   rt   r<   r   r   r5   r   r/   ro   r   r   r   rU   u  s*    


z&TestOLSRobustClusterNWPGroupsFit.setupNrb   r   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group2rj   r   gffffff?r   )r   r   r   r   r   r   r   r   r   rk   cov_cluster_2groupsrm   ru   rt   r<   r   Zresults_cluster_2groups_smallr   r/   ro   r   r   r   rU     s*    


zTestOLSRobustCluster2G.setupNrb   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   rk   r   rm   ru   rt   r<   r   Zresults_cluster_2groups_larger5   r   r/   ro   r   r   r   rU     s,    


z!TestOLSRobustCluster2GLarge.setupNrb   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
|dg }|| 8 }t
|t| _dd tdD | _d S )Nr   r   r   r   r   FrV   r   weightsr   r   Tr   r   c                 S   s    g | ]}|d  d |d  fqS r   r   r   r   r   r   r     r   z5CheckWLSRobustCluster.setup_class.<locals>.<listcomp>r   )r   r   rX   rW   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   rk   r   rm   ru   rt   r<   r   Zresults_cluster_wls_smallr   r/   ro   r   r   r   rU     s"    

zTestWLSRobustCluster2.setupNrb   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   rk   r   rm   ru   rt   r<   r   Zresults_cluster_wls_larger5   r   r/   ro   r   r   r   rU     s&    

z TestWLSRobustCluster2Large.setupNrb   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   rk   rm   ru   rt   r<   r   Zresults_hc1_wls_smallr5   r   r/   ro   r   r   r   rU     s     

zTestWLSRobustSmall.setupNrb   r   r   r   r   r    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
|dg }
|
|
 8 }
t
|
t| _dd tdD | _d S )Nr   r   r   r   r   FrV   r   r   r   r   Tr   r   c                 S   s    g | ]}|d  d |d  fqS r   r   r   r   r   r   r   B  r   z5TestWLSOLSRobustSmall.setup_class.<locals>.<listcomp>r   )r   r   rX   rW   r   r   r	   r   r\   res_wlsr!   Zsqrtr   r   rT   r   r   r   r   r   r   r   r   r   )r]   r   r   r   r   r   Zw_sqrtZ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i |}| jj|fi |}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   ZHC2Z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_allE  s"    

zTestWLSOLSRobustSmall.test_allc           	      C   sv  d}i }| j j|fi |}| jj|fi |}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:   r   r   r   r   r   r\   )	r   r   r  r   r   r(   modZmod3r   r   r   r   test_fixed_scaleX  s:    z&TestWLSOLSRobustSmall.test_fixed_scaleN)rH   rI   rJ   r_   r^   r  r	  r   r   r   r   r  (  s   
r  c                  C   s&  t g d} t g d}t g d}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 )N)r   r   r2      rh   r1   )r   r   r1         r{   )r   r2   r   r2   r   r2   r6   r2   r   gN"q?g~uM/N?gMbP?r   zfixed scale)r   gO=N?g5=`6?g      "@g[u|?g-/i@r   	   r   )	r!   ZarrayZcolumn_stackZonesr#   r   r\   r   r   )ZxdataZydataZsigmar   rR   r   r   r   test_cov_type_fixed_scalew  s"    r  )9__doc__rK   Znumpyr!   Zscipyr   Znumpy.testingr   r   r   r   Z#statsmodels.regression.linear_modelr   r   Z%statsmodels.stats.sandwich_covarianceZsandwich_covariancerk   Zstatsmodels.tools.toolsr	   r   r
   Zstatsmodels.tools.sm_exceptionsr   Zresultsr   rR   r   r   objectr   rN   r`   rc   rg   rr   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r   r   r   <module>   sN   LY&'#%O