
    'YHh                        d 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
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  e       Z ej6                  ej8                        e_         ej6                  ej:                        e_         ej<                  ej8                  ddd
f         ej8                  ddd
f<    eej8                  d      e_         G d d      Z G d de      Z  G d de      Z! G d de      Z" G d de      Z# G d de      Z$ G d de      Z% G d de      Z& G d de      Z' G d d e      Z( G d! d"e      Z)d?d#Z*d$ Z+d% Z, G d& d'e      Z- G d( d)e      Z. G d* d+e      Z/ G d, d-e      Z0 G d. d/e      Z1 G d0 d1e      Z2d2 Z3g d3Z4e	jj                  jm                  d4e4 ej6                  e4       ejn                  e4      gg d56      d7        Z8d8 Z9 G d9 d:e      Z: G d; d<e      Z;d= Z<d> Z=y)@a  
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
================================= ====================== ====== ===================== === ======= ======== ============== ============= ============== ============= ============== ==== =========
    N)assert_allcloseassert_raisesload)GLM)SpecificationWarning)add_constant   )res_R_var_weightresults_glm_poisson_weights   Fprependc                   *    e Zd Zd Zd Zd Zd Zd Zy)CheckWeightc           	         | j                   }| j                  }t        |j                  |j                  dd       t	        | dd      }t        |d      r#t        |j                  |j                  dd       t        | t        t        t        t        t        t        f      ry t        |j                  ||j                  z  dd       t        | t              ry t        | t               ry t        | t"        t$        f      s#t        |j&                  |j(                  dd       t        |j*                  |j*                  dd       y )	Nư>>atolrtol	corr_factr
   normalized_cov_paramsg:0yE>Hz>)res1res2r   paramsgetattrhasattrr   
isinstanceTestRepeatedvsAggregatedTestRepeatedvsAverageTestTweedieRepeatedvsAggregatedTestTweedieRepeatedvsAverageTestBinomial0RepeatedvsAverage!TestBinomial0RepeatedvsDuplicatedbseTestBinomialVsVarWeightsTestGlmGaussianWLSTestGlmGaussianAwNrTestGlmGammaAwNrllflldeviance)selfr   r   r   s       b/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/genmod/tests/test_glm_weights.py
test_basiczCheckWeight.test_basic8   s    yyyyT[[t$GD+q1	401D66 66!%D2 d57L<9;>	@ A )dhh"6TMd45d./$!46F GHDHHdggDtDt}}4dK    c           	         t        | t        t        t        t        t
        t        f      ry | j                  }| j                  }t        |d      sy t        t        |j                  |j                  j                              }t        |j                   |d   dd       t        |j"                  |d   dd       t        |j$                  |d   dd       t        |j&                  |d   dd       |j)                  d	      y |j*                  }|d	   t-        j.                  |j0                        z  }t        ||dd       y )
Nresidsresid_responser   r   r   resid_pearsonresid_devianceresid_workingresid_anscombe)r    r!   r"   r#   r$   r%   r&   r   r   r   dictzipresids_colnamesr4   Tr   r5   r6   r7   r8   getr9   npsqrt_var_weights)r/   r   r   	resid_allresid_aresid_a1s         r0   test_residualszCheckWeight.test_residualsV   s'   d57L<9;>	@ A yyyytX&T114;;==AB	++Y7G-H!	.**Io,F!	.++Y7G-H!	.**Io,F!	.==)*2 %%-.9J9J1KK4@r2   c                    | j                   }t        |j                  j                  t        j
                  j                        rd}d}nd}d}t        | t        t        t        t        f      ry |j                  }| j                   j                  j                  |||      }t        |j                  |j                  dd       |j                  j                  |j                  d	
      }t        j                   t        j"                  t        j$                  j'                  |                   }t        |j(                  |dd       y )Nnewtoneimbfgsoim)start_paramsmethodoptim_hessianMbP?gMb`?r   Fobserved)r   r    modelfamilysmfamiliesTweedieTestGlmPoissonFwHCTestGlmPoissonAwHCTestGlmPoissonFwClur%   r   fitr   hessianr?   r@   diaglinalginvr'   )r/   r   rL   rM   rK   r   Hres2_bses           r0   test_compare_optimizersz#CheckWeight.test_compare_optimizersu   s    yydjj'')<)<=F!MF!Md/1C0;= > {{yy""V1> # @T[[t$GJJt{{U;77BGGBIIMM!$4556(DAr2   c                     t        | j                  d      r8t        | j                  j                  | j                  j
                  dd       y y )Nchi2r   r   )r   r   r   r   pearson_chi2
