U
    Ãmœdd  ã                   @   s|  d Z ddlZddlZddlZddlmZmZ ddlm	Z	m
Z
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  m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ƒ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ƒ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/d0„ d0e(ƒZ+G d1d2„ d2e(ƒZ,G d3d4„ d4e(ƒZ-G d5d6„ d6eƒZ.G d7d8„ d8e.ƒZ/G d9d:„ d:e.ƒZ0G d;d<„ d<e.ƒZ1G d=d>„ d>eƒZ2G d?d@„ d@e2ƒZ3G dAdB„ dBe2ƒZ4G dCdD„ dDe2ƒZ5G dEdF„ dFe2ƒZ6dS )GzL
Created on Sun May 10 12:39:33 2015

Author: Josef Perktold
License: BSD-3
é    N)Úassert_allcloseÚassert_equal)ÚPoissonÚLogitÚProbit)ÚGLM©Úfamily)ÚTheilGLS)ÚPenalizedMixinc                   @   s   e Zd ZdS )ÚPoissonPenalizedN©Ú__name__Ú
__module__Ú__qualname__© r   r   ú^/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/base/tests/test_penalized.pyr      s   r   c                   @   s   e Zd ZdS )ÚLogitPenalizedNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )ÚProbitPenalizedNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )ÚGLMPenalizedNr   r   r   r   r   r   "   s   r   c                   @   sT   e Zd Zedd„ ƒZedd„ ƒZdd„ Zejj	dd„ ƒZ
ejj	d	d
„ ƒZdd„ ZdS )ÚCheckPenalizedPoissonc                 C   sê   t j d¡ d\}}d}t j ||¡dt j |d¡d   d d }|d9 }d|d d …df< t  |¡}d	t  d|d ¡ |d |…< | |¡}|  |¡}|| _|| _	|| _
d
| _d| _td d d ƒ| _|| _d| _tjdd
d�| _|  ¡  d S )NiÙ )éô  é
   é   ç      à?é   é   g333333ó?r   g      ð?ç-Cëâ6?ç�íµ ÷Æ°>Fçš™™™™™¹?)Zc0)ÚnpÚrandomÚseedÚrandZzerosÚarangeÚdotÚ_generate_endogÚ	k_nonzeroÚxÚyÚrtolÚatolÚsliceÚ
exog_indexÚk_paramsÚskip_hessianÚsmpenZSCADSmoothedÚpenaltyÚ_initialize)ÚclsZnobsZk_varsr'   r(   ÚbetaÚlinpredr)   r   r   r   Úsetup_class(   s4    ÿÿÿ


z!CheckPenalizedPoisson.setup_classc                 C   s&   t  |¡}t j d¡ t j |¡}|S )Néç  )r    Úexpr!   r"   Zpoisson©r3   r5   Úmur)   r   r   r   r&   E   s    
z%CheckPenalizedPoisson._generate_endogc              	   C   s¶   | j }| j}t|jdk ¡ | jƒ t|j| j |j| j| j	d� t|j
| j |j
| j| j	d� t ¡ �0 t dt¡ t|j| j |j| j| j	d� W 5 Q R X t| ¡ | ¡ dd� d S )Nr   ©r*   r+   Úignoreçš™™™™™©?©r*   )Úres1Úres2r   ÚparamsÚsumr.   r   r-   r*   r+   ÚbseÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningÚpvaluesÚpredict©Úselfr?   r@   r   r   r   Útest_params_tableL   s"     ÿÿ
 ÿz'CheckPenalizedPoisson.test_params_tablec                 C   s   | j  ¡  d S ©N)r?   Úsummary©rK   r   r   r   Útest_summary[   s    z"CheckPenalizedPoisson.test_summaryc                 C   sD   | j  ¡ }t| ¡ tƒst‚t| ¡ tƒs.t‚t| ¡ tƒs@t‚d S rM   )r?   Zsummary2Ú
isinstanceZas_latexÚstrÚAssertionErrorZas_htmlZas_text)rK   Zsummr   r   r   Útest_summary2_   s    
z#CheckPenalizedPoisson.test_summary2c                 C   sÖ   | j }|jd }t|jtƒr$ddini }t|jj|f|Ž| j |jj|f|Ž| j dd� | j	sÒt| jt
ƒrx| j }}n| jd d …d f }| j}|jj|jf|Ž||f }|jj|jf|Ž||f }t||dd� d S )Nç\�Âõ(\ï?Úscaler   gš™™™™™™?r>   ç{®Gáz”?)r?   rA   rQ   Úmodelr   r   Úscorer-   Zscore_numdiffr/   r,   ZhessianZhessian_numdiff)rK   r?   ÚpÚkwdsZidx1Zidx2Zh1Zh2r   r   r   Útest_numdifff   s    
þz"CheckPenalizedPoisson.test_numdiffN)r   r   r   Úclassmethodr6   r&   rL   ÚpytestÚmarkZsmokerP   rT   r\   r   r   r   r   r   &   s   



