
    !g d                     6   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      Z6y)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y)PoissonPenalizedN__name__
__module____qualname__     b/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/base/tests/test_penalized.pyr   r          r   r   c                       e Zd Zy)LogitPenalizedNr   r   r   r   r   r      r   r   r   c                       e Zd Zy)ProbitPenalizedNr   r   r   r   r   r      r   r   r   c                       e Zd Zy)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y)CheckPenalizedPoissonc                    t         j                  j                  d       d\  }}d}t         j                  j                  ||      dt         j                  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 | |j                  |      }| j                  |      }|| _        || _	        || _
        d
| _        d| _        t        d d d       | _        || _        d| _        t#        j$                  dd
      | _        | j)                          y )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'   s*    			vf	iinnT6*BIINN4+c123678:;<	S!Q$xx		!Y] ;;Zi%%+(! tT40 ((8r   c                     t        j                  |      }t         j                  j                  d       t         j                  j	                  |      }|S )N  )r*   expr+   r,   poissonr?   rC   mur4   s       r   r1   z%CheckPenalizedPoisson._generate_endogD   s8    VVG_
		sIIb!r   c                    | j                   }| j                  }t        |j                  dk7  j	                         | 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        t        |j!                         |j!                         d       y # 1 sw Y   4xY w)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   s    yyyydkkQ&++-t}}=DOO4dkk!YYTYY	81488$))!YY	($$& 	<!!(N;DLL94<<!%<	<
 	TB	< 	<s   &AE88Fc                 8    | j                   j                          y N)rP   summaryr\   s    r   test_summaryz"CheckPenalizedPoisson.test_summaryZ   s    		r   c                     | j                   j                         }t        |j                         t              sJ t        |j                         t              sJ t        |j                         t              sJ y r_   )rP   summary2
isinstanceas_latexstras_htmlas_text)r\   summs     r   test_summary2z#CheckPenalizedPoisson.test_summary2^   sV    yy!!#$--/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       y y )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   s%   yy KK$)$**c:|(

