
    M/Ph                     Z   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j        ej                  e_         ej        ej                  e_         ej        ej        ddd
f                   ej        ddd
f<    eej        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	j5        6                    d4e4 ej        e4           ej7        e4          gg d56          d7             Z8d8 Z9 G d9 d:e          Z: G d; d<e          Z;d= Z<d> Z=dS )@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dS )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d S t          |j        ||j        z  dd           t          | t                    rd S t          | t                     rd S t          | t"          t$          f          st          |j        |j        dd           t          |j        |j        dd           d S )	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       i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/genmod/tests/test_glm_weights.py
test_basiczCheckWeight.test_basic8   sS   yyT[t$GGGGD+q11	4011 	2D6 6!%D2 2 2 2 d57L<9;>	@ A A 	 4)dh"6TMMMMd455 	4d.// 	4$!46F GHH 	EDHdgDtDDDDt}4dKKKKKK    c           	         t          | t          t          t          t          t
          t          f          rd S | j        }| j        }t          |d          sd S 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           |                    d	          d S |j        }|d	         t-          j        |j                  z  }t          ||dd           d S )
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   sx   d57L<9;>	@ A A 	 4yytX&& 	4T14;=AABB	+Y7G-H!	. 	. 	. 	.*Io,F!	. 	. 	. 	.+Y7G-H!	. 	. 	. 	.*Io,F!	. 	. 	. 	.==)**24 %-.9J1K1KK4@@@@@@r2   c                 R   | j         }t          |j        j        t          j        j                  rd}d}nd}d}t          | t          t          t          t          f          rd S |j        }| j         j                            |||          }t          |j        |j        dd           |j                            |j        d	
          }t          j        t          j        t          j                            |                               }t          |j        |dd           d S )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   ydj')<== 	"F!MMF!Md/1C0;= > > 	 4{y""V1> # @ @T[t$GGGGJt{U;;7BGBIMM!$4$455566(DAAAAAAr2   c                     t          | j        d          r)t          | j        j        | j        j        dd           d S d S )Nchi2r   r   )r   r   r   r   pearson_chi2
