
p7]c           @   sY  d  Z  d d l m Z d d l m Z d d l Z d d l Z d d l Z d d l	 m
 Z
 m Z m Z m Z m Z m Z d d l Z d d l m Z d d l j Z d d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z d d l  m! Z! m" Z" d d l# m$ Z$ d Z% d Z& d Z' d Z( d Z) e* Z+ e+ rbd d l, m- Z- e- d  Z. n d Z. d   Z0 d   Z1 d e2 f d     YZ3 d e2 f d     YZ4 d e3 f d     YZ5 d e5 f d     YZ6 d e3 f d      YZ7 d! e3 f d"     YZ8 d# e3 f d$     YZ9 d% e3 e4 f d&     YZ: d' e3 f d(     YZ; d) e3 f d*     YZ< d+ e3 f d,     YZ= d- e3 e4 f d.     YZ> d/ e3 f d0     YZ? d1 e3 f d2     YZ@ d3 e3 f d4     YZA d5 e3 f d6     YZB d7 e3 f d8     YZC d9   ZD d:   ZE d;   ZF d< e3 f d=     YZG d>   ZH d?   ZI d@   ZJ e jK jL dA    ZM d dB  ZN e jK jO dC    ZP dD   ZQ dE   ZR dF   ZS dG   ZT dH e2 f dI     YZU dJ eU f dK     YZV dL eU f dM     YZW dN eU f dO     YZX dP eU f dQ     YZY dR eU f dS     YZZ dT eU f dU     YZ[ dV eU f dW     YZ\ dX eU f dY     YZ] dZ eU f d[     YZ^ d\ eU f d]     YZ_ d^ eU f d_     YZ` d` eU f da     YZa db eU f dc     YZb dd eU f de     YZc df eU f dg     YZd dh   Ze di e2 f dj     YZf dk ef f dl     YZg dm ef f dn     YZh do ef f dp     YZi dq ef f dr     YZj ds e2 f dt     YZk du ek f dv     YZl dw ek f dx     YZm dy ek f dz     YZn d{ ek f d|     YZo e jK jp d}  d~    Zq d   Zr d   Zs d   Zt d e2 f d     YZu d e2 f d     YZv d   Zw d   Zx d S(   s   