deviance_p)r/   s    r0   test_pearson_chi2zCheckWeight.test_pearson_chi2   s:    499f%DII22DII4H4H!%D2 &r2   c                     | j                   j                         }t        |j                  j                  |j                  j                  d       y )N绽|=)r   )r   get_predictionr   linpredse_mean)r/   preds     r0   test_getpredictionzCheckWeight.test_getprediction   s4    yy''),,dll.B.BOr2   N)__name__
__module____qualname__r1   rE   r`   re   rl    r2   r0   r   r   7   s    L<A>B*2
Pr2   r   c                       e Zd Zed        Zy)TestGlmPoissonPlainc                     t        t        j                  t        j                  t        j
                  j                               j                         | _        t        j                  | _        y )NrR   )r   cpunish_dataendogexogrS   rT   PoissonrY   r   	res_stataresults_poisson_none_nonrobustr   )clss    r0   setup_classzTestGlmPoissonPlain.setup_class   sG    |))<+<+< kk113558SU 	 ;;r2   Nrm   rn   ro   classmethodr|   rp   r2   r0   rr   rr      s    < <r2   rr   c                       e Zd Zed        Zy)TestGlmPoissonFwNrc                    g d}t        j                  |      }t        t        j                  t        j
                  t        j                  j                         |      j                         | _
        t        j                  | _        y )Nr
   r
   r
      r   r   r   r   r   r
   r
   r
   r   r   r   r   r   rR   freq_weights)r?   arrayr   ru   rv   rw   rS   rT   rx   rY   r   ry   !results_poisson_fweight_nonrobustr   )r{   fweightss     r0   r|   zTestGlmPoissonFwNr.setup_class   s\    F88H%|))<+<+< kk113( 	 >>r2   Nr}   rp   r2   r0   r   r      s    ? ?r2   r   c                       e Zd Zed        Zy)TestGlmPoissonAwNrc                    g d}t        j                  |      }|j                         }t        t        j
                        }||z  |z  }t        t        j
                  t        j                  t        j                  j                         |      j                         | _        ddlm}  |t        j                        | _        | j                   j"                  j                         | j                   _        | j                   j"                  d d ddfxx   t        j$                  |d d t         j&                  f         z  cc<   y )Nr   rR   var_weightsr   )copyr      )r?   r   sumlenru   rv   r   rw   rS   rT   rx   rY   r   r   ry   !results_poisson_aweight_nonrobustr   r4   r@   newaxis)r{   r   wsumnobsaweightsr   s         r0   r|   zTestGlmPoissonAwNr.setup_class   s    F88H%||~<%%&d?T)|))<+<+< kk113 	
 		CCD((//..0 	1Q32778ArzzM+B#CCr2   Nr}   rp   r2   r0   r   r      s    D Dr2   r   c                        e Zd Zed        Zej                  j                  dd       fd       Zej                  j                  dd       fd       Z	 xZ
S )TestGlmPoissonPwNrc                 z   g d}t        j                  |      }|j                         }t        t        j
                        }||z  |z  }t        t        j
                  t        j                  t        j                  j                         |      j                  d      | _        t        j                  | _        y )Nr   r   HC1cov_type)r?   r   r   r   ru   rv   r   rw   rS   rT   rx   rY   r   ry   !results_poisson_pweight_nonrobustr   )r{   r   r   r   r   s        r0   r|   zTestGlmPoissonPwNr.setup_class   s    F88H%||~<%%&d?T)|))<+<+< kk113(e, 	 >>r2   zKnown to failT)reasonstrictc                 "    t         |           y N)superr1   r/   	__class__s    r0   r1   zTestGlmPoissonPwNr.test_basic   s    r2   c                 "    t         |           y r   )r   r`   r   s    r0   r`   z*TestGlmPoissonPwNr.test_compare_optimizers   s    ')r2   )rm   rn   ro   r~   r|   pytestmarkxfailr1   r`   __classcell__)r   s   @r0   r   r      se    ? ? [[od; < [[od;* <*r2   r   c                       e Zd Zed        Zy)rV   c                    g d}t        j                  |      }|j                         }t        t        j
                        }||z  |z  }t        j                  |dz
  |z        | _        t        t        j
                  t        j                  t        j                  j                         |      }|j                  d      | _        t        j                   | _        y )Nr         ?r   HC0r   )r?   r   r   r   ru   rv   r@   r   r   rw   rS   rT   rx   rY   r   ry   results_poisson_fweight_hc1r   r{   r   r   r   r   mods         r0   r|   zTestGlmPoissonFwHC.setup_class   s    F88H%||~<%%&d?T)d 23,$$l&7&7,,.') 77E7* 88r2   Nr}   rp   r2   r0   rV   rV      s    9 9r2   rV   c                       e Zd Zed        Zy)rW   c                    g d}t        j                  |      }|j                         }t        t        j
                        }||z  |z  }t        j                  |dz
  |z        dz  | _        t        t        j
                  t        j                  t        j                  j                         |      }|j                  d      | _        t        j                   | _        y )Nr   r   gL#?r   r   r   )r?   r   r   r   ru   rv   r@   r   r   rw   rS   rT   rx   rY   r   ry   results_poisson_aweight_hc1r   r   s         r0   r|   zTestGlmPoissonAwHC.setup_class   s    F88H%||~<%%&d?T) d 236II,$$l&7&7,,.&( 77E7* 88r2   Nr}   rp   r2   r0   rW   rW      s    9 9r2   rW   c                       e Zd Zed        Zy)rX   c                    g d}t        j                  |      }|j                         }t        t        j
                        }||z  |z  }t        j                  dd      dz  }t        t        j                  |            }dt        j                  ||dz
  z        z  | _	        |dd}t        j                  t              5  t        t        j
                  t        j                  t        j                   j#                         |      }|j%                  d|	      | _        d d d        t(        j*                  | _        y # 1 sw Y   xY w)
