
    M/Phgi                     8   d Z ddlZddlZddlZddlZddlmc 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 ddlmc mZ ddlmZ dd	lmZmZmZ ddlm c m!Z" d
dl#m$Z% ej&        '                    ej&        (                    e)                    Z*ej&        +                    e*dd          Z, ej-        e,d          Z.e./                                Z0e0d         Z1e0d2                                         Z3 ee3d          Z4 ej5        e0d         e6          Z7 ej5        e0d                   Z8 G d d          Z9 G d de9          Z: G d de9          Z; G d de9          Z< G d de9          Z= G d d e9          Z> G d! d"e9          Z? G d# d$e9          Z@ G d% d&e9          ZA G d' d(e9          ZB G d) d*e9          ZC G d+ d,e9          ZD G d- d.e9          ZE G d/ d0e9          ZF G d1 d2e9          ZG G d3 d4e9          ZH G d5 d6e9          ZI G d7 d8e9          ZJ G d9 d:e9          ZK G d; d<          ZL G d= d>eL          ZM G d? d@eL          ZN G dA dBeL          ZO G dC dDeL          ZP G dE dFeL          ZQ G dG dHeL          ZR G dI dJeL          ZS G dK dLeL          ZT G dM dNeL          ZU G dO dPeL          ZV G dQ dReL          ZW G dS dTeW          ZX G dU dVeL          ZY G dW dXeL          ZZ G dY dZeL          Z[dS )[z>

Created on Mon Dec 09 21:29:20 2013

Author: Josef Perktold
    N)GLM)families)links)OLSget_robustcov_results)add_constant)assert_allcloseassert_equalassert_   )results_count_robust_clusterresultsz	ships.csvF)	index_colaccidentzyr_con op_75_79)prependshipservicec                   T    e Zd Zd Zed             Zed	d            Zd Zd Zd Z	dS )
CheckCountRobustMixinc                    | j         }| j        }t          |j                  t          |j                  dz
  k    rQt	          j        t          |j                  t          j                  }d|d<   |j        |         }|j        |         }n|j        }|j        }t          |j	        j        |d           t          | j
        | j        z  |d           d S )Nr   F-C6?giUMu?)res1res2lenparamsnponesbool_bser
   _resultsbse_rob	corr_fact)selfr   r   maskres2_paramsres2_bses         l/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/discrete/tests/test_sandwich_cov.py