Test functions for models.GLM
i(   t   division(   t   rangeN(   t   assert_almost_equalt   assert_equalt   assert_raisest   assert_allcloset   assert_t   assert_array_less(   t   stats(   t   GLM(   t   add_constant(   t   PerfectSeparationError(   t   discrete_model(   t   DomainWarning(   t   approx_fprimet   approx_hess(   t   cpunishi   i   i   i   i    (   t   PdfPagess   test_glm.pdfc         C   s   t  r |  j |  n  d  S(   N(   t
   pdf_outputt   savefig(   t   pdft   fig(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   close_or_save(   s    c           C   s   t  r t j   n  d  S(   N(   R   R   t   close(    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   teardown_module-   s    t   CheckModelResultsMixinc           B   s   e  Z d  Z e Z d   Z e Z d   Z e Z d   Z	 e Z
 d   Z e Z d   Z e Z d   Z e Z d   Z e Z d   Z e Z d	   Z e Z d
   Z d   Z e Z d   Z d   Z d   Z e j j d    Z  e j j d    Z! RS(   so   
    res2 should be either the results from RModelWrap
    or the results as defined in model_results_data
    c         C   s#   t  |  j j |  j j |  j  d  S(   N(   R   t   res1t   paramst   res2t   decimal_params(   t   self(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_params9   s    c         C   s1   t  |  j j |  j j d d |  j d d d  S(   Nt   atoli
   t   rtolgh㈵>(   R   R   t   bseR   t   decimal_bse(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_standard_errors>   s    c         C   s   d d  l  } | j  |  j j  } | d  d   d f c |  j j j j |  j j  d 9<d |  j } t	 j
   $ t	 j d d t |  j j } Wd  QXt j |  j j |  j j |  j j | |  j j f  } t | | d d d | d  S(	   Nii   i
   t   ignoret   categoryR!   gư>R    (   t   copyR   t   residsR   t   familyt   linkt   derivt   mut   decimal_residst   warningst   catch_warningst   simplefiltert   FutureWarningt   resid_anscombet   npt   column_stackt   resid_pearsont   resid_deviancet   resid_workingt   resid_responseR   (   R   R'   t   resid2R    t   resid_aR(   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_residualsC   s    8c         C   s   |  j  j d k r d } n d } t |  j  j j t j j  r |  j  j j j |  j  j j	 |  j  j
 |  j  j j |  j  j j d d } d | d |  j  j d } n |  j  j } t | | |  j j |  j  d  S(   Ni   i   i    t   scalei(   R   R<   t
   isinstancet   modelR)   t   smt   familiest   NegativeBinomialt   logliket   endogR,   t   var_weightst   freq_weightst   df_modelt   aicR   R   t   aic_Rt   decimal_aic_R(   R   t   doft   llfRG   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt
   test_aic_RV   s    			c         C   s   t  |  j j j t j j t j j t j j f  r |  j j j j	 |  j j j
 |  j j |  j j j |  j j j d d } d | d |  j j d |  j j } n |  j j |  j j } t | |  j j |  j  d  S(   NR<   i   ii   (   R=   R   R>   R)   R?   R@   t   Gammat   InverseGaussianRA   RB   RC   R,   RD   RE   RF   t   nobsRG   R   R   t	   aic_Statat   decimal_aic_Stata(   R   RK   RG   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_aic_Stataj   s    			)c         C   s#   t  |  j j |  j j |  j  d  S(   N(   R   R   t   devianceR   t   decimal_deviance(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_deviancez   s    c         C   s#   t  |  j j |  j j |  j  d  S(   N(   R   R   R<   R   t   decimal_scale(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt
   test_scale   s    c         C   s   t  |  j j j t j j t j j t j j f  r~ |  j j j j	 |  j j j
 |  j j |  j j j |  j j j d d } n |  j j } t | |  j j |  j  d  S(   NR<   i   (   R=   R   R>   R)   R?   R@   RM   RN   RA   RB   RC   R,   RD   RE   RK   R   R   t   decimal_loglike(   R   RK   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_loglike   s    		c         C   s#   t  |  j j |  j j |  j  d  S(   N(   R   R   t   null_devianceR   t   decimal_null_deviance(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_null_deviance   s    c         C   s#   t  |  j j |  j j |  j  d  S(   N(   R   R   t   bicR   t	   bic_Statat   decimal_bic(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_bic   s    c         C   s    t  |  j j j |  j j  d  S(   N(   R   R   R>   t   df_residR   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_degrees   s    c         C   s#   t  |  j j |  j j |  j  d  S(   N(   R   R   t   fittedvaluesR   t   decimal_fittedvalues(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_fittedvalues   s    c         C   s   |  j  j } | |  j  j } t j j t j |   d } t j j d  |  j  j } t j	 | | | | f  } t
 |  j  j |  t
 |  j  j |  t
 |  j  j   |  d  S(   Ni   g?(   R   R   R"   R   t   normt   sfR3   t   abst   isfR4   R   t   tvaluest   pvaluest   conf_int(   R   R   Rj   Rk   t
   half_widthRl   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_tpvalues   s    c         C   s>   t  |  j d  r: t |  j j |  j j d d d d n  d  S(   Nt   pearson_chi2R    gư>R!   (   t   hasattrR   R   R   Ro   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_pearson_chi2   s    c         C   s   |  j  j   d  S(   N(   R   t   summary(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_summary   s    c         C   s   |  j  j   d  S(   N(   R   t   summary2(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_summary2   s    ("   t   __name__t
   __module__t   __doc__t	   DECIMAL_4R   R   R#   R$   R-   R;   RI   RL   RQ   RR   RT   RU   RV   RW   RX   RY   R[   R\   R_   R`   Rb   Rd   Re   Rn   Rq   t   pytestt   markt   smokeRs   Ru   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   2   s8   														t   CheckComparisonMixinc           B   s   e  Z d    Z d   Z RS(   c   	      C   sw  |  j  } |  j } t | j | j d d | j j | j d  } | j j | j d  } t | | d d | j j | j d  } t | | j d  d d | j j | j  } t | t	 j
 | j d  d d | j j | j d d	 t } | j j | j d  } t | | d d | j j | j d d	 t } | j j | j d  } t | | d d
 d  S(   NR!   g|=g\(\?i    R    g#B;i   gƠ>t   observedg&.>(   R   t   resdR   RK   R>   t	   score_obsR   t   scoret   sumR3   t   zerost   shapet   hessiant   Falset   True(	   R   R   R   t
   score_obs1t
   score_obsdt   score1t   score0t   hessian1t   hessiand(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_compare_discrete   s     		#c         C   s2  |  j  } | j j | j d d \ } } } t | d d d t | d d d t | d  | j j | j d d \ } } } t | d d d t t j |  d t	 |  t | d  | j j
 d  d   d f d } | j j | j d	 | \ } } } t d
 |  t d
 |  t | d  d  S(   Nt   k_constraintsi   i    R    g#B;g|=t   msgi   t
   exog_extrag?(   R   R>   t
   score_testR   R   R   R   R3   t   isnant   reprt   exogR   (   R   R   t   stt   pvt   dfR   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_score_test   s    	$$ $(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR}      s   	t   TestGlmGaussianc           B   s    e  Z e d     Z d   Z RS(   c         C   s   t  |  _ t |  _ t |  _ t  |  _ d d l m } | d t	  |  _
 t |  j
 j d t	 |  j
 _ t |  j
 j |  j
 j d t j j   j   |  _ d d l m } |   |  _ d S(	   sC   
        Test Gaussian family with canonical identity link
        i(   t   loadt	   as_pandast   prependR)   i   (   t   LongleyN(   t	   DECIMAL_3R-   t	   DECIMAL_2R   t	   DECIMAL_0R_   R#   t   statsmodels.datasets.longleyR   R   t   dataR
   R   R	   RC   R?   R@   t   Gaussiant   fitR   t   results.results_glmR   R   (   t   clsR   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   setup_class   s    				c         C   s`  |  j  } d d l m } | |  j j |  j j  j   } | |  _ t | j	 | j	 d d | j
 j | j d d  } | j d  d   d  f | j | j
 j } t | | d d | j
 j | j d d } | j d  d   d  f | j
 j } t | | d d | j
 j | j d d  } d | j | j
 j j j | j
 j  } t | | d d d  S(	   Ni(   t   OLSR!   g|=R<   g:0yE>i   g      (   R   t#   statsmodels.regression.linear_modelR   R   RC   R   R   R   R   RK   R>   R   R   t   Nonet   residR<   R   t   Tt   dot(   R   R   R   R   R   R   t	   hess_obs1t	   hess_obsd(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_compare_OLS  s    	!	*#)(   Rv   Rw   t   classmethodR   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR      s   t   TestGlmGaussianGradientc           B   s   e  Z e d     Z RS(   c         C   s   t  |  _ t |  _ t |  _ t |  _ d d l m } | d t	  |  _
 t |  j
 j d t	 |  j
 _ t |  j
 j |  j
 j d t j j   j d d  |  _ d d	 l m } |   |  _ d
 S(   sC   
        Test Gaussian family with canonical identity link
        i(   R   R   R   R)   t   methodt   bfgsi   (   R   N(   R   R-   R   R   R   R_   R#   R   R   R   R   R
   R   R	   RC   R?   R@   R   R   R   R   R   R   (   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   #  s    				!(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   "  s   t   TestGaussianLogc           B   s   e  Z e d     Z RS(   c         C   s  t  |  _ t |  _ t  |  _ t |  _ d } t j |  } t j	 j
 d  t j t j | d f  | | d f |  _ t j d d | d | d  d t j	 j |  |  _ t |  j |  j d	 t j j t j j j    } | j   |  _ d d
 l m } |   |  _ d  S(   Nid   i1  i   i   g      g{Gz?g-C6?gMbP?R)   (   t   GaussianLog(   R   RI   R   RQ   RX   t	   DECIMAL_1R[   R3   t   aranget   randomt   seedt   c_t   onest   Xt   expt   randnt   lnyR	   R?   R@   R   t   linkst   logR   R   R   R   R   (   R   RO   t   xt   GaussLog_ModelR   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   8  s    				,!!(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   7  s   t   TestGaussianInversec           B   s   e  Z e d     Z RS(   c         C   sE  t  |  _ t  |  _ t |  _ t  |  _ t |  _ d } t j |  } t j	 j
 d  d d | | d d t j	 j |  } t j t j | d f  | | d f |  _ d d | d	 | d d
 d	 t j	 j |  |  _ t |  j |  j d t j j t j j j    } | j   } | |  _ d d l m } |   |  _ d  S(   Nid   i1  g      ?g       @i   g?i   g{Gz?gMbP?iR)   (   t   GaussianInverse(   R   R_   RI   R   RQ   RX   R-   R3   R   R   R   R   R   R   R   t   y_invR	   R?   R@   R   R   t   inverse_powerR   R   R   R   R   (   R   RO   R   t   yt   InverseLink_Modelt   InverseLink_ResR   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   V  s"    					*,5!	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   U  s   t   TestGlmBinomialc           B   s   e  Z e d     Z RS(   c         C   s   t  |  _ t |  _ d d l m } d d l m } | d t  } t	 | j
 d t | _
 t | j | j
 d t j j   j   |  _ |   |  _ d S(	   sV   
        Test Binomial family with canonical logit link using star98 dataset.
        i(   R   i   (   t   Star98R   R   R)   N(   R   R-   R   R_   t   statsmodels.datasets.star98R   R   R   R   R
   R   R	   RC   R?   R@   t   BinomialR   R   R   (   R   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   t  s    		(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   s  s   t   TestGlmBernoullic           B   s    e  Z e d     Z d   Z RS(   c         C   s   d d l  m } |   |  _ t |  j j |  j j d t j j   j	   |  _
 t j |  j j |  j j  } | j	 d |  j
 j d d t  |  _ d  S(   Ni   (   t   LbwR)   t   start_paramsg?t   disp(   R   R   R   R	   RC   R   R?   R@   R   R   R   t   discretet   LogitR   R   R   (   R   R   t   modd(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    c         C   s  |  j  } |  j } | j j | j d | j j d  d   d f d \ } } } d } t | | d d | j j | j d | j j d  d   d f d \ } } } d } t | | d d t t d	   } | j	 d
  t
 | j | j d  d   | f d t j j   j   } | j j | j d | j j d  d   d f }	 t j |	 d   j   }	 d }
 t |	 |
 d d d } d  S(   NR   i   i   g"<laA)?R!   g-C6?i    ga}{?i	   i   R)   igjCޓJ@gJpJV?s          data = read.csv("...statsmodels\statsmodels\genmod\tests\results\stata_lbw_glm.csv")

        data["race_black"] = data["race"] == "black"
        data["race_other"] = data["race"] == "other"
        mod = glm(low ~ age + lwt + race_black + race_other + smoke + ptl + ht + ui, family=binomial, data=data)
        options(digits=16)
        anova(mod, test="Rao")

        library(statmod)
        s = glm.scoretest(mod, data["age"]**2)
        s**2
        s = glm.scoretest(mod, data["lwt"]**2)
        s**2
        (   gjCޓJ@gJpJV?(   R   R   R>   R   R   R   R   t   listR   t   popR	   RC   R?   R@   R   R   R3   t   asarrayt   ravel(   R   R   R   R   R   R   t   st_rest   selectt   res1bt   trest   tres_rt   cmd_r(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_score_r  s(    		,,"(   Rv   Rw   R   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s   t   TestGlmGammac           B   s   e  Z e d     Z RS(   c      	   C   s   d |  _  t |  _ d d l m } d d l m } | d t  } t | j	 d t | _	 t
 j   < t
 j d  t | j | j	 d t j j   j   } Wd	 QX| |  _ |   } | j d
 7_ | |  _ d	 S(   sK   
        Tests Gamma family with canonical inverse link (power -1)
        i(   R   i   (   t   ScotvoteR   R   R%   R)   Ni   (   RI   R   R-   t   statsmodels.datasets.scotlandR   R   R   R   R
   R   R.   R/   R0   R	   RC   R?   R@   RM   R   R   RH   R   (   R   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    				(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s   t   TestGlmGammaLogc           B   s   e  Z e d     Z RS(   c         C   s   t  |  _ t |  _ t  |  _ d d l m } |   } t | j | j	 d t
 j j d t
 j j j    j   |  _ | |  _ d  S(   Ni   (   t	   CancerLogR)   R*   (   R   R-   R   RI   Rd   R   R   R	   RC   R   R?   R@   RM   R   R   R   R   R   (   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    				-(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s   t   TestGlmGammaIdentityc           B   s   e  Z e d     Z RS(   c      	   C   s   d |  _  t |  _ t |  _ t |  _ d d l m } |   } t	 j
   W t	 j d  t j j d t j j j    } t | j | j d | j   |  _ Wd  QX| |  _ d  S(   Nii   (   t   CancerIdentityR%   R*   R)   (   R-   R   R   R   RI   R   RX   R   R   R.   R/   R0   R?   R@   RM   R   t   identityR	   RC   R   R   R   R   (   R   R   R   t   fam(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    					!*(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s   t   TestGlmPoissonc           B   s   e  Z e d     Z RS(   c         C   s  d d l  m } t j d t  |  _ t j |  j j d d  d f  |  j j d d  d f <t	 |  j j d t |  j _ t
 |  j j |  j j d t j j   j   |  _ |   |  _ t j |  j j |  j j  } | j d |  j j d	 d
 t  |  _ d S(   si   
        Tests Poisson family with canonical log link.

        Test results were obtained by R.
        i   (   t   CpunishR   Ni   R   R)   R   g?R   (   R   R   R   R   R   R   R3   R   R   R
   R	   RC   R?   R@   t   PoissonR   R   R   R   R   R   (   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   2  s    ;(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   1  s   t   TestGlmInvgaussc           B   s   e  Z e d     Z RS(   c         C   sk   t  |  _ t  |  _ d d l m } |   } t | j | j d t j	 j
   j   } | |  _ | |  _ d S(   s	  
        Tests the Inverse Gaussian family in GLM.

        Notes
        -----
        Used the rndivgx.ado file provided by Hardin and Hilbe to
        generate the data.  Results are read from model_results, which
        were obtained by running R_ig.s
        i   (   t   InvGaussR)   N(   R   RI   RX   R   R   R	   RC   R   R?   R@   RN   R   R   R   (   R   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   K  s    				(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   J  s   t   TestGlmInvgaussLogc           B   s   e  Z e d     Z RS(   c         C   sw   d |  _  t |  _ d d l m } |   } t | j | j d t j	 j
 d t j	 j j    j   |  _ | |  _ d  S(   Nii   (   t   InvGaussLogR)   R*   (   RI   R   R-   R   R   R	   RC   R   R?   R@   RN   R   R   R   R   R   (   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   b  s    			!(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   a  s   t   TestGlmInvgaussIdentityc           B   s   e  Z e d     Z RS(   c         C   s   d |  _  t |  _ t |  _ d d l m } |   } t j   Q t j d  t	 | j
 | j d t j j d t j j j    j   |  _ Wd  QXd d l m } |   |  _ d  S(   Nii   (   t   Medpar1R%   R)   R*   (   t   InvGaussIdentity(   RI   R   Rd   R   R   R   R.   R/   R0   R	   RC   R   R?   R@   RN   R   R   R   R   R   R   (   R   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   x  s    				'(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   w  s   t   TestGlmNegbinomialc           B   s   e  Z e d     Z RS(   c         C   s  t  |  _ t |  _ d |  _ t  |  _ d d l m } | d t  |  _	 t
 j |  j	 j d d  d f  |  j	 j d d  d f <|  j	 j d d  d f |  j	 j d d  d f } t
 j |  j	 j | f  |  j	 _ t |  j	 j d t |  j	 _ t j   ' t j d d	 t t j j   } Wd QXt |  j	 j |  j	 j d
 | j d d  |  _ d d l m } |   } | j d 7_ | |  _ d S(   s=   
        Test Negative Binomial family with log link
        i(   R   R   Ni   i   R   R%   R&   R)   R<   t   x2(   t	   Committee(   R   t   decimal_residR   R   R-   Rd   t   statsmodels.datasets.committeeR   R   R   R3   R   R   R4   R
   R.   R/   R0   R   R?   R@   RA   R	   RC   R   R   R   R   RH   R   (   R   R   t   interactionR   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s&    				;6!	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s   t   TestGlmPoissonOffsetc           B   s2   e  Z e d     Z d   Z d   Z d   Z RS(   c         C   s   d d l  m } t |  _ t |  _ d |  _ t j d t  } t	 j
 | j d  d   d f  | j d  d   d f <t | j d t | _ d g t | j  } | |  _ | |  _ t | j | j d t j j   d | j   |  _ |   |  _ d  S(	   Ni   (   t   Cpunish_offseti   R   R   id   R)   t   exposure(   R   R   Ry   R   R#   RI   R   R   R   R3   R   R   R
   R   t   lenRC   R   R   R	   R?   R@   R   R   R   R   (   R   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    			5		!c      	   C   sy   |  j  j j   } t j | d d d d g <t | |  j  j d t j j	   d |  j
 d d } t | j
 j d	 d
  d  S(   Ni   i   i   i   R)   R   t   missingt   dropi    i   (   R   RC   R'   R3   t   nanR	   R   R?   R@   R   R   R   R   (   R   RC   t   mod(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_missing  s
    !c      	   C   s  t  j j d  t  j j d d d  } t  j j d d  } t  j j d d d  } t  j j d d d  } t | | d	 t j j	   d
 | d | j
   } | t  j |  } t | | d	 t j j	   d
 | j
   } t | j | j  t | j | j d d | j } | j   }	 t |	 d | d d t |	 d
 | j d d | j | j | j |	  }
 t |
 j | j d d t |
 j | j d d | j j   } | j j   } t | j | j d d d  S(   Ni` i    i
   id   t   sizei   i   i   R)   t   offsetR   R!   g|=g+=(   id   i   (   R3   R   R   t   randintt   normalt   uniformR	   R?   R@   R   R   R   R   R   R   t   nullR>   t   _get_init_kwdsR  t	   __class__RC   R   R   t   fit_regularized(   R   RC   R   R   R  t   mod1t   offset2t   mod2t   mod1_t   kwdst   mod3t   resr1t   resr2(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_offset_exposure  s,    	c         C   sd  t  j j d  t  j j d d d  } t  j j d d  } t  j j d d d  } t | | d	 t j j	   d
 | j
   } t  j j d d  } t  j j d d d  } | j d | d
 |  } | j d | d
 d |  } t | d |  | j   }	 | j d
 |  }
 | j d | d
 |  } t |	 |
  t |
 |  t  j j d d d  } t | | d | d	 t j j	   j
   } | j   } | j d |  } | j d | d |  }	 t | |  t | |	  t | | d	 t j j	   j
   } t  j j d d d  } | j d | d | d t  } | j d | d d | d t  } t | | |  d  S(   Ni` i    i
   id   R  i   i   i   R)   R   R   R  t   linear(   id   i   (   i
   i   (   R3   R   R   R  R  R	  R	   R?   R@   R   R   t   predictR   R   (   R   RC   R   R   R  t   exog1t	   exposure1t   pred1t   pred2t   pred3t   pred4t   pred5R  R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_predict  s8    *$"(   Rv   Rw   R   R   R  R  R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s   		c          C   s  t  j j t  j j t   }  t j t  j j |  d d  d d d d } | d  d   d f } | d  d   d  d  f } | | d k } | | d k } t | d	 t	 } t
 | | d
 t j j   } t j   ( t j d d t t t | j  Wd  QXd  S(   Nt   resultss   iris.csvt	   delimitert   ,t   skip_headeri   ii   R   R)   R%   R&   (   t   ost   patht   dirnamet   abspatht   __file__R3   t
   genfromtxtt   joinR
   R   R	   R?   R@   R   R.   R/   R0   t   RuntimeWarningR   R   R   (   t   cur_dirt   irisR   R   t   glm(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_perfect_pred  s    c          C   s  d d l  m }  t j j d  d } d } t j j d d d | d f } d | d  d   d f <d	 t j d	 | j d d  } | j |  | t j j	 |  } |  | |  j
   } |  | | d  d   d  d
  f  j
   } | j | d t } t | | d  d   d  d
  f d t j j   j
   }	 |	 j j |	 j d | d  d   d
 d   f }
 t | d d d |
 d d d d  S(   Ni(   R   i   id   g      ?i    i   R  g      ?it   demeanR)   R   ia   g      Y@R!   gvIh%<=(   R   R   R3   R   R   R	  R   R   R   R   R   t   compare_lm_testR   R	   R?   R@   R   R>   R   R   R   (   R   RO   t   sigeR   t   betaR   t   res_olst   res_olsct   cot   res_glmt   co2(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_score_test_OLS-  s    !!#+:1c          C   s   t  j j j d t  }  |  j |  j } } t  j | |  } t | j	 j
 j d  d | j	 j
 _ t | j	 j
 j d  t  j | |  } t | j	 j
 j d  d  S(   NR   g      ?g       @(   R?   t   datasetst   longleyR   R   RC   R   R	   R   R)   R*   t   power(   R   RC   R   t	   glm_modelt
   glm_model2(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt"   test_attribute_writable_resettableB  s    t   Test_start_paramsc           B   s   e  Z e d     Z RS(   c         C   s   t  |  _ t |  _ t |  _ t  |  _ d d l m } | d t	  |  _
 t |  j
 j d t	 |  j
 _ t j |  j
 j |  j
 j  j   j } t |  j
 j |  j
 j d t j j   j d |  |  _ d d l m } |   |  _ d	 S(
   sC   
        Test Gaussian family with canonical identity link
        i(   R   R   R   R)   R   i   (   R   N(   R   R-   R   R   R   R_   R#   R   R   R   R   R
   R   R?   R   RC   R   R   R	   R@   R   R   R   R   R   (   R   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   O  s    				'!(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRA  N  s   c          C   s   t  j d j   t  }  t  j d d d d d d g  } t  j |  |  }  t  j d d d d d	 d	 g |  } t j |  t j |  d
 t j j	   } | j
 d d d g  } t  j j | j d d g d  d  S(   Ns   0 1 0 0 0 1i2   i   i   i
   i    gMbP?id   iR)   R   iig2igF.u/i   (   R3   t   arrayt   splitt   intt   repeatR?   R	   R
   R@   R   R   t   testingR   R   (   t   y2t   wtR   R  t   res(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_glm_start_paramsd  s    !$*c             s   t  j d d d d d d d d d d g
   t  j d d t  j      f d   }  x d d g d d g d d g f D]d } t j  t j    d t j j   } | j	 d | d	 d  } |  |  } t
 | | j  qy Wd  S(
   Ni    i   i
   t   dtypec            sa   |  d |  d   } d d t  j |  } t  j  t  j |  d  t  j d |   S(   Ni    i   (   R3   R   R   R   (   R   t   lin_predt   pr(   R   R   (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRK   u  s    g      ?R)   R   t   maxiter(   R3   R   R   t   float64R?   R	   R
   R@   R   R   R   RK   (   RK   R   R  RI  t   like(    (   R   R   s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_loglike_no_opto  s    -(*c       
   C   sz  d d  l  j j }  d d  l } i d d d d g d 6d d d t j g d 6d g d	 d
 6t j j d d	  d 6d d d d g d 6} | j |  } t	 j
 j d t	 j
 j j    } |  j d d | d | j d | } t t | j  t j k d d | j t j j d d   } d	 | j d <t t |  j d d | d | d | t t t | j | d
 d g d | d | d  S(   Nii   i   i
   i   t   Fooi   t   Bari   t   constantR  R   g      ?R   R*   s	   Foo ~ BarR   R)   R   s   Exposure is not ndarrayi   (   i   RS  (   t   statsmodels.formula.apit   formulat   apit   pandasR3   R  R   R	  t	   DataFrameR?   R@   R   R   R   R/  R   R   t   typet   ndarrayt   Seriest   locR   t
   ValueErrorR	   RR  (   t   smft   pdt   dR   R)   R  R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_formula_missing_exposure  s     ,$!	"c         C   s  t  j j d  d } t  j j d | d f  } | d  d   d f | d  d   d f d } d d t  j |  } d t  j j d |  | k  } t j | | d t j j	   } | j
   } d d  l } d d	 l m }	 x d D] }
 | j |
  } |	 | j d d
 d t t |  | j |
  } |	 | j d d
 d t t |  | j |
  } |	 | j d d
 d t t |  q W| j i | d 6| d  d   d f d 6| d  d   d f d 6 } t j j d | d t j j	   } | j
   } x d D] }
 d d g |
 } | j |  } |	 | j d d
 d t t |  | j |  } |	 | j d d
 d t t |  | j |  } |	 | j d d
 d t t |  qWd  S(   Niz  i   R  i   i    i   R)   i(   t
   add_lowesst   fracg      ?R   t   x1R   s   y ~ x1 + x2(   i    i   (   i    i   (   R3   R   R   R  R   R	  R?   R	   R@   R   R   RX  t$   statsmodels.graphics.regressionplotsRc  t   plot_added_variablet   axesR   R   t   plot_partial_residualst   plot_ceres_residualsRY  t   from_formula(   t   close_figurest   nR   RL  t   probRC   R>   t   resultR`  Rc  t   jR   R   t   xname(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt
   test_plots  sD    .!D$c   
      C   s  t  j j d  t j } |   j |   } | | j k r| d k rn d t  j j d t |    | k  } qt  j	 t |   d f  } d } t  j j d t |   | f  | d  d   d  f k  j d  | d  d   d f <| | d  d   d f | d  d   d f <n | | j k r0t  j j |  } n | | j k rWt  j j d |  } n | | j k r| d t  j j d t |    } nq | | j k rd d l m } | j | d	  } n= | | j k rd d
 l m }	 |	 j | d d } n t  | S(   Nih  i    i   R  i   i
   i(   t   nbinomg      ?(   t   invgaussR<   i   (   R3   R   R   R?   R@   t   inverseR   R	  R   t   emptyR   R   R   t   poissonRM   t   gammaR   R  RA   t   scipy.stats.distributionsRs  t   rvsRN   Rt  R^  (
   RL  t   family_classR*   t   binom_versionR   R,   RC   Rm  Rs  Rt  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt	   gen_endog  s0    	(P-&c          C   s   t  j j d  d }  t  j j d |  d f  } d | d  d   d f <t  j j d |   } xY d d g D]K } t j j   } t j | | d	 | } | j d
 |  } | j	   } qi Wd  S(   Ni  id   R  i   i   i    t   irlst   cgR)   R   (
   R3   R   R   R  R?   R@   R   R	   R   Rr   (   Rm  R   RC   R   t   faR>   t   rsltt   s(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRs     s    c   	         s     j  }   j j | d d d }   f d   } t | d |  } t | | d d   j j | d d } t | |  } t | | d d   f d   } t | |  } t | | d d d  S(   Ng\(\?R<   i   c            s     j  j |  d d S(   NR<   i   (   R>   RB   (   R   (   R!  (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   <lambda>  t    R!   g?c            s     j  j |  d d S(   NR<   i   (   R>   R   (   R   (   R!  (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    R  (   R   R>   R   R   R   R   R   (	   R!  R   t   sct   llfunct   sc2t   hesst   hess2t   scfunct   hess3(    (   R!  s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   check_score_hessian  s    	c          C   s  t  j j d  t j }  t j j } |  j | j | j | j	 | j
 | j g f |  j | j
 | j | j g f |  j | j
 | j | j g f |  j | j | j
 | j g f |  j | j
 | j | j | j g f |  j | j
 | j | j | j g f g } d } d } t  j j d | | f  } d | d  d   d f <t } x| D]|\ } } xm| D]e}	 x\d! D]T}
 | |  j k r|
 d k rqan  | |	 f |  j | j f k rd | j d  } nr| |	 f |  j | j
 f k rd | j d  d	 } n:| |	 f |  j | j f k r(d
 | j d  } n| |	 f |  j | j
 f k r\d | j d  } n| |	 f |  j | j f k rd d | j d  } t  j | d t  j  } n| |	 f |  j | j f k rd | j d  d } qanG| |	 f |  j | j f k rd | j d  d } n| |	 f |  j | j f k rod d | j d  } t  j | d t  j  } n | |	 f |  j | j f k rd t  j j d | j d  } qan{ | |	 f |  j | j f k rd | j d  d } nC | |	 f |  j | j f k rt } n t  j j d | j d  } t | | |	 |
  } t j   6 t j  d  t j! | | d | d |	    } Wd  QX| j" d d  } | |	 f |  j | j f |  j | j f |  j | j f g k rt# |  n  xd | j$ f d" f D]\ } } | d k r| rqn  t j   6 t j  d  t j! | | d | d |	    } Wd  QX| j" d | d | d d d d  } t& | j$ | j$ d d d d t& | j' | j' d d d d t& | j( | j( d d d d | j) } | j* | j$ d t } t  j t  j+ t  j, j- |    } t& | | j) d d d d t& | j) | j) d d d d | j" d d d d  d | j$ d d d d  } t& | j) | j) d d d d qWqaWqTWqAWd  S(#   Ni.U id   i   R  i   i    i   ii   i   i   g-C6?g      ?g?R%   R)   R*   R   t   IRLSt   max_start_irlsR   t   newtonRN  i,  R!   gư>R    g-C6
?R~   g?t   cov_typet   eim(   i    i   (   i   N(.   R3   R   R   R?   R@   R   R   t   logitt   probitt   cloglogR   t   cauchyR   R   t   sqrtRM   R   R   RN   t   inverse_squaredRA   R  R   R   t   clipt   infR	  R   R   R}  R.   R/   R0   R	   R   R  R   R   R   RK   R<   R"   R   t   diagt   linalgt   inv(   R   t   lnkR@   Rm  t   pR   t   skip_oneR{  t   family_linksR*   R|  RL  RC   t   mod_irlst	   rslt_irlsR  R   t   mod_gradientt   rslt_gradientt   gradient_bset   ehesst   rslt_gradient_eim(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_gradient_irls
  s    	*$* 	*"*		%	c          C   s  t  j j d  t j }  t j j } |  j | j | j | j	 | j
 | j g f |  j | j
 | j | j g f |  j | j
 | j | j g f |  j | j | j
 | j g f |  j | j
 | j | j | j g f |  j | j
 | j | j | j g f g } d } d } t  j j d | | f  } d | d  d   d f <t } x| D]\ } } x| D]}	 xd D]}
 | |  j k r|
 d k rqan  | |	 f |  j | j f k rd | j d  } nr| |	 f |  j | j
 f k rd | j d  d	 } n:| |	 f |  j | j f k r(d
 | j d  } n| |	 f |  j | j
 f k r\d | j d  } n| |	 f |  j | j f k rd d | j d  } t  j | d t  j  } n| |	 f |  j | j f k rd | j d  d } qanG| |	 f |  j | j f k rd | j d  d } n| |	 f |  j | j f k rod d | j d  } t  j | d t  j  } n | |	 f |  j | j f k rd t  j j d | j d  } qan{ | |	 f |  j | j f k rd | j d  d } nC | |	 f |  j | j f k rt } n t  j j d | j d  } t | | |	 |
  } t j   6 t j  d  t j! | | d | d |	    } Wd  QX| j" d d  } xYd | j# f d f D]B\ } } | d k r| rqn  t j   6 t j  d  t j! | | d | d |	    } Wd  QX| j" d | d | d d d d  } t% | j# | j# d d d d t% | j& | j& d d d d t% | j' | j' d d d d | j( | j# d t } t  j t  j) t  j* j+ |    } t% | | j, d d d d qWqaWqTWqAWd  S(    Ni.U id   i   R  i   i    i   ii   i   i   g-C6?g      ?g?R%   R)   R*   R   R  R  R   R  t   optim_hessianR  R!   gư>R    g-C6