deviance_p)r/   s    r0   test_pearson_chi2zCheckWeight.test_pearson_chi2   sT    49f%% 	2DI2DI4H!%D2 2 2 2 2 2	2 	2r2   c                     | j                                         }t          |j        j        |j        j        d           d S )N绽|=)r   )r   get_predictionr   linpredse_mean)r/   preds     r0   test_getpredictionzCheckWeight.test_getprediction   s:    y'')),dl.BOOOOOOr2   N)__name__
__module____qualname__r1   rE   r`   re   rl    r2   r0   r   r   7   sm        L L L<A A A>B B B*2 2 2
P P P P Pr2   r   c                   $    e Zd Zed             ZdS )TestGlmPoissonPlainc                     t          t          j        t          j        t          j                                                                                  | _        t          j
        | _        d S )NrR   )r   cpunish_dataendogexogrS   rT   PoissonrY   r   	res_stataresults_poisson_none_nonrobustr   )clss    r0   setup_classzTestGlmPoissonPlain.setup_class   sO    |)<+< k11335 5 558SUU 	 ;r2   Nrm   rn   ro   classmethodr|   rp   r2   r0   rr   rr      s-        < < [< < <r2   rr   c                   $    e Zd Zed             ZdS )TestGlmPoissonFwNrc                    g d}t          j        |          }t          t          j        t          j        t          j                                        |          	                                | _
        t          j        | _        d S )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   sk    FFF8H%%|)<+< k1133(   	 >r2   Nr}   rp   r2   r0   r   r      s-        ? ? [? ? ?r2   r   c                   $    e Zd Zed             ZdS )TestGlmPoissonAwNrc                 p   g d}t          j        |          }|                                }t          t          j                  }||z  |z  }t          t          j        t          j        t          j	        
                                |                                          | _        ddlm}  |t          j                  | _        | j        j                                        | j        _        | j        j        d d ddfxx         t          j        |d d t           j        f                   z  cc<   d S )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FF8H%%||~~<%&&d?T)|)<+< k1133   	
 	4	CDD(/..00 	1Q3278AAArzM+B#C#CCr2   Nr}   rp   r2   r0   r   r      s2        D D [D D Dr2   r   c                        e Zd Zed             Zej                            dd           fd            Zej                            dd           fd            Z	 xZ
S )TestGlmPoissonPwNrc                 z   g d}t          j        |          }|                                }t          t          j                  }||z  |z  }t          t          j        t          j        t          j	        
                                |                              d          | _        t          j        | _        d S )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FF8H%%||~~<%&&d?T)|)<+< k1133(  e,, 	 >r2   zKnown to failT)reasonstrictc                 H    t                                                       d S N)superr1   r/   	__class__s    r0   r1   zTestGlmPoissonPwNr.test_basic   s    r2   c                 H    t                                                       d S 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      s        ? ? [? [od;;    <; [od;;* * * * <;* * * * *r2   r   c                   $    e Zd Zed             ZdS )rV   c                    g d}t          j        |          }|                                }t          t          j                  }||z  |z  }t          j        |dz
  |z            | _        t          t          j        t          j	        t          j                                        |          }|                    d          | _        t          j        | _        d S )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FF8H%%||~~<%&&d?T)d 233,$l&7,,..') ) ) 77E7** 8r2   Nr}   rp   r2   r0   rV   rV      s-        9 9 [9 9 9r2   rV   c                   $    e Zd Zed             ZdS )rW   c                    g d}t          j        |          }|                                }t          t          j                  }||z  |z  }t          j        |dz
  |z            dz  | _        t          t          j        t          j	        t          j                                        |          }|                    d          | _        t          j        | _        d S )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FF8H%%||~~<%&&d?T) d 2336II,$l&7,,..&( ( ( 77E7** 8r2   Nr}   rp   r2   r0   rW   rW      s-        9 9 [9 9 9r2   rW   c                   $    e Zd Zed             ZdS )rX   c                    g d}t          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                                        |          }|                    d|	          | _        d d d            n# 1 swxY w Y   t(          j        | _        d S )
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
  sr   FFF8H%%||~~<%&&d?T)i6""a'ry~~&& BGH1$=>>>!U;;\.// 	F 	Fl(,*;[0022#+- - -C ww	HwEECH		F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 9s   A D33D7:D7Nr}   rp   r2   r0   rX   rX   	  s-        : : [: : :r2   rX   c                   $    e Zd Zed             ZdS )TestGlmTweedieAwNrc           	         dd l mc m} t          j        j                                        }|j        }|j        }||d<   t          j
        dt          |j                            }d|d d d<   d|d d d<   |                    d|t          j                            dt          j        j                                        	          |
          }|                    dd          | _        t(          j        | _        d S )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    ---------{++--
yV9QDJ0012*{**"*..00 +   %  
 
 99%a900;r2   Nr}   rp   r2   r0   r   r   #  s-        < < [< < <r2   r   c                   *    e Zd Zed             Zd ZdS )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
                            t          j
        j                                        	          |
          }|                    dd          | _        t           j        | _        d S )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22222y{{
yCRC tT2229QE

++12ud k//R[5F5J5J5L5L/MM#+- - - 99%a9009r2   c                 "   | j         j        | j         j                                        z  }| j         j                            | j         j        j        | j         j        | j         j	        |          }t          || j        j        dd           d S )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    	"TY%8%<%<%>%>>Y%%dio&;&*il3793I,1 & 3 3 	DILt$??????r2   Nrm   rn   ro   r~   r|   r   rp   r2   r0   r+   r+   <  sA        : : [: @ @ @ @ @r2   r+   c                   *    e Zd Zed             Zd ZdS )r*   c                    dd l mc m} t          j        j                                        }|j        }|j        }||d<   |dxx         dz  cc<   t          j
        g d          }|                    d|t          j                            t          j        j                                                  |          }|                    d	d
          | _        t$          j        | _        d S )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0
y"\X$8       ! !1{++1B1F1F1H1H+II$	  
 
 99%a900<r2   c                    | j         }| j        }| j         j        }|j        |j        z  |j        z  }|j        }|j                            |j	        |j
        ||          }d|j	        |j
        z
  dz                                  z  |z  }|j         dz  t          j        t          j        |j                            dz  z   }||z
  |z   }	t          |	|j        dd           d S )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    yy	 
U^+ek9 l""5;03). # 0 0
 EK$'1a7<<>>>Fq 26"&1B*C*C#D#Dq#HH,&t$??????r2   Nr   rp   r2   r0   r*   r*   W  sA        = = [=&@ @ @ @ @r2   r*   c                    t           j                            d           t          j        } |                                |           }||j        k    r|dk    r6dt           j                            t          |                     |k     z  }nt          j	        t          |           df          }d}t           j                            t          |           |f          |d d d f         k     
                    d          |d d df<   ||d d df         z
  |d d df<   nQ||j        k    r!t           j                            |          }n%||j        k    r!t           j                            d|          }n||j        k    r1|t           j                            t          |                     z   }n||j        k    rddlm} |                    |d          }n||j        k    rdd	lm}	 |	                    |          }nn||j        k    r\d}
d
}||
|z  z  }t           j                            |
|j        d                   t           j                            ||z            z  }nt2          |S )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    sY   INN3
+C		!	!Bs|##Ary((c(mm(<<rABEEHc(mmQ/00EA9,,3x==!2D,EEaaag;'(+A !!!Q$KeAAAqDk/E!!!Q$KK		$	$	!!"%%		"	"	2&&		%	%RY%%3x==%999	-	-	-444444

2s##	,	,	,666666R  		$	$dUl#""4ek!n"==//0 Lr2   c                  $   t           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                            ||f          }d|d d df<   d}|D ]h\  }}|D ]^}	dD ]W}
d	}|| j        k    r|
dk    r|| j        k    r|	|j	        k    r.|| j        k    r|	|j
        k    rE||	f| j        |j        fk    rd
|                    d          z   }n||	f| j        |j
        fk    rd|                    d          dz  z   }n||	f| j        |j        fk    rd|                    d          z   }nX||	f| j        |j
        fk    r||	f| j        |j        fk    r||	f| j        |j        fk    r||	f| j        |j
        fk    r(||	f| j        |j        fk    r>||	f| j        |j
        fk    rd|                    d          z   }l||	f| j        |j        fk    r=d
d|                    d          z  z   }t          j        |dt           j                  }||	f| j        |j        fk    rd|                    d          dz  z   }||	f| j        |j        fk    rd|                    d          dz  z   }d}n	||	f| j        |j        fk    r>d
d|                    d          z  z   }t          j        |dt           j                  }d}n||	f| j        |j        fk    r0dt           j                            |j        d                   z   }||	f| j        |j        fk    rd|                    d          dz  z   }||	f| j        |j        fk    rd}n+t           j                            |j        d                   }t7          |||	|
          }|
dk    rzt          j        |          }t           j                            dd||                                k                                              }||||                                k    <   nt          j        |j        d                   }|d d df         |                    d          z  }t           j                             d||                                k                                              }||||                                k    <   tC          j"                    5  tC          j#        d           t          j$        ||| | |	                                }d d d            n# 1 swxY w Y   |%                    ddd          }d|j&        fdfD ]f\  }}|dk    r|rtC          j"                    5  tC          j#        d           t          j$        ||| | |	                                }d d d            n# 1 swxY w Y   |%                    |||           }tO          |j&        |j&        d!d"#           tO          |j(        |j(        d!d!#           tO          |j)        |j)        d!d!#           |j*        }|+                    |j&        d$          }t          j,        t          j-        t           j.        /                    |                               }tO          ||j*        d!d"#           hY`jd S )%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	    INN5
+C
+
C	3:s{CG #
 , -swch?@SWclC4DEFcgs7GHI$sw'*'7'*'9'; < %1A(+(:CL(J K	LH 	A	A9!Q((DDAJH&. }/ }/"l  |	/ |	/D!% {/ {/3<//MQ4F4F!S\11dck6I6I!S\11dcgoo"D)ck3<-HHH!DHHQKK/HH"D)clCG-DDD!DHHQKK!O3HH"D)ck38-DDD!DHHQKK/HH"D)ci-AAA"D)ci-FFF"D)ci9I-JJJ"D)clCG-DDD"D)clC<L-MMM"D)c.A37-KKK!DHHQKK/H"D)c.A.1l.< < <  "AdhhqkkM1H!wxrv>>H"D)c.A.1.@.B B B"TXXa[[1_4H"D)c.A.1.>.@ @ @ 488A;;?2H%FF"D)c.B.1l.< < <!AdhhqkkM1H!wxrv>>H%FF"D)c.B.1.@.B B B"RY%6%6DJqM%6%J%JJH"D)c.B.1.>.@ @ @  !488A;;?2H"D)clC<L-MMM#HH!y00djm0DDH!(L$NN A%%,u--C)++"'%**,,"6!;!;!=!= ,  C
 14C

,--'A777CaaadeiiQi&7&77A)//!1qvvxx<2D2D2F2F/GGC(+CAFFHH%,.. H H)(333!veTs-9\ttvv-F-F-F H  H  HHH H H H H H H H H H H H H H H %LLU7? ) A A	 789I5J5>5@ / /0NL &))h) !022 P P -h777')veTs5A\ttvv5N5N5N(P (P (PP P P P P P P P P P P P P P P %1$4$4+9)5#) %5 % %M
 $M$8$-$44dL L L L $M$5y})-D: : : : $M$7)-D: : : : $1#4L(001E:? 1 A AE#%7BGBIMM%4H4H,I,I+I#J#JL#L)-d)-/ / / / /9/}{/|	/}/ }/s$   )?W4	4W8;W8?ZZZc                 6   t          j        t          j        |                     }t          j        | j        d         t          |          dz
  f          }t          |          D ]0\  }}|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    WRYq\\""F