Nr   r
      r   Fgroupsuse_correctionr   clusterr   cov_kwds)r?   r   r   r   ru   rv   arangeuniquer@   r   r   warnsr   r   rw   rS   rT   rx   rY   r   ry   results_poisson_fweight_clu1r   )	r{   r   r   r   r   gidn_groupsr   r   s	            r0   r|   zTestGlmPoissonFwClu.setup_class
  s   F88H%||~<%%&d?T)ii6"a'ryy~& BGGH1$=>>!U;\\./ 	Fl((,*;*;[[002#+-C ww	HwECH		F 99	F 	Fs   A EE
Nr}   rp   r2   r0   rX   rX   	  s    : :r2   rX   c                       e Zd Zed        Zy)TestGlmTweedieAwNrc           	          dd l mc m} t        j                  j
                  j                         }|j                  }|j                  }||d<   t        j                  dt        |j                              }d|d d d<   d|d d d<   |j                  d|t        j                  j                  dt        j                  j                   j#                         	      |
      }|j%                  dd      | _        t(        j*                  | _        y )Nr   fairr
   r   r      zfair ~ age + yrs_marriedg?)	var_powerlinkdatarR   r   }:r   r   )statsmodels.formula.apiformulaapirS   datasetsr   load_pandasrv   rw   r?   repeatr   indexglmrT   rU   linksLogrY   r   res_r"results_tweedie_aweights_nonrobustr   r{   smfr   rv   r   rQ   s         r0   r|   zTestGlmTweedieAwNr.setup_class$  s    --{{++-

yyV99QDJJ012*{{**"**..0 +  %  
 99%a90;;r2   Nr}   rp   r2   r0   r   r   #  s    < <r2   r   c                   "    e Zd Zed        Zd Zy)r+   c                     ddl m}  |       }|j                  }|j                  d d d df   }t	        j
                  |d      }t        j                  dt        |            }d|d d d<   d|d d d<   t	        j                  ||t        j                  j                  t        j                  j                  j                         	      |
      }|j                  dd      | _        t         j"                  | _        y )Nr
   )	CancerLogTr   r   r   r   r   r   r   r   r   )results.results_glmr   rv   rw   rS   r	   r?   r   r   r   rT   Gammar   r   rY   r   r    results_gamma_aweights_nonrobustr   )r{   r   r   rv   rw   r   rQ   s          r0   r|   zTestGlmGammaAwNr.setup_class=  s    2{

yyCRC tT299QE
+12ud kk//R[[5F5F5J5J5L/M#+- 99%a9099r2   c                    | j                   j                  | j                   j                  j                         z  }| j                   j                  j                  | j                   j                  j                  | j                   j                  | j                   j                  |      }t        || j                  j                  dd       y )Nr   scaler   r   r   )r   r.   	_iweightsr   rR   loglikerQ   rv   murA   r   r   r-   )r/   r   r-   s      r0   
test_r_llfzTestGlmGammaAwNr.test_r_llfN  s    		""TYY%8%8%<%<%>>YY%%diioo&;&;&*iill37993I3I,1 & 3 	DIILLt$?r2   Nrm   rn   ro   r~   r|   r   rp   r2   r0   r+   r+   <  s    : : @r2   r+   c                   "    e Zd Zed        Zd Zy)r*   c                    dd l mc m} t        j                  j
                  j                         }|j                  }|j                  }||d<   |dxx   dz  cc<   t        j                  g d      }|j                  d|t        j                  j                  t        j                  j                  j                               |      }|j!                  d	d
      | _        t$        j&                  | _        y )Nr   
