U
    Kvf0                     @   s:  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  m  m  mZ ddlmZ e Zeeje_eeje_eejdddf ejdddf< eejdd	Zejd
 Zeeedd ZG dd dZG dd deZG dd deZG dd deZG dd deZG dd deZdS )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                   @   s   e Zd ZdZdd ZdS )CheckMarginMixinr
   c                 C   s   | j }| j}| j}t| jj| j j| d| d t| jj| j j| d| d t| jj| j j| d| d t| j	 |j
|ddf d| d d S )Ngh㈵>)Zrtolgư>gh㈵>      )res1
res1_slicertol_facr   margeffparamsZ
margeff_seZbseZpvaluesZconf_intZmargins_table)selfr   slrf r   K/tmp/pip-unpacked-wheel-2v6byqio/statsmodels/discrete/tests/test_margins.pytest_margins_table    s    z#CheckMarginMixin.test_margins_tableN)__name__
__module____qualname__r   r   r   r   r   r   r      s   r   c                   @   s   e Zd Zedd ZdS )TestPoissonMarginc                 C   s\   dddddddg}t tt}|j|d}| }|| _|| _d	| _td d d | _	t
j| _d S )
Nm4W,@y&1?3ı.nsh|?ۊe	@37gj+6start_paramsr
   )r   endogexogfitget_margeffresr   r   slicer   	res_stataZresults_poisson_margins_contr   clsr%   Zmod_poiZres_poiZ	marge_poir   r   r   setup_class-   s    
zTestPoissonMargin.setup_classNr   r   r   classmethodr/   r   r   r   r   r   +   s   r   c                   @   s   e Zd Zedd ZdS )TestPoissonMarginDummyc                 C   s^   dddddddg}t tt}|j|d}|jd	d
}|| _|| _ddddddg| _tj	| _
d S )Nr   r   r   r    r!   r"   r#   r$   Tdummyr   r
      r      r   )r   r&   r'   r(   r)   r*   r   r   r,   Zresults_poisson_margins_dummyr   r-   r   r   r   r/   @   s    
z"TestPoissonMarginDummy.setup_classNr0   r   r   r   r   r2   >   s   r2   c                   @   s   e Zd Zedd ZdS )TestNegBinMarginc                 C   sb   ddddddddg}t tt}|j|d	d
d}| }|| _|| _td d d | _t	j
| _d| _d S N.1f*@矫_v?灕Clg镲ׁsF@xz,C!
ףp=
=
ףp=?nm  r%   methodmaxiter      I@)r   r&   r'   r(   r)   r*   r   r+   r   r,   results_negbin_margins_contr   r   r.   r%   modr*   Zmarger   r   r   r/   Q   s     
zTestNegBinMargin.setup_classNr0   r   r   r   r   r7   O   s   r7   c                   @   s   e Zd Zedd ZdS )TestNegBinMarginDummyc                 C   sp   ddddddddg}t tt}|j|d	d
d}|jdd}|| _|| _ddddddg | _| _tj	| _
d| _d S )Nr9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   Tr3   r   r
   r5   r   r6   r   rF   )r   r&   r'   r(   r)   r*   r   r   r,   Zresults_negbin_margins_dummyr   r   rH   r   r   r   r/   d   s     
z!TestNegBinMarginDummy.setup_classNr0   r   r   r   r   rJ   b   s   rJ   c                   @   s   e Zd Zedd ZdS )TestNegBinPMarginc                 C   sb   ddddddddg}t tt}|j|d	d
d}| }|| _|| _td d d | _t	j
| _d| _d S r8   )r   r&   r'   r(   r)   r*   r   r+   r   r,   rG   r   r   rH   r   r   r   r/   w   s     
zTestNegBinPMargin.setup_classNr0   r   r   r   r   rK   t   s   rK   ) __doc__ZnumpynpZnumpy.testingr   Zstatsmodels.datasets.cpunishr   Z#statsmodels.discrete.discrete_modelr   r   r   Z8statsmodels.discrete.tests.results.results_count_marginsZdiscretetestsresultsZresults_count_marginsr,   Zstatsmodels.tools.toolsr   Zcpunish_dataZasarrayr'   r&   logroundmaxr   r   r2   r7   rJ   rK   r   r   r   r   <module>   s&   &
