
    M/Ph d                        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c mZ  G d	 d
ee	          Z G d dee
          Z G d dee          Z G d dee          Z G d d          Z G d de          Z G d de          Z G d de          Z G d de          Z  G d de          Z! G d de          Z" G d d e          Z# G d! d"e          Z$ G d# d$e          Z% G d% d&e          Z& G d' d(e          Z' G d) d*e          Z( G d+ d,e(          Z) G d- d.e(          Z* G d/ d0e(          Z+ G d1 d2e(          Z, G d3 d4e(          Z- G d5 d6e          Z. G d7 d8e.          Z/ G d9 d:e.          Z0 G d; d<e.          Z1 G d= d>e          Z2 G d? d@e2          Z3 G dA dBe2          Z4 G dC dDe2          Z5 G dE 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                       e Zd ZdS )PoissonPenalizedN__name__
__module____qualname__     e/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/base/tests/test_penalized.pyr   r              Dr   r   c                       e Zd ZdS )LogitPenalizedNr   r   r   r   r   r      r   r   r   c                       e Zd ZdS )ProbitPenalizedNr   r   r   r   r   r      r   r   r   c                       e Zd ZdS )GLMPenalizedNr   r   r   r   r   r   !   r   r   r   c                       e Zd Zed             Zed             Zd Zej        j	        d             Z
ej        j	        d             Zd ZdS )CheckPenalizedPoissonc                    t           j                            d           d\  }}d}t           j                            ||          dt           j                            |d          dz
  z  z   dz  dz
  }|dz  }d|d d df<   t          j        |          }d	t          j        d|dz             z  |d |<   |                    |          }|                     |          }|| _        || _	        || _
        d
| _        d| _        t          d d d           | _        || _        d| _        t#          j        dd
          | _        |                                  d S )Ni )  
            ?      g333333?r   g      ?-C6?ư>F皙?)c0)nprandomseedrandzerosarangedot_generate_endog	k_nonzeroxyrtolatolslice
exog_indexk_paramsskip_hessiansmpenSCADSmoothedpenalty_initialize)clsnobsk_varsr2   r3   betalinpredr4   s           r   setup_classz!CheckPenalizedPoisson.setup_class'   sO    		vf	innT6**BINN4++c123678:;<	S!!!Q$x	!Y] ; ;;ZiZ%%++((! tT400 (888r   c                     t          j        |          }t           j                            d           t           j                            |          }|S )N  )r*   expr+   r,   poissonr?   rC   mur4   s       r   r1   z%CheckPenalizedPoisson._generate_endogD   s=    VG__
	sIb!!r   c                    | j         }| j        }t          |j        dk                                    | j                   t          |j        | j                 |j        | j        | j	                   t          |j
        | j                 |j
        | j        | j	                   t          j                    5  t          j        dt                     t          |j        | j                 |j        | j        | j	                   d d d            n# 1 swxY w Y   t          |                                |                                d           d S )Nr   r5   r6   ignore皙?r5   )res1res2r   paramssumr9   r   r8   r5   r6   bsewarningscatch_warningssimplefilterRuntimeWarningpvaluespredictselfrP   rQ   s      r   test_params_tablez'CheckPenalizedPoisson.test_params_tableK   sf   yydkQ&++--t}===DO4dk!YTY	8 	8 	8 	8148$)!Y	( 	( 	( 	($&& 	< 	<!(N;;;DL94<!%< < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<
 	TBBBBBBs   6ADDDc                 8    | j                                          d S N)rP   summaryr\   s    r   test_summaryz"CheckPenalizedPoisson.test_summaryZ   s    	r   c                 .   | j                                         }t          |                                t                    sJ t          |                                t                    sJ t          |                                t                    sJ d S r_   )rP   summary2