EXECUTIONSINCOME  r
   r   r      r   r   r   r   r
   r   r   r   r   r   r   r   r
   EXECUTIONS ~ INCOME + SOUTH - 1r   r   r   r   )r   r   r   rS   r   cpunishr   rv   rw   r?   r   r   rT   Gaussianr   r   rY   r   r   #results_gaussian_aweights_nonrobustr   r   s         r0   r|   zTestGlmGaussianAwNr.setup_classX  s    --{{""..0

yy"\X$88   !1{{++1B1B1F1F1H+I$	  
 99%a90<<r2   c                 X   | j                   }| j                  }| j                   j                  }|j                  |j                  z  |j
                  z  }|j                  }|j                  j                  |j                  |j                  ||      }d|j                  |j                  z
  dz  j                         z  |z  }|j
                   dz  t        j                  t        j                  |j                              dz  z   }||z
  |z   }	t        |	|j                   dd       y )Nr   g      r   r   r   r   )r   r   rQ   r   df_residwnobsr   rR   r   rv   r   r   r?   logr   r   r-   )
r/   r   r   rQ   r   wtsr,   adj_smadj_rllf_adjs
             r0   r   zTestGlmGaussianAwNr.test_r_llfl  s    yyyy		 

U^^+ekk9  ll""5;;03). # 0
 EKK$''1a7<<>>Fq 266"&&1B1B*C#Dq#HH,&t$?r2   Nr   rp   r2   r0   r*   r*   W  s    = =&@r2   r*   c                    t         j                  j                  d       t        j                  } |       j                  |       }||j                  k(  r|dk(  r1dt         j                  j                  t        |             |k  z  }|S t        j                  t        |       df      }d}t         j                  j                  t        |       |f      |d d d f   k  j                  d      |d d df<   ||d d df   z
  |d d df<   |S ||j                  k(  r!t         j                  j                  |      }|S ||j                  k(  r"t         j                  j                  d|      }|S ||j                  k(  r.|t         j                  j!                  t        |             z   }|S ||j"                  k(  rddlm} |j)                  |d      }|S ||j*                  k(  rdd	lm}	 |	j)                  |      }|S ||j.                  k(  r_d}
d
}||
|z  z  }t         j                  j                  |
|j0                  d         t         j                  j                  ||z        z  }|S t2        )Nih  r   r
   sizer   
   )nbinom      ?)invgaussr   )r?   randomseedrS   rT   inverseBinomialuniformr   emptyr   rx   poissonr   gammar   normalNegativeBinomialscipy.stats.distributionsr  rvsInverseGaussianr  rU   shape
ValueError)lin_predfamily_classr   binom_versionfamr   rv   nr  r  rater  r   s                r0   	gen_endogr    s5   IINN3
++C		!Bs||#Aryy((c(m(<rABE8 L5 HHc(mQ/0EA99,,3x=!2D,Eag;'(+A !Q$KeAqDk/E!Q$K, L+ 
	$		!!"%( L' 
	"		2&$ L# 
	%RYY%%3x=%99  L 
--	-4

2s# L 
,,	,6R  L 
	$dUl#""4ekk!n"=/0
 L r2   c                  T   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+                  ||f      }d|d d df<   d}|D ]  \  }}|D ]  }	dD ]  }
d	}|| j                  k7  r|
dk(  r|| j                  k(  r|	|j                  k(  r:|| j                  k(  r|	|j                  k(  rY||	f| j                  |j                  fk(  rd
|j-                  d      z   }n.||	f| j                  |j                  fk(  rd|j-                  d      dz  z   }n||	f| j                  |j                  fk(  rd|j-                  d      z   }n||	f| j                  |j                  fk(  r||	f| j                  |j                  fk(  r3||	f| j                  |j                   fk(  rR||	f| j"                  |j                  fk(  rq||	f| j"                  |j                   fk(  r||	f| j$                  |j                  fk(  rd|j-                  d      z   }||	f| j$                  |j                  fk(  r>d
d|j-                  d      z  z   }t        j.                  |dt         j0                        }||	f| j$                  |j&                  fk(  rd|j-                  d      dz  z   }T||	f| j$                  |j                   fk(  rd|j-                  d      dz  z   }d}n.||	f| j(                  |j                  fk(  r?d
d|j-                  d      z  z   }t        j.                  |dt         j0                        }d}n||	f| j(                  |j&                  fk(  r2dt         j                  j3                  |j4                  d         z   }7||	f| j(                  |j                   fk(  rd|j-                  d      dz  z   }m||	f| j"                  |j                   fk(  rd}n-t         j                  j3                  |j4                  d         }t7        ||	|
      }|
dk(  rmt        j8                  |      }t         j                  j;                  dd||j=                         kD  j-                               }||||j=                         kD  <   nt        j>                  |j4                  d         }|d d df   |j-                  d      z  }t         j                  jA                  d||j=                         kD  j-                               }||||j=                         kD  <   tC        jD                         5  tC        jF                  d       t        jH                  ||| | |	                   }d d d        jK                  ddd      }d|jL                  fdfD ]j  \  }}|dkD  r|rtC        jD                         5  tC        jF                  d       t        jH                  ||| | |	                   }d d d        jK                  |||       }tO        |jL                  |jL                  d!d"#       tO        |jP                  |jP                  d!d!#       tO        |jR                  |jR                  d!d!#       |jT                  }|jW                  |jL                  d$      }t        jX                  t        jZ                  t         j\                  j_                  |                   }tO        ||jT                  d!d"#       m    y # 1 sw Y   xY w# 1 sw Y   )xY w)%Ni.U d   r   r   r
   r   F)r   r
   rI      r      r   g-C6?r  rG   rN   皙?Tr   r  axisignorer   )r   rR   IRLSrg   r   )rL   r   tol_criterion)r   N)max_start_irlsrK   rL   r   g-C6
