
    M/Ph                         d 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mZmZ ddlmZ ddlmZ dZdZd	Z G d
 d          Z G d de          Z G d de          Z G d de          ZdS )z7Testing GenericLikelihoodModel variations on Poisson


    N)assert_almost_equalstats)PoissonGMLEPoissonOffsetGMLEPoissonZiGMLE)Poisson)ValueWarning      c                   P    e Zd Zd Zd Zd Zd Zej        j	        d             Z
dS )CompareMixinc                     t          | j        j        | j        j        t                     t          | j        j        | j        j        t                     d S N)r   resparamsres_glmDEC5res_discreteselfs    i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/miscmodels/tests/test_poisson.pytest_paramszCompareMixin.test_params   s?    DHOT\-@$GGGDHOT->-EtLLLLL    c                 V   t          | j        j        | j        j        t                     t          | j        j        | j        j        t                     t          | j        j        | j        j        t                     t          | j        j        | j        j        t                     d S r   )
r   r   bser   r   r   tvaluesDEC4pvaluesDECr   s    r   test_cov_paramszCompareMixin.test_cov_params   s{    DHL$,*:DAAADHL$*;*?FFF 	DH,d.?.GNNNDH,d.?.GMMMMMr   c                    | j                             t          j        t	          | j         j                                      }ddlm} |j        	                    t          j
        |j                            dz  }t          |j        | j         j        t                     t          || j         j        t                     d S )Nr   r      )r   t_testnpeyelenr   scipyr   normsfabstvaluer   r   r    r   )r   ttr   pvalues       r   
test_ttestzCompareMixin.test_ttest)   s    X__RVC$8$899::rvbi0011A5BItx'7===FDH$4c:::::r   c                     | j         }t          | dd          }|j        j        j        \  }}|j        ||z
  |z
  k    sJ |j        |dz
  k    sJ t          |j                  ||z   k    sJ d S )Nk_extrar      )	r   getattrmodelexogshapedf_residdf_modelr'   r   )r   r   r1   nobsk_varss        r   test_dfzCompareMixin.test_df0   s    h$	1--y~+f|tf}w66666|vz))))3:&7"2222222r   c                 8    | j                                          d S r   )r   summaryr   s    r   test_summaryzCompareMixin.test_summary8   s    r   N)__name__
__module____qualname__r   r!   r/   r;   pytestmarksmoker>    r   r   r   r      sw        M M MN N N; ; ;3 3 3 [    r   r   c                   *    e Zd Zed             Zd ZdS )TestPoissonMLEc                    t           j                            d           d}t           j                            |d          }|}t	          j        |d          }dd|                    d          z  z   }t           j                            t          j        |                    }t          ||          
                    d	          | _        t	          j        ||t          j        	                                
          }|
                                | _        t          ||          | _        | j        
                    d| j        j        z  dd          | _        d S )Nn      Fprepend皙?r2   r   dispfamily?bfgsstart_paramsmethodrP   )r%   randomseedrandnsmadd_constantsumpoissonexpr	   fitr   GLMfamiliesr   r   modr   r   )clsr9   rvs	data_exogxbeta
data_endogmod_glms          r   setup_classzTestPoissonMLE.setup_class?   s    		x   iood1%%	OIu===	c#''!**n$Y&&rve}}55
 #:y99==1=EE&Yr{7J7J7L7LMMMkkmm j)44'++31A1H+H'-A  7 7r   c                 @   | j         }| j        }t          j        t                    5  |                    |j                   d d d            n# 1 swxY w Y   	 ||_        |                    |j                  }t          |t          j
        j                  sJ t          |                                t          j        |j                            |j                            d           |                    d           d S # |                    d           w xY w)N   result)r   rc   rB   raises