isinstanceas_latexstras_htmlas_text)r\   summs     r   test_summary2z#CheckPenalizedPoisson.test_summary2^   su    y!!##$--//3/////$,,..#.....$,,..#.......r   c                 *   | j         }|j        dz  }t          |j        t                    rddini }t           |j        j        |fi || j                  |j        j        |fi || j                 d           | j	        st          | j        t                    r
| j        x}}n| j        d d d f         }| j        } |j        j        |j        fi |||f         } |j        j        |j        fi |||f         }t          ||d           d S d S )N\(\?scaler$   g?rO   {Gz?)rP   rR   re   modelr   r   scorer8   score_numdiffr:   r7   hessianhessian_numdiff)r\   rP   pkwdsidx1idx2h1h2s           r   test_numdiffz"CheckPenalizedPoisson.test_numdiffe   sN   y K$)$*c::B||(
(33d33DOD0
0;;d;;DOL"	$ 	$ 	$ 	$   		/$/511 '"o-ttqqq$w/##DK88488tDB++DK@@4@@tLBB......		/ 		/r   N)r   r   r   classmethodrD   r1   r]   pytestmarksmokerb   rk   r{   r   r   r   r   r   %   s          [8   [C C C [   [/ / // / / / /r   r   c                   $    e Zd Zed             ZdS )TestPenalizedPoissonNonePenalc                     | j         | j        }}t          ||          }|                    d          | _        t          ||          }d|_        |                    ddd          | _        d| _        d S Nr   dispbfgsd   methodmaxiterr   h㈵>	r4   r3   r   fitrQ   r   
pen_weightrP   r6   r?   r4   r3   modpmods        r   r>   z)TestPenalizedPoissonNonePenal._initialize   k    uce1q!}}888##q!$$77&#A7>>r   Nr   r   r   r|   r>   r   r   r   r   r   }   s-        
 
 [
 
 
r   r   c                   $    e Zd Zed             ZdS )TestPenalizedPoissonNoPenalc                     | j         | j        }}t          ||          }|                    d          | _        t          ||          }d|_        |                    ddd          | _        d| _        d S r   r   r   s        r   r>   z'TestPenalizedPoissonNoPenal._initialize   r   r   Nr   r   r   r   r   r      /         
 
 [
 
 
r   r   c                   $    e Zd Zed             ZdS )TestPenalizedGLMPoissonNoPenalc                 B   | j         | j        }}t          ||t          j                              }|                                | _        t          ||t          j                    | j                  }d|_	        |                    ddd          | _
        d| _        d S )Nr	   r
   penalr   r   r   r   r   )r4   r3   r   r
   r   r   rQ   r   r=   r   rP   r6   r   s        r   r>   z*TestPenalizedGLMPoissonNoPenal._initialize   s    uce11a 0 011188::1a(8(8LLL77&#A7>>r   Nr   r   r   r   r   r      r   r   r   c                   $    e Zd Zed             ZdS )TestPenalizedPoissonOraclec                 ~   | j         | j        }}t          ||d d d | j        f                   }|                    d          | _        t          ||| j                  }|xj        dz  c_        d|j	        _
        |                    ddd          | _        t          d | j        d           | _        d	| _        d S )
Nr   r   r         ?rN   r   r   r   {Gzt?r4   r3   r   r2   r   rQ   r   r=   r   r   taurP   r7   r8   r6   r   s        r   r>   z&TestPenalizedPoissonOracle._initialize   s    uce1q!AAA~~-.//888##q!3;777#	77&#A7>>tS]D99r   Nr   r   r   r   r   r      s-          [  r   r   c                   $    e Zd Zed             ZdS )TestPenalizedGLMPoissonOraclec                    | j         | j        }}t          ||d d d | j        f         t	          j                              }|                                | _        t          ||t	          j                    | j	                  }|xj
        dz  c_
        d|j        _        |                    dd          | _        t          d | j        d           | _        d| _        d S )	Nr	   r   r   rN   r   r   )r   r   r   r4   r3   r   r2   r
   r   r   rQ   r   r=   r   r   r   rP   r7   r8   r6   r   s        r   r>   z)TestPenalizedGLMPoissonOracle._initialize   s    uce11a>CM>)*6>3C3CDDD88::1a(8(8LLL#	77&#766tS]D99r   Nr   r   r   r   r   r      /           [  r   r   c                   *    e Zd Zed             Zd ZdS )TestPenalizedPoissonOracleHCc                    | j         | j        }}d}t          ||d d d | j        f                   }|                    |ddd          | _        t          ||| j                  }|xj        dz  c_        d|j	        _
        |                    |ddd          | _        t          d | j        d           | _        d	| _        d S )
NHC0r   r   r   cov_typer   r   r   r   r   rN   r   r   r?   r4   r3   r   r   r   s         r   r>   z(TestPenalizedPoissonOracleHC._initialize   s    uce1q!AAA~~-.//88Xfc!"  $ $ q!3;777#	77HVS !  # # tS]D99r   c                    | j         }| j        }t          | j         j        d           dddd d}t          | j         j        |           t          j        g d          }t          j        g d          }t          |j        d | j	                 |d           t          |j
        d | j	                 |d	
           t          |j        d | j	                 || j                   t          |j
        d | j	                 |d
           d S )Nr   3Standard Errors are heteroscedasticity robust (HC0)Fdescription	adjust_dfuse_tscaling_factorgi!+P?gS?g}.?gȋ?g8;͜?gXEg.{?g!	?gň!y?h㈵>r6   r'   rO   ro   )rP   rQ   r   r   cov_kwdsr*   arrayr   rR   r2   rT   r6   r\   rP   rQ   r   rR   rT   s         r   test_cov_typez*TestPenalizedPoissonOracleHC.test_cov_type   s0   yyTY'///$#!&$P P 	TY'222 E E E F Fh D D D E EOT^O4f4HHHH$.13TBBBBOT^O4f49MMMM$.13TBBBBBBr   Nr   r   r   r|   r>   r   r   r   r   r   r      sA          ["C C C C Cr   r   c                   $    e Zd Zed             ZdS )TestPenalizedGLMPoissonOracleHCc                    | j         | j        }}d}t          ||d d d | j        f         t	          j                              }|                    |ddd          | _        t          ||t	          j                    | j	                  }|xj
        dz  c_
        d	|j        _        |                    |ddd          | _        t          d | j        d           | _        d
| _        d S )Nr   r	   r   r   r   r   r   r   rN   r   r   r   s         r   r>   z+TestPenalizedGLMPoissonOracleHC._initialize   s    uce11a>CM>)*6>3C3CDDD88Xfc!"  $ $ 1a(8(8LLL#	77HVS !  # # tS]D99r   Nr   r   r   r   r   r      s-          [  r   r   c                   $    e Zd Zed             ZdS )TestPenalizedPoissonGLMOracleHCc                    | j         | j        }}d}t          ||| j                  }|xj        dz  c_        d|j        _        |                    |ddd          | _        t          ||t          j                    | j        	          }|xj        dz  c_        d|j        _        |                    |ddd          | _        t          d d d           | _        d
| _        d S )Nr   r   r   rN   r   r   r   r   r   r&   )r4   r3   r   r=   r   r   r   r   rQ   r   r
   r   rP   r7   r8   r6   r   s         r   r>   z+TestPenalizedPoissonGLMOracleHC._initialize  s    uce11CK8883