test_basicz CheckCountRobustMixin.test_basic1   s    yyt{DK 0 01 45573t{++RX66DDH+d+Kx~HH+KxH,k4@@@t~5xFFFFF    c                     | j         }t          j        |t                    }t          j        |          | _        |                     |          | _        d S N)r   swcov_clustergroupse_covr#   get_correction_factorr$   )clsr   cov_clus      r)   get_robust_cluz$CheckCountRobustMixin.get_robust_cluC   sD    x.u--i((11$77r+   Tc                     |j         }|j        j        \  }}|rt          |j                  }nd}|dz
  t          ||z
            z  }t          j        |          S )Nr         ?)modelexogshaper   r   floatr   sqrt)r3   r   sub_kparamsmodnobsk_varsk_paramsr$   s           r)   r2   z+CheckCountRobustMixin.get_correction_factorK   s`    mx~f 	 7>**HHHBY%x"8"88	wy!!!r+   c                     | j         }| j        }t          |j        j        |j        d           t          |j        j        |j        d           d S )Nr   )r   r   r
   r"   llfllllnullll_0)r%   r   r   s      r)   test_othzCheckCountRobustMixin.test_oth\   sH    yy)47D999,di>>>>>r+   c                 8    t          j        | j                   d S r-   )smtcheck_ttest_tvaluesr   r%   s    r)   
test_ttestz CheckCountRobustMixin.test_ttestc       	*****r+   c                 8    t          j        | j                   d S r-   )rI   check_ftest_pvaluesr   rK   s    r)   test_waldtestz#CheckCountRobustMixin.test_waldtestg   rM   r+   N)T)
__name__
__module____qualname__r*   classmethodr5   r2   rG   rL   rP    r+   r)   r   r   .   s        G G G$ 8 8 [8 " " " [" ? ? ?+ + ++ + + + +r+   r   c                   $    e Zd Zed             ZdS )TestPoissonCluc                     t           j        | _        t          j        t
          t                    }|                    d          | _        | 	                                 d S )NFdisp)

results_stresults_poisson_clur   smdPoissonendogr9   fitr   r5   r3   r>   s     r)   setup_classzTestPoissonClu.setup_classm   sJ    1k%&&777&&r+   NrQ   rR   rS   rT   rb   rU   r+   r)   rW   rW   k   -          [  r+   rW   c                   $    e Zd Zed             ZdS )TestPoissonCluGenericc           	         t           j        | _        t          j        t
          t                    }|                    d          x| _        }d}|r| j        j	        
                                | _        |                    d          x| _        }|                                  | j        | _        | j        
                                | _        |                    d          x| _        }ddlm}  || j        j        dt&          dddd           | j        j	        | _        |                     | j                  | _        d S )NFrY   r   r   clusterTgroupsuse_correctiondf_correctionuse_tuse_self)r[   r\   r   r]   r^   r_   r9   r`   r   r!   copybse_nonrobustr5   res3r#   bse_rob3statsmodels.base.covtyper   r"   r0   r2   r$   )r3   r>   r   debugr   s        r)   rb   z!TestPoissonCluGeneric.setup_classw   s2   1k%&&''u'---4 	2 # 1 1 3 3C!gg5g111CHt   xCH;++--CL!gg5g111CHtBBBBBB 	ch/9>AE@D8=;?	A 	A 	A 	A hl11#(;;r+   Nrc   rU   r+   r)   rf   rf   u   s-        < < [< < <r+   rf   c                   $    e Zd Zed             ZdS )TestPoissonHC1Genericc                 <   t           j        | _        t          j        t
          t                    }|                    d          | _        ddl	m
}  || j        j        dd           | j        j        | _        |                     | j        d          | _        d S )	NFrY   r   r   HC1Trn   r=   )r[   results_poisson_hc1r   r]   r^   r_   r9   r`   r   rs   r   r"   r!   r#   r2   r$   )r3   r>   r   s      r)   rb   z!TestPoissonHC1Generic.setup_class   s    1k%&&777&&BBBBBB 	ch/FFFFhl11#(1NNr+   Nrc   rU   r+   r)   rv   rv      s2        O O [O O Or+   rv   c                   *    e Zd Zed             Zd ZdS )TestPoissonCluFitc           
      t   t           j        | _        t          j        t
          t                    }|j        j        \  }}|dz
  t          ||z
            z  }|	                    ddt          t          dd|z  d          d          | _        d | j        j        _        | j        j        | _        d| _        d S )Nr7   Frh   T)rj   rk   scaling_factorrl   rZ   cov_typecov_kwdsrm   r   )r[   r\   r   r]   r^   r_   r9   r:   r;   r`   dictr0   r   r"   normalized_cov_paramsr!   r#   r$   )r3   r>   r?   rA   sc_facts        r)   rb   zTestPoissonCluFit.setup_class   s     1k%&& h 7eD8O44477	$(8<8:W7;%= %= %= "'    37/hl r+   c                 z   | j         }| j        }d}t          |j        |j        d           t          |j        |j        |           t          |j        |j        |d           t          |j        |j        |d           |j        d d ddf         }t          |                                |dd           d S )	NHz>g:0yE>rtol)r   atolg#B;      Ơ>)	r   r   r
   r   r!   tvaluespvaluesparams_tableconf_int)r%   r   r   r   cis        r)   test_basic_inferencez&TestPoissonCluFit.test_basic_inference   s    yyT[t<<<<$(6666dlDIIIIdlEJJJJqqq!A#v&$UCCCCCCr+   N)rQ   rR   rS   rT   rb   r   rU   r+   r)   r}   r}      sB          [@	D 	D 	D 	D 	Dr+   r}   c                   $    e Zd Zed             ZdS )TestPoissonHC1Fitc                    t           j        | _        t          j        t
          t                    }|                    dd          | _        | j        j	        | _
        |                     | j        d          | _        d S )NFrx   rZ   r   rz   )r[   r{   r   r]   r^   r_   r9   r`   r   r!   r#   r2   r$   ra   s     r)   rb   zTestPoissonHC1Fit.setup_class   s_    1k%&&77766hl11#(1NNr+   Nrc   rU   r+   r)   r   r      2        O O [O O Or+   r   c                   $    e Zd Zed             ZdS )TestPoissonHC1FitExposurec                    t           j        | _        t          j        t
          t          t                    }|                    dd          | _	        | j	        j
        | _        |                     | j	        d          | _        d S )NexposureFrx   r   rz   )r[   results_poisson_exposure_hc1r   r]   r^   r_   r9   r   r`   r   r!   r#   r2   r$   ra   s     r)   rb   z%TestPoissonHC1FitExposure.setup_class   sd    :k%99977766hl11#(1NNr+   Nrc   rU   r+   r)   r   r      r   r+   r   c                   $    e Zd Zed             ZdS )TestPoissonCluExposurec                     t           j        | _        t          j        t
          t          t                    }|                    d          | _	        | 
                                 d S Nr   FrY   )r[   results_poisson_exposure_clur   r]   r^   r_   r9   r   r`   r   r5   ra   s     r)   rb   z"TestPoissonCluExposure.setup_class   sO    :k%999777&&r+   Nrc   rU   r+   r)   r   r      rd   r+   r   c                   $    e Zd Zed             ZdS )TestPoissonCluExposureGenericc           	      \   t           j        | _        t          j        t
          t          t                    }|                    d          x| _	        }ddl
m}  || j	        j        dt          dddd           | j	        j        | _        |                     | j	                  | _        d S )	Nr   FrY   r   r   rh   Tri   )r[   r   r   r]   r^   r_   r9   r   r`   r   rs   r   r"   r0   r!   r#   r2   r$   )r3   r>   r   r   s       r)   rb   z)TestPoissonCluExposureGeneric.setup_class   s    :k%999''u'---4BBBBBB 	ch/9>AE@D8=;?	A 	A 	A 	A hl11#(;;r+   Nrc   rU   r+   r)   r   r      s-        < < [< < <r+   r   c                   $    e Zd Zed             ZdS )TestGLMPoissonCluc                    t           j        | _        t          j        t
          t                    }t          t
          t          t          j                              }|	                                | _
        |                                  d S )Nfamily)r[   r\   r   r]   r^   r_   r9   r   r   r`   r   r5   ra   s     r)   rb   zTestGLMPoissonClu.setup_class  sa    1k%&&%h&6&8&89997799r+   Nrc   rU   r+   r)   r   r     s-          [  r+   r   c                   $    e Zd Zed             ZdS )TestGLMPoissonCluGenericc           	      b   t           j        | _        t          t          t
          t          j                              }|                                x| _	        }t          | j	        j        dt          dddd           | j	        j        | _        |                     | j	                  | _        d S )Nr   rh   TFri   )r[   r\   r   r   r_   r9   r   r^   r`   r   r   r"   r0   r!   r#   r2   r$   r3   r>   r   s      r)   rb   z$TestGLMPoissonCluGeneric.setup_class  s    1%h&6&8&8999''))#4ch/9>AE@D8=;?	A 	A 	A 	A hl11#(;;r+   Nrc   rU   r+   r)   r   r     -        < < [< < <r+   r   c                   $    e Zd Zed             ZdS )TestGLMPoissonHC1Genericc                 P   t           j        | _        t          t          t
          t          j                              }|                                | _	        t          | j	        j        dd           | j	        j        | _        |                     | j	        d          | _        d S )Nr   rx   Try   Frz   )r[   r{   r   r   r_   r9   r   r^   r`   r   r   r"   r!   r#   r2   r$   ra   s     r)   rb   z$TestGLMPoissonHC1Generic.setup_class0  s    1%h&6&8&89997799 	ch/FFFFhl11#(1NNr+   Nrc   rU   r+   r)   r   r   .  s2        	O 	O [	O 	O 	Or+   r   c                   $    e Zd Zed             ZdS )TestGLMPoissonCluFitc                 l   t           j        | _        t          t          t
          t          j                              }|                    dt          t          dd          d          x| _        }d | j        j        _        | j        j        | _        |                     | j                  | _        d S )Nr   rh   Trj   rk   rl   F)r   r   rm   )r[   r\   r   r   r_   r9   r   r^   r`   r   r0   r   r"   r   r!   r#   r2   r$   r   s      r)   rb   z TestGLMPoissonCluFit.setup_class@  s    1%h&6&8&8999''9+/u?C>B,D ,D ,D ).	 " $ $ 	$4 37/hl11#(;;r+   Nrc   rU   r+   r)   r   r   >  s-        < < [< < <r+   r   c                   $    e Zd Zed             ZdS )TestGLMPoissonHC1Fitc                    t           j        | _        t          t          t
          t          j                              }|                    d          | _	        | j	        j
        | _        |                     | j	        d          | _        d S )Nr   rx   r   Frz   )r[   r{   r   r   r_   r9   r   r^   r`   r   r!   r#   r2   r$   ra   s     r)   rb   z TestGLMPoissonHC1Fit.setup_classW  si    1%h&6&8&899977E7**hl11#(1NNr+   Nrc   rU   r+   r)   r   r   U  r   r+   r   c                   $    e Zd Zed             ZdS )TestNegbinCluc                     t           j        | _        t          j        t
          t                    }|                    dd          | _        | 	                                 d S )NFr   rZ   gtol)
r[   results_negbin_clur   r]   NegativeBinomialr_   r9   r`   r   r5   ra   s     r)   rb   zTestNegbinClu.setup_classd  sM    0"5$//77D711r+   Nrc   rU   r+   r)   r   r   b  rd   r+   r   c                   $    e Zd Zed             ZdS )TestNegbinCluExposurec                     t           j        | _        t          j        t
          t          t                    }|                    d          | _	        | 
                                 d S r   )r[   results_negbin_exposure_clur   r]   r   r_   r9   r   r`   r   r5   ra   s     r)   rb   z!TestNegbinCluExposure.setup_classn  sP    9"5$BBB777&&r+   Nrc   rU   r+   r)   r   r   l  rd   r+   r   c                   $    e Zd Zed             ZdS )TestNegbinCluGenericc           	      L   t           j        | _        t          j        t
          t                    }|                    dd          x| _        }t          | j        j
        dt          dddd           | j        j        | _        |                     | j                  | _        d S )NFr   r   rh   Tri   )r[   r   r   r]   r   r_   r9   r`   r   r   r"   r0   r!   r#   r2   r$   r   s      r)   rb   z TestNegbinCluGeneric.setup_class  s    0"5$//''u4'8884ch/9>AE@D8=;?	A 	A 	A 	A hl11#(;;r+   Nrc   rU   r+   r)   r   r     r   r+   r   c                   $    e Zd Zed             ZdS )TestNegbinCluFitc           	      2   t           j        | _        t          j        t
          t                    }|                    ddt          t          dd          dd          x| _
        }| j
        j        | _        |                     | j
                  | _        d S )NFrh   Tr   r   )rZ   r   r   rm   r   )r[   r   r   r]   r   r_   r9   r`   r   r0   r   r!   r#   r2   r$   r   s      r)   rb   zTestNegbinCluFit.setup_class  s    0"5$//''uy+/u?C>B,D ,D ,D ).'+ " - - 	-4 hl11#(;;r+   Nrc   rU   r+   r)   r   r     -        < < [< < <r+   r   c                   $    e Zd Zed             ZdS )TestNegbinCluExposureFitc           	      >   t           j        | _        t          j        t
          t          t                    }|                    ddt          t          dd          d          x| _        }| j        j        | _        |                     | j                  | _        d S )Nr   Frh   Tr   r   )r[   r   r   r]   r   r_   r9   r   r`   r   r0   r   r!   r#   r2   r$   r   s      r)   rb   z$TestNegbinCluExposureFit.setup_class  s    9"5$BBB''uy+/u?C>B,D ,D ,D ).	 " $ $ 	$4 hl11#(;;r+   Nrc   rU   r+   r)   r   r     r   r+   r   c                   &    e Zd Zd Zd Zd Zd ZdS )CheckDiscreteGLMc                    | j         }| j        }t          |j        | j                   t          |j        | j                   t	          |dd          }t          |j        |j        |           t          |j        |j        d           d S )Nr   vIh%<=r   绽|=)r   r   r   r   getattrr
   r   r!   )r%   r   r   r   s       r)   r*   zCheckDiscreteGLM.test_basic  s    yyT]DM222T]DM222tVU++T[t<<<<$(777777r+   c                 v   | j         }| j        }t          |j        t                    r