?r   rO   )0r?   r  r  rS   rT   r   r	  LogitProbitCLogLogr   Cauchyrx   IdentitySqrtr   InversePowerr   r  InverseSquaredr  r  r   clipinfr
  r  r  	ones_likerandintmeanonesr  warningscatch_warningssimplefilterr   rY   r   r   r,   r   r'   rZ   r@   r[   r\   r]   )r  lnkrT   r  prw   skip_oner  family_linksr   r  rL   r  rv   r   tmpymod_irls	rslt_irlsr(  rK   mod_gradientrslt_gradientgradient_bseehesss                            r0   test_wtd_gradient_irlsrF    s    IINN5
++C
++

C		3::s{{CGG #

 , -swwchh?@SWWcllC4D4DEFcggs7G7GHI$$sww'*'7'7'*'9'9'; < %%1A1A(+(:(:CLL(J K	LH 	A	A99!Q(DDAJH&. }/"l  |	/D!% {/3<</MQ4F!S\\1dckk6I!S\\1dcggo"D)ckk3<<-HH!DHHQK/H"D)cllCGG-DD!DHHQK!O3H"D)ckk388-DD!DHHQK/H"D)cii-AA"D)cii-FF"D)cii9I9I-JJ"D)cllCGG-DD"D)cllC<L<L-MM"D)c.A.A377-KK!DHHQK/H"D)c.A.A.1ll.< <  "AdhhqkM1H!wwxrvv>H"D)c.A.A.1.@.@.B B"TXXa[1_4H"D)c.A.A.1.>.>.@ @ 488A;?2H%F"D)c.B.B.1ll.< <!AdhhqkM1H!wwxrvv>H%F"D)c.B.B.1.@.@.B B"RYY%6%6DJJqM%6%JJH"D)c.B.B.1.>.>.@ @  !488A;?2H"D)cllC<L<L-MM#H!yy00djjm0DH!(L$N A%,,u-C))++"'%**,"6!;!;!= , C
 14C

,-''A7CadeiiQi&77A))//!1qvvx<2D2D2F/GC(+CAFFH%,,. H))(3!vveTs-9tv-F HHH %LLU7? ) A	 789I9I5J5>5@ /0NL &)h !002 P --h7')vveTs5Atv5N(PP %1$4$4+9)5#) %5 %M
 $M$8$8$-$4$44dL $M$5$5y}})-D: $M$7$7)-D: $1#4#4L(001E1E:? 1 AE#%77BGGBIIMM%4H,I+I#JL#L)--d)-/9/}{/|	/}/pH HP Ps   1;b	;;bbb'c                 2   t        j                  t        j                  |             }t        j                  | j                  d   t        |      dz
  f      }t        |      D ]/  \  }}|dk(  rt        j                  || k(  dd      |d d |dz
  f<   1 |S )Nr   r
   r"  )r?   sortr   zerosr  r   	enumeratewhere)xvaluesoutivs        r0   get_dummiesrQ  D  s    WWRYYq\"F
((!''!*c&kAo6
7C&! /16aA.Aq1uH/ Jr2   c                       e Zd Zed        Zy)r!   c                 j   t         j                  j                  d       d}d}t        j                  ||f      }d|d d df<   t         j                  j	                  dd|      |d d df<   t        j
                  t        j                  g d      |d	z        }t        |      |d d d