88Xfc!"  $ $ 1a(8(8LLL#	77HVS !  # # tT400r   Nr   r   r   r   r   r     s/           [  r   r   c                   $    e Zd Zed             ZdS )#TestPenalizedPoissonOraclePenalizedc                 Z   | j         | j        }}t          ||d d d | j        f         | j                  }|                    ddd          | _        t          ||| j                  }|                    dddd          | _        t          d | j        d           | _	        d| _
        d S 	Nr   r   r   r   r   Fr   r   trimr   MbP?)r4   r3   r   r2   r=   r   rQ   rP   r7   r8   r6   r   s        r   r>   z/TestPenalizedPoissonOraclePenalized._initialize*  s    uce11QQQ%6#7s{KKK8863Q8??q!3;777 77&#E7JJtS]D99r   Nr   r   r   r   r   r   (  s-          [  r   r   c                   *    e Zd Zed             Zd ZdS )$TestPenalizedPoissonOraclePenalized2c                 J   | j         | j        }}t          ||d d d | j        f         | j                  }|xj        dz  c_        d|j        _        t          j	        g d          }|
                    |dz  ddd	          | _        t          j	        g d
          }t          ||| j                  }|xj        dz  c_        d|j        _        |
                    |dz  dddd          | _        t          d | j        d           | _        d| _        | j        | _        d S )Nr   r!   rN   gjsR?gy?g.Ps.?g>#?r#   r   r   r   )start_paramsr   r   r   