((3d3DOOD0

00;d;DOOL"	$   $//51"oo-tq$w/###DKK848tDB+++DKK@4@tLBB. !r   N)r   r   r   classmethodrD   r1   r]   pytestmarksmokerb   rk   r{   r   r   r   r   r   %   so     8  C [[  [[/ //r   r   c                       e Zd Zed        Zy)TestPenalizedPoissonNonePenalc                     | j                   | j                  }}t        ||      }|j                  d      | _        t        ||      }d|_        |j                  ddd      | _        d| _        y Nr   dispbfgsd   methodmaxiterr   h㈵>	r4   r3   r   fitrQ   r   
pen_weightrP   r6   r?   r4   r3   modpmods        r   r>   z)TestPenalizedPoissonNonePenal._initialize   `    uucee1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y)TestPenalizedPoissonNoPenalc                     | j                   | j                  }}t        ||      }|j                  d      | _        t        ||      }d|_        |j                  ddd      | _        d| _        y 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y)TestPenalizedGLMPoissonNoPenalc                 B   | j                   | j                  }}t        ||t        j                               }|j                         | _        t        ||t        j                         | j                        }d|_	        |j                  ddd      | _
        d| _        y )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   st    uucee11a 0188:1a(8L77&#A7>r   Nr   r   r   r   r   r      r   r   r   c                       e Zd Zed        Zy)TestPenalizedPoissonOraclec                    | j                   | j                  }}t        ||d d d | j                  f         }|j	                  d      | _        t        ||| j                        }|xj                  dz  c_        d|j                  _
        |j	                  ddd      | _        t        d | j                  d       | _        d	| _        y )
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    uucee1q!A~~-./888#q!3;;7#		77&#A7>tS]]D9r   Nr   r   r   r   r   r      s     r   r   c                       e Zd Zed        Zy)TestPenalizedGLMPoissonOraclec                    | j                   | j                  }}t        ||d d d | j                  f   t	        j
                               }|j                         | _        t        ||t	        j
                         | j                        }|xj                  dz  c_
        d|j                  _        |j                  dd      | _        t        d | j                  d       | _        d| _        y )	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    uucee11a>CMM>)*6>>3CD88:1a(8L#		77&#76tS]]D9r   Nr   r   r   r   r   r            r   r   c                   "    e Zd Zed        Zd Zy)TestPenalizedPoissonOracleHCc                    | j                   | j                  }}d}t        ||d d d | j                  f         }|j	                  |ddd      | _        t        ||| j                        }|xj                  dz  c_        d|j                  _
        |j	                  |ddd      | _        t        d | j                  d       | _        d	| _        y )
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    uucee1q!A~~-./88Xfc!"  $ q!3;;7#		77HVS !  # tS]]D9r   c                 Z   | 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
       y )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   s    yyyyTYY''/$#!&$P 	TYY''2 E Fhh D EOT^^4f4H$..13TBOT^^4f499M$..13TBr   Nr   r   r   r|   r>   r   r   r   r   r   r      s     "Cr   r   c                       e Zd Zed        Zy)TestPenalizedGLMPoissonOracleHCc                    | j                   | j                  }}d}t        ||d d d | j                  f   t	        j
                               }|j                  |ddd      | _        t        ||t	        j
                         | j                        }|xj                  dz  c_
        d	|j                  _        |j                  |ddd      | _        t        d | j                  d       | _        d
| _        y )Nr   r	   r   r   r   r   r   r   rN   r   r   r   s         r   r>   z+TestPenalizedGLMPoissonOracleHC._initialize   s    uucee11a>CMM>)*6>>3CD88Xfc!"  $ 1a(8L#		77HVS !  # tS]]D9r   Nr   r   r   r   r   r      s     r   r   c                       e Zd Zed        Zy)TestPenalizedPoissonGLMOracleHCc                    | j                   | j                  }}d}t        ||| j                        }|xj                  dz  c_        d|j
                  _        |j                  |ddd      | _        t        ||t        j                         | j                  	      }|xj                  dz  c_        d|j
                  _        |j                  |ddd      | _        t        d d d       | _        d
| _        y )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    uucee11CKK83

88Xfc!"  $ 1a(8L#		77HVS !  # tT40r   Nr   r   r   r   r   r     s      r   r   c                       e Zd Zed        Zy)#TestPenalizedPoissonOraclePenalizedc                 f   | j                   | j                  }}t        ||d d d | j                  f   | j                        }|j                  ddd      | _        t        ||| j                        }|j                  dddd      | _        t        d | j                  d       | _	        d| _
        y 	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    uucee11Q%6#7s{{K8863Q8?q!3;;7 77&#E7JtS]]D9r   Nr   r   r   r   r   r   (  s     r   r   c                   "    e Zd Zed        Zd Zy)$TestPenalizedPoissonOraclePenalized2c                    | j                   | j                  }}t        ||d d d | j                  f   | j                        }|xj
                  dz  c_        d|j                  _        t        j                  g d      }|j                  |dz  ddd	      | _        t        j                  g d
      }t        ||| j                        }|xj
                  dz  c_        d|j                  _        |j                  |dz  dddd      | _        t        d | j                  d       | _        d| _        | j                  | _        y )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<  s   uucee11Q%6#7s{{K2

hhGH88s6$'a  1  ". /
 q!3;;7"		77(;"(#Dq  J tS]]D9}}r   c                     t        | j                  j                  | j                  d  d       t        | j                  j                  | j                  d  d       y Nr   r   rP   rR   r2   rT   ra   s    r   
test_zerosz/TestPenalizedPoissonOraclePenalized2.test_zerosV  @     	TYY%%dnno6:TYY]]4>>?3Q7r   Nr   r   r   r|   r>   r   r   r   r   r   r   :  s    % %28r   r   c                   "    e Zd Zed        Zd Zy)&TestPenalizedPoissonOraclePenalized2HCc                    | j                   | j                  }}d}t        ||d d d | j                  f   | j                        }|xj
                  dz  c_        d|j                  _        t        j                  g d      }|j                  |dz  |ddd	
      | _        t        j                  g d      }t        ||| j                        }|xj
                  dz  c_        d|j                  _        |j                  |dz  |dddd	      | _        t        d | j                  d       | _        d| _        | j                  | _        y )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`  s   uucee11Q%6#7s{{K2

hhGH88sX#)3Q  @  ". /
 q!3;;7"		77(;X"(#Dq  J tS]]D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	
       y )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  s(   yyyyTYY''/TYY22;;UC$2!&$P 	TYY''2TYY'')F)F)O)OP  E Fhh D EOT^^4f4H$..13TBOT^^4f4H$..13TBr   Nr   r   r   r   r   r   ^  s    % %2Cr   r   c                       e Zd Zed        Zy)CheckPenalizedLogitc                     ddt        j                  | |j                         z   dz
        z   z  }t         j                  j	                  d       t         j                  j                  t        |            |k  }|S )Nr$   r#   rF   )r*   rG   meanr+   r,   r-   lenrI   s       r   r1   z#CheckPenalizedLogit._generate_endog  s\    !bffgX6<==>
		sIINN3r7#b(r   Nr   r   r   r|   r1   r   r   r   r   r          r   r   c                       e Zd Zed        Zy)TestPenalizedLogitNoPenalc                     | j                   | j                  }}t        ||      }|j                  d      | _        t        ||| j                        }d|_        |j                  d      | _        d| _	        y )Nr   r   r   r&   )
