
    M/Ph`                     ,   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j        ej        ej        ej        ej        ej        ej        ej        ej         ej!        ej"        ej#        ej$        ej%        ej&        ej'        hZ(ej        ej        ej        ej        hZ)ej        ej        ej        ej        hZ*ej        ej        ej        ej        hZ+ej        ej        ej         ej!        ej        ej        ej$        ej%        ej"        ej#        ej        hZ,ej        ej        ej        ej        ej        hZ-ej        ej        ej$        ej%        ej        ej&        ej'        ej        hZ.ej        ej        ej        hZ/ej0        e)fej1        e*fej2        e+fej3        e,fej4        e-fej&        e.fej        e/fgZ5ej6        7                    de5          d	             Z8ej6        7                    de5          d
             Z9ej6        7                    de5          d             Z:ej6        ;                    e
d          ej6        7                    dd          d                         Z<dS )z+
Test functions for genmod.families.family
    N)assert_allclose)	integrate)SP_LT_17)ValueWarning)Tweediezfamily, linksc                 x   t           |z
  }t          j        t                    5  t	          j                    5  d}t	          j        d|t                     t	          j        dt                     |D ]} |  |                       	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S 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        m/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/genmod/families/tests/test_family.pytest_invalid_family_linkr   5   sT   %M	z	"	" 	 	$&& 	 	4C#Hc-8: : : :#H-:< < < <%  ttvv	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s5   B/ABB/B	B/B	B//B36B3c                    t          j                    5  d}t          j        d|t                     t          j        dt                     |D ]} |  |                      sJ 	 d d d            d S # 1 swxY w Y   d S r	   )r   r   r   r   r   )r   r   r   r   s       r   test_family_linkr    D   s    		 	"	" " "0#)5	7 	7 	7 	7)6	8 	8 	8 	8 	" 	"D6$$&&>>!!!!	"" " " " " " " " " " " " " " " " " "s   AA66A:=A:c                      G d d          }t          j                    5  d}t          j        d|t                      |  |            d          sJ 	 d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )$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0#)5	7 	7 	7 	7vddff///////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   6A%%A),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	
           dS )z-Test that Tweedie loglike is normalized to 1.F)	var_powereqlg       @g333333@c           	      |    t          j        t          j                            |                               S )N)endogmuscale)npsqueezeexploglike_obs)yr3   r4   tweedies    r   pdfz%test_tweedie_loglike_obs.<locals>.pdff   s>    zF##!%#@@ 
 
 	
r(   r   g      Y@   g-C6?)atolN)r   r   r   quad)r-   r;   r3   r4   r:   s     @@@r   test_tweedie_loglike_obsr?   ^   s     5111G	BE
 
 
 
 
 
 
 CCFFY^CC88;;QTJJJJJ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      sB          ) ) ) ) ) )       - - - - - -      ( ' ' ' ' ' ' ' ' 6 6 6 6 6 6 - - - - - - - - - - - - GQWagq8IJquai18QXHaiA$6	
 qz162%
AO<uaeQZ9GQWah!%	Iqx1:
 q
AE15  E15!)QY
A4FHag  qw' YZ WkZ ./12Y
 *55  65 *55	" 	" 65	" *55	0 	0 65	0 H%LMM/22K K 32 NMK K Kr(   