geBCR?g8?g.?gRHދ?g:$žg`zܴg?Lh>gqsľg釘_}g;
cclҾT)r   r   r   r   r   :0yE>r4   r3   r   r2   r=   r   r   r   r*   r   r   rQ   rP   r7   r8   r6   r9   )r?   r4   r3   r   sp2params_notrimr   s          r   r>   z0TestPenalizedPoissonOraclePenalized2._initialize<  s9   uce11QQQ%6#7s{KKK2
hGGGHH88s6$'a  1 1  ". ". ". / /
 q!3;777"	77(;"(#Dq  J J tS]D99}r   c                     t          | j        j        | j        d          d           t          | j        j        | j        d          d           d S Nr   r   rP   rR   r2   rT   ra   s    r   
test_zerosz/TestPenalizedPoissonOraclePenalized2.test_zerosV  I     	TY%dnoo6:::TY]4>??3Q77777r   Nr   r   r   r|   r>   r   r   r   r   r   r   :  s<        % % [%28 8 8 8 8r   r   c                   *    e Zd Zed             Zd ZdS )&TestPenalizedPoissonOraclePenalized2HCc                 R   | j         | j        }}d}t          ||d d d | j        f         | j                  }|xj        dz  c_        d|j        _        t          j	        g d          }|
                    |dz  |ddd	
          | _        t          j	        g d          }t          ||| j                  }|xj        dz  c_        d|j        _        |
                    |dz  |dddd	          | _        t          d | j        d           | _        d| _        | j        | _        d S )Nr   r   r!   rN   r   r#   r   r   r   )r   r   r   r   r   r   T)r   r   r   r   r   r   g-q=r   )r?   r4   r3   r   r   r   r   r   s           r   r>   z2TestPenalizedPoissonOraclePenalized2HC._initialize`  sD   uce11QQQ%6#7s{KKK2
hGGGHH88sX#)3Q  @ @  ". ". ". / /
 q!3;777"	77(;X"(#Dq  J J tS]D99}r   c                    | 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          j        g d          }t          j        g d          }t          |j	        d | j
                 |d           t          |j        d | j
                 |d	
           t          |j	        d | j
                 |d           t          |j        d | j
                 |d	
           d S )Nr   r   Fr   r   r   r   r   r   rO   )rP   rQ   r   r   results_constrainedr   r*   r   r   rR   r2   rT   r   s         r   r   z4TestPenalizedPoissonOraclePenalized2HC.test_cov_typez  se   yyTY'///TY2;UCCC$2!&$P P 	TY'222TY')F)OPPP  E E E F Fh D D D E EOT^O4f4HHHH$.13TBBBBOT^O4f4HHHH$.13TBBBBBBr   Nr   r   r   r   r   r   ^  sA        % % [%2C C C C Cr   r   c                   $    e Zd Zed             ZdS )CheckPenalizedLogitc                 
   ddt          j        | |                                z   dz
            z   z  }t           j                            d           t           j                            t          |                    |k     }|S )Nr$   r#   rF   )r*   rG   meanr+   r,   r-   lenrI   s       r   r1   z#CheckPenalizedLogit._generate_endog  sf    !bfgX6<===>
	sINN3r77##b(r   Nr   r   r   r|   r1   r   r   r   r   r     -          [  r   r   c                   $    e Zd Zed             ZdS )TestPenalizedLogitNoPenalc                     | j         | j        }}t          ||          }|                    d          | _        t          ||| j                  }d|_        |                    d          | _        d| _	        d S )Nr   r   r   r&   )
r4   r3   r   r   rQ   r   r=   r   rP   r6   r   s        r   r>   z%TestPenalizedLogitNoPenal._initialize  sl    uce1Q{{888##Q555777??r   Nr   r   r   r   r   r     r   r   r   c                   $    e Zd Zed             ZdS )TestPenalizedLogitOraclec                 ~   | j         | j        }}t          ||d d d | j        f                   }|                    d          | _        t          ||| j                  }|xj        dz  c_        d|j	        _
        |                    ddd          | _        t          d | j        d           | _        d	| _        d S )
Nr   r   r   r#   rN   r   r   r   r   )r4   r3   r   r2   r   rQ   r   r=   r   r   r   rP   r7   r8   r6   r   s        r   r>   z$TestPenalizedLogitOracle._initialize  s    uce1Q!!!^cm^+,--888##Q555"	77&#A7>>tS]D99r   Nr   r   r   r   r   r     r   r   r   c                   $    e Zd Zed             ZdS )TestPenalizedGLMLogitOraclec                    | j         | j        }}t          ||d d d | j        f         t	          j                              }|                    d          | _        t          ||t	          j                    | j	                  }|xj
        dz  c_
        d|j        _        |                    ddd	          | _        t          d | j        d           | _        d
| _        d S )Nr	   r   r   r   r#   rN   r   r   r   r   )r4   r3   r   r2   r
   Binomialr   rQ   r   r=   r   r   r   rP   r7   r8   r6   r   s        r   r>   z'TestPenalizedGLMLogitOracle._initialize  s    uce11a>CM>)*6?3D3DEEE888##1a(9(9MMM"	77&#A7>>tS]D99r   Nr   r   r   r   r   r     r   r   r   c                   $    e Zd Zed             ZdS )!TestPenalizedLogitOraclePenalizedc                 Z   | j         | j        }}t          ||d d d | j        f         | j                  }|                    ddd          | _        t          ||| j                  }|                    dddd          | _        t          d | j        d           | _	        d| _
        d S r   )r4   r3   r   r2   r=   r   rQ   rP   r7   r8   r6   r   s        r   r>   z-TestPenalizedLogitOraclePenalized._initialize  s    uce1a111ns}n#4!5S[III8863Q8??Q555 77&#E7JJtS]D99r   Nr   r   r   r   r   r     r   r   r   c                   *    e Zd Zed             Zd ZdS )"TestPenalizedLogitOraclePenalized2c                    | j         | j        }}t          ||d d d | j        f         | j                  }|xj        dz  c_        d|j        _        |                    ddd          | _	        t          ||| j                  }|xj        dz  c_        d|j        _        |                    dddd	          | _
        t          d | j        d           | _        d
