
    'YHh`                        d Z ddl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c mZ ddlmZ ddlmc mc mZ ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  ej>                  ej@                  ejB                  ejD                  ejF                  ejH                  ejJ                  ejL                  ejN                  hZ(ej:                  ej<                  ej8                  ej4                  hZ)ej:                  ej<                  ej8                  ej2                  hZ*ej:                  ej<                  ej8                  ej2                  hZ+ej,                  ej.                  ej@                  ejB                  ej:                  ej<                  ejH                  ejJ                  ejD                  ejF                  ej8                  hZ,ej6                  ej2                  ej8                  ej:                  ej<                  hZ-ej:                  ej<                  ejH                  ejJ                  ej8                  ejL                  ejN                  ej0                  hZ.ej:                  ej<                  ej0                  hZ/ej`                  e)fejb                  e*fejd                  e+fejf                  e,fejh                  e-fejL                  e.fej$                  e/fgZ5ejl                  jo                  de5      d	        Z8ejl                  jo                  de5      d
        Z9ejl                  jo                  de5      d        Z:ejl                  jw                  e
d      ejl                  jo                  dd      d               Z<y)z+
Test functions for genmod.families.family
    N)assert_allclose)	integrate)SP_LT_17)ValueWarning)Tweediezfamily, linksc                 `   t         |z
  }t        j                  t              5  t	        j
                         5  d}t	        j                  d|t               t	        j                  dt               |D ]  } |  |               	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wNTNegative binomial dispersion parameter alpha not set. Using default value alpha=1.0.ignoremessagecategory)r   )		all_linkspytestraises
ValueErrorwarningscatch_warningsfilterwarningsUserWarningFutureWarning)familylinksinvalid_linksmsglinks        f/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/genmod/families/tests/test_family.pytest_invalid_family_linkr   5   s    %M	z	" 	$$& 	4C##Hc-8:##H-:<% tv		 		 		 	s#   B$ABB$B!	B$$B-c                     t        j                         5  d}t        j                  d|t               t        j                  dt               |D ]  } |  |             rJ  	 d d d        y # 1 sw Y   y xY wr	   )r   r   r   r   r   )r   r   r   r   s       r   test_family_linkr    D   so    		 	 	" "0#)5	7)6	8 	"D$&>!>	"" " "s   AA/"A//A8c                      G d d      }t        j                         5  d}t        j                  d|t                |  |       d      sJ 	 d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zy)$test_family_link_check.<locals>.HugoN)__name__
__module____qualname__     r   Hugor#   T   s    r(   r)   r
   r   r   F)
check_link)r   r   r   r   )r   r   r)   r   s       r   test_family_link_checkr+   Q   s[     		 	 	" 00#)5	7df///0 0 0s   0AA"z%Scipy too old, function not available)reasonpower)g?g      ?gffffff?c                     t        | d      ddfd}t         |d      t        j                  |dd      d   z   dd	
       y)z-Test that Tweedie loglike is normalized to 1.F)	var_powereqlg       @g333333@c           	      x    t        j                  t        j                  j                  |                   S )N)endogmuscale)npsqueezeexploglike_obs)yr3   r4   tweedies    r   pdfz%test_tweedie_loglike_obs.<locals>.pdff   s5    zzFF##!%#@
 	
r(   r   g      Y@   g-C6?)atolN)r   r   r   quad)r-   r;   r3   r4   r:   s     @@@r   test_tweedie_loglike_obsr?   ^   sI     51G	BE
 CFY^^CC8;;QTJr(   )=__doc__r   r   numpyr5   numpy.testingr   scipyr   statsmodels.compat.scipyr   statsmodels.tools.sm_exceptionsr   statsmodels.genmod.familiesgenmodfamiliesF"statsmodels.genmod.families.familyr   !statsmodels.genmod.families.linksr   LLogitlogitPowerinverse_powersqrtinverse_squaredidentityLoglogCDFLinkprobitcauchyLogLogloglogCLogLogcloglogNegativeBinomialnbinomr   poisson_linksgaussian_linksgamma_linksbinomial_linksinverse_gaussian_linksnegative_bionomial_linkstweedie_linksPoissonGaussianGammaBinomialInverseGaussian
link_casesmarkparametrizer   r    r+   skipifr?   r'   r(   r   <module>ro      s      )  - ( ' 6 - - GGQWWaggq8I8IJJquuaii188QXXHHaiiA$6$6	
 qzz1662%%

AOO<uuaeeQZZ9GGQWWahh!%%		IIqxx1::
 q

AEE155  EE155!))QYY

A4F4FHHagg  qww' YYZZ WWkZZ ./12YY
 *5 6 *5	" 6	" *5	0 6	0 H%LM/2K 3 NKr(   