(!'!*c&kkAo6
7
7
7C&!! / /166aA..AAAq1uHJr2   c                   $    e Zd Zed             ZdS )r!   c                    t           j                            d           d}d}t          j        ||f          }d|d d df<   t           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                      d          }t          j
        j        }t          j
        j        j        }t          |||          }	t          j        |	| | |                                }
|
                                | _        t%          j        |          }|	|d<   |                    g d                                          dg         }|                    g d                                          dg         }t          j        |j                                                  }|d         }|d         }t          j        || | |                      |          }|                                | _        d S )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xAQQQT
Y&&2AA&>>QQQT
Ibh|||,,a!e44!!nnQQQUx222334K$$!$,,${ $(FD11veT&&ddff*=*=*=>>>88::l4  GKK004466yA	___--3355wi@8IO224455g&	vi&&ddff2E2E2E%' ' '88::r2   Nr}   rp   r2   r0   r!   r!   N  -          [  r2   r!   c                   $    e Zd Zed             ZdS )r"   c                    t           j                            d           d}d}t          j        ||f          }d|d d df<   t           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                      d          }t          j
        j        }t          j
        j        j        }t          |||          }	t          j        |	| | |                                }
|
                                | _        t%          j        |          }|	|d<   |                    g d                                          dg         }|                    g d                                          dg         }t          j        |j                                                  }|d         }|d         |z  }t          j        || | |                      |          }|                                | _        d S )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xAQQQT