r   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedPoissonNonePenalc                 C   sR   | j | j }}t||ƒ}|jdd�| _t||ƒ}d|_|jdddd�| _d| _d S ©Nr   ©ÚdispÚbfgséd   ©ÚmethodÚmaxiterrc   çñhãˆµøÔ>©	r)   r(   r   Úfitr@   r   Ú
pen_weightr?   r+   ©r3   r)   r(   ÚmodpÚmodr   r   r   r2   €   s    

z)TestPenalizedPoissonNonePenal._initializeN©r   r   r   r]   r2   r   r   r   r   r`   ~   s   r`   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedPoissonNoPenalc                 C   sR   | j | j }}t||ƒ}|jdd�| _t||ƒ}d|_|jdddd�| _d| _d S ra   rj   rm   r   r   r   r2   ‘   s    

z'TestPenalizedPoissonNoPenal._initializeNrp   r   r   r   r   rq   Ž   s   rq   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedGLMPoissonNoPenalc                 C   sb   | j | j }}t||t ¡ d�}| ¡ | _t||t ¡ | jd�}d|_	|jdddd�| _
d| _d S )Nr   ©r	   Úpenalr   rd   re   rf   ri   )r)   r(   r   r	   r   rk   r@   r   r1   rl   r?   r+   rm   r   r   r   r2   ¢   s    
z*TestPenalizedGLMPoissonNoPenal._initializeNrp   r   r   r   r   rr   Ÿ   s   rr   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedPoissonOraclec                 C   sŠ   | j | j }}t||d d …d | j…f ƒ}|jdd�| _t||| jd�}| jd9  _d|j	_
|jdddd�| _td | jd ƒ| _d	| _d S )
Nr   rb   ©rt   ç      ø?r=   rd   re   rf   ç{®Gázt?©r)   r(   r   r'   rk   r@   r   r1   rl   rt   Útaur?   r,   r-   r+   rm   r   r   r   r2   ±   s    z&TestPenalizedPoissonOracle._initializeNrp   r   r   r   r   ru   °   s   ru   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedGLMPoissonOraclec                 C   s’   | j | j }}t||d d …d | j…f t ¡ d�}| ¡ | _t||t ¡ | j	d�}| j
d9  _
d|j_|jddd�| _td | jd ƒ| _d| _d S )	Nr   rs   rw   r=   rd   re   )rg   rh   rx   ©r)   r(   r   r'   r	   r   rk   r@   r   r1   rl   rt   rz   r?   r,   r-   r+   rm   r   r   r   r2   Ä   s    $
z)TestPenalizedGLMPoissonOracle._initializeNrp   r   r   r   r   r{   Á   s   r{   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestPenalizedPoissonOracleHCc                 C   s–   | j | j }}d}t||d d …d | j…f ƒ}|j|dddd�| _t||| jd�}| jd9  _d|j	_
|j|dddd�| _td | jd ƒ| _d	| _d S )
NÚHC0rd   re   r   ©Úcov_typerg   rh   rc   rv   rw   r=   rx   ry   ©r3   r)   r(   r€   rn   ro   r   r   r   r2   Ö   s    
ÿ
ÿz(TestPenalizedPoissonOracleHC._initializec                 C   sÈ   | j }| j}t| j jdƒ dddd dœ}t| j j|ƒ t ddddg¡}t d	d
ddg¡}t|jd | j	… |dd� t|j
d | j	… |dd� t|jd | j	… || jd� t|j
d | j	… |dd� d S )Nr~   ú3Standard Errors are heteroscedasticity robust (HC0)F©ÚdescriptionZ	adjust_dfÚuse_tZscaling_factorçËi!+Pûî?çSœóÛ?çîÇ}.Õ?çÌÐþöÈ‹Ñ?çèÕ8�;Íœ?çXEg.{ò ?ç!	ë‘ý ?çÅˆ!ôy�¡?çñhãˆµøä>©r+   r   r>   rW   )r?   r@   r   r€   Úcov_kwdsr    Úarrayr   rA   r'   rC   r+   ©rK   r?   r@   r�   rA   rC   r   r   r   Útest_cov_typeè   s*      þ ÿ ÿz*TestPenalizedPoissonOracleHC.test_cov_typeN©r   r   r   r]   r2   r“   r   r   r   r   r}   Ô   s   
r}   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedGLMPoissonOracleHCc                 C   s¤   | j | j }}d}t||d d …d | j…f t ¡ d�}|j|dddd�| _t||t ¡ | j	d�}| j
d9  _
d	|j_|j|dddd�| _td | jd ƒ| _d
| _d S )Nr~   r   rd   re   r   r   rs   rw   r=   rx   r|   r�   r   r   r   r2   þ   s    $
ÿ
ÿz+TestPenalizedGLMPoissonOracleHC._initializeNrp   r   r   r   r   r•   ü   s   r•   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedPoissonGLMOracleHCc                 C   s¤   | j | j }}d}t||| jd�}| jd9  _d|j_|j|dddd�| _t	||t
 ¡ | jd	�}| jd9  _d|j_|j|dddd�| _td d d ƒ| _d