r4   r3   r   r   rQ   r   r=   r   rP   r6   r   s        r   r>   z%TestPenalizedLogitNoPenal._initialize  sa    uucee1Q{888#Q5777?r   Nr   r   r   r   r   r     r   r   r   c                       e Zd Zed        Zy)TestPenalizedLogitOraclec                    | j                   | j                  }}t        ||d d d | j                  f         }|j	                  d      | _        t        ||| j                        }|xj                  dz  c_        d|j                  _
        |j	                  ddd      | _        t        d | j                  d       | _        d	| _        y )
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    uucee1Q!^cmm^+,-888#Q5"		77&#A7>tS]]D9r   Nr   r   r   r   r   r     r   r   r   c                       e Zd Zed        Zy)TestPenalizedGLMLogitOraclec                    | j                   | j                  }}t        ||d d d | j                  f   t	        j
                               }|j                  d      | _        t        ||t	        j
                         | j                        }|xj                  dz  c_
        d|j                  _        |j                  ddd	      | _        t        d | j                  d       | _        d
| _        y )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    uucee11a>CMM>)*6??3DE888#1a(9M"		77&#A7>tS]]D9r   Nr   r   r   r   r   r     r   r   r   c                       e Zd Zed        Zy)!TestPenalizedLogitOraclePenalizedc                 f   | j                   | j                  }}t        ||d d d | j                  f   | j                        }|j                  ddd      | _        t        ||| j                        }|j                  dddd      | _        t        d | j                  d       | _	        d| _
        y r   )r4   r3   r   r2   r=   r   rQ   rP   r7   r8   r6   r   s        r   r>   z-TestPenalizedLogitOraclePenalized._initialize  s    uucee1a1ns}}n#4!5S[[I8863Q8?Q5 77&#E7JtS]]D9r   Nr   r   r   r   r   r     r   r   r   c                   "    e Zd Zed        Zd Zy)"TestPenalizedLogitOraclePenalized2c                     | j                   | j                  }}t        ||d d d | j                  f   | j                        }|xj
                  dz  c_        d|j                  _        |j                  ddd      | _	        t        ||| j                        }|xj
                  dz  c_        d|j                  _        |j                  dddd	      | _
        t        d | j                  d       | _        d
| _        | j                  | _        y )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    uucee1a1ns}}n#4!5S[[I3

8863Q8?Q5#		77&#Dq7ItS]]D9}}r   c                     t        | j                  j                  | j                  d  d       t        | j                  j                  | j                  d  d       y r   r   ra   s    r   r   z-TestPenalizedLogitOraclePenalized2.test_zeros  r   r   Nr   r   r   r   r   r     s    % %"8r   r   c                       e Zd Zed        Zy)CheckPenalizedBinomCountc                    ddt        j                  | |j                         z   dz
        z   z  }t         j                  j	                  d       dt        j
                  t        |      t              z  }|d t        |      dz  xxx dz  ccc t         j                  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    !bffgX6<==>
		srwws2w,,#b'1*"IIx,8a<011r   Nr   r   r   r   r   r     s    2 2r   r   c                   "    e Zd Zed        Zd Zy)!TestPenalizedGLMBinomCountNoPenalc                    | j                   | j                  }}|d d d df   }dt        j                  t	        |            z  }t        ||t        j                         |      }|j                  dd      | _	        t        ||t        j                         || j                        }d|_        |j                  dd	dd| j                  j                  d