| _        | j        | _        d S )Nr   r#   rN   r   r   r   r   Tr   r   )r4   r3   r   r2   r=   r   r   r   r   rQ   rP   r7   r8   r6   r9   r   s        r   r>   z.TestPenalizedLogitOraclePenalized2._initialize  s    uce1a111ns}n#4!5S[III3
8863Q8??Q555#	77&#Dq7IItS]D99}r   c                     t          | j        j        | j        d          d           t          | j        j        | j        d          d           d S r   r   ra   s    r   r   z-TestPenalizedLogitOraclePenalized2.test_zeros  r   r   Nr   r   r   r   r   r     s<        % % [%"8 8 8 8 8r   r   c                   $    e Zd Zed             ZdS )CheckPenalizedBinomCountc                    ddt          j        | |                                z   dz
            z   z  }t           j                            d           dt          j        t          |          t                    z  }|d t          |          dz  xx         dz  cc<   t           j                            ||          }t          j	        |||z
  f          S )Nr$   r#   rF      r%   )
r*   rG   r   r+   r,   onesr   intbinomialcolumn_stack)r?   rC   rJ   n_trialsr4   s        r   r1   z(CheckPenalizedBinomCount._generate_endog  s    !bfgX6<===>
	srws2ww,,,#b''1*"Ix,,8a<0111r   Nr   r   r   r   r   r     s-        2 2 [2 2 2r   r   c                   *    e Zd Zed             Zd ZdS )!TestPenalizedGLMBinomCountNoPenalc                    | j         | j        }}|d d d df         }dt          j        t	          |                    z  }t          ||t          j                    |          }|                    dd          | _	        t          ||t          j                    || j                  }d|_        |                    dd	dd| j	        j        d
z            | _        d| _        d| _        d S )Nr"         пr
   offsetr   r   )r   max_start_irlsr
   r	  r   r      g?)r   r
  r   r   r   绽|=)r4   r3   r*   r   r   r   r
   r   r   rQ   r   r=   r   rR   rP   r6   r9   )r?   r4   r3   r	  r   r   s         r   r>   z-TestPenalizedGLMBinomCountNoPenal._initialize  s    uce1aaa!eHQ(1a 1 1&AAA886#8>>1a(9(9&!$. . .77&Ca(+(;  = = r   c                 j   | j         }| j        }t          |j                            |j        dz            |j                            |j        dz            d           t          |j                            |j        dz            |j                            |j        dz            d           d S )Nrm   r  rO   )rP   rQ   r   rp   rq   rR   	score_obsr[   s      r   
test_derivz,TestPenalizedGLMBinomCountNoPenal.test_deriv$  s    yy
((t);<<
((t);<<5	J 	J 	J 	J
,,T[4-?@@
,,T[4-?@@u	N 	N 	N 	N 	N 	Nr   N)r   r   r   r|   r>   r  r   r   r   r  r    sC           [ N N N N Nr   r  c                   $    e Zd Zed             ZdS )"TestPenalizedGLMBinomCountOracleHCc                 "   | j         | j        }}dt          j        t	          |                    z  }d}t          ||d d d | j        f         t          j                    |          }|	                    |ddd          | _
        t          ||t          j                    || j                  }|xj        d	z  c_        d