| _d S )Nr~   rv   rw   r=   rd   re   r   r   rs   r   )r)   r(   r   r1   rl   rt   rz   rk   r@   r   r	   r   r?   r,   r-   r+   r�   r   r   r   r2     s     
ÿ
ÿz+TestPenalizedPoissonGLMOracleHC._initializeNrp   r   r   r   r   r–     s   r–   c                   @   s   e Zd Zedd„ ƒZdS )Ú#TestPenalizedPoissonOraclePenalizedc                 C   s€   | j | j }}t||d d …d | j…f | jd�}|jdddd�| _t||| jd�}|jddddd�| _td | jd ƒ| _	d| _
d S ©	Nrv   rd   re   r   rf   F©rg   rh   Útrimrc   çü©ñÒMbP?)r)   r(   r   r'   r1   rk   r@   r?   r,   r-   r+   rm   r   r   r   r2   +  s    "z/TestPenalizedPoissonOraclePenalized._initializeNrp   r   r   r   r   r—   )  s   r—   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )Ú$TestPenalizedPoissonOraclePenalized2c                 C   sð   | j | j }}t||d d …d | j…f | jd�}| jd9  _d|j_t 	ddddg¡}|j
|d d	d
dd�| _t 	ddddddddddg
¡}t||| jd�}| jd9  _d|j_|j
|d d	d
ddd�| _td | jd ƒ| _d| _| j| _d S )Nrv   r   r=   çj¿s÷Rûî?çžëyóÛ?ç‰Á.Ps.Õ?ç�>#ð‹Ñ?r   rd   re   r   )Ústart_paramsrg   rh   rc   çeBCRûî?ç¹“…8¡óÛ?ç·Íþ‡.Õ?ç¦ÝRHÞ‹Ñ?ç‰:$¼¹Å¾ç`¥z¼çÜ´¾ç”?Lh>çîqsûŸµÄ¾çé‡˜·_}å¾ç;
cúclÒ¾T)r¡   rg   rh   rš   rc   ç:Œ0âŽyE>©r)   r(   r   r'   r1   rl   rt   rz   r    r‘   rk   r@   r?   r,   r-   r+   r.   )r3   r)   r(   rn   Úsp2Úparams_notrimro   r   r   r   r2   =  sB    " ÿ       ý
   ÿz0TestPenalizedPoissonOraclePenalized2._initializec                 C   s4   t | jj| jd … dƒ t | jj| jd … dƒ d S ©Nr   ©r   r?   rA   r'   rC   rO   r   r   r   Ú
test_zerosW  s    z/TestPenalizedPoissonOraclePenalized2.test_zerosN©r   r   r   r]   r2   r²   r   r   r   r   rœ   ;  s   
rœ   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )Ú&TestPenalizedPoissonOraclePenalized2HCc                 C   sø   | j | j }}d}t||d d …d | j…f | jd�}| jd9  _d|j_t 	ddddg¡}|j
|d	 |d
ddd�| _t 	ddddddddddg
¡}t||| jd�}| jd9  _d|j_|j
|d	 |d
dddd�| _td | jd ƒ| _d| _| j| _d S )Nr~   rv   r   r=   r�   rž   rŸ   r    r   rd   re   r   )r¡   r€   rg   rh   rc   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   T)r¡   r€   rg   rh   rš   rc   gê-�™—q=r­   )r3   r)   r(   r€   rn   r®   r¯   ro   r   r   r   r2   a  sF    "  ÿ       ý   ÿz2TestPenalizedPoissonOraclePenalized2HC._initializec                 C   sê   | j }| j}t| j jdƒ t| j jjdƒ dddd dœ}t| j j|ƒ t| j j| j jjƒ t ddddg¡}t d	d
ddg¡}t|j	d | j
… |dd� t|jd | j
… |dd� t|j	d | j
… |dd� t|jd | j
… |dd� d S )Nr~   r‚   Frƒ   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   ri   r>   )r?   r@   r   r€   Zresults_constrainedr�   r    r‘   r   rA   r'   rC   r’   r   r   r   r“   {  s.      þ ÿ ÿz4TestPenalizedPoissonOraclePenalized2HC.test_cov_typeNr”   r   r   r   r   r´   _  s   
r´   c                   @   s   e Zd Zedd„ ƒZdS )ÚCheckPenalizedLogitc                 C   sD   ddt  | | ¡  d ¡  }t j d¡ t j t|ƒ¡|k }|S )Nr   r   r7   )r    r8   Úmeanr!   r"   r#   Úlenr9   r   r   r   r&   –  s     z#CheckPenalizedLogit._generate_endogN©r   r   r   r]   r&   r   r   r   r   rµ   ”  s   rµ   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedLogitNoPenalc                 C   sT   | j | j }}t||ƒ}|jdd�| _t||| jd�}d|_|jdd�| _d| _	d S )Nr   rb   rv   r   )
r)   r(   r   rk   r@   r   r1   rl   r?   r+   rm   r   r   r   r2   ¡  s    
z%TestPenalizedLogitNoPenal._initializeNrp   r   r   r   r   r¹   ž  s   r¹   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedLogitOraclec                 C   sŠ   | j | j }}t||d d …d | j…f ƒ}|jdd�| _t||| jd�}| jd9  _d|j	_
|jdddd�| _td | jd ƒ| _d	| _d S )
Nr   rb   rv   r   r=   rd   re   rf   rx   )r)   r(   r   r'   rk   r@   r   r1   rl   rt   rz   r?   r,   r-   r+   rm   r   r   r   r2   ²  s    z$TestPenalizedLogitOracle._initializeNrp   r   r   r   r   rº   ¯  s   rº   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedGLMLogitOraclec                 C   s˜   | j | j }}t||d d …d | j…f t ¡ d�}|jdd�| _t||t ¡ | j	d�}| j
d9  _
d|j_|jdddd	�| _td | jd ƒ| _d
| _d S )Nr   r   rb   rs   r   r=   rd   re   rf   rx   )r)   r(   r   r'   r	   ÚBinomialrk   r@   r   r1   rl   rt   rz   r?   r,   r-   r+   rm   r   r   r   r2   Å  s    $z'TestPenalizedGLMLogitOracle._initializeNrp   r   r   r   r   r»   Â  s   r»   c                   @   s   e Zd Zedd„ ƒZdS )Ú!TestPenalizedLogitOraclePenalizedc                 C   s€   | j | j }}t||d d …d | j…f | jd�}|jdddd�| _t||| jd�}|jddddd�| _td | jd ƒ| _	d| _
d S r˜   )r)   r(   r   r'   r1   rk   r@   r?   r,   r-   r+   rm   r   r   r   r2   Ø  s    "z-TestPenalizedLogitOraclePenalized._initializeNrp   r   r   r   r   r½   Õ  s   r½   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )Ú"TestPenalizedLogitOraclePenalized2c                 C   s´   | j | j }}t||d d …d | j…f | jd�}| jd9  _d|j_|jdddd�| _	t||| jd�}| jd9  _d|j_|jddddd	�| _
td | jd ƒ| _d
| _| j| _d S )Nrv   r   r=   rd   re   r   rf   Tr™   r¬   )r)   r(   r   r'   r1   rl   rt   rz   rk   r@   r?   r,   r-   r+   r.   rm   r   r   r   r2   ê  s    "z.TestPenalizedLogitOraclePenalized2._initializec                 C   s4   t | jj| jd … dƒ t | jj| jd … dƒ d S r°   r±   rO   r   r   r   r²   ü  s    z-TestPenalizedLogitOraclePenalized2.test_zerosNr³   r   r   r   r   r¾   è  s   
r¾   c                   @   s   e Zd Zedd„ ƒZdS )ÚCheckPenalizedBinomCountc                 C   s|   ddt  | | ¡  d ¡  }t j d¡ dt  t|ƒt¡ }|d t|ƒd …  d7  < t j ||¡}t  	||| f¡S )Nr   r   r7   é   r   )
r    r8   r¶   r!   r"   Úonesr·   ÚintZbinomialZcolumn_stack)r3   r5   r:   Zn_trialsr)   r   r   r   r&     s     z(CheckPenalizedBinomCount._generate_endogNr¸   r   r   r   r   r¿     s   r¿   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )Ú!TestPenalizedGLMBinomCountNoPenalc                 C   s¤   | j | j }}|d d …d d…f }dt t|ƒ¡ }t||t ¡ |d�}|jddd�| _	t
||t ¡ || jd�}d|_|jdd	dd| j	jd
 d�| _d| _d| _d S )Nr   ç      Ð¿©r	   Úoffsetrd   re   )rg   Úmax_start_irls©r	   rÆ   rt   r   é   gÍÌÌÌÌÌì?)rg   rÇ   rh   rc   r¡   ç»½×Ùß|Û=)r)   r(   r    rÁ   r·   r   r	   r¼   rk   r@   r   r1   rl   rA   r?   r+   r.   )r3   r)   r(   rÆ   rn   ro   r   r   r   r2     s    ÿ
ÿz-TestPenalizedGLMBinomCountNoPenal._initializec                 C   sd   | j }| j}t|j |jd ¡|j |jd ¡dd� t|j |jd ¡|j |jd ¡dd� d S )NrU   rÊ   r>   )r?   r@   r   rX   rY   rA   Z	score_obsrJ   r   r   r   Ú
test_deriv%  s     ÿ ÿz,TestPenalizedGLMBinomCountNoPenal.test_derivN)r   r   r   r]   r2   rË   r   r   r   r   rÃ     s   
rÃ   c                   @   s   e Zd Zedd„ ƒZdS )Ú"TestPenalizedGLMBinomCountOracleHCc                 C   s¼   | j | j }}dt t|ƒ¡ }d}t||d d …d | j…f t ¡ |d�}|j	|dddd�| _
t||t ¡ || jd�}| jd	9  _d
|j_|j	|ddddd�| _td | jd ƒ| _d| _d S )NrÄ   r~   rÅ   Únewtonéè  r   r   rÈ   r   r=   rd   re   )r€   rg   rÇ   rh   rc   r›   )r)   r(   r    rÁ   r·   r   r'   r	   r¼   rk   r@   r   r1   rl   rt   rz   r?   r,   r-   r+   ©r3   r)   r(   rÆ   r€   rn   ro   r   r   r   r2   4  s(    ÿ
ÿÿ
 ÿz.TestPenalizedGLMBinomCountOracleHC._initializeNrp   r   r   r   r   rÌ   .  s   rÌ   c                   @   s   e Zd Zedd„ ƒZdS )Ú#TestPenalizedGLMBinomCountOracleHC2c                 C   sÆ   | j | j }}dt t|ƒ¡ }d}t||d d …d | j…f t ¡ |d�}|j	|dddd�| _