Y&&2AA&>>QQQT
Ibh|||,,a!e44!!nnQQQUx222334K$$!$,,${ $(FD11veT&&ddff*=*=*=>>>88::l4  GKK004466yA	___--3355wi@8IO224455g&/	vi&&ddff2E2E2E"(* * *88::r2   Nr}   rp   r2   r0   r"   r"   m  ro  r2   r"   c                   $    e Zd Zed             ZdS )r#   c                    t           j                            d           d}d}t          j        ||f          }d|d d df<   t           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                      d          }t          j
        j        }t          j
        j        j        }t          |||          }	t          j        |	| | |            d                    }
|
                    ddd          | _        t%          j        |          }|	|d<   |                    g d                                          dg         }|                    g d                                          dg         }t          j        |j                                                  }|d         }|d         }t          j        || | |            d          ||dz            }|                    ddd          | _        d S )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xAQQQT
Y&&2AA&>>QQQT
Ibh|||,,a!e44!!nnQQQUx111224K$$!$,,${ $(FD11veT&&ddff*L*L*LMMM88Qh8GGl4  GKK004466yA	___--3355wi@8IO224455g&	vi#V3???%6S=B B B 88Qh8GGr2   Nr}   rp   r2   r0   r#   r#     s2        H H [H H Hr2   r#   c                   $    e Zd Zed             ZdS )r$   c                    t           j                            d           d}d}t          j        ||f          }d|d d df<   t           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                      d          }t          j
        j        }t          j
        j        j        }t          |||          }	t          j        |	| | |            d                    }