|j        _        |	                    |dddd          | _        t#          d | j        d           | _        d| _        d S )Nr  r   r  newton  r   r   r  r$   rN   r   r   )r   r   r
  r   r   r   )r4   r3   r*   r   r   r   r2   r
   r   r   rQ   r   r=   r   r   r   rP   r7   r8   r6   r?   r4   r3   r	  r   r   r   s          r   r>   z.TestPenalizedGLMBinomCountOracleHC._initialize3  s   uce1Q(1a>CM>)*6?3D3D " " "88Xh!"  $ $ 1a(9(9&!$. . .!	77HVA#&Q  0 0 tS]D99r   Nr   r   r   r   r  r  -  s/           [  r   r  c                   $    e Zd Zed             ZdS )#TestPenalizedGLMBinomCountOracleHC2c                 <   | j         | j        }}dt          j        t	          |                    z  }d}t          ||d d d | j        f         t          j                    |          }|	                    |ddd          | _
        t          ||t          j                    || j                  }|xj        d	z  c_        d
|j        _        |	                    |ddddd          | _        t#          d | j        d           | _        d| _        | j        | _        d S )Nr  r   r  r  r  r   r   r  r$   rN   r   r   r   )r   r   r
  r   r   r   )r4   r3   r*   r   r   r   r2   r
   r   r   rQ   r   r=   r   r   r   rP   r7   r8   r6   r9   r  s          r   r>   z/TestPenalizedGLMBinomCountOracleHC2._initializeM  s   uce1Q(1a>CM>)*6?3D3D " " "88Xh!"  $ $ 1a(9(9&!$. . .!	77HVA#&QU  < < tS]D99}r   Nr   r   r   r   r  r  I  s/         % % [% % %r   r  c                   $    e Zd Zed             ZdS )CheckPenalizedGaussianc                     t          j        d          }t           j                            d           ||t           j                            t          |                    z  z   }|S )Nr(   rF   )r*   sqrtr+   r,   r-   r   )r?   rC   sig_er4   s       r   r1   z&CheckPenalizedGaussian._generate_endogg  sK    
	sebinnS\\::::r   Nr   r   r   r   r  r  e  r   r   r  c                   $    e Zd Zed             ZdS ) TestPenalizedGLMGaussianOracleHCc                    | j         | j        }}|dz   }d}t          ||d d d | j        f         t	          j                              }|                    |ddd          | _        t          ||t	          j                    | j	                  }|xj
        d	z  c_
        d
|j        _        |                    |ddd          | _        t          d | j        d           | _        d| _        d| _        d S )Nr!   r   r	   r   r   r   r   r   r   rN   r   r'   )r4   r3   r   r2   r
   Gaussianr   rQ   r   r=   r   r   r   rP   r7   r8   r6   r5   r   s         r   r>   z,TestPenalizedGLMGaussianOracleHC._initializeq  s    uce1F1a>CM>)*6?3D3DEEE88Xfc!"  $ $ 1a(9(9MMM#	77HVS !  # # tS]D99r   Nr   r   r   r   r   r   o  s-          [  r   r   c                   $    e Zd Zed             ZdS )!TestPenalizedGLMGaussianOracleHC2c                    | j         | j        }}|dz   }d}t          ||d d d | j        f         t	          j                              }|                    |ddd          | _        t          ||t	          j                    | j	                  }|xj
        d	z  c_
        d