?R~   (   i    i   (   i   N(-   R3   R   R   R?   R@   R   R   R  R  R  R   R  R   R   R  RM   R   R   RN   R  RA   R  R   R   R  R  R	  R   R   R}  R.   R/   R0   R	   R   R   R   R   RK   R<   R   R  R  R  R"   (   R   R  R@   Rm  R  R   R  R{  R  R*   R|  RL  RC   R  R  R  R   R  R  R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_gradient_irls_eim{  s    	 				%c          C   s  d \ }  } t  j j d  t  j j |  | d  } t | d d } | j d  t  j j |   } t | |  } | j   } | j d d d	 t  } | j d d
 d	 t  } | j d | j	 d d  }	 x; | | | g D]* }
 t
 |
 j d d  t
 |
 j d  q Wt
 | j d d  t
 | j d d  t
 | j d d
  t t | j j d   t t | j j d   t
 |	 j d  d  S(   Ni2   i   i i   t   has_constantt   addt
   wls_methodt   pinvt
   attach_wlst   qrR   R   R   t	   optimizerR  t   lstsqt
   pinv_wexogt   exog_Q(   i2   i   (   R3   R   R   R   R
   R   R	   R   R   R   R   t   mle_settingsR   R   Rp   t   results_wlsR>   (   RO   t   k_varsR   R   R   R  R   R   t   res3t   res_g1t   r(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_glm_irls_method  s&    t   CheckWtdDuplicationMixinc           B   s   e  Z e Z e d     Z d   Z e Z d   Z e Z	 d   Z
 d   Z d   Z d   Z e Z d   Z e Z d   Z e Z d	   Z e Z d
   Z RS(   c         C   s   t  j d t  |  _ |  j j |  _ |  j j |  _ t j j d  t j j	 d d t
 |  j   |  _ t j |  j |  j  |  _ t j |  j |  j d d |  _ d  S(   NR   i  i   id   t   axisi    (   R   R   R   R   RC   R   R3   R   R   R  R   t   weightRE  t	   endog_bigt   exog_big(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    $c         C   s)   t  |  j j |  j j d d d d d  S(   NR    gư>R!   (   R   R   R   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    c         C   s)   t  |  j j |  j j d d d d d  S(   NR!   gh㈵>R    gư>(   R   R   R"   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR$     s    c         C   s)   t  |  j j |  j j d d d d d  S(   NR    gư>R!   (   R   R   RG   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_aic3  s    c         C   s)   t  |  j j |  j j d d d d d  S(   NR    gư>R!   (   R   R   RS   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRU   8  s    c         C   s)   t  |  j j |  j j d d d d d  S(   NR    gư>R!   (   R   R   R<   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRW   <  s    c         C   s    t  |  j j |  j j d  d  S(   Ngư>(   R   R   RK   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRY   ?  s    c         C   s)   t  |  j j |  j j d d d d d  S(   NR    gư>R!   (   R   R   RZ   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR\   F  s    c         C   s)   t  |  j j |  j j d d d d d  S(   NR    gư>R!   (   R   R   R]   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR`   L  s    c         C   s>   |  j  j |  j j j  } t |  j j | d d d d d  S(   NR    gh㈵>R!   (   R   R  R   R>   R   R   Rc   (   R   t   res2_fitted(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRe   Q  s    c         C   sy   t  |  j j |  j j d d d d t  |  j j |  j j d d d d t  |  j j   |  j j   d d d d d  S(   NR    gư>R!   g-C6*?(   R   R   Rj   R   Rk   Rl   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRn   X  s    $(   Rv   Rw   Ry   R   R   R   R   R#   R$   R-   R  RU   RW   RY   R[   R\   R_   R`   Rd   Re   t   decimal_tpvaluesRn   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  
  s$   
									t   TestWtdGlmPoissonc           B   s   e  Z e d     Z RS(   c         C   sz   t  t |   j   t |  j |  j d |  j d t j j	   j
   |  _ t |  j |  j d t j j	   j
   |  _ d S(   s?   
        Tests Poisson family with canonical log link.
        RE   R)   N(   t   superR  R   R	   RC   R   R  R?   R@   R   R   R   R  R  R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   e  s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  c  s   t   TestWtdGlmPoissonNewtonc           B   s   e  Z e d     Z RS(   c         C   s   t  t |   j   t j d d d d d d g  } t d d  } t |  j |  j d	 |  j	 d
 t
 j j   j |   |  _ t d d d |  } t |  j |  j d
 t
 j j   j |   |  _ d S(   s?   
        Tests Poisson family with canonical log link.
        gy\%'?g8:QigKsFgS'3gI.+@g084R   R  RE   R)   R   N(   R  R  R   R3   RB  t   dictR	   RC   R   R  R?   R@   R   R   R   R  R  R   (   R   R   t   fit_kwds(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   s  s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  r  s   t   TestWtdGlmPoissonHC0c           B   s   e  Z e d     Z RS(   c         C   s   t  t |   j   t j d d d d d d g  } t d d  } t |  j |  j d	 |  j	 d
 t
 j j   j |   |  _ t d d d |  } t |  j |  j d
 t
 j j   j |   |  _ d S(   s?   
        Tests Poisson family with canonical log link.
        gy\%'?g8:QigKsFgS'3gI.+@g084R  t   HC0RE   R)   R   N(   R  R  R   R3   RB  R  R	   RC   R   R  R?   R@   R   R   R   R  R  R   (   R   R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestWtdGlmPoissonCluc           B   s   e  Z e d     Z RS(   c         C   sQ  t  t |   j   t j d d d d d d g  } t j d t |  j  d  d } t d	 d
 d i | d 6t	 d 6 } d d l
 } | j    | j d  t |  j |  j d |  j d t j j   j |   |  _ t j | |  j  } t d	 d
 d i | d 6t	 d 6 } t |  j |  j d t j j   j d | |  |  _ Wd QXd S(   s?   
        Tests Poisson family with canonical log link.
        gy\%'?g8:QigKsFgS'3gI.+@g084i   i   R  t   clustert   cov_kwdst   groupst   use_correctioniNR%   RE   R)   R   (   R  R  R   R3   RB  R   R   RC   R  R   R.   R/   R0   R	   R   R  R?   R@   R   R   R   RE  R  R  R   (   R   R   t   gidR  R.   t   gidr(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s"    ##	#(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestWtdGlmBinomialc           B   s   e  Z e d     Z RS(   c         C   s   t  t |   j   |  j d |  _ |  j d |  _ t |  j |  j d |  j d t j	 j
   j   |  _ t |  j |  j d t j	 j
   j   |  _ d S(   sB   
        Tests Binomial family with canonical logit link.
        id   RE   R)   N(   R  R  R   RC   R  R	   R   R  R?   R@   R   R   R   R  R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestWtdGlmNegativeBinomialc           B   s   e  Z e d     Z RS(   c         C   s   t  t |   j   d } t j    t j d d t t j j	 d t j j
 j d |  d |  } t |  j |  j d |  j d | j   |  _ t |  j |  j d | j   |  _ Wd QXd S(	   sh   
        Tests Negative Binomial family with canonical link
        g(p) = log(p/(p + 1/alpha))
        g      ?R%   R&   R*   t   alphaRE   R)   N(   R  R  R   R.   R/   R0   R   R?   R@   RA   R   Rs  R	   RC   R   R  R   R   R  R  R   (   R   R  t   family_link(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    		(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestWtdGlmGammac           B   s   e  Z e d     Z RS(   c         C   s   t  t |   j   t j j t j j j    } t |  j	 |  j
 d |  j d | j   |  _ t |  j |  j d | j   |  _ d S(   s3   
        Tests Gamma family with log link.
        RE   R)   N(   R  R  R   R?   R@   RM   R   R   R	   RC   R   R  R   R   R  R  R   (   R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestWtdGlmGaussianc           B   s   e  Z e d     Z RS(   c         C   s   t  t |   j   t j j t j j j    } t |  j	 |  j
 d |  j d | j   |  _ t |  j |  j d | j   |  _ d S(   s6   
        Tests Gaussian family with log link.
        RE   R)   N(   R  R  R   R?   R@   R   R   R   R	   RC   R   R  R   R   R  R  R   (   R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestWtdGlmInverseGaussianc           B   s   e  Z e d     Z RS(   c         C   s   t  t |   j   t j j t j j j    } t |  j	 |  j
 d |  j d | j   |  _ t |  j |  j d | j   |  _ d S(   s=   
        Tests InverseGuassian family with log link.
        RE   R)   N(   R  R  R   R?   R@   RN   R   R   R	   RC   R   R  R   R   R  R  R   (   R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestWtdGlmGammaNewtonc           B   s   e  Z e d     Z RS(   c      	   C   s   t  t |   j   t j j t j j j    } t |  j	 |  j
 d |  j d | d d j   |  _ t |  j |  j d | d d j   |  _ d S(   s3   
        Tests Gamma family with log link.
        RE   R)   R   R  N(   R  R  R   R?   R@   RM   R   R   R	   RC   R   R  R   R   R  R  R   (   R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestWtdGlmGammaScale_X2c           B   s   e  Z e d     Z RS(   c      	   C   s   t  t |   j   t j j t j j j    } t |  j	 |  j
 d |  j d | d d j   |  _ t |  j |  j d | d d j   |  _ d S(   s3   
        Tests Gamma family with log link.
        RE   R)   R<   t   X2N(   R  R  R   R?   R@   RM   R   R   R	   RC   R   R  R   R   R  R  R   (   R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   "  s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  !  s   t   TestWtdGlmGammaScale_devc           B   s    e  Z e d     Z d   Z RS(   c      	   C   s   t  t |   j   t j j t j j j    } t |  j	 |  j
 d |  j d | d d j   |  _ t |  j |  j d | d d j   |  _ d S(   s3   
        Tests Gamma family with log link.
        RE   R)   R<   t   devN(   R  R  R   R?   R@   RM   R   R   R	   RC   R   R  R   R   R  R  R   (   R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   3  s    	c         C   s  |  j  j j   } |  j  j j   } t j | d <t j | d d d d g <|  j } t | | d |  j j	 j
 d | d d	 } t | j j d | j j d  t | j j d | j j d  t j d
 d d d d d d d d d d d g  } t | j |  j |  d  S(   Ni    i   i   i   i   R)   RE   R   R  i   i   i   i   i	   i
   i   i   i   i   i   i   (   i    i    (   R   RC   R'   R   R3   R  R  R	   R   R>   R)   R   RE   R   RB  (   R   RC   R   RE   t   mod_misisngt   keep_idx(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  B  s    	3(   Rv   Rw   R   R   R  (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  2  s   t   TestWtdTweedieLogc           B   s   e  Z e d     Z RS(   c         C   s   t  t |   j   t j j d t j j j   d d  } t |  j	 |  j
 d |  j d | j   |  _ t |  j |  j d | j   |  _ d S(   sE   
        Tests Tweedie family with log link and var_power=1.
        R*   t	   var_poweri   RE   R)   N(   R  R  R   R?   R@   t   TweedieR   R   R	   RC   R   R  R   R   R  R  R   (   R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   S  s    		(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  R  s   t   TestWtdTweediePower2c           B   s   e  Z e d     Z RS(   c         C   s/  t  j   |  _ |  j j |  _ |  j j d d g |  _ t j j d  t j j d d t	 |  j   |  _
 t j |  j j |  j
  |  _ t j |  j j |  j
 d d |  _ t j j j   } t j j d | d	 d
  } t |  j |  j d |  j
 d | j   |  _ t |  j |  j d | j   |  _ d S(   sJ   
        Tests Tweedie family with Power(1) link and var_power=2.
        t   INCOMEt   SOUTHi  i   id   R  i    R*   R  i   RE   R)   N(   R   t   load_pandasR   RC   R   R3   R   R   R  R   R  RE  t   valuesR  R  R?   R@   R   t   PowerR  R	   R   R   R   (   R   R*   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   c  s    $$	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  b  s   t   TestWtdTweediePower15c           B   s   e  Z e d     Z RS(   c         C   s   t  t |   j   t j j d t j j j d  d d  } t |  j	 |  j
 d |  j d | j   |  _ t |  j |  j d | j   |  _ d S(   sN   
        Tests Tweedie family with Power(0.5) link and var_power=1.5.
        R*   g      ?R  g      ?RE   R)   N(   R  R  R   R?   R@   R  R   R  R	   RC   R   R  R   R   R  R  R   (   R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   y  s    !		(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  x  s   c          C   s[  d d  l  }  t j d t  } t j | j d <t j | j d d d d g <|  j | j d | j	 | _  | j | j  d	 <t j
 d
 t | j  d
  } d } t j | d | j  d | } t | j j d | j j d  t | j j d | j j d  t | j j d d  t j d d d d d d d d d d d d g  } t | j |  d  S(   NiR   i    i   i   i   i   t   columnst
   EXECUTIONSi   sX   EXECUTIONS ~ INCOME + PERPOVERTY + PERBLACK + VC100k96 +
                 SOUTH + DEGREER   RE   i   i
   i   i   i   i   i   i   (   i    i    (   RX  R   R   R   R3   R  R   RC   RY  t	   exog_nameR   R   R	   Rk  R   RE   R   RB  (   R`  R   t   weightsRV  R  t   keep_weights(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_wtd_patsy_missing  s"    	3t   CheckTweediec           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s  t  |  j j  d } t  |  j j  d } t t j |  j j d  |  j j | g f  t j |  j j d  |  j j | g f  d d d d t t j |  j j d  |  j j | g f  t j |  j j d  |  j j | g f  d d d d t t j |  j j d  |  j j | g f  t j |  j j d  |  j j | g f  d d d d t t j |  j j	 d  |  j j	 | g f  t j |  j j	 d  |  j j	 | g f  d d d d d  S(   Ni   i   R!   gh㈵>R    (
   R   R   R8   R   R   R3   t   concatenateR5   R6   R7   (   R   t   idx1t   idx2(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt
   test_resid  s,    c         C   s)   t  |  j j |  j j d d d d d  S(   NR    gư>R!   g    .A(   R   R   R"   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_bse  s    c         C   s)   t  |  j j |  j j d d d d d  S(   NR    gh㈵>R!   (   R   R   R   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    c         C   s)   t  |  j j |  j j d d d d d  S(   NR    gư>R!   (   R   R   RS   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRU     s    c         C   s6   t  |  j j |  j j  t  |  j j |  j j  d  S(   N(   R   R   RF   R   Ra   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_df  s    c         C   s   t  |  j j  d } t  |  j j  d } t t j |  j j d  |  j j | g f  t j |  j j d  |  j j | g f  d d d d d  S(   Ni   i   R    g-C6?R!   (   R   R   Rc   R   R8   R   R3   R  (   R   R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRe     s    c         C   s   |  j  j   |  j  j   d  S(   N(   R   Rr   Rt   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyRs     s    (	   Rv   Rw   R  R  R   RU   R  Re   Rs   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   							t   TestTweediePower15c           B   s   e  Z e d     Z RS(   c         C   s   d d l  m } t j   |  _ |  j j d d g |  _ |  j j |  _ t j j	 d t j j
 j d  d d  } t j d |  j j d	 |  j j d d g d
 |  j   |  _ |   |  _ d  S(   Ni   (   t   CpunishTweediePower15R  R  R*   R  g      ?RC   R   R)   (   R   R  R   R  R   R   RC   R?   R@   R  R   R  R	   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    !	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestTweediePower2c           B   s   e  Z e d     Z RS(   c         C   s   d d l  m } t j   |  _ |  j j d d g |  _ |  j j |  _ t j j	 d t j j
 j d  d d  } t j d |  j j d	 |  j j d d g d
 |  j   |  _ |   |  _ d  S(   Ni   (   t   CpunishTweediePower2R  R  R*   R  g       @RC   R   R)   (   R   R  R   R  R   R   RC   R?   R@   R  R   R  R	   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    !	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestTweedieLog1c           B   s   e  Z e d     Z RS(   c         C   s   d d l  m } t j   |  _ |  j j d d g |  _ |  j j |  _ t j j	 d t j j
 j   d d  } t j d |  j j d	 |  j j d d g d
 |  j   |  _ |   |  _ d  S(   Ni   (   t   CpunishTweedieLog1R  R  R*   R  g      ?RC   R   R)   (   R   R  R   R  R   R   RC   R?   R@   R  R   R   R	   R   R   R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   TestTweedieLog15Fairc           B   s   e  Z e d     Z RS(   c         C   s   d d l  m } d d l m } |   } t j j d t j j j   d d  } t j	 d | j
 d	 | j d
 d d g d |  j   |  _ |   |  _ d  S(   Ni   (   t   FairTweedieLog15i(   R  R*   R  g      ?RC   R   t   rate_marriaget   aget   yrs_marriedR)   (   R   R  t   statsmodels.datasets.fairR  R?   R@   R  R   R   R	   RC   R   R   R   R   (   R   R  R  R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR     s    		
(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   t   CheckTweedieSpecialc           B   s   e  Z d    Z d   Z RS(   c         C   s)   t  |  j j |  j j d d d d d  S(   NR!   gh㈵>R    (   R   R   R,   R   (   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_mu  s    c         C   s   t  |  j j |  j j d d d d t  |  j j |  j j d d d d t  |  j j |  j j d d d d t  |  j j |  j j d d d d t  |  j j |  j j d d d d d  S(   NR!   gh㈵>R    (   R   R   R8   R   R5   R6   R7   t   resid_anscombe_unscaled(   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s    (   Rv   Rw   R  R  (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR    s   	t   TestTweedieSpecialLog0c           B   s   e  Z e d     Z RS(   c         C   s   t  j   |  _ |  j j d d g |  _ |  j j |  _ t j j d t j j j	    } t j
 d |  j j d |  j j d d g d |  j   |  _ t j j d t j j j	   d d  } t j
 d |  j j d |  j j d d g d |  j   |  _ d  S(	   NR  R  R*   RC   R   R)   R  i    (   R   R  R   R   RC   R?   R@   R   R   R   R	   R   R   R  R   (   R   t   family1t   family2(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   $  s    !	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  #  s   t   TestTweedieSpecialLog1c           B   s   e  Z e d     Z RS(   c         C   s   t  j   |  _ |  j j d d g |  _ |  j j |  _ t j j d t j j j	    } t j
 d |  j j d |  j j d d g d |  j   |  _ t j j d t j j j	   d d  } t j
 d |  j j d |  j j d d g d |  j   |  _ d  S(	   NR  R  R*   RC   R   R)   R  i   (   R   R  R   R   RC   R?   R@   R   R   R   R	   R   R   R  R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   5  s    !	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR	  4  s   t   TestTweedieSpecialLog2c           B   s   e  Z e d     Z RS(   c         C   s   t  j   |  _ |  j j d d g |  _ |  j j |  _ t j j d t j j j	    } t j
 d |  j j d |  j j d d g d |  j   |  _ t j j d t j j j	   d d  } t j
 d |  j j d |  j j d d g d |  j   |  _ d  S(	   NR  R  R*   RC   R   R)   R  i   (   R   R  R   R   RC   R?   R@   RM   R   R   R	   R   R   R  R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   F  s    !	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR
  E  s   t   TestTweedieSpecialLog3c           B   s   e  Z e d     Z RS(   c         C   s   t  j   |  _ |  j j d d g |  _ |  j j |  _ t j j d t j j j	    } t j
 d |  j j d |  j j d d g d |  j   |  _ t j j d t j j j	   d d  } t j
 d |  j j d |  j j d d g d |  j   |  _ d  S(	   NR  R  R*   RC   R   R)   R  i   (   R   R  R   R   RC   R?   R@   RN   R   R   R	   R   R   R  R   (   R   R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   W  s    !	(   Rv   Rw   R   R   (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR  V  s   s   ignore:GLM ridge optimizationc          C   s  t  j j d  d }  d } t  j j d |  d f  } t  j | t  j d/  } t  j |  } d
 | d | d | } d | | d } d
 | d | | d } t  j |   } t  j j |  }	 xB t	 |   D]4 }
 t  j j
 | d | |
 |	 |
  j   | |
 <q Wt j j d | d t  } t j | | d | } | j d d  } t | j t  j d d d d g  d d d d t j | | d | } | j d d d d  } d d  l } | j d } | d k rd0 \ } } n d1 \ } } t | j t  j d d d d  g  d | d | t  j d! d" d# d$ g  t  j d% d& d' d( g  t  j d) d* d+ d, g  f } xs t d- d	 d. g  D]\ \ } } t j | | d | } | j d d d |  } t | j | | d | d | qWd  S(2   Ni  i  g      ?R  i   i   ii    g      ?i
   i   R  t   eqlR)   R   R  g`8:[?g%gcxp?g
m:?R!   gh㈵>R    t   L1_wtR  gQ?i   g{Gz?g?gH-
g        g$?g?g =g<f}?ga2?g贗?gZ.dOgzQ}?g$ L ?g5Xjl?gKԟyſg+n.?gg<?g?gffffff?(   i   ii    g      ?(   gh㈵>gh㈵>(   g{Gz?g{Gz?(   R3   R   R   R  R   t   r_R   Rv  Rw  R   Rx  R   R?   R@   R  R   R	   R   R   R   RB  R  t   syst   version_infot	   enumerate(   Rm  R  R   t   lprR,   t   lamt   alpt   betR   t   Nt   iR   t   model1t   result1t   model2t   result2R  t   verR!   R    t   evRp  R  t   model3t   result3(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_tweedie_EQLf  sH    2		"c          C   sb  t  j j d  d }  t  j j d |  d f  } d | d  d   d f <d | d  d   d d   f j d  } t  j |  } t  j j |  } x d D] } t j j	 d d d t
  } t j | | d | } | j d d d |  } t j | | d t j j   }	 |	 j d d d |  }
 t | j |
 j d d d d t | j |
 j d d  q Wd  S(   Ni  i  R  i   i   i    i   g      ?R   R  R  R  R)   R   R  R<   R    gư>R!   (   g      ?R   R  (   R3   R   R   R  R   R   Rw  R?   R@   R  R   R	   R   R   R   R   R"   (   Rm  R   R  t   mnR   R<   R   R  R  R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_tweedie_EQL_poisson_limit  s    )!c    	      C   s  t  j j d  d }  t  j j d |  d f  } d | d  d   d f <d | d  d   d d   f j d  } t  j |  } t  j j |  } x| d D]t } t j j	 d d d t
  } t j | | d | } | j d d d |  } t | j t  j d d d d d q Wd  S(   Ni  i  R  i   i   i    i   R   R  g      ?R  i   R  R)   R   R  R<   R    gMbP?R!   g?(   R   R  g      ?(   i   i   i   (   R3   R   R   R  R   R   Rw  R?   R@   R  R   R	   R   R   R   R  (	   Rm  R   R  R!  R   R<   R   R  R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_tweedie_EQL_upper_limit  s    )c          C   s;  t  j   }  d d d d d d d d d	 d
 d d d d d d d g } t j | |  j d d g d t j j d t j j j   d d  } | j	   } t j | | j
 d t j t j t | j
   t j | j
  f  d t j j t j j j    } | j	   } | j | j
  } t | | j d d d d  S(   Ng(\q@gC@gQ,D@g̒$@gl ]l@go@g<m%@gcv7ˌ@g~Ӥ?g"?gQ75>g ;#Pg>geҞ>g        R  R  R)   R*   R  g      ?i   i   R!   g      ?(   R   R  R?   R	   R   R@   R  R   R   R   R,   R3   R4   R   R   RM   t   estimate_tweedie_powerR   R   (   R   R   R  R   R  R   R  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   testTweediePowerEstimate  s"    					3!t   TestRegularizedc           B   s   e  Z d    Z RS(   c      	      s  d d  l  } d d l m } xd D]} | j j | j j t   } t j | j j	 | d d |  d d	 } | d  d   d
 f  | d  d   d d   f } i t
 j j d 6t
 j j d 6| } x t d  D] } d | | f }	 t | |	  }
 |
 d
   |
 d  |
 d } t  | d |     j d   d   } t | | j d d d d      f d   } | |  } | | j  } t t j | |  d  q Wq# Wd  S(   Nii   (   t   glmnet_r_resultst   binomialRw  R!  s   enet_%s.csvR"  R#  i    i	   s
   rslt_%s_%di   R)   R  R  R    g{Gz?R!   g333333?c            s^    j  |   t   } |  d   t j |  d  d   t j t j |    } | S(   Ni   i   (   RB   R   R3   R   Rh   (   R   RK   (   R  R  RC   R>   (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   plf  s    A(   R(  Rw  (   R%  R!  R'  R&  R'  R(  R)  R3   t   loadtxtR+  R?   R@   R   R   R   t   getattrR	   R  R   R   R   t   sign(   R   R%  R'  RK  R-  R   R   R   Rp  t   vnt   r_resultR   t	   sm_resultR)  t   llf_rt   llf_sm(    (   R  R  RC   R>   s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_regularized  s.    "	


(   Rv   Rw   R2  (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR&    s   t   TestConvergencec           B   s_   e  Z e d     Z d d d d  Z d   Z d   Z d   Z d   Z d	   Z	 d
   Z
 RS(   c         C   sb   d d l  m } | d t  } t | j d t | _ t | j | j d t j j	   |  _
 d S(   sV   
        Test Binomial family with canonical logit link using star98 dataset.
        i(   R   R   R   R)   N(   R   R   R   R
   R   R	   RC   R?   R@   R   R>   (   R   R   R   (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR   &  s
    g:0yE>i    RS   c         C   s   xr t  |  j j |  D]Z \ } } |  j j | | } |  j j | | d } t j | | d | d | r | Sq Wt d   d  S(   Ni   R    R!   s2   CONVERGENCE CHECK: It seems this doens't converge!(   R  RI  t   fit_historyR3   t   allcloseR^  (   R   R    R!   t   tol_criterionR  R  t   origt   new(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   _when_converged1  s    #c         C   s   d } d } |  j  j d | d |  |  _ |  j d | d |  } |  j j d } t | |  t t |  j j d  d |  d  S(   Ng:0yE>i    R    R!   t	   iterationRS   i   (   R>   R   RI  R9  R4  R   R   (   R   R    R!   t   expected_iterationst   actual_iterations(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_convergence_atol_only9  s    c         C   s   d } d } |  j  j d | d |  |  _ |  j d | d |  } |  j j d } t | |  t t |  j j d  d |  d  S(   Ni    g:0yE>R    R!   R:  RS   i   (   R>   R   RI  R9  R4  R   R   (   R   R    R!   R;  R<  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_convergence_rtol_onlyG  s    c         C   s   d } d } |  j  j d | d |  |  _ |  j d | d |  } |  j j d } t | |  t t |  j j d  d |  d  S(   Ng:0yE>R    R!   R:  RS   i   (   R>   R   RI  R9  R4  R   R   (   R   R    R!   R;  R<  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_convergence_atol_rtolU  s    c         C   s   d } d } |  j  j d | d | d d  |  _ |  j d | d | d d  } |  j j d } t | |  t t |  j j d  d	 |  d  S(
   Ng:0yE>i    R    R!   R6  R   R:  RS   i   (   R>   R   RI  R9  R4  R   R   (   R   R    R!   R;  R<  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt!   test_convergence_atol_only_paramsc  s    $	c         C   s   d } d } |  j  j d | d | d d  |  _ |  j d | d | d d  } |  j j d } t | |  t t |  j j d  d	 |  d  S(
   Ni    g:0yE>R    R!   R6  R   R:  RS   i   (   R>   R   RI  R9  R4  R   R   (   R   R    R!   R;  R<  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt!   test_convergence_rtol_only_paramsr  s    $	c         C   s   d } d } |  j  j d | d | d d  |  _ |  j d | d | d d  } |  j j d } t | |  t t |  j j d  d |  d  S(	   Ng:0yE>R    R!   R6  R   R:  RS   i   (   R>   R   RI  R9  R4  R   R   (   R   R    R!   R;  R<  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt!   test_convergence_atol_rtol_params  s    $	(   Rv   Rw   R   R   R9  R=  R>  R?  R@  RA  RB  (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyR3  %  s   					c          C   s  t  j j d  d d }  } t j t  j j |  |   } t  j | j d   } t  j j | d |  } t j	 | | d  d   d  d   f d t j
 j j   } | j   } | j } | j } | j j | | d  | j j | | j  d }	 t | | d j   d	 d
 t | |	 d	 d
 t j	 | | d  d   d d   f d t j
 j j   }
 |
 j   } | j } | j } | j j | | d  | j j | | j  d }	 t | | d j   d	 d
 t | |	 d	 d
 d  S(   NiS i2   i   i   R  R)   g#B;i   R!   g-q=i   (   R3   R   R   R?   R
   R   R   R   Rw  R	   t   genmodR@   R   R   R6   RS   R)   RB   Rc   R   (   RO   R  R   t   mu_trueR   R  RI  t   d_iRa  t   lrt   mod_nct   res_nc(    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   test_poisson_deviance  s*    :		:		c          C   s   t  j   }  d |  j (t j   a t j d  t j |  j |  j d t j	 j
   } | j d d d d d d  } | j   Wd  QXd  S(	   Ni   R%   R)   RN  R   R   R  i    (   R   R  RC   R.   R/   R0   R?   R	   R   R@   RM   R   Rr   (   R   R  RI  (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt)   test_non_invertible_hessian_fails_summary  s    
'(y   Rx   t
   __future__R    t   statsmodels.compatR   R.   R%  t   numpyR3   t   numpy.testingR   R   R   R   R   R   Rz   t   scipyR   t   statsmodels.apiRW  R?   t+   statsmodels.genmod.generalized_linear_modelR	   t   statsmodels.tools.toolsR
   t   statsmodels.tools.sm_exceptionsR   t   statsmodels.discreteR   R   R   t   statsmodels.tools.numdiffR   R   t   statsmodels.datasetsR   Ry   R   R   R   R   R   R   t   matplotlib.backends.backend_pdfR   R   R   R   R   t   objectR   R}   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R0  R:  R@  RA  RJ  RQ  Rb  R{   t
   matplotlibRr  R}  R|   Rs   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
  R  t   filterwarningsR   R"  R#  R%  R&  R3  RI  RJ  (    (    (    s@   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm.pyt   <module>   s   .		.4.I/^						,"		q	r	Y 	83			,-l	!