d f<   t        j                  g d      }||z  j                  d      }t        j                  j                  }t        j                  j                  j                  }t        |||      }	t        j                  |	| | |                   }
|
j!                         | _        t%        j&                  |      }|	|d<   |j)                  g d      j                         dg   }|j)                  g d      j+                         dg   }t        j                  |j,                  j/                               }|d   }|d   }t        j                  || | |             |      }|j!                         | _        y )N  r  r   r
   r   lowhighr  r
   r   r   r   r   r   r   r!  皙皙?ffffff?r#  r   rt   rv   r   r
   r   r   r   rR   exposurer?   r  r  r  r4  r   r   rQ  r   rS   rT   rx   r   r   r  r   rY   r   pd	DataFramegroupbycountr   tolistr   r{   r  r;  rw   rL  betar  rR   r   rv   mod1agg	agg_endogagg_wtagg_exogmod2s                   r0   r|   z$TestRepeatedvsAggregated.setup_classO  s   
		txxAQT
YY&&2AA&>QT
IIbhh|,a!e4!!nQUxx234K$$!$,$${{  $$(FD1vveT&df*=>88:ll4 GKK0446yA	_-335wi@88IOO2245g&	vvi&df2E%'88:r2   Nr}   rp   r2   r0   r!   r!   N       r2   r!   c                       e Zd Zed        Zy)r"   c                 p   t         j                  j                  d       d}d}t        j                  ||f      }d|d d df<   t         j                  j	                  dd|      |d d df<   t        j
                  t        j                  g d      |d	z        }t        |      |d d d
d f<   t        j                  g d      }||z  j                  d      }t        j                  j                  }t        j                  j                  j                  }t        |||      }	t        j                  |	| | |                   }
|
j!                         | _        t%        j&                  |      }|	|d<   |j)                  g d      j                         dg   }|j)                  g d      j+                         dg   }t        j                  |j,                  j/                               }|d   }|d   |z  }t        j                  || | |             |      }|j!                         | _        y )NrT  '  r   r
   r   rU  rV  rY  r   r   rZ  r#  r   rt   rv   r^  r   ra  r{   r  r;  rw   rL  rh  r  rR   r   rv   ri  rj  rk  rl  rm  	avg_endogrn  s                    r0   r|   z!TestRepeatedvsAverage.setup_classn  s   
		txxAQT
YY&&2AA&>QT
IIbhh|,a!e4!!nQUxx234K$$!$,$${{  $$(FD1vveT&df*=>88:ll4 GKK0446yA	_-335wi@88IOO2245g&/	vvi&df2E"(*88:r2   Nr}   rp   r2   r0   r"   r"   m  ro  r2   r"   c                       e Zd Zed        Zy)r#   c                    t         j                  j                  d       d}d}t        j                  ||f      }d|d d df<   t         j                  j	                  dd|      |d d df<   t        j
                  t        j                  g d      |d	z        }t        |      |d d d
d f<   t        j                  g d      }||z  j                  d      }t        j                  j                  }t        j                  j                  j                  }t        |||      }	t        j                  |	| | |       d            }
|
j!                  ddd      | _        t%        j&                  |      }|	|d<   |j)                  g d      j                         dg   }|j)                  g d      j+                         dg   }t        j                  |j,                  j/                               }|d   }|d   }t        j                  || | |       d      ||dz        }|j!                  ddd      | _        y )NrT  rr  r   r
   r   rU  rV  rY  r   r      r!  r[  r\  r]  r#        ?r   r   rt   g#B;r   r   r   r'  rv   r^  r  )rR   r`  r   r?   r  r  r  r4  r   r   rQ  r   rS   rT   rU   r   r   r  r   rY   r   rb  rc  rd  re  r   rf  r   rg  s                   r0   r|   z+TestTweedieRepeatedvsAggregated.setup_class  s   
		txxAQT
YY&&2AA&>QT
IIbhh|,a!e4!!nQUxx124K$$!$,$${{  $$(FD1vveT&df*LM88Qh8Gll4 GKK0446yA	_-335wi@88IOO2245g&	vvi#3?%6S=B 88Qh8Gr2   Nr}   rp   r2   r0   r#   r#     s    H Hr2   r#   c                       e Zd Zed        Zy)r$   c                    t         j                  j                  d       d}d}t        j                  ||f      }d|d d df<   t         j                  j	                  dd|      |d d df<   t        j
                  t        j                  g d      |d	z        }t        |      |d d d
d f<   t        j                  g d      }||z  j                  d      }t        j                  j                  }t        j                  j                  j                  }t        |||      }	t        j                  |	| | |       d            }
|
j!                  dddd      | _        t%        j&                  |      }|	|d<   |j)                  g d      j                         dg   }|j)                  g d      j+                         dg   }t        j                  |j,                  j/                               }|d   }|d   |z  }t        j                  || | |       d      |      }|j!                  ddd      | _        y )NrT  r   r   r
   r   rU  rV  rY  r   r   rw  r#  ry  rz  rt   rg   r   x2r   r   r'  	scaletyperv   r^  r   r{  r|  rs  s                    r0   r|   z(TestTweedieRepeatedvsAverage.setup_class  s   
		txxAQT