|j        _        |                    |dddd          | _        t          d | j        d           | _        | j        | _        d| _        d| _        d S )Nr!   r   r	   r   r   r   r   r   r   rN   Tr   r   r   r   r   r   )r4   r3   r   r2   r
   r"  r   rQ   r   r=   r   r   r   rP   r7   r8   r9   r6   r5   r   s         r   r>   z-TestPenalizedGLMGaussianOracleHC2._initialize  s   uce1F1a>CM>)*6?3D3DEEE88Xfc!"  $ $ 1a(9(9MMM#	77HVS !  . . tS]D99}r   Nr   r   r   r   r$  r$    s/           [  r   r$  c                   $    e Zd Zed             ZdS )TestPenalizedGLMGaussianL2c                    | j         | j        }}|dz   }d}t          ||d d d | j        f         t	          j                              }|                    |ddd          | _        t          j	        |j
        d                   d	k                        t                    }t          ||t	          j                    t          j        |
                    }|xj        dz  c_        |                    |dddd          | _        t%          d | j        d           | _        |j
        d         | _        d| _        d| _        d S )Nr!   r   r	   r   r   r   r   r$   r"   )weightsr   r    Fr&  r   )r4   r3   r   r2   r
   r"  r   rQ   r*   r/   shapeastypefloatr   r;   L2ConstraintsPenaltyr   rP   r7   r8   r9   r6   r5   )r?   r4   r3   r   r   r*  r   s          r   r>   z&TestPenalizedGLMGaussianL2._initialize  s=   uce1F1a>CM>)*6?3D3DEEE88Xfc!"  $ $ 9QWQZ((A-55e<<1a(9(9!&!;G!L!L!LN N N 	#77HVS !  / / tS]D99wqzr   Nr   r   r   r   r(  r(    s/           [  r   r(  c                   *    e Zd Zed             Zd ZdS )TestPenalizedGLMGaussianL2Theilc                 2   | j         | j        }}|dz   }|j        d         }d}t          j        |          dd          }t          |||          }|                    dd          | _        t          j	        |	          }t          ||t          j                    |
          }|xj        dz  c_        |                    |dddd          | _        || _        t!          d | j        d           | _        |j        d         | _        d| _        d| _        d S )Nr!   r$   r   r%   )r_matrixg]Nz@F)r   r   )restrictionr   r   r   r   r&  r   )r4   r3   r+  r*   eyer   r   rQ   r;   r.  r   r
   r"  r   rP   r2   r7   r8   r9   r6   r5   )	r?   r4   r3   kr   r3  r   penr   s	            r   r>   z+TestPenalizedGLMGaussianL2Theil._initialize  s   uce1FGAJfQiim1{33388'@8NN([AAA1a(9(9!$& & & 	!77HVS !  / / tS]D99wqzr   c                 ^   | j         }| j        }t          |j        dk                                    | j                   t          |j        |j        | j        | j                   t          d d d           }t          |j
        |         |j
        |         d| j                   t          |j        |         |j        |         dd           t          |j        |         |j        |         dd           t          |                                |                                d           d S )Nr   rL   r(   g{Gz?r   r   rO   )rP   rQ   r   rR   rS   r9   r   r5   r6   r7   rT   tvaluesrY   rZ   )r\   rP   rQ   r8   s       r   r]   z1TestPenalizedGLMGaussianL2Theil.test_params_table  s)   
 yydkQ&++--t}===T[ty!Y	( 	( 	( 	( 4t,,
,dhz.B ty	2 	2 	2 	2Z0$,z2J!	. 	. 	. 	.Z0$,z2J t	- 	- 	- 	-TBBBBBBr   N)r   r   r   r|   r>   r]   r   r   r   r0  r0    sC           [2C C C C Cr   r0  )7__doc__rU   r}   numpyr*   numpy.testingr   r   #statsmodels.discrete.discrete_modelr   r   r   +statsmodels.genmod.generalized_linear_modelr   statsmodels.genmod.familiesr
   (statsmodels.sandbox.regression.penalizedr   statsmodels.base._penalizedr   statsmodels.base._penaltiesbase
_penaltiesr;   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  r  r   r$  r(  r0  r   r   r   <module>rD     s6          7 7 7 7 7 7 7 7 F F F F F F F F F F ; ; ; ; ; ; . . . . . . = = = = = = 6 6 6 6 6 6 + + + + + + + + +	 	 	 	 	~w 	 	 		 	 	 	 	^U 	 	 		 	 	 	 	nf 	 	 		 	 	 	 	>3 	 	 	U/ U/ U/ U/ U/ U/ U/ U/p    $9        "7   "    %:   "    !6   "    $9   &%C %C %C %C %C#8 %C %C %CP    &;   *    &;   0    *?   $!8 !8 !8 !8 !8+@ !8 !8 !8H0C 0C 0C 0C 0C-B 0C 0C 0Cj    /        3   "    2   &    "5   &    (;   &8 8 8 8 8)< 8 8 8:	2 	2 	2 	2 	24 	2 	2 	2N N N N N(@ N N N:    )A   8% % % % %*B % % %8    2       '=   0    (>   2    !7   6/C /C /C /C /C&< /C /C /C /C /Cr   