U
    Ãmœd0  ã                   @   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 )Ngñhãˆµøä>)Zrtolg�íµ ÷Æ°>gñhãˆµøÔ>é   é   )Úres1Ú
res1_sliceÚrtol_facr   ÚmargeffÚparamsZ
margeff_seZbseZpvaluesZconf_intZmargins_table)Úselfr   ÚslÚrf© r   ú`/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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 )
NçÖÅm4€W,@çyé&1¬æ?ç3Ä±.n£Àçsh‘í|?á¿çÛŠýe÷ä	@çœ3¢´7¸ÀçgÕçj+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ë?ç�•C‹lgÀç±áé•²ø¿çÜ×�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__Ú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&   &