|
                    dddd          | _        t%          j        |          }|	|d<   |                    g d                                          dg         }|                    g d                                          dg         }t          j        |j                                                  }|d         }|d         |z  }t          j        || | |            d          |          }|                    ddd          | _        d S )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  sC   
	txAQQQT
Y&&2AA&>>QQQT
Ibh|||,,a!e44!!nnQQQUx111224K$$!$,,${ $(FD11veT&&ddff*L*L*LMMM88Qh&*  , , l4  GKK004466yA	___--3355wi@8IO224455g&/	vi#V3???"(* * * 88Qh8GGr2   Nr}   rp   r2   r0   r$   r$     2        H H [H H Hr2   r$   c                   $    e Zd Zed             ZdS )r%   c                    t           j                            d           d}d}t          j        ||f          }d|d d df<   t           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                      d          }t          j
        j        }t          j
        j        j        }t          |||d          }	t          j        |	| | |                                }
|
                    dddd          | _        t%          j        |          }|	|d<   |                    g d                                          dg         }|                    g d                                          dg         }t          j        |j                                                  }|d         }|d         |z  }t          j        || | |                      |          }|                    ddd          | _        d S )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  sD   
	txAQQQT
Y&&2AA&>>QQQT
Ibh|||,,a!e44!!nnQQQUx222334K$$!$,,%{ &(FDBBBveT&&ddff*=*=*=>>>88Qh&*  , , l4  GKK004466yA	___--3355wi@8IO224455g&/	vi#V000"(* * * 88Qh8GGr2   Nr}   rp   r2   r0   r%   r%     r  r2   r%   c                   $    e Zd Zed             ZdS )r&   c                    t           j                            d           d}d}t          j        ||f          }d|d d df<   t           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                      d          }t          j
        j        }t          j
        j        j        }t          |||d          }	t           j                            dd|          }
t          j        |	| | |                      |
          }|                                | _        t          j        ||
d          }t          j        |	|
          }t          j        || | |                                }|                                | _        d S )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  s   
	txAQQQT
