
p7]c           @   s  d  Z  d d l m Z d d l m Z d d l Z d d l Z d d l m	 Z	 m
 Z
 d d l Z d d l 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 d d l m  Z  e  d e!  Z" e j# e" j$ d d  d f  e" j$ d d  d f <e e" j$ d e! e" _$ d e% f d     YZ& d e& f d     YZ' d e& f d     YZ( d e& f d     YZ) d e& f d     YZ* d e& f d     YZ+ d e& f d     YZ, d e& f d      YZ- d! e& f d"     YZ. d# e& f d$     YZ/ d% e& f d&     YZ0 d' d(  Z1 d)   Z2 d*   Z3 d+ e& f d,     YZ4 d- e& f d.     YZ5 d/ e& f d0     YZ6 d1 e& f d2     YZ7 d3 e& f d4     YZ8 d5 e& f d6     YZ9 d7   Z: d
 d
 d
 d8 d8 d8 d d d d
 d
 d
 d8 d8 d8 d d g Z; e j< j= d9 e; e j> e;  e j? e;  g d: d; d< d= g d>    Z@ d?   ZA d@ e& f dA     YZB dB e& f dC     YZC dD   ZD dE   ZE d S(F   s  
Test for weights in GLM, Poisson and OLS/WLS, continuous test_glm.py


Below is a table outlining the test coverage.

================================= ====================== ====== ===================== === ======= ======== ============== ============= ============== ============= ============== ==== =========
Test                              Compared To            params normalized_cov_params bse loglike deviance resid_response resid_pearson resid_deviance resid_working resid_anscombe chi2 optimizer
================================= ====================== ====== ===================== === ======= ======== ============== ============= ============== ============= ============== ==== =========
TestGlmPoissonPlain               stata                  X                            X   X       X        X              X             X              X             X              X    bfgs
TestGlmPoissonFwNr                stata                  X                            X   X       X        X              X             X              X             X              X    bfgs
TestGlmPoissonAwNr                stata                  X                            X   X       X        X              X             X              X             X              X    bfgs
TestGlmPoissonFwHC                stata                  X                            X   X       X                                                                                 X
TestGlmPoissonAwHC                stata                  X                            X   X       X                                                                                 X
TestGlmPoissonFwClu               stata                  X                            X   X       X                                                                                 X
TestGlmTweedieAwNr                R                      X                            X           X        X              X             X              X                                 newton
TestGlmGammaAwNr                  R                      X                            X   special X        X              X             X              X                                 bfgs
TestGlmGaussianAwNr               R                      X                            X   special X        X              X             X              X                                 bfgs
TestRepeatedvsAggregated          statsmodels.GLM        X      X                                                                                                                        bfgs
TestRepeatedvsAverage             statsmodels.GLM        X      X                                                                                                                        bfgs
TestTweedieRepeatedvsAggregated   statsmodels.GLM        X      X                                                                                                                        bfgs
TestTweedieRepeatedvsAverage      statsmodels.GLM        X      X                                                                                                                        bfgs
TestBinomial0RepeatedvsAverage    statsmodels.GLM        X      X
TestBinomial0RepeatedvsDuplicated statsmodels.GLM        X      X                                                                                                                        bfgs
TestBinomialVsVarWeights          statsmodels.GLM        X      X                     X                                                                                                  bfgs
TestGlmGaussianWLS                statsmodels.WLS        X      X                     X                                                                                                  bfgs
================================= ====================== ====== ===================== === ======= ======== ============== ============= ============== ============= ============== ==== =========
i(   t   division(   t   PY3N(   t   assert_raisest   assert_allclose(   t   GLM(   t   add_constant(   t   discrete_model(   t   SpecificationWarningi   (   t   results_glm_poisson_weights(   t   res_R_var_weight(   t   loadt	   as_pandasi   t   prependt   CheckWeightc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s<  |  j  } |  j } t | j | j d d d d t |  d d  } t | d  rt t | j | j d d d d n  t |  t t	 t
 t t t f  r d  St | j | | j d d d d t |  t  r d  St |  t  r d  St |  t t f  st | j | j d d d d	 n  t | j | j d d d d	 d  S(
   Nt   atolgư>t   rtolg>t	   corr_facti   t   normalized_cov_paramsg:0yE>gHz>(   t   res1t   res2R   t   paramst   getattrt   hasattrR   t
   isinstancet   TestRepeatedvsAggregatedt   TestRepeatedvsAveraget   TestTweedieRepeatedvsAggregatedt   TestTweedieRepeatedvsAveraget   TestBinomial0RepeatedvsAveraget!   TestBinomial0RepeatedvsDuplicatedt   Nonet   bset   TestBinomialVsVarWeightst   TestGlmGaussianWLSt   TestGlmGaussianAwNrt   TestGlmGammaAwNrt   llft   llt   deviance(   t   selfR   R   R   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt
   test_basic9   s,    				#"c         C   sa  t  |  t t t t t t f  r% d  S|  j } |  j	 } t
 | d  sJ d  St t | j | j j   } t | j | d d d d d t | j | d d d d d t | j | d d d d d t | j | d	 d d d d | j d
  d  k rd  St j   ! t j d d t | j } Wd  QXt | | d
 t j | j  d d d d d  S(   Nt   residst   resid_responseR   gư>R   g>t   resid_pearsont   resid_deviancet   resid_workingt   resid_anscombet   ignoret   category(   R   R   R   R   R   R   R   R   R   R   R   t   dictt   zipt   resids_colnamesR)   t   TR   R*   R+   R,   R-   t   gett   warningst   catch_warningst   simplefiltert   FutureWarningR.   t   npt   sqrtt   _var_weights(   R'   R   R   t	   resid_allt   resid_a(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   test_residualsW   s*    		    c         C   s
  |  j  } t | j j t j j  r3 d } d } n d } d } t |  t t t	 t
 f  r^ d  S| j } |  j  j j 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	 d  S(   Nt   newtont   eimt   bfgst   oimt   start_paramst   methodt   optim_hessianR   gMbP?R   gMb`?t   observed(   R   R   t   modelt   familyt   smt   familiest   Tweediet   TestGlmPoissonFwHCt   TestGlmPoissonAwHCt   TestGlmPoissonFwCluR   R   R   t   fitR   t   hessiant   FalseR:   R;   t   diagt   linalgt   invR   (   R'   R   RE   RF   RD   R   t   Ht   res2_bse(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   test_compare_optimizerss   s"    				%c         C   s>   t  |  j d  r: t |  j j |  j j d d d d n  d  S(   Nt   chi2R   gư>R   (   R   R   R   R   t   pearson_chi2t
   deviance_p(   R'   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   test_pearson_chi2   s    (   t   __name__t
   __module__R(   R?   RX   R\   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR   8   s   			t   TestGlmPoissonPlainc           B   s   e  Z e d     Z RS(   c         C   sU   t  t j t j d t j j   j   |  _ t	 j t j t j  } t
 j |  _ d  S(   NRI   (   R   t   cpunish_datat   endogt   exogRJ   RK   t   PoissonRP   R   t   discretet	   res_statat   results_poisson_none_nonrobustR   (   t   clst   modd(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   setup_class   s    (   R]   R^   t   classmethodRi   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR_      s   t   TestGlmPoissonFwNrc           B   s   e  Z e d     Z RS(   c         C   s   d d d d d d d d d d d d d d d d d g } t  j |  } t t j t j d t j j   d | j	   |  _
 t j t j t j  } t j |  _ d  S(   Ni   i   i   RI   t   freq_weights(   R:   t   arrayR   R`   Ra   Rb   RJ   RK   Rc   RP   R   Rd   Re   t!   results_poisson_fweight_nonrobustR   (   Rg   t   fweightsRh   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi      s    9!(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRk      s   t   TestGlmPoissonAwNrc           B   s   e  Z e d     Z RS(   c         C   s>  d d d d d d d d d d d d d d d d d g } t  j |  } | j   } t t j  } | | | } t t j t j d t j	 j
   d | j   |  _ t j
 t j t j  } d d l m } | t j  |  _ |  j j j   |  j _ |  j j d  d   d d  f c t  j | d  d   t  j f  9<d  S(	   Ni   i   i   RI   t   var_weightsi(   t   copyi   (   R:   Rm   t   sumt   lenR`   Ra   R   Rb   RJ   RK   Rc   RP   R   Rd   Rr   Re   t!   results_poisson_aweight_nonrobustR   R)   R;   t   newaxis(   Rg   Ro   t   wsumt   nobst   aweightsRh   Rr   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi      s    9!(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRp      s   t   TestGlmPoissonPwNrc           B   s_   e  Z e d     Z e j j d d d e  d    Z e j j d d d e  d    Z	 RS(   c         C   s   d d d d d d d d d d d d d d d d d g } t  j |  } | j   } t t j  } | | | } t t j t j d t j	 j
   d | j d d  |  _ t j |  _ d  S(   Ni   i   i   RI   Rl   t   cov_typet   HC1(   R:   Rm   Rs   Rt   R`   Ra   R   Rb   RJ   RK   Rc   RP   R   Re   t!   results_poisson_pweight_nonrobustR   (   Rg   Ro   Rw   Rx   Ry   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi      s    9't   reasons   Known to failt   strictc         C   s   t  t |   j   d  S(   N(   t   superRz   R(   (   R'   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR(      s    c         C   s   t  t |   j   d  S(   N(   R   Rz   RX   (   R'   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRX      s    (
   R]   R^   Rj   Ri   t   pytestt   markt   xfailt   TrueR(   RX   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRz      s   $RM   c           B   s   e  Z e d     Z RS(   c         C   s   d d d d d d d d d d d d d d d d d g } t  j |  } | j   } t t j  } | | | } t  j | d |  |  _ t t j t j	 d t
 j j   d | } | j d d  |  _ t j |  _ d  S(	   Ni   i   i   g      ?RI   Rl   R{   t   HC0(   R:   Rm   Rs   Rt   R`   Ra   R;   R   R   Rb   RJ   RK   Rc   RP   R   Re   t   results_poisson_fweight_hc1R   (   Rg   Ro   Rw   Rx   Ry   t   mod(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi      s    9	(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRM      s   RN   c           B   s   e  Z e d     Z RS(   c         C   s   d d d d d d d d d d d d d d d d d g } t  j |  } | j   } t t j  } | | | } t  j | d |  d |  _ t t j t j	 d t
 j j   d | } | j d d	  |  _ t j |  _ d  S(
   Ni   i   i   g      ?gL#?RI   Rq   R{   R   (   R:   Rm   Rs   Rt   R`   Ra   R;   R   R   Rb   RJ   RK   Rc   RP   R   Re   t   results_poisson_aweight_hc1R   (   Rg   Ro   Rw   Rx   Ry   R   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi      s    9	(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRN      s   RO   c           B   s   e  Z e d     Z RS(   c   	      C   s9  d d d d d d d d d d d d d d d d d g } t  j |  } | j   } t t j  } | | | } t  j d d  d } t t  j |   } d t  j | | d  |  _	 i | d 6t
 d 6} t j d   J t t j t j d t j j   d | } | j d	 d
 d |  |  _ Wd  QXt j |  _ d  S(   Ni   i   i   i   t   groupst   use_correctionRI   Rl   R{   t   clustert   cov_kwdsi   (   R:   Rm   Rs   Rt   R`   Ra   t   aranget   uniqueR;   R   RR   R   t   warnsR   R   Rb   RJ   RK   Rc   RP   R   Re   t   results_poisson_fweight_clu1R   (	   Rg   Ro   Rw   Rx   Ry   t   gidt   n_groupsR   R   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi     s    9	!(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRO     s   t   TestGlmTweedieAwNrc           B   s   e  Z e d     Z RS(   c      
   C   s   d d  l  j j } t j j j   } | j } | j } | | d <t	 j
 d t | j   } d | d  d  d  <d | d  d  d  <| j d d | d	 t j j d
 d d t j j j    d | } | j d d d d  |  _ t j |  _ d  S(   Nit   fairi   i   i   i   s   fair ~ age + yrs_marriedt   dataRI   t	   var_powerg?t   linkRq   R   g}:R   i    (   t   statsmodels.formula.apit   formulat   apiRJ   t   datasetsR   t   load_pandasRa   Rb   R:   t   repeatRt   t   indext   glmRK   RL   t   linkst   logRP   R   t   res_rt"   results_tweedie_aweights_nonrobustR   (   Rg   t   smfR   Ra   Ry   RH   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi   !  s"    		
	(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR      s   R#   c           B   s    e  Z e d     Z d   Z RS(   c         C   s   d d l  m } |   } | j } | j d  d   d  d  f } t j | d t } t j d t	 |   } d | d  d  d  <d | d  d  d  <t j
 | | d t j j d	 t j j j    d
 | } | j d d d d  |  _ t j |  _ d  S(   Ni   (   t	   CancerLogiR   i   i   i   RI   R   Rq   R   g}:R   i    (   t   results.results_glmR   Ra   Rb   RJ   R   R   R:   R   Rt   R   RK   t   GammaR   R   RP   R   R   t    results_gamma_aweights_nonrobustR   (   Rg   R   R   Ra   Rb   Ry   RH   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi   :  s    		!	c         C   sx   |  j  j |  j  j j   } |  j  j j |  j  j j |  j  j d |  j  j	 d | } t
 | |  j j d d d d d  S(   NRl   t   scaleR   gư>R   gHz>(   R   R&   t	   _iweightsRs   RI   t   loglikeRH   Ra   t   muR<   R   R   R%   (   R'   R   R%   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt
   test_r_llfK  s    	(   R]   R^   Rj   Ri   R   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR#   9  s   R"   c           B   s    e  Z e d     Z d   Z RS(   c         C   s   d d  l  j j } t j j j   } | j } | j } | | d <| d c d <t	 j
 d d d d d	 d d d d d d d d	 d d d d g  } | j d
 d | d t j j d t j j j    d | } | j d d d d  |  _ t j |  _ d  S(   Nit
   EXECUTIONSt   INCOMEi  i   i   i   i   i   s   EXECUTIONS ~ INCOME + SOUTH - 1R   RI   R   Rq   R   g}:R   i    (   R   R   R   RJ   R   t   cpunishR   Ra   Rb   R:   Rm   R   RK   t   GaussianR   R   RP   R   R   t#   results_gaussian_aweights_nonrobustR   (   Rg   R   R   Ra   Ry   RH   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi   U  s    		
6!	c   
      C   s   |  j  } |  j } |  j  j } | j | j | j } | j } | j j | j	 | j
 d | d | } d	 | j	 | j
 d j   | } | j d t j t j | j   d } | | | }	 t |	 | j d d d d d  S(
   NRl   R   ii   R   gư>R   gHz>g      (   R   R   RH   R   t   df_residt   wnobsRl   RI   R   Ra   R   Rs   R:   R   Rq   R   R%   (
   R'   R   R   RH   R   t   wtsR$   t   adj_smt   adj_rt   llf_adj(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR   i  s    				"+(   R]   R^   Rj   Ri   R   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR"   T  s   i    c         C   sV  t  j j d  t j } |   j |   } | | j k r| d k rn d t  j j d t |    | k  } qR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 <nF| | j k r0t  j j |  } n"| | j k rWt  j j d |  } n | | j k r| t  j j d t |    } n | | j k rd d l m } | j | d	  } n | | j k rd d
 l m }	 |	 j |  } ne | | j k rLd }
 d } | |
 | } t  j j |
 d | j d t  j j | |  } n t  | S(   Nih  i    i   t   sizei   i
   i(   t   nbinomg      ?(   t   invgaussg      ?(   R:   t   randomt   seedRJ   RK   t   inverset   Binomialt   uniformRt   t   emptyR   Rs   Rc   t   poissonR   t   gammaR   t   normalt   NegativeBinomialt   scipy.stats.distributionsR   t   rvst   InverseGaussianR   RL   t   shapet
   ValueError(   t   lin_predt   family_classR   t   binom_versiont   famR   Ra   t   nR   R   t   rateR   R   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt	   gen_endog  s<    	(P-"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]}
 d } | |  j k r|
 d k rqan| |  j k r|	 | j	 k rqan| |  j k r|	 | j
 k rqano| |	 f |  j | j f k r
d | j d  } n;| |	 f |  j | j
 f k rBd	 | j d  d
 } n| |	 f |  j | j f k rvd | j d  } n| |	 f |  j | j
 f k rqan| |	 f |  j | j f k rqan| |	 f |  j | j f k rqanc| |	 f |  j | j
 f k rqan?| |	 f |  j | j f k r*qan| |	 f |  j | j
 f k rad	 | j d  } qan| |	 f |  j | j f k rd d | j d  } t  j | d t  j  } qan| |	 f |  j | j f k rd | j d  d } qanV| |	 f |  j | j f k r-d | j d  d } d } n| |	 f |  j | j f k rd d | j d  } t  j | d t  j  } d } 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 } qanC | |	 f |  j | j f k r)t } n t  j j d | j d  } t | | |	 |
  } |
 d k rt  j |  } t  j j d d d | | j    k j   } | | | | j    k <n t  j! d | j d  } | d  d   d f | j d d  } t  j j" d d | | j    k j   } | | | | j    k <t# j$   < t# j% d  t j& | | d | d | d |	    } Wd  QX| j' d d d d d d  } xbd | j( f d& f D]K\ } } | d k r| rqn  t# j$   < t# j% d  t j& | | d | d | d |	    } Wd  QX| j' 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  j0 j1 |    } t* | | j- d! d" d d# qWqaWqTWqAWd  S('   Ni.U id   i   R   i   i    RB   i   ii   ii   g-C6?g      ?R@   gMbP?g?i   R   t   axisR/   Rq   RI   R   RE   t   IRLSR   g|=t   tol_criterionR   t   max_start_irlsRD   R   gư>g-C6
?RG   (   i    i   (   i   N(2   R:   R   R   RJ   RK   R   R   t   logitt   probitt   cloglogR   t   cauchyRc   t   identityR;   R   t   inverse_powerR   R   t   inverse_squaredR   R   RR   Rs   t   clipt   infR   R   R   R   t	   ones_liket   randintt   meant   onesR   R6   R7   R8   R   RP   R   R   R   R$   R   R   RQ   RS   RT   RU   (   R   t   lnkRK   R   t   pRb   t   skip_oneR   t   family_linksR   R   RE   R   Ra   R   t   tmpt   yt   mod_irlst	   rslt_irlsR   RD   t   mod_gradientt   rslt_gradientt   gradient_bset   ehess(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   test_wtd_gradient_irls  s    			 		&*						%c         C   s   t  j t  j |    } t  j d |  j d t |  d f  } x[ t |  D]M \ } } | d k rl qN n  t  j | |  k d d  | d  d   | d f <qN W| S(   NR   i    i   (   R:   t   sortR   t   zerosR   Rt   t	   enumeratet   where(   t   xt   valuest   outt   it   v(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   get_dummies@  s    )3R   c           B   s   e  Z e d     Z RS(   c         C   s1  t  j j d  d } d } t  j | | f  } d | d  d   d f <t  j j d d d d d	 |  | d  d   d f <t  j t  j d d
 d d g  | d  } t |  | d  d   d
 d   f <t  j d d d d d g  } | | j d d  } t	 j
 j } t	 j
 j j } t | | |  }	 t	 j |	 | d | d |    }
 |
 j   |  _ t j |  } |	 | d <| j d d d
 d d g  j   d g } | j d d d
 d d g  j   d g } t  j | j j    } | d } | d } t	 j | | d | d |    d | } | j   |  _ d  S(   Ni  id   i   i   i    t   lowit   highR   i   i   i   ig?gg?gffffff?R   RI   R   Ra   t   exposure(   R:   R   R   R   R   R   Rm   R   Rs   RJ   RK   Rc   R   R   R   R   RP   R   t   pdt	   DataFramet   groupbyt   countR   t   tolistR   (   Rg   R   R   Rb   R   t   betaR   RI   R   Ra   t   mod1t   aggt	   agg_endogt   agg_wtt   agg_exogt   mod2(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi   K  s2    1+"$
++

!	(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR   J  s   R   c           B   s   e  Z e d     Z RS(   c         C   s5  t  j j d  d } d } t  j | | f  } d | d  d   d f <t  j j d d d d d	 |  | d  d   d f <t  j t  j d d
 d d g  | d  } t |  | d  d   d
 d   f <t  j d d d d d g  } | | j d d  } t	 j
 j } t	 j
 j j } t | | |  }	 t	 j |	 | d | d |    }
 |
 j   |  _ t j |  } |	 | d <| j d d d
 d d g  j   d g } | j d d d
 d d g  j   d g } t  j | j j    } | d } | d | } t	 j | | d | d |    d | } | j   |  _ d  S(   Ni  i'  i   i   i    R   iR   R   i   i   i   ig?gg?gffffff?R   RI   R   Ra   Rq   (   R:   R   R   R   R   R   Rm   R   Rs   RJ   RK   Rc   R   R   R   R   RP   R   R   R   R   R   R   R  R   (   Rg   R   R   Rb   R   R  R   RI   R   Ra   R  R  R  R  R  t	   avg_endogR  (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi   j  s2    1+"$
++
!	(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR   i  s   R   c           B   s   e  Z e d     Z RS(   c      
   C   sk  t  j j d  d } d } t  j | | f  } d | d  d   d f <t  j j d d d d d	 |  | d  d   d f <t  j t  j d d
 d d g  | d  } t |  | d  d   d
 d   f <t  j d d d d d g  } | | j d d  } t	 j
 j } t	 j
 j j } t | | |  }	 t	 j |	 | d | d |   d d  }
 |
 j d d d d d d  |  _ t j |  } |	 | d <| j d d d
 d d g  j   d g } | j d d d
 d d g  j   d g } t  j | j j    } | d } | d } t	 j | | d | d |   d d  d | d | d } | j d d d d d d  |  _ d  S(    Ni  i'  i   i   i    R   iR   R   i   i   i   i   g?gg?gffffff?R   RI   R   R   g      ?R   g#B;R   R   R   Ra   R   Rq   g      ?(   R:   R   R   R   R   R   Rm   R   Rs   RJ   RK   RL   R   R   R   R   RP   R   R   R   R   R   R   R  R   (   Rg   R   R   Rb   R   R  R   RI   R   Ra   R  R  R  R  R  R  (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi     s4    1+"*!
++

(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR     s   R   c           B   s   e  Z e d     Z RS(   c      	   C   sk  t  j j d  d } d } t  j | | f  } d | d  d   d f <t  j j d d d d d	 |  | d  d   d f <t  j t  j d d
 d d g  | d  } t |  | d  d   d
 d   f <t  j d d d d d g  } | | j d d  } t	 j
 j } t	 j
 j j } t | | |  }	 t	 j |	 | d | d |   d d  }
 |
 j d d d d d d d d  |  _ t j |  } |	 | d <| j d d d
 d d g  j   d g } | j d d d
 d d g  j   d g } t  j | j j    } | d } | d | } t	 j | | d | d |   d d  d | } | j d d d d d d  |  _ d  S(    Ni  i  i   i   i    R   iR   R   i   i   i   i   g?gg?gffffff?R   RI   R   R   g      ?R   g|=R   R   R   t	   scaletypet   x2Ra   Rq   (   R:   R   R   R   R   R   Rm   R   Rs   RJ   RK   RL   R   R   R   R   RP   R   R   R   R   R   R   R  R   (   Rg   R   R   Rb   R   R  R   RI   R   Ra   R  R  R  R  R  R	  R  (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi     s6    1+"*
++
	(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR     s   R   c           B   s   e  Z e d     Z RS(   c      	   C   se  t  j j d  d } d } t  j | | f  } d | d  d   d f <t  j j d d d d d	 |  | d  d   d f <t  j t  j d d
 d d g  | d  } t |  | d  d   d
 d   f <t  j d d d d d g  } | | j d d  } t	 j
 j } t	 j
 j j } t | | | d d }	 t	 j |	 | d | d |    }
 |
 j d d d d d d d d  |  _ t j |  } |	 | d <| j d d d
 d d g  j   d g } | j d d d
 d d g  j   d g } t  j | j j    } | d } | d | } t	 j | | d | d |    d | } | j d d d d d d  |  _ d  S(   Ni  i   i   i   i    R   iR   R   i   i   i   ig?gg?gffffff?R   R   RI   R   R   g|=R   R   R   R
  R  Ra   Rq   (   R:   R   R   R   R   R   Rm   R   Rs   RJ   RK   R   R   R   R   R   RP   R   R   R   R   R   R   R  R   (   Rg   R   R   Rb   R   R  R   RI   R   Ra   R  R  R  R  R  R	  R  (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi     s6    1+"$
++
	(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR     s   R   c           B   s   e  Z e d     Z RS(   c         C   s  t  j j d  d } d } t  j | | f  } d | d  d   d f <t  j j d d d d d	 |  | d  d   d f <t  j t  j d d
 d d g  | d  } t |  | d  d   d
 d   f <t  j d d d d d g  } | | j d d  } t	 j
 j } t	 j
 j j } t | | | d d }	 t  j j d d |  }
 t	 j |	 | d | d |    d |
 } | j   |  _ t  j | |
 d d } t  j |	 |
  } t	 j | | d | d |    } | j   |  _ d  S(   Ni  i'  i   i   i    R   iR   R   i   i   i   ig?gg?gffffff?R   R   RI   R   Rl   (   R:   R   R   R   R   R   Rm   R   Rs   RJ   RK   R   R   R   R   R   RP   R   R   (   Rg   R   R   Rb   R   R  R   RI   R   Ra   t   wtR  t   exog_dupt	   endog_dupR  (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi     s(    1+"*$(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR     s   c          C   s@  d d d d d d d d d d d d d d d d d g }  t  j |   }  t  j d d  d } i | d 6t d 6} t r~ t n d  } t j |  K t	 t
 j t
 j d t j j   d |  j d	 d
 d |  } | j   Wd  QXt j |  K t	 t
 j t
 j d t j j   d |  j d	 d
 d |  } | j   Wd  QXd  S(   Ni   i   i   i   R   R   RI   Rl   R{   R   R   Rq   i   (   R:   Rm   R   RR   R   R   R   R   R   R   R`   Ra   Rb   RJ   RK   Rc   RP   t   summary(   t   weightsR   R   t   warning_typeR   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   test_warnings_raised  s    9i   t	   formattedt   idst   listt   ndarrayt   Seriesc         C   s   t  |   d  S(   N(   t   check_weights_as_formats(   R  (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   test_weights_different_formats  s    c         C   s  t  t j t j d t j j   d |  j   } t | j	 t
 j  sK t  t | j t
 j  sf t  t | j t
 j  s t  t  t j t j d t j j   d |  j   } t | j	 t
 j  s t  t | j t
 j  s t  t | j t
 j  st  d  S(   NRI   Rl   Rq   (   R   R`   Ra   Rb   RJ   RK   Rc   RP   R   t   _freq_weightsR:   R  t   AssertionErrorR<   R   (   R  t   res(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR  %  s    R    c           B   s   e  Z e d     Z RS(   c         C   s   d d l  m } | d t  } | j | j j d  _ t | j d t | _ t | j | j d t j	 j
   j   |  _ | j j d d  } | j d  d   d f | } t | | j d t j	 j
   d	 | j   |  _ d  S(
   Ni(   R
   R   i    R   RI   R   i   Rq   (   t   statsmodels.datasets.star98R
   RR   Rb   t   stdR   R   Ra   RJ   RK   R   RP   R   Rs   R   (   Rg   R
   R   R  t   endog2(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi   6  s    (   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR    5  s   R!   c           B   s   e  Z e d     Z RS(   c         C   s  d d  l  j j } t j j j   } | j } | j } | | d <| d c d <t	 j
 d d d d d	 d d d d d d d d	 d d d d g  } | j d
 d | d t j j d t j j j    d | } | j d
 d | d | } | j d d d d  |  _ | j   |  _ d  S(   NiR   R   i  i   i   i   i   i   s   EXECUTIONS ~ INCOME + SOUTH - 1R   RI   R   Rq   R  R   g}:R   (   R   R   R   RJ   R   R   R   Ra   Rb   R:   Rm   R   RK   R   R   R   t   wlsRP   R   R   (   Rg   R   R   Ra   Ry   RH   t   wlsmodel(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyRi   G  s&    		
6!		(   R]   R^   Rj   Ri   (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyR!   F  s   c          C   s:  d d d d d d d d d d d d d d d d d g }  t  j } t  j } t j j   } t t t | | d | d |  d  t t t | | d | d |  d  t t t | | d | d |  d g t t t | | d | d |  d g t t t | | d | d |  |  g t t t | | d | d |  |  g d  S(   Ni   i   i   RI   Rl   iRq   (	   R`   Rb   Ra   RJ   RK   Rc   R   R   R   (   R  Rb   Ra   RI   (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   test_incompatible_input`  s     9		c          C   s  d \ }  } t  j j d  t  j j |  | d  } t |  } | j d  d } | d t  j j |   } d t  j |   d } t  j j t  j |  |  } | d d c !d 7+t	 j
 j   } t | | d	 | d
 | } | j   }	 t | | | d	 | d | }
 |
 j   } t |	 j | | j  t |	 j | j  t |	 j | j  t j   + t j d d t t |	 j | j  Wd  QXt |	 j | j  d  S(   Nid   i   i i   i   i   i
   i   RI   R   Rq   R/   R0   (   id   i   (   R:   R   R   t   randnR   Rs   R   R   t   expRJ   RK   Rc   R   RP   R   R*   R+   R,   R6   R7   R8   R9   R.   t   resid_anscombe_unscaled(   Rx   t   k_exogR   t   y_trueR   R   t   ypR   t	   mod_poi_et	   res_poi_et	   mod_poi_wt	   res_poi_w(    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   test_poisson_residualsw  s.    
	(F   t   __doc__t
   __future__R    t   statsmodels.compat.pythonR   R6   t   numpyR:   t   numpy.testingR   R   t   pandasR   R   t   statsmodels.apiR   RJ   t+   statsmodels.genmod.generalized_linear_modelR   t   statsmodels.tools.toolsR   t   statsmodels.discreteR   Rd   t   statsmodels.tools.sm_exceptionsR   t   resultsR   Re   R	   R   t   statsmodels.datasets.cpunishR
   RR   R`   R   Rb   t   objectR   R_   Rk   Rp   Rz   RM   RN   RO   R   R#   R"   R   R   R   R   R   R   R   R   R   R  R  R   t   parametrizet   asarrayR  R  R  R    R!   R"  R-  (    (    (    sH   lib/python2.7/site-packages/statsmodels/genmod/tests/test_glm_weights.pyt   <module>   s^   5V
+(		
 !!	9-		