z        | _        d| _        d| _        y )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    uucee1a!eHQ(1a 1&A886#8>1a(9&!$.77&Ca(+(;  = r   c                    | j                   }| j                  }t        |j                  j	                  |j
                  dz        |j                  j	                  |j
                  dz        d       t        |j                  j                  |j
                  dz        |j                  j                  |j
                  dz        d       y )Nrm   r  rO   )rP   rQ   r   rp   rq   rR   	score_obsr[   s      r   
test_derivz,TestPenalizedGLMBinomCountNoPenal.test_deriv$  s    yyyy

((t);<

((t);<5	J

,,T[[4-?@

,,T[[4-?@u	Nr   N)r   r   r   r|   r>   r  r   r   r   r  r    s       Nr   r  c                       e Zd Zed        Zy)"TestPenalizedGLMBinomCountOracleHCc                 6   | j                   | j                  }}dt        j                  t	        |            z  }d}t        ||d d d | j                  f   t        j                         |      }|j                  |ddd      | _
        t        ||t        j                         || j                        }|xj                  d	z  c_        d
|j                  _        |j                  |dddd      | _        t#        d | j                  d       | _        d| _        y )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    uucee1Q(1a>CMM>)*6??3D "88Xh!"  $ 1a(9&!$.!		77HVA#&Q  0 tS]]D9r   Nr   r   r   r   r  r  -  s      r   r  c                       e Zd Zed        Zy)#TestPenalizedGLMBinomCountOracleHC2c                 Z   | j                   | j                  }}dt        j                  t	        |            z  }d}t        ||d d d | j                  f   t        j                         |      }|j                  |ddd      | _
        t        ||t        j                         || j                        }|xj                  d	z  c_        d
|j                  _        |j                  |ddddd      | _        t#        d | j                  d       | _        d| _        | j                  | _        y )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    uucee1Q(1a>CMM>)*6??3D "88Xh!"  $ 1a(9&!$.!		77HVA#&QU  < tS]]D9}}r   Nr   r   r   r   r  r  I  s     % %r   r  c                       e Zd Zed        Zy)CheckPenalizedGaussianc                     t        j                  d      }t         j                  j                  d       ||t         j                  j	                  t        |            z  z   }|S )Nr(   rF   )r*   sqrtr+   r,   r-   r   )r?   rC   sig_er4   s       r   r1   z&CheckPenalizedGaussian._generate_endogg  sD    
		sebiinnS\:::r   Nr   r   r   r   r  r  e  r   r   r  c                       e Zd Zed        Zy) TestPenalizedGLMGaussianOracleHCc                    | j                   | j                  }}|dz   }d}t        ||d d d | j                  f   t	        j
                               }|j                  |ddd      | _        t        ||t	        j
                         | j                        }|xj                  d	z  c_
        d
|j                  _        |j                  |ddd      | _        t        d | j                  d       | _        d| _        d| _        y )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    uucee1F1a>CMM>)*6??3DE88Xfc!"  $ 1a(9M#		77HVS !  # tS]]D9r   Nr   r   r   r   r   r   o  s     r   r   c                       e Zd Zed        Zy)!TestPenalizedGLMGaussianOracleHC2c                 *   | j                   | j                  }}|dz   }d}t        ||d d d | j                  f   t	        j
                               }|j                  |ddd      | _        t        ||t	        j
                         | j                        }|xj                  d	z  c_
        d
|j                  _        |j                  |dddd      | _        t        d | j                  d       | _        | j                  | _        d| _        d| _        y )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    uucee1F1a>CMM>)*6??3DE88Xfc!"  $ 1a(9M#		77HVS !  . tS]]D9}}r   Nr   r   r   r   r$  r$    s      r   r$  c                       e Zd Zed        Zy)TestPenalizedGLMGaussianL2c                    | j                   | j                  }}|dz   }d}t        ||d d d | j                  f   t	        j
                               }|j                  |ddd      | _        t        j                  |j                  d         d	k\  j                  t              }t        ||t	        j
                         t        j                  |
            }|xj                   dz  c_        |j                  |dddd      | _        t%        d | j                  d       | _        |j                  d   | _        d| _        d| _        y )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   uucee1F1a>CMM>)*6??3DE88Xfc!"  $ 99QWWQZ(A-55e<1a(9!&!;!;G!LN 	#77HVS !  / tS]]D9wwqzr   Nr   r   r   r   r(  r(    s      r   r(  c                   "    e Zd Zed        Zd Zy)TestPenalizedGLMGaussianL2Theilc                 4   | j                   | j                  }}|dz   }|j                  d   }d}t        j                  |      dd  }t        |||      }|j                  dd      | _        t        j                  |	      }t        ||t        j                         |
      }|xj                  dz  c_        |j                  |dddd      | _        || _        t!        d | j                  d       | _        |j                  d   | _        d| _        d| _        y )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    uucee1FGGAJffQim1{388'@8N(([A1a(9!$& 	!77HVS !  / tS]]D9wwqzr   c                 |   | j                   }| j                  }t        |j                  dk7  j	                         | 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        |j                         |j                         d       y )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    
 yyyydkkQ&++-t}}=T[[tyy!YY	( 4t,
,dhhz.B tyy	2Z0$,,z2J!	.Z0$,,z2J t	-TBr   N)r   r   r   r|   r>   r]   r   r   r   r0  r0    s      2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     s      7 F F ; . = 6 + +	~w 		^U 		nf 		>3 	U/ U/p$9  "7 "%: "!6 "$9 &%C#8 %CP&; *&; 0*? $!8+@ !8H0C-B 0Cj/  3 "2 &"5 &(; &8)< 8:	24 	2N(@ N:)A 8%*B %82 '= 0(> 2!7 6/C&< /Cr   