t||t ¡ || jd�}| jd	9  _d
|j_|j	|dddddd�| _td | jd ƒ| _d| _| j| _d S )NrÄ   r~   rÅ   rÍ   rÎ   r   r   rÈ   r   r=   rd   re   r›   )r€   rg   rÇ   rh   rc   rš   )r)   r(   r    rÁ   r·   r   r'   r	   r¼   rk   r@   r   r1   rl   rt   rz   r?   r,   r-   r+   r.   rÏ   r   r   r   r2   N  s,    ÿ
ÿÿ
  ÿz/TestPenalizedGLMBinomCountOracleHC2._initializeNrp   r   r   r   r   rÐ   J  s   rÐ   c                   @   s   e Zd Zedd„ ƒZdS )ÚCheckPenalizedGaussianc                 C   s2   t  d¡}t j d¡ ||t j t|ƒ¡  }|S )Nr   r7   )r    Úsqrtr!   r"   r#   r·   )r3   r5   Zsig_er)   r   r   r   r&   h  s    
z&CheckPenalizedGaussian._generate_endogNr¸   r   r   r   r   rÑ   f  s   rÑ   c                   @   s   e Zd Zedd„ ƒZdS )Ú TestPenalizedGLMGaussianOracleHCc                 C   s²   | j | j }}|d }d}t||d d …d | j…f t ¡ d�}|j|dddd�| _t||t ¡ | j	d�}| j
d	9  _
d
|j_|j|dddd�| _td | jd ƒ| _d| _d| _d S )Nr   r~   r   rd   re   r   r   rs   rw   r=   ri   r   )r)   r(   r   r'   r	   ÚGaussianrk   r@   r   r1   rl   rt   rz   r?   r,   r-   r+   r*   r�   r   r   r   r2   r  s     $
ÿ
ÿz,TestPenalizedGLMGaussianOracleHC._initializeNrp   r   r   r   r   rÓ   p  s   rÓ   c                   @   s   e Zd Zedd„ ƒZdS )Ú!TestPenalizedGLMGaussianOracleHC2c                 C   s¼   | j | j }}|d }d}t||d d …d | j…f t ¡ d�}|j|dddd�| _t||t ¡ | j	d�}| j
d	9  _
d
|j_|j|ddddd�| _td | jd ƒ| _| j| _d| _d| _d S )Nr   r~   r   rd   re   r   r   rs   rw   r=   T©r€   rg   rh   rc   rš   rŽ   )r)   r(   r   r'   r	   rÔ   rk   r@   r   r1   rl   rt   rz   r?   r,   r-   r.   r+   r*   r�   r   r   r   r2   ‹  s$    $
ÿ
 ÿz-TestPenalizedGLMGaussianOracleHC2._initializeNrp   r   r   r   r   rÕ   ˆ  s   rÕ   c                   @   s   e Zd Zedd„ ƒZdS )ÚTestPenalizedGLMGaussianL2c                 C   sØ   | j | j }}|d }d}t||d d …d | j…f t ¡ d�}|j|dddd�| _t 	|j