YY&&2AA&>QT
IIbhh|,a!e4!!nQUxx124K$$!$,$${{  $$(FD1vveT&df*LM88Qh&*  , ll4 GKK0446yA	_-335wi@88IOO2245g&/	vvi#3?"(* 88Qh8Gr2   Nr}   rp   r2   r0   r$   r$         H Hr2   r$   c                       e Zd Zed        Zy)r%   c                    t         j                  j                  d       d}d}t        j                  ||f      }d|d d df<   t         j                  j	                  dd|      |d d df<   t        j
                  t        j                  g d      |d	z        }t        |      |d d d
d f<   t        j                  g d      }||z  j                  d      }t        j                  j                  }t        j                  j                  j                  }t        |||d      }	t        j                  |	| | |                   }
|
j!                  dddd      | _        t%        j&                  |      }|	|d<   |j)                  g d      j                         dg   }|j)                  g d      j+                         dg   }t        j                  |j,                  j/                               }|d   }|d   |z  }t        j                  || | |             |      }|j!                  ddd      | _        y )NrT  r  r   r
   r   rU  rV  rY  r   r   rZ  r#  r  r   rt   rg   r   r  r  rv   r^  r   r{  )r?   r  r  r  r4  r   r   rQ  r   rS   rT   r	  r   r)  r  r   rY   r   rb  rc  rd  re  r   rf  r   rs  s                    r0   r|   z*TestBinomial0RepeatedvsAverage.setup_class  s   
		txxAQT
YY&&2AA&>QT
IIbhh|,a!e4!!nQUxx234K$$!$,%%{{  &&(FDBvveT&df*=>88Qh&*  , ll4 GKK0446yA	_-335wi@88IOO2245g&/	vvi#0"(* 88Qh8Gr2   Nr}   rp   r2   r0   r%   r%     r  r2   r%   c                       e Zd Zed        Zy)r&   c                    t         j                  j                  d       d}d}t        j                  ||f      }d|d d df<   t         j                  j	                  dd|      |d d df<   t        j
                  t        j                  g d      |d	z        }t        |      |d d d
d f<   t        j                  g d      }||z  j                  d      }t        j                  j                  }t        j                  j                  j                  }t        |||d      }	t         j                  j	                  dd|      }
t        j                  |	| | |             |
      }|j!                         | _        t        j
                  ||
d      }t        j
                  |	|
      }t        j                  || | |                   }|j!                         | _        y )NrT  rr  r   r
   r   rU  rV  rY  r   r   rZ  r#  r  r   r   rt   )r?   r  r  r  r4  r   r   rQ  r   rS   rT   r	  r   r)  r  r   rY   r   r   )r{   r  r;  rw   rL  rh  r  rR   r   rv   wtri  exog_dup	endog_duprn  s                  r0   r|   z-TestBinomial0RepeatedvsDuplicated.setup_class  sp   
		txxAQT
YY&&2AA&>QT
IIbhh|,a!e4!!nQUxx234K$$!$,%%{{  &&(FDBYYq!Q'vveT&df*=BO88:99T2A.IIeR(	vvi&df2EF88:r2   Nr}   rp   r2   r0   r&   r&     s     r2   r&   c                     g d} t        j                  |       } t        j                  dd      dz  }|dd}t        j                  t
              5  t        t        j                  t        j                  t        j                  j                         |       j                  d|	      }|j                          d d d        t        j                  t
              5  t        t        j                  t        j                  t        j                  j                         | 
      j                  d|	      }|j                          d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r
   r   r   Fr   r   r   r   r   )r?   r   r   r   r   r   r   ru   rv   rw   rS   rT   rx   rY   summary)weightsr   r   r   s       r0   test_warnings_raisedr    s   AGhhwG
))Av
!
#C7H	*	+ <%%|'8'8++--/gS)hS? 	 		 
*	+ <%%|'8'8++--/WS)hS? 	 		   s   A)EA)EEE"r   	formatted)listndarraySeries)idsc                     t        |        y r   )check_weights_as_formats)r  s    r0   test_weights_different_formatsr  !  s     Y'r2   c                     t        t        j                  t        j                  t        j
                  j                         |       j                         }t        |j                  t        j                        sJ t        |j                  t        j                        sJ t        |j                  t        j                        sJ t        t        j                  t        j                  t        j
                  j                         |       j                         }t        |j                  t        j                        sJ t        |j                  t        j                        sJ t        |j                  t        j                        sJ y )Nr   r   )r   ru   rv   rw   rS   rT   rx   rY   r    _freq_weightsr?   r  rA   r   )r  ress     r0   r  r  (  s
   
l  ,"3"3[[((*  c''444c&&

333cmmRZZ000
l  ,"3"3[[((*  c''444c&&

333cmmRZZ000r2   c                       e Zd Zed        Zy)r(   c                    ddl m}  |       }t        j                  |j                  d      |_        t        j                  |j
                  d      |_        |xj                  |j                  j                  d      z  c_        t        |j                  d      |_        t        |j
                  |j                  t        j                  j                               j                         | _        |j
                  j                  d	      }|j
                  d d df   |z  }t        ||j                  t        j                  j                         |
      j                         | _        y )Nr   r   W)requirementsFr   rt   r
   r#  r   )statsmodels.datasets.star98r   r?   requirerw   rv   stdr	   r   rS   rT   r	  rY   r   r   r   )r{   r   r   r  endog2s        r0   r|   z$TestBinomialVsVarWeights.setup_class9  s    4vJJtyys;	ZZ

=
		TYY]]1%%	 E:	tzz499 kk224669ce 	**..a.(AqD!G+vtyy kk224#*,,/CE 	r2   Nr}   rp   r2   r0   r(   r(   8  s    2 2r2   r(   c                       e Zd Zed        Zy)r)   c                    dd l mc m} t        j                  j
                  j                         }|j                  }|j                  }||d<   |dxx   dz  cc<   t        j                  g d      }|j                  d|t        j                  j                  t        j                  j                  j                               |      }|j!                  d||	      }|j#                  d
