
    !g                     r   d Z ddlZddlmZ ddlmZ ddlmZm	Z	m
Z
 ddlmc mc mc mZ ddl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	      Zej,                  d
z
  Ze ej0                  ej3                  d      d      z  Z 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y)z=
Created on Thu Aug  3 21:08:49 2017

Author: Josef Perktold
    N)assert_allclose)load)NegativeBinomialNegativeBinomialPPoisson)add_constant   F)prepend   c                       e Zd ZdZd Zy)CheckMarginMixinr   c                 (   | j                   }| j                  }| j                  }t        | j                  j                  | j                   j
                  |   d|z         t        | j                  j                  | j                   j                  |   d|z         t        | j                  j                  | j                   j                  |   d|z         t        | j                  j                         |j                  |ddf   d|z         y )Ngh㈵>)rtolgư>gh㈵>      )res1
res1_slicertol_facr   margeffparams
margeff_sebsepvaluesconf_intmargins_table)selfr   slrfs       d/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/statsmodels/discrete/tests/test_margins.pytest_margins_tablez#CheckMarginMixin.test_margins_table   s    yy__]],,dii.>.>r.BPRS//r1BPRS,,dii.?.?.C$QS)T--/1C1CB!G1L!BY	(    N)__name__
__module____qualname__r   r     r!   r   r   r      s    H(r!   r   c                       e Zd Zed        Zy)TestPoissonMarginc                     g d}t        t        t              }|j                  |      }|j	                         }|| _        || _        d| _        t        d d d       | _	        t        j                  | _        y )Ngm4W,@gy&1?g3ı.ngsh|?gۊe	@g37ggj+6start_paramsr   )r   endogexogfitget_margeffresr   r   slicer   	res_stataresults_poisson_margins_contr   clsr+   mod_poires_poi	marge_pois        r   setup_classzTestPoissonMargin.setup_class,   se    !%&++<+8'')	tT4099r!   Nr"   r#   r$   classmethodr9   r%   r!   r   r'   r'   *   s    : :r!   r'   c                       e Zd Zed        Zy)TestPoissonMarginDummyc                     g d}t        t        t              }|j                  |      }|j	                  d      }|| _        || _        g d| _        t        j                  | _
        y )Nr)   r*   Tdummyr   r      r	      r   )r   r,   r-   r.   r/   r0   r   r   r2   results_poisson_margins_dummyr   r4   s        r   r9   z"TestPoissonMarginDummy.setup_class?   sZ    !%&++<+8''d'3	+::r!   Nr:   r%   r!   r   r=   r=   =   s    ; ;r!   r=   c                       e Zd Zed        Zy)TestNegBinMarginc                     g d}t        t        t              }|j                  |dd      }|j	                         }|| _        || _        t        d d d       | _        t        j                  | _        d| _        y Ng.1f*@g_v?gClgg镲gׁsF@gxz,C!g
ףp=
g=
ףp=?nm  r+   methodmaxiter      I@)r   r,   r-   r.   r/   r0   r   r1   r   r2   results_negbin_margins_contr   r   r5   r+   modr0   marges        r   r9   zTestNegBinMargin.setup_classP   sg    %ud+gg<dgK!tT4088r!   Nr:   r%   r!   r   rF   rF   N        r!   rF   c                       e Zd Zed        Zy)TestNegBinMarginDummyc                     g d}t        t        t              }|j                  |dd      }|j	                  d      }|| _        || _        g dx| _        | _        t        j                  | _
        d| _        y )	NrI   rJ   rK   rL   Tr?   rA   rO   )r   r,   r-   r.   r/   r0   r   r   r2   results_negbin_margins_dummyr   r   rQ   s        r   r9   z!TestNegBinMarginDummy.setup_classc   si    %ud+gg<dgKd+*<<99r!   Nr:   r%   r!   r   rV   rV   a   rT   r!   rV   c                       e Zd Zed        Zy)TestNegBinPMarginc                     g d}t        t        t              }|j                  |dd      }|j	                         }|| _        || _        t        d d d       | _        t        j                  | _        d| _        y rH   )r   r,   r-   r.   r/   r0   r   r1   r   r2   rP   r   r   rQ   s        r   r9   zTestNegBinPMargin.setup_classv   sg    %t,gg<dgK!tT4088r!   Nr:   r%   r!   r   rZ   rZ   s   s      r!   rZ   ) __doc__numpynpnumpy.testingr   statsmodels.datasets.cpunishr   #statsmodels.discrete.discrete_modelr   r   r   8statsmodels.discrete.tests.results.results_count_marginsdiscretetestsresultsresults_count_marginsr2   statsmodels.tools.toolsr   cpunish_dataasarrayr-   r,   logroundmaxr   r'   r=   rF   rV   rZ   r%   r!   r   <module>rm      s     ) . 
 M L 0vBJJ|001 RZZ 2 23  1 1!A# 67  !A# L%%u5Q !a   ( (:( :&;- ;"' &, $( r!   