ValueErrorpredict_distributionr5   rm   
isinstancer   _distn_infrastructure	rv_frozenr   meanr%   r_   dotr   __delattr__)r   r   r4   dists       r   test_predict_distributionz(TestPoissonMLE.test_predict_distributionV   s:   h]:&& 	3 	3&&uz222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3		(EL--ej99DdE$?$IJJJJJ		 "uz~~cj'A'A B B "$ $ $
 h'''''Eh''''s   AAABD DN)r?   r@   rA   classmethodrj   rx   rE   r   r   rG   rG   =   s<        7 7 [7,( ( ( ( (r   rG   c                   0    e Zd Zed             Zd Zd ZdS )TestPoissonOffsetc                    t           j                            d           d}t           j                            |d          }|}t	          j        |d          }dd|                    d          z  z   }t           j                            t          j        |                    }t	          j	        ||t          j
                                                  }|                                | _        t          ||                              d	
          | _        | j        j        d	         |d d d	f         z  }t          ||d d dd f         |                              d	
          | _        t	          j	        ||t          j
                                                  }|                                | _        t!          ||d d dd f         |          }|                    d| j        j        z  dd	          | _        d S )NrI   rJ   rK   FrL   r2   rN   rQ   r   rO   offsetrS   rT   rU   )r%   rX   rY   rZ   r[   r\   r]   r^   r_   ra   rb   r	   r`   r   r   r   r   r   )	rd   r9   re   rf   rg   rh   ri   r~   modos	            r   rj   zTestPoissonOffset.setup_classl   s    		x   iood1%%	OIu===	C

N"Y&&rve}}55
&Yr{7J7J7L7LMMMkkmm #:y99==1=EE!(+i!n< #:y122+13 3 3363A3;; 	 &Yr{7J7J7L7LMMMkkmm !Yqqqt_VLLL((#c.>.E*E#)  3 3r   c                     t          | j        j        | j        j        dd          t                     t          | j        j        | j        j        t                     d S Nr2   )r   r   r   r   r    r   r   s    r   r   zTestPoissonOffset.test_params   sH    DHOT\-@-DcJJJDHOT->-EsKKKKKr   c                     t          | j        j        | j        j        dd          t          dz
             t          | j        j        | j        j        t                     d S r   )r   r   r   r   r    r   r   r   s    r   r!   z!TestPoissonOffset.test_cov_params   sL    DHL$,*:122*>AFFFDHL$*;*?FFFFFr   N)r?   r@   rA   ry   rj   r   r!   rE   r   r   r{   r{   j   sT        3 3 [3FL L LG G G G Gr   r{   c                   6    e Zd Zed             Zd Zd Zd ZdS )TestPoissonZic                    t           j                            d           d}t           j                            |d          }|}t	          j        |d          }dd|                    d          z  z   }t           j                            t          j        |                    }d| _	        t	          j
        ||t          j                                                  }|                                | _        t          ||                              d	
          | _        | j        j        d	         |d d d	f         z  }t          ||d d dd f         |                              d	
          | _        t#          ||d d dd f         |                              t           j        d| j        j        z  df         dd	          | _        d| _        d S )NrI   rJ   rK   FrL   r2   rN   rQ   r   rO   r}   rS   
   rT   rU   r   )r%   rX   rY   rZ   r[   r\   r]   r^   r_   r1   ra   rb   r	   r`   r   r   r   r   r_r   decimal)rd   r9   re   rf   rg   rh   ri   r~   s           r   rj   zTestPoissonZi.setup_class   s    		x   iood1%%	OIu===	C

N"Y&&rve}}55
&Yr{7J7J7L7LMMMkkmm #:y99==1=EE!(+i!n< #:y122vNNNRRXYRZZ  
IaaadOFKKKOO)+s33C3J/J2/M)N#) P 3 3 r   c                     t          | j        j        d d         | j        j        dd          | j                   t          | j        j        d d         | j        j        | j                   d S )Nr2   )r   r   r   r   r   r   r   s    r   r   zTestPoissonZi.test_params   s^    DHOCRC0$,2Eabb2I4<XXXDHOCRC0$2C2JDLYYYYYr   c                     t          | j        j        d d         | j        j        dd          | j        dz
             t          | j        j        d d         | j        j        | j        dz
             d S )Nr   r2   r#   )r   r   bsejacr   r   r   r   r   s    r   r!   zTestPoissonZi.test_cov_params   sj     	DHOCRC0$,2B1222FUVWWWDHOCRC0$2C2GVWXXXXXr   c                     | j         j        }t          |j        |j        |j                  }ddlm} |j        j	        dz  |j        _	         |t          |j        d           d S )Nr}   r   )assert_warnsr#   rO   )r   r4   r   endogr5   r~   numpy.testingr   dataxnamesr
   r`   )r   rc   mod1r   s       r   test_exog_names_warningz%TestPoissonZi.test_exog_names_warning   sj    hn CHSZHHH......9+a/	\48!444444r   N)r?   r@   rA   ry   rj   r   r!   r   rE   r   r   r   r      sa          [BZ Z ZY Y Y5 5 5 5 5r   r   )__doc__rB   numpyr%   r   r   r(   r   statsmodels.apiapir[   statsmodels.miscmodels.countr   r   r   #statsmodels.discrete.discrete_modelr	   statsmodels.tools.sm_exceptionsr
   r    r   r   r   rG   r{   r   rE   r   r   <module>r      s~         - - - - - -            & & & & & & & & & & 7 7 7 7 7 7 8 8 8 8 8 8 % % % % % % % %P*( *( *( *( *(\ *( *( *(Z,G ,G ,G ,G ,G ,G ,G ,Gf55 55 55 55 55L 55 55 55 55 55r   