Y&&2AA&>>QQQT
Ibh|||,,a!e44!!nnQQQUx222334K$$!$,,%{ &(FDBBBYq!Q''veT&&ddff*=*=*=BOOO88::9T2A...IeR((	vi&&ddff2E2E2EFF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                                        |                               d|	          }|                                 d d d            n# 1 swxY w Y   t          j        t
                    5  t          t          j        t          j	        t          j                                        | 
                              d|	          }|                                 d d d            d S # 1 swxY w Y   d S )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   AAAGhwG
)Av

!
#C77H	*	+	+  <%|'8+--//g  S)hS?? 	 		               
*	+	+  <%|'8+--//W  S)hS?? 	 		                 s&   A-CCC,A-E&&E*-E*r   	formatted)listndarraySeries)idsc                 $    t          |            d S r   )check_weights_as_formats)r  s    r0   test_weights_different_formatsr  !  s     Y'''''r2   c                    t          t          j        t          j        t          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                                        |                                           }t          |j	        t          j                  sJ t          |j        t          j                  sJ t          |j        t          j                  sJ d S )Nr   r   )r   ru   rv   rw   rS   rT   rx   rY   r    _freq_weightsr?   r  rA   r   )r  ress     r0   r  r  (  s&   
l ,"3[((**    c'44444c&
33333cmRZ00000
l ,"3[((**    c'44444c&
33333cmRZ0000000r2   c                   $    e Zd Zed             ZdS )r(   c                    ddl m}  |            }t          j        |j        d          |_        t          j        |j        d          |_        |xj        |j                            d          z  c_        t          |j        d          |_        t          |j        |j        t          j
                                                                                  | _        |j                            d	          }|j        d d df         |z  }t          ||j        t          j
                                        |
                                          | _        d S )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44444tvvJtys;;;	Z
===
		TY]]1%%%		 E:::	tz49 k22446 6 669cee 	*..a.((AAAqD!G+vty k2244#*, , ,,/CEE 	r2   Nr}   rp   r2   r0   r(   r(   8  s-        2 2 [2 2 2r2   r(   c                   $    e Zd Zed             ZdS )r)   c                    dd l mc m} t          j        j                                        }|j        }|j        }||d<   |dxx         dz  cc<   t          j
        g d          }|                    d|t          j                            t          j        j                                                  |          }|                    d||	          }|                    d
d
          | _        |                                | _        d S )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0
y"\X$8       ! !1{++1B1K1K1M1M+NN$	  
 
 771   " " 99%e944<<>>r2   Nr}   rp   r2   r0   r)   r)   K  s-        " " [" " "r2   r)   c            
      &   g d} t           j        }t           j        }t          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           d S )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<   AAAGDE[  ""F*c5$v&ss|- - - -*c5$v%crcl, , , , *c5$v&!}. . . .*c5$v%m- - - - *c5$v '13 3 3 3*c5$v&02 2 2 2 2 2r2   c                     d\  } }t           j                            d           t           j                            | |dz
            }t	          |          }|                    d          dz  }|dt           j                            |           z  z   }dt          j        |           dz  z   }t           j                            t          j        |          |z            }|ddxx         dz  cc<   t          j
                                        }t          ||||          }|                                }	t          ||z  |||	          }
|
                                }t          |	j        |z  |j                   t          |	j        |j                   t          |	j        |j                   t          |	j        |j                   t          |	j        |j                   d S )
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  |  s   LD&INN6
	fqj))AQAUU1XX\FRY__T****A29T??a''H			26&>>H4	5	5Br"uIIIOIII
+



CB#999IIBM1ShGGGIII,x7,. . .I+Y-DEEEI,i.FGGGI,i.FGGGI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 8 8 8 8 8 8 8            - - - - - - ; ; ; ; ; ; @ @ @ @ @ @ 0 0 0 0 0 0       
 tvvBJ|011 RZ 233  "&!2111a4!899 !!!Q$  L!2EBBB ZP ZP ZP ZP ZP ZP ZP ZPz< < < < <+ < < <
? 
? 
? 
? 
? 
? 
? 
?D D D D D D D D0* * * * * * * *49 9 9 9 9 9 9 9*9 9 9 9 9 9 9 90: : : : :+ : : :4< < < < < < < <2@ @ @ @ @{ @ @ @6(@ (@ (@ (@ (@+ (@ (@ (@V& & & &RV/ V/ V/r      {   >    K   >H H H H Hk H H H@H H H H H; H H HBH H H H H[ H H HB       4  , >
=
= w

70C0C'0ry'9'9';:::  < <( (< <(1 1 1 2 2 2 2 2{ 2 2 2&" " " " " " " "42 2 2.. . . . .r2   