d
      | _        |j#                         | _        y )Nr   r   r   r   r   r   r   r   )r   r  r   r   )r   r   r   rS   r   r   r   rv   rw   r?   r   r   rT   r   r   r-  wlsrY   r   r   )r{   r   r   rv   r   rQ   wlsmodels          r0   r|   zTestGlmGaussianWLS.setup_classL  s    --{{""..0

yy"\X$88   !1{{++1B1B1K1K1M+N$	  
 771   " 99%e94<<>r2   Nr}   rp   r2   r0   r)   r)   K  s    " "r2   r)   c            
         g d} t         j                  }t         j                  }t        j                  j                         }t        t        t        |||| d d        t        t        t        |||| d d        t        t        t        |||| dgz          t        t        t        |||| dgz          t        t        t        |||| | g       t        t        t        |||| | g       y )Nr   r   r   r   r   )	ru   rw   rv   rS   rT   rx   r   r  r   )r  rw   rv   rR   s       r0   test_incompatible_inputr  e  s    AGDE[[  "F*c5$v&s|-*c5$v%crl, *c5$v&!}.*c5$v%m- *c5$v '13*c5$v&02r2   c                     d\  } }t         j                  j                  d       t         j                  j                  | |dz
        }t	        |      }|j                  d      dz  }|dt         j                  j                  |       z  z   }dt        j                  |       dz  z   }t         j                  j                  t        j                  |      |z        }|ddxxx dz  ccc t        j                  j                         }t        ||||      }|j                         }	t        ||z  |||	      }
|
j                         }t        |	j                  |z  |j                         t        |	j                   |j                          t        |	j"                  |j"                         t        |	j$                  |j$                         t        |	j&                  |j$                         y )
N)r  r   i r
   r   r   r     r_  r   )r?   r  r  randnr	   r   r   r  exprS   rT   rx   r   rY   r   r5   r6   r7   r9   resid_anscombe_unscaled)r   k_exogrL  y_truer?  r`  ypr  	mod_poi_e	res_poi_e	mod_poi_w	res_poi_ws               r0   test_poisson_residualsr  |  su   LD&IINN6
		fqj)AQAUU1X\FRYY__T***A299T?a''H			266&>H4	5Br"IOI
++


CB#9IIBM1ShGIII,,x7,,.I++Y-D-DEI,,i.F.FGI,,i.F.FGI55,,.r2   )r   )>__doc__r7  numpyr?   numpy.testingr   r   pandasrb  r   statsmodels.apir   rS   statsmodels.datasets.cpunishr   +statsmodels.genmod.generalized_linear_modelr   statsmodels.tools.sm_exceptionsr   statsmodels.tools.toolsr	   resultsr   r   r   ry   ru   asarrayrw   rv   r   r   rr   r   r   r   rV   rW   rX   r   r+   r*   r  rF  rQ  r!   r"   r#   r$   r%   r&   r  r  r   parametrizer  r  r  r(   r)   r  r  rp   r2   r0   <module>r     s   8   8    - ; @ 0
 vBJJ|001 RZZ 2 23  "&&!2!21a4!89  !Q$  !2!2EB ZP ZPz<+ <
? 
?D D0* *49 9*9 90:+ :4< <2@{ @6(@+ (@V&RV/r{ >K >Hk H@H; HBH[ HB 4, > w


70C'0ryy'9';:  <(<(1 2{ 2&" "42..r2   