d ¡d	k t¡}t||t ¡ tj|d
�d�}| jd9  _|j|ddddd�| _td | jd ƒ| _|j
d | _d| _d| _d S )Nr   r~   r   rd   re   r   r   r   r   )Úweightsrs   r   FrÖ   rŽ   )r)   r(   r   r'   r	   rÔ   rk   r@   r    r$   ÚshapeZastypeÚfloatr   r0   ÚL2ConstraintsPenaltyrl   r?   r,   r-   r.   r+   r*   )r3   r)   r(   r€   rn   rØ   ro   r   r   r   r2   ¤  s(    $
ÿ
ÿ
 ÿz&TestPenalizedGLMGaussianL2._initializeNrp   r   r   r   r   r×   ¡  s   r×   c                   @   s    e Zd Zedd„ ƒZdd„ ZdS )ÚTestPenalizedGLMGaussianL2Theilc           	      C   sÊ   | j | j }}|d }|jd }d}t |¡dd … }t|||d�}|jddd�| _tj	|d	�}t
||t ¡ |d
�}| jd9  _|j|ddddd�| _|| _td | jd ƒ| _|jd | _d| _d| _d S )Nr   r   r~   r   )Zr_matrixg•]Nšzý@F)rl   r…   )Úrestrictionrs   rd   re   r   rÖ   rŽ   )r)   r(   rÙ   r    Úeyer
   rk   r@   r0   rÛ   r   r	   rÔ   rl   r?   r'   r,   r-   r.   r+   r*   )	r3   r)   r(   Úkr€   rÝ   rn   Úpenro   r   r   r   r2   ¿  s*    
ÿ
 ÿz+TestPenalizedGLMGaussianL2Theil._initializec                 C   s¶   | j }| j}t|jdk ¡ | jƒ t|j|j| j| jd� t	d d d ƒ}t|j
| |j
| d| jd� t|j| |j| ddd� t|j| |j| ddd� t| ¡ | ¡ dd� d S )Nr   r;   r   g{®Gáz´?rx   rŽ   r>   )r?   r@   r   rA   rB   r.   r   r*   r+   r,   rC   ZtvaluesrH   rI   )rK   r?   r@   r-   r   r   r   rL   Ù  s(    ÿ ÿ ÿ ÿz1TestPenalizedGLMGaussianL2Theil.test_params_tableN)r   r   r   r]   r2   rL   r   r   r   r   rÜ   ¼  s   
rÜ   )7Ú__doc__rD   r^   Únumpyr    Znumpy.testingr   r   Z#statsmodels.discrete.discrete_modelr   r   r   Z+statsmodels.genmod.generalized_linear_modelr   Zstatsmodels.genmod.familiesr	   Z(statsmodels.sandbox.regression.penalizedr
   Zstatsmodels.base._penalizedr   Zstatsmodels.base._penaltiesÚbaseZ
_penaltiesr0   r   r   r   r   r   r`   rq   rr   ru   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   r   Ú<module>   sR   X($5

