
p7]c        =   @   s\  d  Z  d d l Z d d l Z d d l m Z m Z m Z d d l Z	 d d l
 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 j j Z d d	 l m Z m Z d d
 l m Z m  Z  m! Z! d d l" m# Z# m$ Z$ d d l% m& Z& m' Z' m( Z( d e e f d     YZ) d e e f d     YZ* d e e f d     YZ+ d e e f d     YZ, e j- j. e j- j/ e0   Z1 e j- j2 e1 d d  Z3 e	 j4 e3  Z5 e j- j2 e1 d d  Z3 e	 j4 e3  Z6 e6 d d d d d g j7   Z8 d e9 f d     YZ: d  e: f d!     YZ; d" e: f d#     YZ< d$ e: f d%     YZ= d& e: f d'     YZ> d( e9 f d)     YZ? d* e9 f d+     YZ@ d, e9 f d-     YZA e jB d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d8 d9 d: d; g  ZC e jB d d d d d d d d d d d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm g<  jD dn do dp dq ZE dr e9 f ds     YZF dt e9 f du     YZG dv e9 f dw     YZH dx e: f dy     YZI dz e: f d{     YZJ d| eJ f d}     YZK d S(~   s,   
unit test for GAM

Author: Josef Perktold

iN(   t   assert_allcloset   assert_equalt   assert_(   t   Poissont   Logitt   Probit(   t   GLM(   t   family(   t   TheilGLS(   t   PenalizedMixin(   t   BSplinest   CyclicCubicSplines(   t   GLMGamt   GLMGamResultst   GLMGamResultsWrapper(   t   matrix_sqrtt   transf_constraintsi   (   t   results_plst   results_mpg_bst   results_mpg_bs_poissont   PoissonPenalizedc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   !   s   t   LogitPenalizedc           B   s   e  Z RS(    (   R   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   %   s   t   ProbitPenalizedc           B   s   e  Z RS(    (   R   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   )   s   t   GLMPenalizedc           B   s   e  Z RS(    (   R   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   -   s   t   resultss   motorcycle.csvs	   autos.csvt   city_mpgt   fuelt   drivet   weightt   hpt   CheckGAMMixinc           B   s)   e  Z e d     Z d   Z d   Z RS(   c         C   s   t  t j t d  d d g } t j | j j d   } t |  } | j j |  } | j	 j | j
 d  j |  } t |  } | | | f S(   Nt   timest   dfi   i    (   R   t   npt   asarrayt   data_mcyclet
   atleast_2dt   basist   meanR   t   dott   Tt   penalty_matricesR   (   t   clst   cc_ht   constraintst   transft   exogt   penalty_matrixt   restriction(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   _init=   s    ""c         C   s   |  j  } |  j } t | j | j d d t t j | j    | j |  j d d d d t | j	 | j	 |  j d d t t j | j
  | j t j |  j  d d d d d  S(   Nt   rtolgh㈵>gư>t   atolg&.>g:0yE>(   t   res1t   res2R    t   paramsR#   R$   t
   cov_paramst   Vpt   covp_corrfactt   scalet   bset   set   sqrt(   t   selfR6   R7   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   test_paramsJ   s    		c         C   s2   |  j  } |  j } t | j | j d |  j d  S(   NR4   (   R6   R7   R    t   fittedvaluest   fitted_valuest   rtol_fitted(   R@   R6   R7   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   test_fittedX   s    		(   R   R   t   classmethodR3   RA   RE   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR    ;   s   	t   TestTheilPLS5c           B   s&   e  Z d  Z e d    Z d   Z RS(   s
   data-priorc   	      C   s   |  j    \ } } } t d } t | | d | } d } d } d | | |  _ } | j d | d |  j  |  _ t j |  _	 d |  _
 d	 |  _ d  S(
   Nt   accelt   r_matrixg<mǳO?g<-.@i   t
   pen_weightt   cov_typegHz>g]j?(   R3   R%   R   t   pwt   fitRK   R6   R   t   pls5R7   RD   R;   (	   R,   R0   R1   R2   t   endogt   modpt	   s_scale_rt   sigma_eRL   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   setup_classc   s    
	c         C   sf   |  j  } |  j } | j } | j j d | d d  } t t j | j    | j	 |  j
 d d d  S(   NRJ   RK   t   sandwichR4   g-C6?(   R6   R7   t   penalization_factort   modelRM   R    R#   R$   R9   t   VeR;   (   R@   R6   R7   RL   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   test_cov_robusts   s    			(   R   R   RK   RF   RS   RX   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRG   _   s   t   TestGLMPenalizedPLS5c           B   s&   e  Z d  Z e d    Z d   Z RS(   t	   nonrobustc         C   s   |  j    \ } } } t d } t j d |  } t | | d t j   d | } d } d | d |  _ | _ | j	 d |  j
 d	 d
 d d d d d t d d  |  _ t j |  _ d |  _ d |  _ d  S(   NRH   R2   R   t   penalg<mǳO?i   i   RK   t   methodt   bfgst   maxiterid   t   dispi    t   trimR<   t   x2gh㈵>g#n
?(   R3   R%   t   smpent   L2ContraintsPenaltyR   R   t   GaussianRL   RJ   RM   RK   t   FalseR6   R   RN   R7   RD   R;   (   R,   R0   R1   R2   RO   t   pent   modRQ   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS      s    
		c         C   si   |  j  } |  j } | j j } | j j d | d d  } t t j | j    | j	 |  j
 d d d  S(   NRJ   RK   t   HC0R4   g-C6?(   R6   R7   RV   RJ   RM   R    R#   R$   R9   RW   R;   (   R@   R6   R7   RL   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   _test_cov_robust   s    		(   R   R   RK   RF   RS   Ri   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRY   |   s   t   TestGAM5Pirlsc           B   s   e  Z d  Z e d    Z RS(   RZ   c         C   s   d } t  d j } t  d } t | d d g d d } t | d | d	 d
 | d } | j   |  _ t j |  _ d |  _	 d
 |  _
 d  S(   NgO?R!   RH   R"   i   R.   t   centert   smoothert   alphai   i   g-q=(   R%   t   valuesR   R   RM   R6   R   RN   R7   RD   R;   (   R,   t   s_scalet   xRO   t   cct   gam_cc(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS      s    
 	(   R   R   RK   RF   RS   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRj      s   t   TestGAM5Bfgsc           B   s&   e  Z d  Z e d    Z d   Z RS(   RZ   c         C   s   d } t  d j } t  d } t | d d g d d } t | d | d	 d
 | d } | j d d  |  _ t j |  _ d |  _	 d
 |  _
 d  S(   NgO?R!   RH   R"   i   R.   Rk   Rl   Rm   i   i   R\   R]   gh㈵>(   R%   Rn   R   R   RM   R6   R   RN   R7   RD   R;   (   R,   Ro   Rp   RO   Rq   Rr   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS      s    
 	c         C   su   |  j  } |  j } | j d  | j j j d d ! } t | | j d d !d d t | | j	 d d !d |  j
 d  S(   Ni   i   R4   gvIh%<=(   R6   R7   t   predictt   NoneRV   Rl   Rp   R    RB   RC   RD   (   R@   R6   R7   t	   predicted(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   test_predict   s    		"(   R   R   RK   RF   RS   Rw   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRs      s   t   TestGAM6Pirlsc           B   s    e  Z e d     Z d   Z RS(   c         C   sY   d } t  t d j d d g } t t d d | d d | d	 } | j   |  _ d  S(
   NgO?R!   R"   i   RH   Rl   Rm   i   i   (   R   R%   Rn   R   RM   R6   (   R,   Ro   Rq   Rr   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS      s
    c         C   s   |  j  } | j   } d |  _ t j d d d d d d d d	 d
 d d d d d d g  } t | j d  | d |  j t | j d  | d |  j | j d  | j
 j j d d ! } t | | d d !d |  j d  S(   NgHz>gOę@g z߰!	@g@gld@gDi/@gt;+@g(T-@g	g@-@g6<.@geBW-@gc)+@gx7\\}&@g|x#@g Z @i   R4   i   i   (   R6   t   get_predictionRD   R#   t   arrayR    RB   t   predicted_meanRt   Ru   RV   Rl   Rp   (   R@   R6   t   predt   pls6_fittedvaluesRv   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRE      s     						

"(   R   R   RF   RS   RE   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRx      s   	t   TestGAM6Bfgsc           B   s    e  Z e d     Z d   Z RS(   c         C   s_   d } t  t d j d d g } t t d d | d d | d	 } | j d
 d  |  _ d  S(   NgO?R!   R"   i   RH   Rl   Rm   i   i   R\   R]   (   R   R%   Rn   R   RM   R6   (   R,   Ro   Rq   Rr   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS      s
    c         C   s   |  j  } | j   } d |  _ t j d d d d d d d d	 d
 d d d d d d g  } t | j d  | d |  j t | j d  | d |  j d  S(   Ngh㈵>gOę@g z߰!	@g@gld@gDi/@gt;+@g(T-@g	g@-@g6<.@geBW-@gc)+@gx7\\}&@g|x#@g Z @i   R4   (   R6   Ry   RD   R#   Rz   R    RB   R{   (   R@   R6   R|   R}   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRE      s    						
(   R   R   RF   RS   RE   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR~      s   	t   TestGAM6Bfgs0c           B   s    e  Z e d     Z d   Z RS(   c         C   sW   d } t  t d j d d g } t t d d | d d } | j d	 d
  |  _ d  S(   NgO?R!   R"   i   RH   Rl   Rm   i    R\   R]   (   R   R%   Rn   R   RM   R6   (   R,   Ro   Rq   Rr   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS     s
    	c         C   s   |  j  } | j   } d |  _ t j d d d d d d d d	 d
 d d d d d d g  } t | j d  | d |  j t | j d  | d |  j d  S(   Ngh㈵>gGmg@g+8M@g4vqr @gd8i@gϲO!@g5I9h/@g%,vs0@g׎\0@gH4V1@gdX31@g)-0@g:{+@gO'@gM_,C%@i   R4   (   R6   Ry   RD   R#   Rz   R    RB   R{   (   R@   R6   R|   R}   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRE     s    						
(   R   R   RF   RS   RE   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR     s   	gOę@g z߰!	@g@gld@gDi/@gt;+@g(T-@g	g@-@g6<.@geBW-@gc)+@gx7\\}&@g|x#@g Z @gΜ`eտgV_ӿg3}]8ɿg)H#gI7g_1Gr?g Gl?gĩpk?g%ٿ?g*di?gk5Eg0LgfIUg;\<MPgIv?g"KXgSeg\ȲBg|dig<g߿g܋ֿg	bGֿgjh9JտgA6>MԿgp\i ӿg"Αȿg3$ƿgx!ĿghiNgqHĻg[	>տg:eԿg{nӿgxRkҿgEmѿg'Iȿg5'Cǿg<|ƿg>W¿g͸?Ϝg1%ڿglQ6ڿgdڿg}4ڿg1D+ٿgh#ԿgWPh\ӿg%Cҿg2XοgA˿i
   i   t   ordert   Ft   TestGAM6ExogBfgsc           B   s)   e  Z e d     Z d   Z d   Z RS(   c         C   s   d } t  d j d } t t  d j d d g d d } t t  d t j | d	 f  d
 | d d	 | d } | j d d  |  _ d  S(   NgO?R!   i    R"   i   R.   Rk   RH   i   Rl   Rm   i   R\   R]   (	   R%   t   shapeR   Rn   R   R#   t   onesRM   R6   (   R,   Ro   t   nobsRq   Rr   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS   D  s    	c         C   s\   |  j  } | j   } d |  _ t | j d  t d |  j t | j d  t d |  j d  S(   Ngh㈵>i   R4   (   R6   Ry   RD   R    RB   R}   R{   (   R@   R6   R|   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRE   N  s    		
c         C   s*   |  j  j j } t | d  t d d d  S(   Ni
   R4   gvIh%<=(   R6   RV   R0   R    t	   pls6_exog(   R@   R0   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt	   test_exogX  s    (   R   R   RF   RS   RE   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   B  s   
	
t   TestGAM6ExogPirlsc           B   s)   e  Z e d     Z d   Z d   Z RS(   c         C   s   d } t  d j d } t t  d j d d g d d } t t  d t j | d	 f  d
 | d d	 | d } | j d d  |  _ d  S(   NgO?R!   i    R"   i   R.   Rk   RH   i   Rl   Rm   i   R\   t   pirls(	   R%   R   R   Rn   R   R#   R   RM   R6   (   R,   Ro   R   Rq   Rr   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS   `  s    	c         C   s\   |  j  } | j   } d |  _ t | j d  t d |  j t | j d  t d |  j d  S(   Ngh㈵>i   R4   (   R6   Ry   RD   R    RB   R}   R{   (   R@   R6   R|   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRE   j  s    		
c         C   s*   |  j  j j } t | d  t d d d  S(   Ni
   R4   gvIh%<=(   R6   RV   R0   R    R   (   R@   R0   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   t  s    (   R   R   RF   RS   RE   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   ^  s   
	
t
   TestGAMMPGc           B   s)   e  Z e d     Z d   Z d   Z RS(   c      	   C   s   t  j d d g  } t  j d d g  } t d d g j } t j d d t } t | d	 d
 d g d d } t t d d | d | d d | | d j   } | j	   |  _
 t t d d | d | d d | | d j   } | j	 d d  |  _ d  S(   Ngj=^Y@gv3#?gܓ>gɱ ?R   R   s   fuel + drivet   dataR"   i   i   R.   Rk   R   R0   Rl   Rm   i   i   R\   t   newton(   R#   Rz   t   df_autosRn   t   patsyt   dmatrixR   R   t   tolistRM   t   res1at   res1b(   R,   t   spRo   t   x_splineR0   Rq   Rr   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS   |  s    c         C   sp   t  j j t d d  } t j |  } | j } x9 |  j |  j g D]% } | j	 j
 } t | | d d qC Wd  S(   NR   s   autos_exog.csvR5   g+=(   t   ost   patht   joint   cur_dirt   pdt   read_csvRn   R   R   RV   R0   R    (   R@   t	   file_patht   df_exogt	   res2_exogR6   R0   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR     s    	c         C   s   t  j j t d d  } t j | d d } | j d | _ | d j } | d j } x{ |  j |  j	 g D]g } | j
   } d |  _ t | j | d	 d
 t | j | d	 d
 d } t | j | | d	 d
 qj Wd  S(   NR   s   autos_predict.csvt	   index_cols	   Row.namesi   RM   t   se_fitgh㈵>R4   g|=(   R   R   R   R   R   R   t   indexRn   R   R   Ry   RD   R    RB   R{   t   se_mean(   R@   R   t   df_predt   res2_fittedvaluest   res2_se_meanR6   R|   t	   corr_fact(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRE     s    	(   R   R   RF   RS   R   RE   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   z  s   		t   TestGAMMPGBSc           B   sJ   e  Z e d     Z e d    Z d   Z d   Z d   Z d   Z RS(   c         C   sN  t  j d d g  } t  j d d g  |  _ } t d d g j } t  j t j d d t  |  _ t	 | d	 d
 d g d d d g d d d g d d d t
 } d | | d } t t d d |  j d | d | j   } | j d t
  |  _ | j d d d t
  |  _ |  j j |  _ t j |  _ d |  _ d |  _ d d g |  _ d  S(   Ng??g@{LǕz@gj{ZxZ>gE?R   R   s   fuel + driveR   R"   i   i
   t   degreei   t   variable_namesR.   Rk   t   include_intercepti   i   R   R0   Rl   Rm   t   use_tR\   R   g:0yE>g B޾AgO&#@(   R#   Rz   Ro   R   Rn   R$   R   R   R0   R
   t   TrueR   R   RM   R   R   t   _resultsR6   R   t   mpg_bsR7   RD   R;   Rm   (   R,   R   Ro   R   t   bst   alpha0t   gam_bs(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS     s$    !!			c         C   s   d  S(   N(    (   R,   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR3     s    c         C   sQ   |  j  } |  j } t | j | j d d | j   } t | | j d d d  S(   NR4   gư>(   R6   R7   R    t   edft   edf_allt   get_hat_matrix_diagt   hat(   R@   R6   R7   R   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   test_edf  s
    		c         C   sU   |  j  } |  j } | j j j } | d j } t | | j j | j j	 d d d  S(   Ni    R4   gư>(
   R6   R7   RV   Rl   t	   smootherst   cov_der2R    t   smooth0t   St   S_scale(   R@   R6   R7   R   t   pen_matrix0(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   test_smooth  s    		c         C   s   |  j  } |  j } | j |  j d d !| j j j d d ! } t | | j d d !d d t | | j	 d d !d |  j
 d  S(   Ni   i   R4   gvIh%<=(   R6   R7   Rt   R0   RV   Rl   Rp   R    RB   RC   RD   (   R@   R6   R7   Rv   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRw     s    		,c         C   s  |  j  j } t | j |  j  t |  j  j d d d | j   d } t | d d g d d t | j |  j  t | j j d  | j j	   } t | d  d   d  d  f d  t | d  d  d  d   f d  t |  j  j d d d t
 j j d	  | j d
 d d d  \ } } t | d d g d d t | j |  j  t | j j d  | j j	   } t | d  d   d  d  f d  t | d  d  d  d   f d  t |  j  j d d d d  S(   NgJp@R4   gvIh%<=i    gK}v@g5<`@gMbP?i   i t   k_foldsi   t   k_gridi   g    cAg{9@gh㈵>(   R6   RV   R   Rm   R    R<   t   select_penweightR[   t	   start_idxR1   R#   t   randomt   seedt   select_penweight_kfold(   R@   Rg   t	   alpha_aict   pmt   alpha_cvt   _(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   test_crossval  s(    ####(	   R   R   RF   RS   R3   R   R   Rw   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR     s   				t   TestGAMMPGBSPoissonc           B   sS   e  Z e d     Z e d    Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   s_  t  j d d g  } t  j d d g  |  _ } t d d g j } t j d d t |  _ t | d	 d
 d g d d d g d d d g d d d t	 } d | | d } t
 t d d |  j d | d t j   d | } |  j j j | j j } | | j (| j d t  |  _ | j d d d t	  |  _ |  j j |  _ t j |  _ d |  _ d |  _ d  S(   Ng<,l@gH=<`Agj{ZxZ>gE?R   R   s   fuel + driveR   R"   i   i
   R   i   R   R.   Rk   R   i   i   R   R0   Rl   R   Rm   R   R\   R   g:0yE>(   R#   Rz   Ro   R   Rn   R   R   R0   R
   R   R   R   R   t   design_infot   column_namesRl   t	   col_namest
   exog_namesRM   Re   R   R   R   R6   R   t   mpg_bs_poissonR7   RD   R;   (   R,   R   Ro   R   R   R   R   t   xnames(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS   
  s&    !	
	c         C   s   d  S(   N(    (   R,   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR3   '  s    c         C   s   |  j  } |  j } t | j | j d d | j   } t | | j d d t | j | j d d t | j | j d d t | j	 | j
 d d d  S(   NR4   gư>g:0yE>(   R6   R7   R    R   R   R   R   t   aict   deviancet   df_residt   residual_df(   R@   R6   R7   R   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   +  s    		c         C   sU   |  j  } |  j } | j j j } | d j } t | | j j | j j	 d d d  S(   Ni    R4   gư>(
   R6   R7   RV   Rl   R   R   R    R   R   R   (   R@   R6   R7   R   R   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   5  s    		c         C   s  |  j  } |  j } | j t j d d !| j j j d d ! } t | | j	 d d !d d t | | j
 d d !d |  j | j t j d d !| j j j d d !d t } t | | j d d !d |  j t | j j d d g  t | j j d d g  d  S(   Ni   i   R4   gvIh%<=t   lineari   (   R6   R7   Rt   R   t   ilocRV   Rl   Rp   R    RB   RC   RD   R   t   linear_predictorsR   R   Rn   (   R@   R6   R7   Rv   t   linpred(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRw   >  s    		
)	
c         C   s   |  j  } |  j } | j d t d d d d d g  } t | j d  | j d d	 t | j d  | j d d
 t	 | j
 d  | j  d  S(   Nt   skip_singlet   combine_termsR   R   R   R   i   R4   gHz>gư>(   R6   R7   t   wald_test_termsR   R    t	   statistict   pTerms_chi_sqt   pvaluest	   pTerms_pvR   t   df_constraintst	   pTerms_df(   R@   R6   R7   t   wtt(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt	   test_waldT  s    		c         C   s?   |  j  } | j j } | j j   } t | d | d d d  S(   Ni    R4   g-C6
?(   R6   RV   Rm   R   R    (   R@   R6   t
   alpha_mgcvt   res_s(    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   test_select_alpha_  s    	(
   R   R   RF   RS   R3   R   R   Rw   R   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR     s   	
				t   TestGAMMPGBSPoissonFormulac           B   s    e  Z e d     Z d   Z RS(   c         C   s5  t  j d d g  } t  j d d g  |  _ } t j d d t |  _ t d d g j } t | d	 d
 d g d d d g d d d g d d d t	 } d | | d } t
 j d t d | d t j   d | } | j d t  |  _ | j d d d t	  |  _ |  j j |  _ t j |  _ d |  _ d |  _ d  S(   Ng<,l@gH=<`Agj{ZxZ>gE?s   fuel + driveR   R   R   R"   i   i
   R   i   R   R.   Rk   R   i   i   s   city_mpg ~ fuel + driveRl   R   Rm   R   R\   R   g:0yE>(   R#   Rz   Ro   R   R   R   R0   Rn   R
   R   R   t   from_formulaR   R   RM   Re   R   R   R   R6   R   R   R7   RD   R;   (   R,   R   Ro   R   R   R   R   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyRS   i  s$    !			c         C   s  |  j  } d d d d d d d d d	 d
 d d d d d d d d d d d d d d g } t | j j |  t | j j j | d   t | j d d !j j d d g  t | j	 j j |  t
 t | j	 t j   t
 t | t   t
 t | j t   d  S(   Nt	   Intercepts   fuel[T.gas]s   drive[T.fwd]s   drive[T.rwd]t	   weight_s0t	   weight_s1t	   weight_s2t	   weight_s3t	   weight_s4t	   weight_s5t	   weight_s6t	   weight_s7t	   weight_s8t	   weight_s9t
   weight_s10t   hp_s0t   hp_s1t   hp_s2t   hp_s3t   hp_s4t   hp_s5t   hp_s6t   hp_s7t   hp_s8i   i   i   (   R   R   RV   R   t   design_info_linearR   RB   R   Rn   R8   R   t
   isinstanceR   t   SeriesR   R   R   (   R@   R   R   (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   test_names_wrapper  s    		#(   R   R   RF   RS   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyR   f  s   (L   t   __doc__R   t   numpyR#   t   numpy.testingR    R   R   t   pandasR   R   t#   statsmodels.discrete.discrete_modelR   R   R   t+   statsmodels.genmod.generalized_linear_modelR   t   statsmodels.genmod.familiesR   t(   statsmodels.sandbox.regression.penalizedR   t   statsmodels.base._penalizedR	   t   statsmodels.base._penaltiest   baset
   _penaltiesRb   t   statsmodels.gam.smooth_basisR
   R   t*   statsmodels.gam.generalized_additive_modelR   R   R   t   statsmodels.tools.linalgR   R   R   R   R   R   R   R   R   R   R   t   dirnamet   abspatht   __file__R   R   R   R   R%   t	   df_autos_t   dropnaR   t   objectR    RG   RY   Rj   Rs   Rx   R~   R   Rz   R}   t   reshapeR   R   R   R   R   R   R   (    (    (    sC   lib/python2.7/site-packages/statsmodels/gam/tests/test_penalized.pyt   <module>   s   $"				$															3Z_