d|j        i}ni }t          |j        t                    rd}nd}|j                            |j        dz  |j                  } |j        j        |j        dz  fi |}t          ||d           |j        	                    |j        |j                  } |j        j	        |j        fi |}t          ||d           t          |j        t                    rd S |j        
                    |j        |j                  }	 |j        j
        |j        fi |}
t          |	|
d           |j                            |j        |j                  } |j        j        |j        fi |}t          ||z  |d           d S )	Nscaler   \(\?)r   r   r   r   )r   r   
isinstancer8   r   r   scorer   r
   hessianscore_factorhessian_factor)r%   r   r   kwdssgnscore1score2hess1hess2scoref1scoref2hessf1hessf2s                r)   test_score_hessianz#CheckDiscreteGLM.test_score_hessian  s   yy dj#&& 	TZ(DDDdj#&& 	CCC!!$+"4DJ!GG!!$+"4====U3333
""4;dj"AA"
"4;77$77u51111dj#&& 	F*))$+TZ)HH)$*)$+>>>>u5555**4;dj*II**4;??$??ff5999999r+   c                 r   | j         }| j        }t          |j        t                    rd S | j         j        }t          j        |dz  |dz  f          }|                    |d          }|                    |d          }t          t          j
        |          t          j
        |          d           d S )N      	nonrobustr   r   r   )r   r   r   r8   r   fittedvaluesr   column_stack
score_testr
   hstack)r%   r   r   fitted
exog_extrares_lm1res_lm2s          r)   test_score_testz CheckDiscreteGLM.test_score_test  s    yydj#&& 	F'_fai%;<<
//*{/CC//*{/CC	'**BIg,>,>TJJJJJJr+   c                 T   t          | j        j        t                    st	          | j        j        d          rt          j        d           | j                                        }| j                                        }t          |j
        |j
        d           t          |j        |j        d           | j                            dd          }| j                            dd          }t          |j
        |j
        d           t          |j        |j        d           d S )Noffsetznot available yetr   r   T)countdummy)r   r   r8   r   hasattrr   pytestskipget_margeffr
   margeff
margeff_se)r%   marg1marg2s      r)   test_margeffzCheckDiscreteGLM.test_margeff  s   ty,, 	-	22	-K+,,,	%%''	%%''u}5AAAA(%*:GGGG	%%D%==	%%D%==u}5AAAA(%*:GGGGGGr+   N)rQ   rR   rS   r*   r   r   r  rU   r+   r)   r   r     sY        	8 	8 	8 :  :  :DK K KH H H H Hr+   r   c                   $    e Zd Zed             ZdS )TestGLMPoissonc                    t           j                            d           t           j                            t                    }d| _        t          |t          t          j	                              }|
                    d          | _        t          j	        |t                    }|
                    d          | _        d| j        _        d S )NiW:HC0r   r   gdy=)r   randomseedpoissonr_   r   r   r9   r   r^   r`   r   r]   r   r   )r3   endog_countmod1s      r)   rb   zTestGLMPoisson.setup_class	  s    
	y!!!i''..;X-=-?-?@@@88U8++{;--88U8++r+   Nrc   rU   r+   r)   r  r    s-          [  r+   r  c                   $    e Zd Zed             ZdS )TestGLMLogitc                    t           t                                           k                        t                    }d| _        t          |t          t          j                              }|	                    dt          t                              | _        t          j        |t                    }|	                    dt          t                              | _        d S Nrh   r   rj   r   r   )r_   meanastypeintr   r   r9   r   Binomialr`   r   r0   r   r]   Logitr   r3   	endog_binr  s      r)   rb   zTestGLMLogit.setup_class  s    UZZ\\)11#66	 9d8+<+>+>???88YU9K9K9K8LLyD))88YU9K9K9K8LLr+   Nrc   rU   r+   r)   r  r    s2        M M [M M Mr+   r  c                   $    e Zd Zed             ZdS )TestGLMLogitOffsetc                    t           t                                           k                        t                    }d| _        t          j        |j        d                   }t          |t          t          j                    |          }|                    dt          t                              | _        t!          j        |t          |          }|                    dt          t                              | _        d S )Nrh   r   r   r   r  r  r   )r_   r  r  r  r   r   r   r:   r   r9   r   r  r`   r   r0   r   r]   r  r   r3   r  r   r  s       r)   rb   zTestGLMLogitOffset.setup_class(  s    UZZ\\)11#66	 +,,9d8+<+>+>vNNN88YU9K9K9K8LLyD88888YU9K9K9K8LLr+   Nrc   rU   r+   r)   r  r  &  s2        	M 	M [	M 	M 	Mr+   r  c                   *    e Zd Zed             Zd ZdS )TestGLMProbitc                    t           t                                           k                        t                    }d| _        t          |t          t          j        t          j
                                        }|                    ddt          t                              | _        t          j
        |t                    }|                    dt          t                              | _        d| _        d S )	Nrh   linkr   newtonr  methodr   r   r  ư>)r_   r  r  r  r   r   r9   r   r  r   Probitr`   r   r0   r   r]   r   r   r  s      r)   rb   zTestGLMProbit.setup_class6  s    UZZ\\)11#66	 9d8+<%,..+Q+Q+QRRR888%.U9K9K9K  M M z)T**88YU9K9K9K8LLr+   c                 n   | j         }| j        }|j                            |j        dz            }|j                            |j        dz            }t          ||d           |j                            |j                  }|j                            |j                  }t          ||d           d S )Nr   r   r   )r   r   r8   r   r   r
   r   )r%   r   r   r   r   r   r   s          r)   r   z TestGLMProbit.test_score_hessianC  s    yy!!$+"455!!$+"455U3333
""4;//
""4;//u5111111r+   N)rQ   rR   rS   rT   rb   r   rU   r+   r)   r"  r"  4  s<        
 
 [

2 
2 
2 
2 
2r+   r"  c                   $    e Zd Zed             ZdS )TestGLMProbitOffsetc                 B   t           t                                           k                        t                    }d| _        t          j        |j        d                   }t          |t          t          j        t          j                              |          }|                    ddt          t                               | _        t%          j        |t          |          }|                    dt          t                     	          | _        d
| _        d S )Nrh   r   r$  r  r&  r  r'  r  r  r)  )r_   r  r  r  r   r   r   r:   r   r9   r   r  r   r*  r`   r   r0   r   r]   r   r   r   s       r)   rb   zTestGLMProbitOffset.setup_classR  s    UZZ\\)11#66	 +,,9d"+@@@ " " " 888%.U9K9K9K  M M z)T&99988YU9K9K9K8LLr+   Nrc   rU   r+   r)   r-  r-  P  s-          [  r+   r-  c                   $    e Zd Zed             ZdS )TestGLMGaussNonRobustc                    d| _         t          t          t          t	          j                              }|                                | _        t          t          t                    }|                                | _	        d S )Nr   r   
r   r   r_   r9   r   Gaussianr`   r   r   r   r3   r  mod2s      r)   rb   z!TestGLMGaussNonRobust.setup_classe  sW    "5$x'8':':;;;88::5$88::r+   Nrc   rU   r+   r)   r0  r0  c  s-          [  r+   r0  c                   $    e Zd Zed             ZdS )TestGLMGaussCluc                 ^   d| _         t          t          t          t	          j                              }|                    dt          t                              | _	        t          t          t                    }|                    dt          t                              | _        d S r  )r   r   r_   r9   r   r3  r`   r   r0   r   r   r   r4  s      r)   rb   zTestGLMGaussClu.setup_classr  s}     5$x'8':':;;;88YU9K9K9K8LL5$88YU9K9K9K8LLr+   Nrc   rU   r+   r)   r7  r7  p  s2        M M [M M Mr+   r7  c                   $    e Zd Zed             ZdS )TestGLMGaussHCc                    d| _         t          t          t          t	          j                              }|                    d          | _        t          t          t                    }|                    d          | _	        d S )Nr  r   r   r2  r4  s      r)   rb   zTestGLMGaussHC.setup_class  sc    5$x'8':':;;;88U8++5$88U8++r+   Nrc   rU   r+   r)   r:  r:  }  s-        , , [, , ,r+   r:  c                   $    e Zd Zed             ZdS )TestGLMGaussHACc                    d| _         ddi}t          t          t          t	          j                              }|                    d|          | _        t          t          t                    }|                    d|          | _	        d S )NHACmaxlagsr   r   r  r2  r3   r   r  r5  s       r)   rb   zTestGLMGaussHAC.setup_class  sr     ]5$x'8':':;;;88UT8::5$88UT8::r+   Nrc   rU   r+   r)   r=  r=    s-        	; 	; [	; 	; 	;r+   r=  c                   $    e Zd Zed             ZdS )TestGLMGaussHAC2c                 $   d| _         ddd}t          t          t          t	          j                              }|                    d|          | _        t          t          t                    }ddi}|                    d|          | _	        d S )Nr?  bartlettr   kernelr@  r   r  r@  r2  r3   r   r  r5  kwds2s        r)   rb   zTestGLMGaussHAC2.setup_class  s      %335$x'8':':;;;88UT8::5$A88UU8;;r+   Nrc   rU   r+   r)   rC  rC    r   r+   rC  c                   *    e Zd Zed             Zd ZdS )TestGLMGaussHACUniformc                 l   d| _         t          j        dd}t          t          t
          t          j                              }|                    d|          | _	        t          t          t
                    }|                    d|          | _        |                    dddi          | _        d S )Nr?  r   rF  r   r  r@  )r   r.   weights_uniformr   r_   r9   r   r3  r`   r   r   r   rq   rA  s       r)   rb   z"TestGLMGaussHACUniform.setup_class  s     )Q775$x'8':':;;;88UT8::5$88UT8:: 88Ui]8CCr+   c                    t           j        dd}| j        j                            d|          }| j        j                            d|          }t          |j        | j        j        d           t          |j        | j        j        d           t          j	        g d          }t          |j        |d           t          |j        d	         t           j        u            t           j        dd
}| j        j                            d|          }| j        j                            d|          }t          |j        |j        d           t          j	        g d          }t          |j        |d           d S )Nr   )weights_funcr@  r?  r  -q=r   )g+O@gqh@g,{@&@r)  rO  rF  )gG@g[@go^b"@)r.   rM  r   r8   r`   r   r
   r!   r   arrayr   r   weights_bartlett)r%   kwdsares1ares2ar!   kwdsbs         r)   test_cov_optionsz'TestGLMGaussHACUniform.test_cov_options  sd    "$!3BB	##UU#CC	##UU#CC	49=u====	49=u==== hAAABB	3T2222~."2DDEEE.1==	##UU#CC	##UU#CC	5959999 h999::	3T222222r+   N)rQ   rR   rS   rT   rb   rW  rU   r+   r)   rK  rK    s?        D D [D3 3 3 3 3r+   rK  c                   $    e Zd Zed             ZdS )TestGLMGaussHACUniform2c                 :   d| _         t          j        dd}t          t          t
          t          j                              }|                    d|          | _	        t          t          t
                    }ddd}|                    d|          | _        d S )Nr?  r   rF  r   r  uniform)r   r.   rM  r   r_   r9   r   r3  r`   r   r   r   rH  s        r)   rb   z#TestGLMGaussHACUniform2.setup_class  s     *q995$x'8':':;;;88UT8:: 5$$3388UT8::r+   Nrc   rU   r+   r)   rY  rY    s-        ; ; [; ; ;r+   rY  c                   *    e Zd Zed             Zd ZdS )TestGLMGaussHACPanelc                 ,   d| _         t          j        t          j        d          d          d d         }t	          t
                                          t                                          t          j	                              }t          |dt          j        dd	          }|                    d|
          | _        |                    d|
          | _        t!          t
          t                    }|                    d|
          | _        d S )N	hac-panel      r   r   r   hacF)timer@  rG  rk   rl   r  znw-panel)r   r   tilearanger   r_   ro   r9   r   r3  r   r.   rM  r`   r   res1br   r   r3   rc  r  r   r5  s        r)   rb   z TestGLMGaussHACPanel.setup_class  s    "wry||Q'',5::<<X5F5H5HIII-#("'	) ) )
 88[48@@HHj4H@@	5$88[48@@r+   c                 R    t          | j        j        | j        j        d           d S NrP  r   r
   rf  r!   r   rK   s    r)   test_kwdzTestGLMGaussHACPanel.test_kwd  %    
	EBBBBBBr+   NrQ   rR   rS   rT   rb   rk  rU   r+   r)   r]  r]    sD        A A [A C C C C Cr+   r]  c                   $    e Zd Zed             ZdS )TestGLMGaussHACPanelGroupsc                    d| _         t          j        t          j        d          d          d d         }t	          t
                                          t                                          t          j	                              }t          t          j        |          dt          j        dd	          }|                    d|
          | _        t#          t
          t                    }|                    d|
          | _        d S )Nr_  ra  r`  r   r   r   rb  F)rj   r@  rG  rk   rl   r  )r   r   repeatre  r   r_   ro   r9   r   r3  r   pdSeriesr.   rM  r`   r   r   r   )r3   rj   r  r   r5  s        r)   rb   z&TestGLMGaussHACPanelGroups.setup_class  s    "29Q<<++CRC05::<<X5F5H5HIII29V,,-#("'	) ) )
 88[48@@5$88[48@@r+   Nrc   rU   r+   r)   ro  ro    s2        A A [A A Ar+   ro  c                   *    e Zd Zed             Zd ZdS )TestGLMGaussHACGroupsumc                    d| _         t          j        t          j        d          d          d d         }t	          t
          t          t          j                              }t          t          j        |          ddd	          }|                    d|
          | _        |                    d|
          | _        t          t
          t                    }|                    d|
          | _        d S )Nzhac-groupsumr`  ra  r   r   r   rb  F)rc  r@  rk   rl   r  znw-groupsum)r   r   rd  re  r   r_   r9   r   r3  r   rr  rs  r`   r   rf  r   r   rg  s        r)   rb   z#TestGLMGaussHACGroupsum.setup_class  s    %wry||Q'',5$x'8':':;;;4#("') ) ) 88^d8CCHHmdHCC	5$88^d8CCr+   c                 R    t          | j        j        | j        j        d           d S ri  rj  rK   s    r)   rk  z TestGLMGaussHACGroupsum.test_kwd$  rl  r+   Nrm  rU   r+   r)   ru  ru    sD        D D [DC C C C Cr+   ru  )\__doc__osnumpyr   pandasrr  r   #statsmodels.discrete.discrete_modeldiscretediscrete_modelr]   +statsmodels.genmod.generalized_linear_modelr   statsmodels.genmodr   statsmodels.genmod.familiesr   #statsmodels.regression.linear_modelr   rs   r   %statsmodels.stats.sandwich_covariancestatssandwich_covariancer.   statsmodels.tools.toolsr	   numpy.testingr
   r   r   statsmodels.tools._testingtools_testingrI   r   r   r[   pathdirnameabspath__file__cur_dirjoinfilepathread_csvdata_rawdropnadatar_   split	exog_datar9   asarrayr  r0   r   r   rW   rf   rv   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r"  r-  r0  r7  r:  r=  rC  rK  rY  r]  ro  ru  rU   r+   r)   <module>r     sJ    
			          1 1 1 1 1 1 1 1 1 ; ; ; ; ; ; ' ' ' ' ' ' - - - - - - 3 3 3 3 3 3 : : : : : : 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 A @ @ @ @ @ @ @ @ @ ( ( ( ( ( ( ( ( ( @ ? ? ? ? ?
'//"'//(33
4
47<<K882;x5111 	Z"((**+	|Iu---
4<%%2:d9o&&:+ :+ :+ :+ :+ :+ :+ :+z    *   < < < < <1 < < <@O O O O O1 O O O$,D ,D ,D ,D ,D- ,D ,D ,D^
O 
O 
O 
O 
O- 
O 
O 
O
O 
O 
O 
O 
O 5 
O 
O 
O    2   < < < < <$9 < < <,    -   < < < < <4 < < <&O O O O O4 O O O < < < < <0 < < <.
O 
O 
O 
O 
O0 
O 
O 
O    )       1   0< < < < <0 < < <&< < < < <, < < <"< < < < <4 < < <"KH KH KH KH KH KH KH KH\    %   "M M M M M# M M MM M M M M) M M M2 2 2 2 2$ 2 2 28    *   &
 
 
 
 
, 
 
 

M 
M 
M 
M 
M& 
M 
M 
M
, 
, 
, 
, 
,% 
, 
, 
,; ; ; ; ;& ; ; ;< < < < <' < < <"(3 (3 (3 (3 (3- (3 (3 (3X; ; ; ; ;4 ; ; ;"C C C C C+ C C C0A A A A A!1 A A A&C C C C C. C C C C Cr+   