U
    md(                    @   s  d Z ddlmZ ddlZddlZddlZddlmZm	Z	m
Z
mZmZmZm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 ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&  mZ' dd	l(m)Z)m*Z*m+Z+m,Z, d
dl-m.Z.m/Z/m0Z0m1Z1 zddl2Z2dZ3W n e4k
r$   dZ3Y nX dZ5dZ6dZ7dZ8dZ9dZ:d
Z;dZ<dd Z=dd Z>dd Z?dddZ@dd ZAG dd dZBG d d! d!eBZCG d"d# d#eCZDG d$d% d%ZEG d&d' d'eDZFG d(d) d)eDZGG d*d+ d+eDZHG d,d- d-eDZIG d.d/ d/eDZJG d0d1 d1eDZKG d2d3 d3eDZLG d4d5 d5eDZMG d6d7 d7eDZNG d8d9 d9eDZOG d:d; d;ZPG d<d= d=ePZQG d>d? d?ePZRG d@dA dAePZSejTjUe3 dBdCG dDdE dEZVG dFdG dGZWG dHdI dIZXG dJdK dKeXZYG dLdM dMeXZZG dNdO dOeXZ[G dPdQ dQeXZ\G dRdS dSeXZ]G dTdU dUeXZ^G dVdW dWZ_G dXdY dYe_Z`G dZd[ d[e`ZaG d\d] d]e`ZbG d^d_ d_e_ZcG d`da daeDeEZdG dbdc dceEZeG ddde deeDeEZfG dfdg dgeCZgG dhdi diZhG djdk dkeheCZiG dldm dmeheCZjG dndo doeheCZkG dpdq dqeheCZlG drds dseheCZmG dtdu dueCZnG dvdw dwenZoG dxdy dyenZpdzd{ Zqd|d} Zrd~d Zsdd Ztdd Zudd Zvdd Zwdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd ZG dd dZG dd dZG dd dZG dd dZG dd deheCZG dd deheCZG dd deheCZG dd deheCZG dd deXZG dd dZG dd dZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdd Zdd Zdd Zdd ZddÄ Zddń ZdS )z
Tests for discrete models

Notes
-----
DECIMAL_3 is used because it seems that there is a loss of precision
in the Stata *.dta -> *.csv output, NOT the estimator for the Poisson
tests.
    )assert_index_equalN)assert_assert_allcloseassert_almost_equalassert_array_equalassert_array_lessassert_equalassert_raisesstats)nbinom)_iscount_isdummy)
CountModelGeneralizedPoissonLogitMNLogitNegativeBinomialNegativeBinomialPPoissonProbit)ConvergenceWarningPerfectSeparationErrorSpecificationWarningValueWarning   )Anes
DiscreteL1RandHIESpectorTF   
   	            c                  C   s,   t jj } t| j| _t| j| _| S N)smdatasetsanes96loadnpasarrayendogexogdata r1   a/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/statsmodels/discrete/tests/test_discrete.pyload_anes96E   s    r3   c                  C   s,   t jj } t| j| _t| j| _| S r&   )r'   r(   spectorr*   r+   r,   r-   r.   r/   r1   r1   r2   load_spectorK   s    r5   c                  C   s0   t jj } t| j| _tj| jtd| _| S )NZdtype)	r'   r(   Zrandhier*   r+   r,   r-   r.   floatr/   r1   r1   r2   load_randhieR   s    r8   c                 C   sz  |d kr| j }n|}|jj}|j|jd}|j|j}t||t t	|jt
tfr^d S |j|j}|j|j}t	|ts|d d d f | }n&|\}	}
t|	d d d f | |
f}t||dd |j|j}|j|j}t	|ts||j |}n`|\}}}||j |}t|j|}t|d}tt||jft||ff}t||dd d S )Nr   绽|=rtol)res1modelr.   Z	score_obsparamssumscorer   	DECIMAL_9
isinstancer   r   Zscore_factortupler+   column_stackr   hessianZhessian_factorTdotZ
atleast_2dZvstack)selfresr<   r.   Zjacsumr@   s1Zsfs2Zsf0Zsf1Zh1ZhfZh2Zhf0Zhf1Zhf2Zh00Zh10Zh11r1   r1   r2   	check_jacY   s8    

rL   c                 C   s   |   }| j | j}|  }| }t|t|dd | }t|t|dd | jdd}| }t|t|dd d S )Nr9   r:   varwhich)	get_distributionr=   r>   predictmeanr   r+   ZsqueezerM   )rI   ZdistrZdistr1mm2vZv2r1   r1   r2   check_distr   s    rV   c                   @   s   e Zd Zdd ZdS )CheckModelMixinc              	   C   s2   | j j}tjtdd |jdd W 5 Q R X d S )Nzis not supported, use eithermatchZfoomethod)r<   r=   pytestraises
ValueErrorfit_regularized)rH   r=   r1   r1   r2   #test_fit_regularized_invalid_method   s    z3CheckModelMixin.test_fit_regularized_invalid_methodN)__name__
__module____qualname__r`   r1   r1   r1   r2   rW      s   rW   c                   @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zejjddeddd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-S ).CheckModelResultszm
    res2 should be the test results from RModelWrap
    or the results as defined in model_results_data
    c                 C   s   t | jj| jjt d S r&   r   r<   r>   res2	DECIMAL_4rH   r1   r1   r2   test_params   s    zCheckModelResults.test_paramsc                 C   s   t | j | jjdd d S )Ngh㈵?r:   r   r<   conf_intrf   rh   r1   r1   r2   test_conf_int   s    zCheckModelResults.test_conf_intc                 C   s   t | jj| jjt d S r&   )r   r<   tvaluesrf   zrg   rh   r1   r1   r2   
test_zstat   s    zCheckModelResults.test_zstatc                 C   s   t | jj| jjt d S r&   r   r<   pvaluesrf   rg   rh   r1   r1   r2   test_pvalues   s    zCheckModelResults.test_pvaluesc                 C   s0   t | jdstdt| j | jjt d S )N
cov_paramszTODO: implement res2.cov_params)hasattrrf   r\   skipr   r<   rs   rg   rh   r1   r1   r2   test_cov_params   s    

z!CheckModelResults.test_cov_paramsc                 C   s   t | jj| jjt d S r&   )r   r<   llfrf   rg   rh   r1   r1   r2   test_llf   s    zCheckModelResults.test_llfc                 C   s   t | jj| jjt d S r&   )r   r<   llnullrf   rg   rh   r1   r1   r2   test_llnull   s    zCheckModelResults.test_llnullc                 C   s   t | jj| jjt d S r&   )r   r<   llrrf   	DECIMAL_3rh   r1   r1   r2   test_llr   s    zCheckModelResults.test_llrc                 C   s   t | jj| jjt d S r&   )r   r<   Z
llr_pvaluerf   rg   rh   r1   r1   r2   test_llr_pvalue   s    z!CheckModelResults.test_llr_pvalue-Test has not been implemented for this class.Treasonstrictr]   c                 C   s   t d S r&   NotImplementedErrorrh   r1   r1   r2   test_normalized_cov_params   s    z,CheckModelResults.test_normalized_cov_paramsc                 C   s   t | jj| jjt d S r&   r   r<   bserf   rg   rh   r1   r1   r2   test_bse   s    zCheckModelResults.test_bsec                 C   s(   t | jj| jj t | jj| jj d S r&   )r   r<   df_modelrf   df_residrh   r1   r1   r2   test_dof   s    zCheckModelResults.test_dofc                 C   s   t | jj| jjt d S r&   r   r<   aicrf   r|   rh   r1   r1   r2   test_aic   s    zCheckModelResults.test_aicc                 C   s   t | jj| jjt d S r&   r   r<   bicrf   r|   rh   r1   r1   r2   test_bic   s    zCheckModelResults.test_bicc                 C   s"   t | jj| jj| jjt d S r&   )r   r<   r=   rQ   r>   rf   Zphatrg   rh   r1   r1   r2   test_predict   s     zCheckModelResults.test_predictc                 C   s&   t | jjj| jjdd| jjt d S )NlinearrN   )r   r<   r=   rQ   r>   rf   Zyhatrg   rh   r1   r1   r2   test_predict_xb   s     z!CheckModelResults.test_predict_xbc                 C   s*   | j j| j j }t|| j jt d S r&   )r<   r=   Z
loglikeobsr>   r?   r   rw   
DECIMAL_14)rH   Zllobssumr1   r1   r2   test_loglikeobs   s    z!CheckModelResults.test_loglikeobsc                 C   s   t |  d S r&   rL   rh   r1   r1   r2   test_jac   s    zCheckModelResults.test_jacc                 C   sV   | j  }| }t| }t| j jtsF|dt	| j j
 ksFtd|ksRtd S )N   zCovariance Type:)r<   summaryZas_latexlen
splitlinesrB   r=   r   r+   sizer>   AssertionError)rH   summZltxZn_linesr1   r1   r2   test_summary_latex   s    
z$CheckModelResults.test_summary_latexc                 C   s   t | j d S r&   rV   r<   rh   r1   r1   r2   
test_distr   s    zCheckModelResults.test_distrN)ra   rb   rc   __doc__ri   rl   ro   rr   rv   rx   rz   r}   r~   r\   markxfailr   r   r   r   r   r   r   r   r   r   r   r   r1   r1   r1   r2   rd      s2    

rd   c                   @   s4   e Zd Zdd Zdd Zdd Zejjdd Z	d	S )
CheckBinaryResultsc                 C   s   t | j | jj d S r&   )r   r<   
pred_tablerf   rh   r1   r1   r2   test_pred_table   s    z"CheckBinaryResults.test_pred_tablec                 C   s   t | jj| jjt d S r&   )r   r<   Z	resid_devrf   rg   rh   r1   r1   r2   test_resid_dev   s    z!CheckBinaryResults.test_resid_devc                 C   s   t | jj| jjt d S r&   )r   r<   Zresid_generalizedrf   rg   rh   r1   r1   r2   test_resid_generalized  s     z)CheckBinaryResults.test_resid_generalizedc                 C   s   | j j d S r&   )r<   Zresid_responserh   r1   r1   r2   test_resid_response  s    z&CheckBinaryResults.test_resid_responseN)
ra   rb   rc   r   r   r   r\   r   Zsmoker   r1   r1   r1   r2   r      s
   r   c                   @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2S )3CheckMargEffz9
    Test marginal effects (margeff) and its options
    c                 C   sh   | j  }t|j| jjt t|j| jjt |	 }|d j
}t||jdd t|j|jjdf d S )Ndy/dxvIh%<=r:      )r<   get_margeffr   margeffrf   Zmargeff_nodummy_dydxrg   
margeff_seZmargeff_nodummy_dydx_sesummary_framevaluesr   r   shaper   rH   meZme_frameZeffr1   r1   r2   test_nodummy_dydxoverall  s    
  
z%CheckMargEff.test_nodummy_dydxoverallc                 C   s6   | j jdd}t|j| jjt t|j| jjt d S )NrR   at)	r<   r   r   r   rf   Zmargeff_nodummy_dydxmeanrg   r   Zmargeff_nodummy_dydxmean_serH   r   r1   r1   r2   test_nodummy_dydxmean  s      z"CheckMargEff.test_nodummy_dydxmeanc                 C   s6   | j jdd}t|j| jjt t|j| jjt d S )Nmedianr   )	r<   r   r   r   rf   Zmargeff_nodummy_dydxmedianrg   r   Zmargeff_nodummy_dydxmedian_ser   r1   r1   r2   test_nodummy_dydxmedian#  s      z$CheckMargEff.test_nodummy_dydxmedianc                 C   s6   | j jdd}t|j| jjt t|j| jjt d S )Nzeror   )r<   r   r   r   rf   Zmargeff_nodummy_dydxzerorg   r   r   r1   r1   r2   test_nodummy_dydxzero*  s      z"CheckMargEff.test_nodummy_dydxzeroc                 C   s6   | j jdd}t|j| jjt t|j| jjt d S )NdyexrZ   )	r<   r   r   r   rf   Zmargeff_nodummy_dyexrg   r   Zmargeff_nodummy_dyex_ser   r1   r1   r2   test_nodummy_dyexoverall1  s      z%CheckMargEff.test_nodummy_dyexoverallc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )NrR   r   r   r[   )	r<   r   r   r   rf   Zmargeff_nodummy_dyexmeanrg   r   Zmargeff_nodummy_dyexmean_ser   r1   r1   r2   test_nodummy_dyexmean8  s      z"CheckMargEff.test_nodummy_dyexmeanc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )Nr   r   r   )	r<   r   r   r   rf   Zmargeff_nodummy_dyexmedianrg   r   Zmargeff_nodummy_dyexmedian_ser   r1   r1   r2   test_nodummy_dyexmedian?  s      z$CheckMargEff.test_nodummy_dyexmedianc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )Nr   r   r   )	r<   r   r   r   rf   Zmargeff_nodummy_dyexzerorg   r   Zmargeff_nodummy_dyexzero_ser   r1   r1   r2   test_nodummy_dyexzeroF  s      z"CheckMargEff.test_nodummy_dyexzeroc                 C   s6   | j jdd}t|j| jjt t|j| jjt d S )NeydxrZ   )	r<   r   r   r   rf   Zmargeff_nodummy_eydxrg   r   Zmargeff_nodummy_eydx_ser   r1   r1   r2   test_nodummy_eydxoverallM  s      z%CheckMargEff.test_nodummy_eydxoverallc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )NrR   r   r   )	r<   r   r   r   rf   Zmargeff_nodummy_eydxmeanrg   r   Zmargeff_nodummy_eydxmean_ser   r1   r1   r2   test_nodummy_eydxmeanT  s      z"CheckMargEff.test_nodummy_eydxmeanc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )Nr   r   r   )	r<   r   r   r   rf   Zmargeff_nodummy_eydxmedianrg   r   Zmargeff_nodummy_eydxmedian_ser   r1   r1   r2   test_nodummy_eydxmedian[  s      z$CheckMargEff.test_nodummy_eydxmedianc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )Nr   r   r   )	r<   r   r   r   rf   Zmargeff_nodummy_eydxzerorg   r   Zmargeff_nodummy_eydxzero_ser   r1   r1   r2   test_nodummy_eydxzerob  s      z"CheckMargEff.test_nodummy_eydxzeroc                 C   s6   | j jdd}t|j| jjt t|j| jjt d S )NeyexrZ   )	r<   r   r   r   rf   Zmargeff_nodummy_eyexrg   r   Zmargeff_nodummy_eyex_ser   r1   r1   r2   test_nodummy_eyexoveralli  s      z%CheckMargEff.test_nodummy_eyexoverallc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )NrR   r   r   )	r<   r   r   r   rf   Zmargeff_nodummy_eyexmeanrg   r   Zmargeff_nodummy_eyexmean_ser   r1   r1   r2   test_nodummy_eyexmeanp  s      z"CheckMargEff.test_nodummy_eyexmeanc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )Nr   r   r   )	r<   r   r   r   rf   Zmargeff_nodummy_eyexmedianrg   r   Zmargeff_nodummy_eyexmedian_ser   r1   r1   r2   test_nodummy_eyexmedianw  s      z$CheckMargEff.test_nodummy_eyexmedianc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )Nr   r   r   )	r<   r   r   r   rf   Zmargeff_nodummy_eyexzerorg   r   Zmargeff_nodummy_eyexzero_ser   r1   r1   r2   test_nodummy_eyexzero~  s      z"CheckMargEff.test_nodummy_eyexzeroc                 C   s6   | j jdd}t|j| jjt t|j| jjt d S NTdummy)	r<   r   r   r   rf   Zmargeff_dummy_dydxrg   r   Zmargeff_dummy_dydx_ser   r1   r1   r2   test_dummy_dydxoverall  s      z#CheckMargEff.test_dummy_dydxoverallc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )NrR   T)r   r   )	r<   r   r   r   rf   Zmargeff_dummy_dydxmeanrg   r   Zmargeff_dummy_dydxmean_ser   r1   r1   r2   test_dummy_dydxmean  s      z CheckMargEff.test_dummy_dydxmeanc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )Nr   T)r[   r   )	r<   r   r   r   rf   Zmargeff_dummy_eydxrg   r   Zmargeff_dummy_eydx_ser   r1   r1   r2   test_dummy_eydxoverall  s      z#CheckMargEff.test_dummy_eydxoverallc                 C   s:   | j jdddd}t|j| jjt t|j| jjt d S )NrR   r   T)r   r[   r   )	r<   r   r   r   rf   Zmargeff_dummy_eydxmeanrg   r   Zmargeff_dummy_eydxmean_ser   r1   r1   r2   test_dummy_eydxmean  s      z CheckMargEff.test_dummy_eydxmeanc                 C   s6   | j jdd}t|j| jjt t|j| jjt d S )NT)count)	r<   r   r   r   rf   Zmargeff_count_dydxrg   r   Zmargeff_count_dydx_ser   r1   r1   r2   test_count_dydxoverall  s      z#CheckMargEff.test_count_dydxoverallc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )NTrR   )r   r   )	r<   r   r   r   rf   Zmargeff_count_dydxmeanrg   r   Zmargeff_count_dydxmean_ser   r1   r1   r2   test_count_dydxmean  s      z CheckMargEff.test_count_dydxmeanc                 C   s8   | j jddd}t|j| jjt t|j| jjt d S )NT)r   r   )	r<   r   r   r   rf   Zmargeff_count_dummy_dydxoverallrg   r   Z"margeff_count_dummy_dydxoverall_ser   r1   r1   r2   test_count_dummy_dydxoverall  s      z)CheckMargEff.test_count_dummy_dydxoverallc                 C   s:   | j jdddd}t|j| jjt t|j| jjt d S )NTrR   )r   r   r   )	r<   r   r   r   rf   Zmargeff_count_dummy_dydxmeanrg   r   Zmargeff_count_dummy_dydxmean_ser   r1   r1   r2   test_count_dummy_dydxmean  s      z&CheckMargEff.test_count_dummy_dydxmeanN)ra   rb   rc   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1   r1   r1   r2   r   
  s2   r   c                   @   s    e Zd Zedd Zdd ZdS )TestProbitNewtonc                 C   sB   t  }tj|jdd|_t|j|jjddd| _tj	}|| _
d S NFprependnewtonr   r[   dispr5   r'   add_constantr.   r   r-   fitr<   r   probitrf   clsr0   rf   r1   r1   r2   setup_class  s
    zTestProbitNewton.setup_classc              	   C   sN   | j jj}| j jj}tt|}tjt	dd t
|||d W 5 Q R X d S )Nzunknown kwargsrX   )weights)r<   r=   r-   r.   r+   onesr   r\   warnsr   r   )rH   r-   r.   rn   r1   r1   r2   test_init_kwargs  s
    

z!TestProbitNewton.test_init_kwargsN)ra   rb   rc   classmethodr   r   r1   r1   r1   r2   r     s   
r   c                   @   s   e Zd Zedd ZdS )TestProbitBFGSc                 C   sB   t  }tj|jdd|_t|j|jjddd| _tj	}|| _
d S NFr   bfgsr   r   r   r   r1   r1   r2   r     s    zTestProbitBFGS.setup_classNra   rb   rc   r   r   r1   r1   r1   r2   r     s   r   c                   @   s   e Zd Zedd ZdS )TestProbitNMc                 C   sD   t  }tj|jdd|_tj}|| _t|j|jj	dddd| _
d S )NFr   nmr     r[   r   maxiterr5   r'   r   r.   r   r   rf   r   r-   r   r<   r   r1   r1   r2   r     s     zTestProbitNM.setup_classNr   r1   r1   r1   r2   r     s   r   c                   @   s   e Zd Zedd ZdS )TestProbitPowellc                 C   sD   t  }tj|jdd|_tj}|| _t|j|jj	dddd| _
d S )NFr   Zpowellr   :0yE>)r[   r   Zftolr   r   r1   r1   r2   r     s     zTestProbitPowell.setup_classNr   r1   r1   r1   r2   r     s   r   c                   @   s   e Zd Zedd ZdS )TestProbitCGc                 C   s   t  }tj|jdd|_tj}|| _ddlm} ||j}||j}t	|j
|jddddd}||j}t||jd	d
d t	|j
|jj|ddd	dd| _t| jjd d d S )NFr   r   )StandardizeTransformZcg  r   )r[   r   r   gtolh㈵>ư>r;   atol)start_paramsr[   r   r   r   Zfcallsd   )r5   r'   r   r.   r   r   rf   Z!statsmodels.tools.transform_modelr   r   r-   r   Ztransform_paramsr>   r   r<   r   mle_retvals)r   r0   rf   r   ZtransfZexog_stZres1_str  r1   r1   r2   r     s6    

    zTestProbitCG.setup_classNr   r1   r1   r1   r2   r     s   r   c                   @   s   e Zd Zedd ZdS )TestProbitNCGc                 C   sF   t  }tj|jdd|_tj}|| _t|j|jj	ddddd| _
d S )NFr   Zncgr   r   )r[   r   ZavextolZwarn_convergencer   r   r1   r1   r2   r     s     zTestProbitNCG.setup_classNr   r1   r1   r1   r2   r    s   r  c                   @   s   e Zd Zedd ZdS )TestProbitBasinhoppingc                 C   s\   t  }tj|jdd|_tj}|| _t|j|jj	}t
jd |dddddd	d
| _d S )NFr   r   basinhoppingr      zL-BFGS-Br   )r[   tol)r[   r   niterZ	minimizer)r5   r'   r   r.   r   r   rf   r   r-   r   r+   randomseedr<   r   r0   rf   r   r1   r1   r2   r      s    z"TestProbitBasinhopping.setup_classNr   r1   r1   r1   r2   r    s   r  c                   @   s   e Zd Zedd ZdS )TestProbitMinimizeDefaultc                 C   sJ   t  }tj|jdd|_tj}|| _t|j|jj	}|ddddd| _
d S )NFr   minimizer   r
  r   )r[   r   r  r  r   r  r1   r1   r2   r   .  s    z%TestProbitMinimizeDefault.setup_classNr   r1   r1   r1   r2   r  ,  s   r  c                   @   s   e Zd Zedd ZdS )TestProbitMinimizeDoglegc                 C   sL   t  }tj|jdd|_tj}|| _t|j|jj	}|dddddd| _
d S )	NFr   r  r   r
  r   Zdogleg)r[   r   r  r  
min_methodr   r  r1   r1   r2   r   :  s    
z$TestProbitMinimizeDogleg.setup_classNr   r1   r1   r1   r2   r  8  s   r  c                   @   s   e Zd Zedd ZdS )#TestProbitMinimizeAdditionalOptionsc                 C   sJ   t  }tj|jdd|_tj}|| _t|j|jj	ddddddd| _
d S )	NFr   r  r   r   zNelder-Mead-C6?)r[   r   r   r  ZxatolZfatolr   r   r1   r1   r2   r   G  s     z/TestProbitMinimizeAdditionalOptions.setup_classNr   r1   r1   r1   r2   r  E  s   r  c                   @   s@   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dS )CheckLikelihoodModelL1z>
    For testing results generated with L1 regularization
    c                 C   s   t | jj| jjt d S r&   re   rh   r1   r1   r2   ri   V  s    z"CheckLikelihoodModelL1.test_paramsc                 C   s   t | j | jjt d S r&   )r   r<   rk   rf   rg   rh   r1   r1   r2   rl   Y  s
      z$CheckLikelihoodModelL1.test_conf_intc                 C   s   t | jj| jjt d S r&   r   rh   r1   r1   r2   r   ]  s    zCheckLikelihoodModelL1.test_bsec                 C   s   t | jj| jjt d S r&   )r   r<   Z
nnz_paramsrf   rg   rh   r1   r1   r2   test_nnz_params`  s
      z&CheckLikelihoodModelL1.test_nnz_paramsc                 C   s   t | jj| jjt d S r&   r   rh   r1   r1   r2   r   d  s
      zCheckLikelihoodModelL1.test_aicc                 C   s   t | jj| jjt d S r&   r   rh   r1   r1   r2   r   h  s
      zCheckLikelihoodModelL1.test_bicN)
ra   rb   rc   r   ri   rl   r   r  r   r   r1   r1   r1   r2   r  R  s   r  c                   @   s    e Zd Zedd Zdd ZdS )TestProbitL1c              	   C   s^   t  }tj|jdd|_tddddg}t|j|jjd|dd	d
ddd| _	t
j}|| _d S )NTr   皙?皙?g333333?r!   l1r   auto{Gz?r9   r   )r[   alphar   	trim_modeauto_trim_tolaccr   )r5   r'   r   r.   r+   arrayr   r-   r_   r<   r   r   rf   )r   r0   r  rf   r1   r1   r2   r   o  s         zTestProbitL1.setup_classc                 C   s   t | j | jjt d S r&   r   r<   rs   rf   rg   rh   r1   r1   r2   rv   z  s
      zTestProbitL1.test_cov_paramsNra   rb   rc   r   r   rv   r1   r1   r1   r2   r  m  s   

r  c                   @   s   e Zd Zedd ZdS )TestMNLogitL1c                 C   sz   t  }|j}tj|dd}t|j|}dt|jd |j	f }d|dd d f< |j
d|dd	d
dd| _tj}|| _d S )NFr         $@r   r   r  r  r  r9   )r[   r  r  r   r!  r   )r3   r.   r'   r   r   r-   r+   r   JKr_   r<   r   mnlogitrf   )r   Z	anes_dataZ	anes_exogZ
mlogit_modr  rf   r1   r1   r2   r     s         zTestMNLogitL1.setup_classNr   r1   r1   r1   r2   r%    s   r%  c                   @   s    e Zd Zedd Zdd ZdS )TestLogitL1c              	   C   sf   t  }tj|jdd|_dtddddg | _t|j|jj	d| jddd	d
dd| _
tj}|| _d S )NTr   r$                 ?r  r   r   r   r9   r   )r[   r  r   r  Zsize_trim_tolr!  r   )r5   r'   r   r.   r+   r"  r  r   r-   r_   r<   r   logitrf   r   r1   r1   r2   r     s         zTestLogitL1.setup_classc                 C   s   t | j | jjt d S r&   r#  rh   r1   r1   r2   rv     s
      zTestLogitL1.test_cov_paramsNr$  r1   r1   r1   r2   r+    s   

r+  1Skipped test_cvxopt since cvxopt is not available)r   c                   @   s    e Zd Zedd Zdd ZdS )
TestCVXOPTc                 C   sZ   t std tjj | _t	| jj
| j_
t	| jj| j_tj| jjdd| j_d S )Nr/  Tr   )
has_cvxoptr\   ru   r'   r(   r4   r*   r0   r+   r,   r-   r.   r   r   r1   r1   r2   r     s    
zTestCVXOPT.setup_classc              	   C   sz   dt ddddg | _t| jj| jjjd| jddddd	}t| jj| jjjd
| jdddddd}t|j	|j	t
 d S )N      @r   r   r-  r  r9   r   r  r[   r  r   r!  r   r  Zl1_cvxopt_cp{Gz?)r[   r  r   Zabstolr  r   r   )r+   r"  r  r   r0   r-   r.   r_   r   r>   rg   )rH   Z	res_slsqpZ
res_cvxoptr1   r1   r2   test_cvxopt_versus_slsqp  s&             z#TestCVXOPT.test_cvxopt_versus_slsqpN)ra   rb   rc   r   r   r6  r1   r1   r1   r2   r0    s   
r0  c                   @   s    e Zd Zedd Zdd ZdS )TestSweepAlphaL1c                 C   s^   t  }tj|jdd|_t|j|j| _tddddgddddgddddgg| _	t
j| _d S )NTr   r  皙?      ?r   )r5   r'   r   r.   r   r-   r=   r+   r"  alphasr   Zsweepr<   r   r0   r1   r1   r2   r     s    


zTestSweepAlphaL1.setup_classc              	   C   sR   t dD ]D}| j|d d f }| jjd|ddddd}t|j| jj| t qd S )Nr$   r  r   r9   offr   )r[   r  r   r!  r  r   )ranger:  r=   r_   r   r>   r<   rg   )rH   ir  rf   r1   r1   r2   test_sweep_alpha  s        z!TestSweepAlphaL1.test_sweep_alphaN)ra   rb   rc   r   r   r?  r1   r1   r1   r2   r7    s   

r7  c                   @   s@   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dS )CheckL1Compatabilityz
    Tests compatability between l1 and unregularized by setting alpha such
    that certain parameters should be effectively unregularized, and others
    should be ignored by the model.
    c                 C   sV   | j }t| jjd | | jjd | t | jjjjd }td| jj|| t d S )Nr   r   )	rS   r   	res_unregr>   res_regrg   r=   r.   r   )rH   rS   kvarsr1   r1   r2   ri     s      z CheckL1Compatability.test_paramsc                 C   sB   | j }t| j d |d |f | j d |d |f t d S r&   )rS   r   rA  rs   rB  	DECIMAL_1)rH   rS   r1   r1   r2   rv     s    z$CheckL1Compatability.test_cov_paramsc                 C   s(   t | jj| jj t | jj| jj d S r&   )r   rA  r   rB  r   rh   r1   r1   r2   test_df  s    zCheckL1Compatability.test_dfc                 C   s   | j }| j}t| dd}| jtt| jj}| j	t|| }t
|jd | |jd | t t
|jd | |jd | t t
tj|j|  t|jd | |jd | dd t
tj|j|  d S )Nk_extrar   g~jth?r  )rS   rC  getattrrA  t_testr+   eyer   r>   rB  r   effectr|   sdnanr   tvalue)rH   rS   rC  extrat_unregt_regr1   r1   r2   test_t_test  s      "z CheckL1Compatability.test_t_testc                 C   s   | j }| j}t| dd}| jtt| jjd | }| j	t|| d | }t
|j|jddd t|j|jt d S )NrF  r   giUMu>MbP?r  )rS   rC  rH  rA  f_testr+   rJ  r   r>   rB  r   Zfvaluer   pvaluer|   )rH   rS   rC  rO  Zf_unregZf_regr1   r1   r2   test_f_test  s    "z CheckL1Compatability.test_f_testc                 C   s    | j }tt| jjt| d S r&   )rC  r	   r^   rB  rT  r+   rJ  )rH   rC  r1   r1   r2   test_bad_r_matrix  s    z&CheckL1Compatability.test_bad_r_matrixN)
ra   rb   rc   r   ri   rv   rE  rR  rV  rW  r1   r1   r1   r2   r@    s   	
r@  c                   @   s   e Zd Zedd ZdS )TestPoissonL1Compatabilityc                 C   s   d| _ d| _t }|jtt|jd}tj	|dd}|d d d | jf }t
|j|}|jddd| _dt|j t| j  }d	|d | j< t
|j|jd
|ddddd| _d S )Nr!      r'  Tr   r   Fr   r   r  r9     r  r4  )rC  rS   r8   r.   viewr7   reshaper   r'   r   r   r-   r   rA  r+   r   r_   rB  )r   	rand_data	rand_exogexog_no_PSI	mod_unregr  r1   r1   r2   r   
  s$        z&TestPoissonL1Compatability.setup_classNr   r1   r1   r1   r2   rX    s   rX  c                   @   s   e Zd Zedd ZdS )#TestNegativeBinomialL1Compatabilityc                 C   s   d| _ d| _t }|jtt|jd}||d |	d }t
j|dd}|d d d | jf }t
|j|}|jddd	| _dt|j t| j d
  }d|d | j< d|d< t
|j|}|jd|ddddd| _d
| _d S )Nr!   rY  r'  r   Tr   r   Fr   r   r  r9   rZ  r  r4  )rC  rS   r8   r.   r[  r7   r\  r   rR   stdr'   r   r   r-   r   rA  r+   r   r_   rB  rF  r   r]  r^  Zrand_exog_str_  r`  r  mod_regr1   r1   r2   r     s,        z/TestNegativeBinomialL1Compatability.setup_classNr   r1   r1   r1   r2   ra    s   ra  c                   @   s   e Zd Zedd ZdS )&TestNegativeBinomialGeoL1Compatabilityc                 C   s   d| _ d| _t }|jtt|jd}tj	|dd}|d d d | jf }tj
|j|dd}|jdd	d
| _dt|j t| j  }d|d | j< tj
|j|dd}|jd|d	dddd| _t|jd d S )Nr!   rY  r'  Tr   	geometricloglike_methodr   Fr   r   r  r9   rZ  r  r4  )rC  rS   r8   r.   r[  r7   r\  r   r'   r   r   r-   r   rA  r+   r   r_   rB  r   rh  )r   r]  r^  r_  r`  r  rd  r1   r1   r2   r   9  s0    

    z2TestNegativeBinomialGeoL1Compatability.setup_classNr   r1   r1   r1   r2   re  7  s   re  c                   @   s   e Zd Zedd ZdS )TestLogitL1Compatabilityc                 C   s   d| _ d| _t }tj|jdd|_tddddg}t|j	|jj
d|ddd	d
d| _|jd d d | jf }t|j	|jddd| _d S Nr#   r$   Tr   r   r!   r  V瞯<rZ  r  r4  r   r  )rC  rS   r5   r'   r   r.   r+   r"  r   r-   r_   rB  r   rA  r   r0   r  r_  r1   r1   r2   r   S  s        z$TestLogitL1Compatability.setup_classNr   r1   r1   r1   r2   ri  Q  s   ri  c                   @   s4   e Zd Zedd Zdd Zejddd Z	dS )	TestMNLogitL1Compatabilityc                 C   s   d| _ d| _t }tj|jdd|_tddddg}t|j	|jj
d|ddd	d
d| _|jd d d | jf }t|j	|jddddd| _d S )Nr#   r$   Tr   r   r!   r  rk  rZ  r  r4  r   r   r   r   r[   r   )rC  rS   r5   r'   r   r.   r+   r"  r   r-   r_   rB  r   rA  rm  r1   r1   r2   r   e  s(           z&TestMNLogitL1Compatability.setup_classc                 C   s   | j }| j}| jt|}| jt|}t|j|jd | t	 t|j
|j
d | t	 ttj|j
|  t|j|jd | t	 d S r&   )rS   rC  rA  rI  r+   rJ  rB  r   rK  r|   rL  rM  rN  )rH   rS   rC  rP  rQ  r1   r1   r2   rR  t  s    z&TestMNLogitL1Compatability.test_t_testzSkipped test_f_test for MNLogitc                 C   s   d S r&   r1   rh   r1   r1   r2   rV  ~  s    z&TestMNLogitL1Compatability.test_f_testN)
ra   rb   rc   r   r   rR  r\   r   ru   rV  r1   r1   r1   r2   rn  c  s
   


rn  c                   @   s   e Zd Zedd ZdS )TestProbitL1Compatabilityc                 C   s   d| _ d| _t }tj|jdd|_tddddg}t|j	|jj
d|ddd	d
d| _|jd d d | jf }t|j	|jddd| _d S rj  )rC  rS   r5   r'   r   r.   r+   r"  r   r-   r_   rB  r   rA  rm  r1   r1   r2   r     s        z%TestProbitL1Compatability.setup_classNr   r1   r1   r1   r2   rp    s   rp  c                   @   s   e Zd ZdZdd ZdS )	CompareL1z
    For checking results for l1 regularization.
    Assumes self.res1 and self.res2 are two legitimate models to be compared.
    c                 C   s   t | jj| jjt t | j | j t t | j | j t t | jj| jjt t | j | j t t | jj	| jj	t t | jj
| jj
t t | jj| jjt t | jj| jjt t | jj| jjt t| jjd dk d S )N	convergedT)r   r<   r>   rf   rg   rs   rk   rq   r   r   rw   r   r   r   r  rh   r1   r1   r2   test_basic_results  s"    zCompareL1.test_basic_resultsN)ra   rb   rc   r   rs  r1   r1   r1   r2   rq    s   rq  c                   @   s   e Zd ZdZdd ZdS )CompareL11Dz?
    Check t and f tests.  This only works for 1-d results
    c                 C   sZ   t t| jj }t| j|j| j	|jt
 t| j|j| j	|jt
 d S r&   )r+   rJ  r   r<   r>   Zravelr   rI  rU  rf   rg   rT  )rH   Zrestrictmatr1   r1   r2   
test_tests  s      zCompareL11D.test_testsN)ra   rb   rc   r   ru  r1   r1   r1   r2   rt    s   rt  c                   @   s    e Zd Zedd Zdd ZdS )TestL1AlphaZeroLogitc              	   C   sZ   t  }tj|jdd|_t|j|jjdddddddd	| _t|j|jjddd
| _	d S NTr   r  r   rk  r   r  r5  r[   r  r   r!  r   r  r   rl  )
r5   r'   r   r.   r   r-   r_   r<   r   rf   r;  r1   r1   r2   r     s         z TestL1AlphaZeroLogit.setup_classc              	   C   s2   | j jjdddddddd}t|jd d	k d S )
Nr  r   rk  r   r  r5  rx  rr  F)r<   r=   r_   r   r  )rH   rI   r1   r1   r2   test_converged  s         z#TestL1AlphaZeroLogit.test_convergedN)ra   rb   rc   r   r   ry  r1   r1   r1   r2   rv    s   
rv  c                   @   s   e Zd Zedd ZdS )TestL1AlphaZeroProbitc              	   C   sZ   t  }tj|jdd|_t|j|jjdddddddd	| _t|j|jjddd
| _	d S rw  )
r5   r'   r   r.   r   r-   r_   r<   r   rf   r;  r1   r1   r2   r     s         z!TestL1AlphaZeroProbit.setup_classNr   r1   r1   r1   r2   rz    s   rz  c                   @   s   e Zd Zedd ZdS )TestL1AlphaZeroMNLogitc              	   C   s^   t  }tj|jdd|_t|j|jjdddddddd	| _t|j|jjddd
dd| _	d S )NFr   r  r   rk  r   r  r5  rx  r   ro  )
r3   r'   r   r.   r   r-   r_   r<   r   rf   r;  r1   r1   r2   r     s         z"TestL1AlphaZeroMNLogit.setup_classNr   r1   r1   r1   r2   r{    s   r{  c                   @   sH   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dS )TestLogitNewtonc                 C   sB   t  }tj|jdd|_t|j|jjddd| _tj	}|| _
d S r   )r5   r'   r   r.   r   r-   r   r<   r   r.  rf   r   r1   r1   r2   r     s
    zTestLogitNewton.setup_classc                 C   s   t | jj| jjd d S Nr
  r   r<   Zresid_pearsonrf   rh   r1   r1   r2   test_resid_pearson  s     z"TestLogitNewton.test_resid_pearsonc                 C   s<   | j jdddd}t|j| jjt t|j| jjt d S )N       @r-  r   r%   atexog	r<   r   r   r   rf   Zmargeff_nodummy_atexog1rg   r   Zmargeff_nodummy_atexog1_ser   r1   r1   r2   test_nodummy_exog1  s      z"TestLogitNewton.test_nodummy_exog1c                 C   s>   | j jddddd}t|j| jjt t|j| jjt d S )N      5@r   r   r%   rR   r  r   	r<   r   r   r   rf   Zmargeff_nodummy_atexog2rg   r   Zmargeff_nodummy_atexog2_ser   r1   r1   r2   test_nodummy_exog2  s      z"TestLogitNewton.test_nodummy_exog2c                 C   s>   | j jddddd}t|j| jjt t|j| jjt d S )Nr  r-  r  Tr  r   	r<   r   r   r   rf   Zmargeff_dummy_atexog1rg   r   Zmargeff_dummy_atexog1_ser   r1   r1   r2   test_dummy_exog1  s      z TestLogitNewton.test_dummy_exog1c                 C   s@   | j jdddddd}t|j| jjt t|j| jjt d S )Nr  r   r  rR   Tr  r   r   	r<   r   r   r   rf   Zmargeff_dummy_atexog2rg   r   Zmargeff_dummy_atexog2_ser   r1   r1   r2   test_dummy_exog2
  s      z TestLogitNewton.test_dummy_exog2c                 C   s   d}d}d}d}dd l m  m} | j }| jjj}t|d| f}t|d| f}	dddddg}
t	|
d d	 }|j
||	||d d
}t|j|dd t|j| t|j|dd t|jj|df t|jd|
 d S )Nr
  g'8?g!u?r$   r   r   rY  r   r'  )Zsort_varZbinsdfgdy=r:   giUMu?rG  r%   )Z statsmodels.stats.diagnostic_genr   Zdiagnostic_genr<   rQ   r=   r-   r+   rD   ZcumsumZtest_chisquare_binningr   	statisticr   r  rU  Zfreqsr   r?   )rH   Zn_groupschi2rU  r  ZdiaZfittedencountsexpectedZgroup_sizesindicesrI   r1   r1   r2   test_diagnostic  s(    


 zTestLogitNewton.test_diagnosticN)ra   rb   rc   r   r   r  r  r  r  r  r  r1   r1   r1   r2   r|    s   
r|  c                   @   s@   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dS )TestLogitNewtonPrependc                 C   s^   t  }tj|jdd|_t|j|jjddd| _tj	}|| _
ttt| jjd| _d S )NTr   r   r   r   r   )r5   r'   r   r.   r   r-   r   r<   r   r.  rf   r+   Zrollaranger   r>   slicer   r1   r1   r2   r   0  s    z"TestLogitNewtonPrepend.setup_classc                 C   s   t | jj| jjd d S r}  r~  rh   r1   r1   r2   r  9  s     z)TestLogitNewtonPrepend.test_resid_pearsonc                 C   s<   | j jdddd}t|j| jjt t|j| jjt d S )Nr  r-  r   r$   r  r  r   r1   r1   r2   r  =  s      z)TestLogitNewtonPrepend.test_nodummy_exog1c                 C   s>   | j jddddd}t|j| jjt t|j| jjt d S )Nr  r   r%   r$   rR   r  r  r   r1   r1   r2   r  D  s      z)TestLogitNewtonPrepend.test_nodummy_exog2c                 C   s>   | j jddddd}t|j| jjt t|j| jjt d S )Nr  r-  r  Tr  r  r   r1   r1   r2   r  K  s      z'TestLogitNewtonPrepend.test_dummy_exog1c                 C   s@   | j jdddddd}t|j| jjt t|j| jjt d S )Nr  r   r  rR   Tr  r  r   r1   r1   r2   r  R  s      z'TestLogitNewtonPrepend.test_dummy_exog2N)
ra   rb   rc   r   r   r  r  r  r  r  r1   r1   r1   r2   r  ,  s   
r  c                   @   s   e Zd Zedd ZdS )TestLogitBFGSc                 C   sB   t  }tj|jdd|_tj}|| _t|j|jj	ddd| _
d S r   )r5   r'   r   r.   r   r.  rf   r   r-   r   r<   r   r1   r1   r2   r   ]  s
    zTestLogitBFGS.setup_classNr   r1   r1   r1   r2   r  [  s   r  c                       sX   e Zd Zedd Zdd Zdd Zdd Zd	d
 Ze	j
jddd fddZ  ZS )TestPoissonNewtonc                 C   s>   t  }tj|jdd}t|j|jddd| _tj	}|| _
d S r   )r8   r'   r   r.   r   r-   r   r<   r   poissonrf   r   r0   r.   rf   r1   r1   r2   r   h  s
    zTestPoissonNewton.setup_classc                 C   s2   | j  }t|j| jjt t|j| jjt d S r&   )	r<   r   r   r   rf   Zmargeff_nodummy_overallrg   r   Zmargeff_nodummy_overall_ser   r1   r1   r2   test_margeff_overallp  s    
  z&TestPoissonNewton.test_margeff_overallc                 C   s6   | j jdd}t|j| jjt t|j| jjt d S r   )	r<   r   r   r   rf   Zmargeff_dummy_overallrg   r   Zmargeff_dummy_overall_ser   r1   r1   r2   test_margeff_dummy_overallw  s      z,TestPoissonNewton.test_margeff_dummy_overallc                 C   s   t | jj| jjd d S )Nr%   )r   r<   residrf   rh   r1   r1   r2   
test_resid~  s    zTestPoissonNewton.test_residc                 C   sT   t jt jt}t j|dd}tj|dd}| j	 d d }t
||d d S )Nresultszpredict_prob_poisson.csv,)	delimiterr     )ospathdirnameabspath__file__joinr+   Zloadtxtr<   Zpredict_probr   )rH   cur_dirr  Z	probs_resprobsr1   r1   r2   test_predict_prob  s
    z#TestPoissonNewton.test_predict_prob+res2.cov_params is a zero-dim array of NoneTr   r   c                    s   t t|   d S r&   )superr  rv   rh   	__class__r1   r2   rv     s    z!TestPoissonNewton.test_cov_params)ra   rb   rc   r   r   r  r  r  r  r\   r   r   rv   __classcell__r1   r1   r  r2   r  f  s   
	r  c                   @   s&   e Zd Zejjddeddd ZdS )CheckNegBinMixinz.pvalues do not match, in some cases wrong sizeTr   c                 C   s   t | jj| jjt d S r&   rp   rh   r1   r1   r2   rr     s    zCheckNegBinMixin.test_pvaluesN)ra   rb   rc   r\   r   r   r   rr   r1   r1   r1   r2   r    s
    r  c                   @   sX   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd ZdS )TestNegativeBinomialNB2Newtonc                 C   s@   t  }tj|jdd}t|j|djddd| _tj	}|| _
d S )NFr   nb2r   r   r   r8   r'   r   r.   r   r-   r   r<   r   negativebinomial_nb2_bfgsrf   r  r1   r1   r2   r     s
    z)TestNegativeBinomialNB2Newton.setup_classc                 C   s   t | jj| jjt d S r&   r   r<   r   rf   r|   rh   r1   r1   r2   r     s    z&TestNegativeBinomialNB2Newton.test_bsec                 C   s   t | jj| jjt d S r&   re   rh   r1   r1   r2   ri     s    z)TestNegativeBinomialNB2Newton.test_paramsc                 C   s4   | j j t| j j| jjt t| j j| jjt d S r&   r<   r   r   lnalpharf   rg   lnalpha_std_errrh   r1   r1   r2   
test_alpha  s     z(TestNegativeBinomialNB2Newton.test_alphac                 C   s   t | j | jjt d S r&   r   r<   rk   rf   r|   rh   r1   r1   r2   rl     s    z+TestNegativeBinomialNB2Newton.test_conf_intc                 C   s    t | jjd d | jjt d S Nr'  r   r<   rq   rf   	DECIMAL_2rh   r1   r1   r2   ro     s    z(TestNegativeBinomialNB2Newton.test_zstatc                 C   s(   t | jjd d | jjd d t d S Nr!   r   r<   fittedvaluesrf   r|   rh   r1   r1   r2   test_fittedvalues  s     z/TestNegativeBinomialNB2Newton.test_fittedvaluesc                 C   s0   t | j d d t| jjd d t d S r  r   r<   rQ   r+   exprf   r  r|   rh   r1   r1   r2   r     s     z*TestNegativeBinomialNB2Newton.test_predictc                 C   s.   t | jjddd d | jjd d t d S Nr   rN   r!   r   r<   rQ   rf   r  r|   rh   r1   r1   r2   r     s     z-TestNegativeBinomialNB2Newton.test_predict_xbNra   rb   rc   r   r   r   ri   r  rl   ro   r  r   r   r1   r1   r1   r2   r    s   
r  c                   @   sl   e Zd Zedd Zdd Zdd Zdd Zd	d
 Ze	j
jddeddd Ze	j
jddeddd ZdS )TestNegativeBinomialNB1Newtonc                 C   sF   t  }tj|jdd}t|j|d}|jdddd| _tj	}|| _
d S )NFr   nb1r   r  r   r[   r   r   r8   r'   r   r.   r   r-   r   r<   r   negativebinomial_nb1_bfgsrf   )r   r0   r.   r=   rf   r1   r1   r2   r     s    z)TestNegativeBinomialNB1Newton.setup_classc                 C   s   t | jj| jjt d S r&   r   r<   rm   rf   rn   rD  rh   r1   r1   r2   ro     s    z(TestNegativeBinomialNB1Newton.test_zstatc                 C   s4   | j j t| j j| jjd t| j j| jjt d S Nr$   r<   r   r   r  rf   r  rg   rh   r1   r1   r2   test_lnalpha  s     z*TestNegativeBinomialNB1Newton.test_lnalphac                 C   s   t | jj| jjt d S r&   re   rh   r1   r1   r2   ri     s    z)TestNegativeBinomialNB1Newton.test_paramsc                 C   s   t | j | jjt d S r&   r   r<   rk   rf   r  rh   r1   r1   r2   rl     s    z+TestNegativeBinomialNB1Newton.test_conf_intr   Tr   c                 C   s   t d S r&   r   rh   r1   r1   r2   r     s    z*TestNegativeBinomialNB1Newton.test_predictc                 C   s   t d S r&   r   rh   r1   r1   r2   r     s    z-TestNegativeBinomialNB1Newton.test_predict_xbNra   rb   rc   r   r   ro   r  ri   rl   r\   r   r   r   r   r   r1   r1   r1   r2   r    s    
 
 r  c                   @   sX   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd ZdS )TestNegativeBinomialNB2BFGSc                 C   sB   t  }tj|jdd}t|j|djdddd| _tj	}|| _
d S )NFr   r  r   r   r   r   r  r  r1   r1   r2   r     s     z'TestNegativeBinomialNB2BFGS.setup_classc                 C   s   t | jj| jjt d S r&   r  rh   r1   r1   r2   r     s    z$TestNegativeBinomialNB2BFGS.test_bsec                 C   s   t | jj| jjt d S r&   re   rh   r1   r1   r2   ri      s    z'TestNegativeBinomialNB2BFGS.test_paramsc                 C   s4   | j j t| j j| jjt t| j j| jjt d S r&   r  rh   r1   r1   r2   r    s     z&TestNegativeBinomialNB2BFGS.test_alphac                 C   s   t | j | jjt d S r&   r  rh   r1   r1   r2   rl   
  s    z)TestNegativeBinomialNB2BFGS.test_conf_intc                 C   s    t | jjd d | jjt d S r  r  rh   r1   r1   r2   ro     s    z&TestNegativeBinomialNB2BFGS.test_zstatc                 C   s(   t | jjd d | jjd d t d S r  r  rh   r1   r1   r2   r    s     z-TestNegativeBinomialNB2BFGS.test_fittedvaluesc                 C   s0   t | j d d t| jjd d t d S r  r  rh   r1   r1   r2   r     s     z(TestNegativeBinomialNB2BFGS.test_predictc                 C   s.   t | jjddd d | jjd d t d S r  r  rh   r1   r1   r2   r     s     z+TestNegativeBinomialNB2BFGS.test_predict_xbNr  r1   r1   r1   r2   r    s   

r  c                   @   sl   e Zd Zedd Zdd Zdd Zdd Zd	d
 Ze	j
jddeddd Ze	j
jddeddd ZdS )TestNegativeBinomialNB1BFGSc                 C   sB   t  }tj|jdd}t|j|djdddd| _tj	}|| _
d S )NFr   r  r   r  r   r  r  r  r1   r1   r2   r   !  s    z'TestNegativeBinomialNB1BFGS.setup_classc                 C   s   t | jj| jjt d S r&   r  rh   r1   r1   r2   ro   +  s    z&TestNegativeBinomialNB1BFGS.test_zstatc                 C   s4   | j j t| j j| jjd t| j j| jjt d S r  r  rh   r1   r1   r2   r  .  s     z(TestNegativeBinomialNB1BFGS.test_lnalphac                 C   s   t | jj| jjt d S r&   re   rh   r1   r1   r2   ri   4  s    z'TestNegativeBinomialNB1BFGS.test_paramsc                 C   s   t | j | jjt d S r&   r  rh   r1   r1   r2   rl   7  s    z)TestNegativeBinomialNB1BFGS.test_conf_intr   Tr   c                 C   s   t d S r&   r   rh   r1   r1   r2   r   =  s    z(TestNegativeBinomialNB1BFGS.test_predictc                 C   s   t d S r&   r   rh   r1   r1   r2   r   B  s    z+TestNegativeBinomialNB1BFGS.test_predict_xbNr  r1   r1   r1   r2   r    s    
	 
 r  c                   @   sp   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )!TestNegativeBinomialGeometricBFGSc                 C   sD   t  }tj|jdd}t|j|d}|jddd| _tj	}|| _
d S )NFr   rf  r   r   r   )r8   r'   r   r.   r   r-   r   r<   r   Znegativebinomial_geometric_bfgsrf   r   r0   r.   modrf   r1   r1   r2   r   N  s    z-TestNegativeBinomialGeometricBFGS.setup_classc                 C   s   t | jj| jjt d S r&   r   rh   r1   r1   r2   r   Y  s    z*TestNegativeBinomialGeometricBFGS.test_aicc                 C   s   t | jj| jjt d S r&   r   rh   r1   r1   r2   r   \  s    z*TestNegativeBinomialGeometricBFGS.test_bicc                 C   s   t | j | jjt d S r&   r  rh   r1   r1   r2   rl   _  s    z/TestNegativeBinomialGeometricBFGS.test_conf_intc                 C   s(   t | jjd d | jjd d t d S r  r  rh   r1   r1   r2   r  c  s     z3TestNegativeBinomialGeometricBFGS.test_fittedvaluesc                 C   s0   t | j d d t| jjd d t d S r  r  rh   r1   r1   r2   r   g  s     z.TestNegativeBinomialGeometricBFGS.test_predictc                 C   s   t | jj| jjt d S r&   )r   r<   r>   rf   r|   rh   r1   r1   r2   ri   k  s    z-TestNegativeBinomialGeometricBFGS.test_paramsc                 C   s.   t | jjddd d | jjd d t d S r  r  rh   r1   r1   r2   r   n  s     z1TestNegativeBinomialGeometricBFGS.test_predict_xbc                 C   s   t | jj| jjt d S r&   r  rh   r1   r1   r2   ro   r  s    z,TestNegativeBinomialGeometricBFGS.test_zstatc                 C   s   t | jj| jjt d S r&   )r   r<   rw   rf   rD  rh   r1   r1   r2   rx   u  s    z*TestNegativeBinomialGeometricBFGS.test_llfc                 C   s   t | jj| jjt d S r&   )r   r<   r{   rf   r  rh   r1   r1   r2   r}   x  s    z*TestNegativeBinomialGeometricBFGS.test_llrc                 C   s   t | jj| jjt d S r&   r  rh   r1   r1   r2   r   {  s    z*TestNegativeBinomialGeometricBFGS.test_bseN)ra   rb   rc   r   r   r   r   rl   r  r   ri   r   ro   rx   r}   r   r1   r1   r1   r2   r  H  s   

r  c                       s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
ejjddd fddZejjdded fddZ  ZS )CheckMNLogitBaseZeroc                 C   sz   | j  }t|j| jjd t|j| jjd | }|d j	j
|jjdd}t||jdd t|jt|jdf d S )Nr   r   F)orderr   r:   )r<   r   r   r   rf   Zmargeff_dydx_overallr   Zmargeff_dydx_overall_ser   r   r\  r   r   r   r+   r   r   r1   r1   r2   r    s    
z)CheckMNLogitBaseZero.test_margeff_overallc                 C   s6   | j jdd}t|j| jjd t|j| jjd d S )NrR   r   rY  )r<   r   r   r   rf   Zmargeff_dydx_meanr   Zmargeff_dydx_mean_ser   r1   r1   r2   test_margeff_mean  s    z&CheckMNLogitBaseZero.test_margeff_meanc                 C   s   | j }|j d }t|j|f}tj|dd}t|j|jddd}|j	dd}t
|j| jjd	 t
|j| jjd	 |j	dd
d}t
|j| jjd t
|j| jjd	 d S )NvoteFr   r   r   r   Tr   r   r   )r   r[   r
  )r0   r+   rD   r.   r'   r   r   r-   r   r   r   r   rf   Zmargeff_dydx_dummy_overallr   Zmargeff_dydx_dummy_overall_seZmargeff_eydx_dummy_overallZmargeff_eydx_dummy_overall_se)rH   r0   r  r.   rI   r   r1   r1   r2   test_margeff_dummy  s*    
  z'CheckMNLogitBaseZero.test_margeff_dummyc                 C   s   t | jjj| jj d S r&   )r   r<   r=   r(  rf   rh   r1   r1   r2   test_j  s    zCheckMNLogitBaseZero.test_jc                 C   s   t | jjj| jj d S r&   )r   r<   r=   r)  rf   rh   r1   r1   r2   test_k  s    zCheckMNLogitBaseZero.test_kc                 C   s(   t | jd d d ddddddg d S )Nr   zy=1zy=2zy=3zy=4zy=5zy=6)r   r<   Z_get_endog_namerh   r1   r1   r2   test_endog_names  s    z%CheckMNLogitBaseZero.test_endog_namesc                C   s   ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddg}t | j d| t | j dt| dddd	d	d
dgdddd	d	dd
gdddd	d	ddgd
ddd	d	ddgdddd	d	ddgdddd	d	ddgdddd	d	ddgg}t | j | d S )Nr   r   r   r
  r%   g     _@g     D@r  r,  g      (@g      3@g     @S@g     @R@r3  g      .@g     B@g     E@g      @g      "@r-  g      @r&        4@g      6@      9@g      ?@g     Q@g      2@g     a@)r   r<   rQ   Zargmaxr   r?   r+   bincount)rH   predr1   r1   r2   r     sP   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               -z$CheckMNLogitBaseZero.test_pred_tablec                 C   s   t | jj| jj d S r&   )r   r<   Zresid_misclassifiedrf   r  rh   r1   r1   r2   r    s    zCheckMNLogitBaseZero.test_residr  Tr  c                    s   t t|   d S r&   )r  r  rv   rh   r  r1   r2   rv     s    z$CheckMNLogitBaseZero.test_cov_paramsr   r   c                    s   t    d S r&   )r  r   rh   r  r1   r2   r     s    zCheckMNLogitBaseZero.test_distr)ra   rb   rc   r  r  r  r  r  r  r   r  r\   r   r   rv   r   r   r  r1   r1   r  r2   r    s"   	? r  c                   @   s   e Zd Zedd ZdS )TestMNLogitNewtonBaseZeroc                 C   sH   t   | _}|j}tj|dd}t|j|jddd| _t	j
}|| _d S r   )r3   r0   r.   r'   r   r   r-   r   r<   r   mnlogit_basezerorf   r  r1   r1   r2   r     s    z%TestMNLogitNewtonBaseZero.setup_classNr   r1   r1   r1   r2   r    s   r  c                   @   s   e Zd Zedd ZdS )TestMNLogitLBFGSBaseZeroc              	   C   sX   t   | _}|j}tj|dd}t|j|}|jdddddd|jd	| _	t
j}|| _d S )
NFr   Zlbfgsr   iP  (   r9   g      @)r[   r   r   rS   ZpgtolZfactrloglike_and_score)r3   r0   r.   r'   r   r   r-   r   r  r<   r   r  rf   )r   r0   r.   Zmymodelrf   r1   r1   r2   r     s    
  z$TestMNLogitLBFGSBaseZero.setup_classNr   r1   r1   r1   r2   r    s   r  c                  C   sV   dd } t jddd}t jddd}t|t|}|jdd |jd| d	 d S )
Nc                  W   s   dS )Nr   r1   )argsr1   r1   r2   callb  s    z(test_mnlogit_basinhopping.<locals>.callbr   r  r   r$   r	  rZ   )r[   callback)r+   r  randintr   r'   r   r   )r  xyr=   r1   r1   r2   test_mnlogit_basinhopping  s    r  c               	   C   s  t jt jt} t j| ddddd}t j|}tjt j|dddd}|d d d	f }|d d d d	f }||d
k }||d
k }tj	|dd}t
||}d|_tt|jdd d|_tt |jddd}W 5 Q R X t|jd   |jdddd d S )Nz..Zgenmodtestsr  ziris.csvr  r   )r  Zskip_headerr'  r%   Tr   r   )r   F2   )r   r   rr  r   r   )r  r  r  r  r  r  r+   Z
genfromtxtr'   r   r   Zraise_on_perfect_predictionr	   r   r   r\   r   r   r   r  )r  Ziris_dirZirisr  Xr  rI   r1   r1   r2   test_perfect_prediction   s&    
r  c                  C   s   t  } tj| jdd}t| j|jddd}| }||}t|| |j|ddd}t|| |j|ddd}td| | |j|t	
ddd}td| | d S )	NTr   r   r   r   r   )offsetexposurer%   )r8   r'   r   r.   r   r-   r   rQ   r   r+   log)r0   r.   rI   Zpred1pred2Zpred3r1   r1   r2   test_poisson_predict9  s    


r  c               	   C   s   d} t jd t j| d}tj|dd}t jt |d}t	||}t
t |jt d dd	d
}W 5 Q R X t|jd   d S )Ni'  i) r$   Tr   r   r#   r   r   r  r[   r   rr  )r+   r  r  randnr'   r   r  r  r?   r   r\   r   r   r   r   r   r  )nobsr  Zy_countr  rI   r1   r1   r2   test_poisson_newtonJ  s    "r  c               	   C   s   t  } | j}|d d d df }tj|dd}t| j|jddd}d| 	 
ddd  }tjtjt}tj|d	d
}t|ddd}| }W 5 Q R X tj||d d  |  d S )Nr'  Tr   r   r   r   
r"   r  zmn_logit_summary.txtrzutf-8)encoding)r3   r.   r'   r   r   r-   r   r  r   as_textsplitr  r  r  r  r  openreadr+   testingr   Zsummary2)r0   r.   r<   Zsmryr  Ztest_case_filefdZ	test_caser1   r1   r2   test_issue_339Y  s     r  c                  C   s   t  } | j}|d d d df }tj|dd}t| j|jddd}|d }tj	|
|jd tj	|
|d  jd d S )Nr'  Tr   r   r   r   )r   rY  )r3   r.   r'   r   r   r-   r   r+   r  r   rQ   r   )r0   r.   r<   r  r1   r1   r2   test_issue_341l  s    r  c                	   C   s   t jtdd tj  W 5 Q R X t jtdd  tjjtjjjddd W 5 Q R X t	  t
d tjjdd W 5 Q R X t t" tjjtjjjdddd W 5 Q R X d S )Nz4Negative binomial dispersion parameter alpha not setrX   r-  )r  )linkerror)r  r  )r\   r   UserWarningr'   Zfamiliesr   linksr   warningscatch_warningssimplefilterFutureWarningr1   r1   r1   r2   *test_negative_binomial_default_alpha_paramx  s    $

r  c                  C   s   t jd} t jjdddd| d d df< t jjdddd| d d df< t jjdddd| d d d	f< t jjd
ddd| d d df< t| }t|ddg d S )Nr  r!   r   r!   r  r   r%   r   r   r#   )r+   r  r  r   r   r  Z	count_indr1   r1   r2   test_iscount  s    r  c                  C   s   t jd} t jjdddd| d d df< t jjdddd| d d df< t jjdddd| d d d	f< t jjd
ddd| d d df< t| }t|d	dg d S )Nr  r   r!   r  r  r%   r   r   r#   r  )r+   r  r  r   r   r  r1   r1   r2   test_isdummy  s    r  c                  C   sN   ddddddg} t jdd}ttt| | ddddddg} ttt| | d S )Nr   r%   r   r   r9  )r+   r  r  r	   r^   r   r   )r  r  r1   r1   r2   test_non_binary  s
    r   c                  C   s  t jj } | jtttdd| d< t j	| j
dd}t | j|}|jdd}|j}| }||jd dd d f }| d }d |_t ||}td	d
| j
j | j}|jdd}|j}	| }t|	|dd || j
jd dd d f }
t|
|dd d S )NrY  ABCDEFGr-   Tr   r   r   r
  zPID ~ z + r9   r:   )r'   r(   r)   load_pandasr-   replacedictzipr=  r   r.   r   r   r>   r   rQ   ilocnamesmfr*  r  columnsr0   r   )dtar.   r  rI   r>   r   Z	predictedZendognrf   Zparams_fZpredicted_fr1   r1   r2   test_mnlogit_factor  s$    r,  c                  C   s   t jj } | jtttdd| d< t j	| j
dd}t | j|}|jdd}| d d| d< t | j|}|jdd}t|j|j d S )	NrY  r!  r-   Tr   r   r"  category)r'   r(   r)   r#  r-   r$  r%  r&  r=  r   r.   r   r   astyper   r>   )r+  r.   r  rI   Zres_catr1   r1   r2   test_mnlogit_factor_categorical  s    r/  c                  C   s   ddddgdddt jgdgd t jjddddddgd	} t| }tjd
||d d}tt	|j
t jkdd tt jjdd}d|jd< tttj|j|ddg |d d S )Nr   r%   r!      r$   r#   r        ?FooBarconstantr  r  	Foo ~ Barr  r0   r  zExposure is not ndarray)msgr
  )r$   r4  r5  r4  )r  )r+   rM  r  uniformpd	DataFramer)  r  r   typer  ZndarrayZSerieslocr	   r^   r'   r   r3  )dr  mod1r  r1   r1   r2   test_formula_missing_exposure  s     


r@  c            
      C   s   dd l } ddddgddddgdgd tdgd ddddgd	}| |}tjd
||d d}tddg}|j|dd}|ddg j}t	||d }t
|| |j|tdgd dd}|d }	t
||	 d S )Nr   r   r%   r!   r0  r$   r#   r1  r2  r6  r  r7  r8  r   rN   r5  r4  )r  rO   )pandasr+   r  r;  r   Zfrom_formular"  rQ   r   rG   r   )
r:  r>  r  r?  r>   r  r  r  r   Z	expected2r1   r1   r2   test_predict_with_exposure  s$     


rB  c                  C   s   d} t | }d|ddg< t|t | jdd}t ddgddgg}t| | t|t | jdd}t ddgddgg}t| | d S )	Nr!   r   r$   r   r"  g       @r,  r  )	r+   zerosr   r   r   r"  r   r   r   )r  r  rI   r  r1   r1   r2   test_binary_pred_table_zeros  s    
rD  c                   @   sx   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )TestGeneralizedPoisson_p2c                 C   sJ   t  }tj|jdd|_t|j|jdd}|jddd| _tj	}|| _
d S NFr   r%   pr   r   r   r8   r'   r   r.   r   r-   r   r<   r   Zgeneralizedpoisson_gp2rf   )r   r0   r  rf   r1   r1   r2   r   
  s    z%TestGeneralizedPoisson_p2.setup_classc                 C   s   t | jj| jjdd d S Nr   rG  r   r<   r   rf   rh   r1   r1   r2   r     s    z"TestGeneralizedPoisson_p2.test_bsec                 C   s   t | jj| jjdd d S rJ  r   r<   r>   rf   rh   r1   r1   r2   ri     s    z%TestGeneralizedPoisson_p2.test_paramsc                 C   s,   t | jj| jj t | jj| jjdd d S rJ  r   r<   r  rf   r  rh   r1   r1   r2   r    s
     z$TestGeneralizedPoisson_p2.test_alphac                 C   s   t | j | jjdd d S NrS  rG  rj   rh   r1   r1   r2   rl     s    z'TestGeneralizedPoisson_p2.test_conf_intc                 C   s   t | jj| jj d S r&   r   r<   r   rf   rh   r1   r1   r2   r   "  s    z"TestGeneralizedPoisson_p2.test_aicc                 C   s   t | jj| jj d S r&   r   r<   r   rf   rh   r1   r1   r2   r   %  s    z"TestGeneralizedPoisson_p2.test_bicc                 C   s   t | jj| jj d S r&   r   r<   r   rf   rh   r1   r1   r2   rE  (  s    z!TestGeneralizedPoisson_p2.test_dfc                 C   s   t | jj| jj d S r&   r   r<   rw   rf   rh   r1   r1   r2   rx   +  s    z"TestGeneralizedPoisson_p2.test_llfc                 C   sN   | j jtt| j jd d dd}t|j| jj	 t|j
| jjdd d S )NT)Zscalarrk  rG  )r<   Z	wald_testr+   rJ  r   r>   r   r  rf   Zwald_statisticrU  Zwald_pvalue)rH   resultr1   r1   r2   	test_wald.  s
    z#TestGeneralizedPoisson_p2.test_waldc                 C   s0   t | jjj}| j|}t| jj|j d S r&   	r+   identityr<   r>   r   rI  r   rm   rN  rH   Zunit_matrixrI  r1   r1   r2   test_t4  s    z TestGeneralizedPoisson_p2.test_tc                 C   s   t |  d S r&   r   rh   r1   r1   r2   r   9  s    z"TestGeneralizedPoisson_p2.test_jacc                 C   s   t | j d S r&   r   rh   r1   r1   r2   r   <  s    z$TestGeneralizedPoisson_p2.test_distrN)ra   rb   rc   r   r   r   ri   r  rl   r   r   rE  rx   rU  rY  r   r   r1   r1   r1   r2   rE    s   
rE  c                   @   sX   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd ZdS )"TestGeneralizedPoisson_transparamsc                 C   sF   t  }tj|jdd|_t|j|jddjddd| _tj	}|| _
d S rF  rI  r   r1   r1   r2   r   C  s     z.TestGeneralizedPoisson_transparams.setup_classc                 C   s   t | jj| jjdd d S rJ  rK  rh   r1   r1   r2   r   L  s    z+TestGeneralizedPoisson_transparams.test_bsec                 C   s   t | jj| jjdd d S rJ  rL  rh   r1   r1   r2   ri   O  s    z.TestGeneralizedPoisson_transparams.test_paramsc                 C   s,   t | jj| jj t | jj| jjdd d S rJ  rM  rh   r1   r1   r2   r  R  s
     z-TestGeneralizedPoisson_transparams.test_alphac                 C   s   t | j | jjdd d S rN  rj   rh   r1   r1   r2   rl   W  s    z0TestGeneralizedPoisson_transparams.test_conf_intc                 C   s   t | jj| jj d S r&   rO  rh   r1   r1   r2   r   [  s    z+TestGeneralizedPoisson_transparams.test_aicc                 C   s   t | jj| jj d S r&   rP  rh   r1   r1   r2   r   ^  s    z+TestGeneralizedPoisson_transparams.test_bicc                 C   s   t | jj| jj d S r&   rQ  rh   r1   r1   r2   rE  a  s    z*TestGeneralizedPoisson_transparams.test_dfc                 C   s   t | jj| jj d S r&   rR  rh   r1   r1   r2   rx   d  s    z+TestGeneralizedPoisson_transparams.test_llfN)ra   rb   rc   r   r   r   ri   r  rl   r   r   rE  rx   r1   r1   r1   r2   rZ  @  s   
rZ  c                   @   sP   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd ZdS )TestGeneralizedPoisson_p1c                 C   sD   t  | _tj| jjdd| j_t| jj| jjddjddd| _d S )NFr   r   rG  r   r   r   )	r8   r0   r'   r   r.   r   r-   r   r<   r2  r1   r1   r2   r   k  s       z%TestGeneralizedPoisson_p1.setup_classc                 C   sh   t | jj| jj| jjd d }t j| jj| jjddt	| jjd d dg }t
|| d S )Nr'  r   rG  r   )r'   r   r0   r-   r.   Zlogliker<   r>   r   listr   )rH   Zpoisson_llfZgenpoisson_llfr1   r1   r2   rx   r  s       z"TestGeneralizedPoisson_p1.test_llfc                 C   st   t | jj| jj| jjd d }t j| jj| jjddt	| jjd d dg }t
|d d |dd d S )Nr'  r   rG  r   g&.>rG  )r'   r   r0   r-   r.   r@   r<   r>   r   r\  r   rH   Zpoisson_scoreZgenpoisson_scorer1   r1   r2   
test_score{  s       z$TestGeneralizedPoisson_p1.test_scorec                 C   s|   t | jj| jj| jjd d }t j| jj| jjddt	| jjd d dg }t
|d dd df |dd d S )Nr'  r   rG  r   r9   rG  )r'   r   r0   r-   r.   rE   r<   r>   r   r\  r   r]  r1   r1   r2   test_hessian  s       z&TestGeneralizedPoisson_p1.test_hessianc                 C   s0   t | jjj}| j|}t| jj|j d S r&   rV  rX  r1   r1   r2   rY    s    z TestGeneralizedPoisson_p1.test_tc                 C   s
  | j j}tt| j j}d|dd < |j|d dd}|j|d dd}|j|d dd}t|j| j jdd t|j| j jd	d t| j jd d d
 	 dd	d t|jd d d
 	 dd	d t|jd d d
 	 dd	d t|jd d d
 	 dd	d d S )Nr   rS  r5  )r  r   r  r   -C6
?rG  r   r%   g.?r:   gI?g'~ۅ?gM5rK7?)
r<   r=   r+   r   r   r>   r_   r   r   rR   )rH   r=   r  Zres_reg1Zres_reg2Zres_reg3r1   r1   r2   test_fit_regularized  s0        z.TestGeneralizedPoisson_p1.test_fit_regularizedc                 C   s*   | j j }td|k t|d d d S NrH  r   r<   r=   Z_get_init_kwdsr   r   rH   kwdsr1   r1   r2   test_init_kwds  s    z(TestGeneralizedPoisson_p1.test_init_kwdsc                 C   s   t | j d S r&   r   rh   r1   r1   r2   r     s    z$TestGeneralizedPoisson_p1.test_distrN)ra   rb   rc   r   r   rx   r^  r_  rY  ra  rf  r   r1   r1   r1   r2   r[  h  s   
			r[  c                   @   sH   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dS )&TestGeneralizedPoisson_underdispersionc                 C   s   dddg| _ tjd d}t|df}d|d |d df< t|| j d d }tjj	j
|| j d dt|d| _tj| j|dd	}|jd
ddddd| _d S )Nr         g     r%   r'  r  rG  r   r    r   )r[   Zxtolr   Zmaxfunr   )expected_paramsr+   r  r  r   r  rG   r'   distributionsgenpoisson_prvsr   r-   r   r   rI   )r   r  r.   mu_trueZmodel_gpr1   r1   r2   r     s     
  
 z2TestGeneralizedPoisson_underdispersion.setup_classc                 C   sp   | j }|jj}t| ddd t| ddd t|j| jddd t|j	d d	k t|j	d
 ddd d S )NgQ?rS  r:   gaTR'?gQ?r  r  r;   rr  TZfoptg6?r5  )
rI   r=   r-   r   rR   rM   r>   rl  r   r  )rH   rI   r-   r1   r1   r2   
test_basic  s    z1TestGeneralizedPoisson_underdispersion.test_basicc                 C   sx   | j }|jj|jddd}t|j|jtt|jdd t|j|jtt|jdd t|j|jdd d S )Nr   r   r  r5  rG  r9   r  )	rI   r=   r   r>   r   r@   r+   rC  r   )rH   rI   rf   r1   r1   r2   test_newton  s      z2TestGeneralizedPoisson_underdispersion.test_newtonc                 C   sP   t | j  | j ddd t | j  | jj  | j ddd d S )Nr  rq  r  )r   rI   rQ   rR   r-   Z_dispersion_factorrM   rh   r1   r1   r2   test_mean_var  s       z4TestGeneralizedPoisson_underdispersion.test_mean_varc           	      C   s   | j }|jj}t|t}|jdd}tj	j
tdd d d f | |jd dj}t||ddd |d}|d  |jd |  7  < t| | d	d
 ddlm} |||}t|d d  ddd
 d S )NprobrN   r   r'  r   r9   r  r   r   r:   r
   )g;ܛA?gP1/#?r5  )rI   r=   r-   r+   r  r.  intrQ   r'   rm  rn  pmfr  r>   rF   r   r?   r   scipyr   Z	chisquare)	rH   rI   r-   freqprZpr2r  r   r  r1   r1   r2   r    s$      
z8TestGeneralizedPoisson_underdispersion.test_predict_probc                 C   s   t | | jd d S )N)rI   )rL   rI   rh   r1   r1   r2   r     s    z/TestGeneralizedPoisson_underdispersion.test_jacc                 C   s   t | j d S r&   )rV   rI   rh   r1   r1   r2   r     s    z1TestGeneralizedPoisson_underdispersion.test_distrN)ra   rb   rc   r   r   rr  rs  rt  r  r   r   r1   r1   r1   r2   rg    s   

rg  c                   @   sX   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd ZdS )TestNegativeBinomialPNB2Newtonc                 C   sF   t  }tj|jdd}t|j|dd}|jddd| _tj	}|| _
d S rF  r8   r'   r   r.   r   r-   r   r<   r   r  rf   r  r1   r1   r2   r      s    z*TestNegativeBinomialPNB2Newton.setup_classc                 C   s   t | jj| jjddd d S NrS  rq  rK  rh   r1   r1   r2   r   
  s     z'TestNegativeBinomialPNB2Newton.test_bsec                 C   s   t | jj| jjdd d S NgHz>rG  rL  rh   r1   r1   r2   ri     s    z*TestNegativeBinomialPNB2Newton.test_paramsc                 C   s4   | j j t| j j| jj t| j j| jjdd d S r~  r<   r   r   r  rf   r  rh   r1   r1   r2   r    s    z)TestNegativeBinomialPNB2Newton.test_alphac                 C   s   t | j | jjddd d S r}  rj   rh   r1   r1   r2   rl     s     z,TestNegativeBinomialPNB2Newton.test_conf_intc                 C   s$   t | jjd d | jjddd d S Nr'  {Gzt?rq  r   r<   rq   rf   rh   r1   r1   r2   ro     s     z)TestNegativeBinomialPNB2Newton.test_zstatc                 C   s&   t | jjd d | jjd d  d S r  r   r<   r  rf   rh   r1   r1   r2   r  !  s    z0TestNegativeBinomialPNB2Newton.test_fittedvaluesc                 C   s.   t | j d d t| jjd d  d S r  r   r<   rQ   r+   r  rf   r  rh   r1   r1   r2   r   %  s    z+TestNegativeBinomialPNB2Newton.test_predictc                 C   s,   t | jjddd d | jjd d  d S r  r   r<   rQ   rf   r  rh   r1   r1   r2   r   )  s    z.TestNegativeBinomialPNB2Newton.test_predict_xbNr  r1   r1   r1   r2   r{    s   
	r{  c                   @   sH   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dS )TestNegativeBinomialPNB1Newtonc                 C   sH   t  }tj|jdd}t|j|dd}|jdddd| _tj	}|| _
d S )	NFr   r   rG  r   r  r   r  r8   r'   r   r.   r   r-   r   r<   r   r  rf   r  r1   r1   r2   r   0  s    z*TestNegativeBinomialPNB1Newton.setup_classc                 C   s   t | jj| jjddd d S Nr  rq  r   r<   rm   rf   rn   rh   r1   r1   r2   ro   9  s     z)TestNegativeBinomialPNB1Newton.test_zstatc                 C   s0   | j j t| j j| jj t| j j| jj d S r&   r  rh   r1   r1   r2   r  =  s
    z+TestNegativeBinomialPNB1Newton.test_lnalphac                 C   s   t | jj| jj d S r&   rL  rh   r1   r1   r2   ri   C  s    z*TestNegativeBinomialPNB1Newton.test_paramsc                 C   s   t | j | jjddd d S r}  rj   rh   r1   r1   r2   rl   F  s     z,TestNegativeBinomialPNB1Newton.test_conf_intc                 C   s4   t | j d d t| jjd d ddd d S Nr!   rS  rq  r  rh   r1   r1   r2   r   L  s
     z+TestNegativeBinomialPNB1Newton.test_predictc                 C   s2   t | jjddd d | jjd d ddd d S Nr   rN   r!   rS  rq  r  rh   r1   r1   r2   r   Q  s
     z.TestNegativeBinomialPNB1Newton.test_predict_xbN)ra   rb   rc   r   r   ro   r  ri   rl   r   r   r1   r1   r1   r2   r  .  s   
r  c                   @   sX   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd ZdS )TestNegativeBinomialPNB2BFGSc                 C   sD   t  }tj|jdd}t|j|ddjdddd| _tj	}|| _
d S )	NFr   r%   rG  r   r   r   r   r|  r  r1   r1   r2   r   Y  s     z(TestNegativeBinomialPNB2BFGS.setup_classc                 C   s   t | jj| jjddd d S r}  rK  rh   r1   r1   r2   r   d  s     z%TestNegativeBinomialPNB2BFGS.test_bsec                 C   s   t | jj| jjddd d S r}  rL  rh   r1   r1   r2   ri   h  s     z(TestNegativeBinomialPNB2BFGS.test_paramsc                 C   s<   | j j t| j j| jjddd t| j j| jjddd d S )Nr   rq  r  rh   r1   r1   r2   r  l  s      z'TestNegativeBinomialPNB2BFGS.test_alphac                 C   s   t | j | jjddd d S r}  rj   rh   r1   r1   r2   rl   t  s     z*TestNegativeBinomialPNB2BFGS.test_conf_intc                 C   s$   t | jjd d | jjddd d S r  r  rh   r1   r1   r2   ro   x  s     z'TestNegativeBinomialPNB2BFGS.test_zstatc                 C   s,   t | jjd d | jjd d ddd d S )Nr!   r  rq  r  rh   r1   r1   r2   r  |  s
     z.TestNegativeBinomialPNB2BFGS.test_fittedvaluesc                 C   s4   t | j d d t| jjd d ddd d S r  r  rh   r1   r1   r2   r     s
     z)TestNegativeBinomialPNB2BFGS.test_predictc                 C   s2   t | jjddd d | jjd d ddd d S r  r  rh   r1   r1   r2   r     s
     z,TestNegativeBinomialPNB2BFGS.test_predict_xbNr  r1   r1   r1   r2   r  W  s   

r  c                   @   sx   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )TestNegativeBinomialPNB1BFGSc                 C   sD   t  }tj|jdd}t|j|ddjdddd| _tj	}|| _
d S )	NFr   r   rG  r   r  r   r  r  r  r1   r1   r2   r     s    z(TestNegativeBinomialPNB1BFGS.setup_classc                 C   s   t | jj| jjddd d S r  rK  rh   r1   r1   r2   r     s     z%TestNegativeBinomialPNB1BFGS.test_bsec                 C   s   t | jj| jjddd d S Nr9  rq  rO  rh   r1   r1   r2   r     s     z%TestNegativeBinomialPNB1BFGS.test_aicc                 C   s   t | jj| jjddd d S r  rP  rh   r1   r1   r2   r     s     z%TestNegativeBinomialPNB1BFGS.test_bicc                 C   s   t | jj| jjddd d S r}  rR  rh   r1   r1   r2   rx     s     z%TestNegativeBinomialPNB1BFGS.test_llfc                 C   s   t | jj| jjddd d S r}  rR  rh   r1   r1   r2   r}     s     z%TestNegativeBinomialPNB1BFGS.test_llrc                 C   s   t | jj| jjddd d S r  r  rh   r1   r1   r2   ro     s     z'TestNegativeBinomialPNB1BFGS.test_zstatc                 C   s4   t | jj| jjddd t | jj| jjddd d S r}  rM  rh   r1   r1   r2   r    s      z)TestNegativeBinomialPNB1BFGS.test_lnalphac                 C   s   t | jj| jjddd d S N皙?rq  rL  rh   r1   r1   r2   ri     s     z(TestNegativeBinomialPNB1BFGS.test_paramsc                 C   s   t | j | jjddd d S r  rj   rh   r1   r1   r2   rl     s     z*TestNegativeBinomialPNB1BFGS.test_conf_intc                 C   s4   t | j d d t| jjd d ddd d S )Nr!   r  rq  r  rh   r1   r1   r2   r     s
     z)TestNegativeBinomialPNB1BFGS.test_predictc                 C   s2   t | jjddd d | jjd d ddd d S )Nr   rN   r!   r  rq  r  rh   r1   r1   r2   r     s
     z,TestNegativeBinomialPNB1BFGS.test_predict_xbc                 C   s*   | j j }td|k t|d d d S rb  rc  rd  r1   r1   r2   rf    s    z+TestNegativeBinomialPNB1BFGS.test_init_kwdsN)ra   rb   rc   r   r   r   r   r   rx   r}   ro   r  ri   rl   r   r   rf  r1   r1   r1   r2   r    s   
	r  c                   @   s   e Zd Zedd ZdS )$TestNegativeBinomialPL1Compatabilityc                 C   s
  d| _ d| _t }t|j|_tj|jtd|_|jt	t
|jd}||d |d }tj|dd}|d d d | jf }t|j|}|jddd	| _dt
|j t| j d
  }d|d | j< d|d< t|j|}|jd|ddddd| _d
| _d S )Nr!   rY  r6   r'  r   Tr   r   r   r   r  Fr9   rZ  r  r4  )rC  rS   r8   r+   r,   r-   r.   r7   r[  r\  r   rR   rb  r'   r   r   r   rA  r   r_   rB  rF  rc  r1   r1   r2   r     s0        z0TestNegativeBinomialPL1Compatability.setup_classNr   r1   r1   r1   r2   r    s   r  c                   @   s   e Zd Zdd Zdd ZdS ) TestNegativeBinomialPPredictProbc                 C   s  ddg}t jd d}t |df}d|d |d df< t ||}d}d| | }|||  }tj||t|d}t	
||jd	d
}	|	 }
d| |
 }|||
  }|	jdd}t|tt dd d d f ||jddd |	j|d	dg dd}t||d	dg ddd d S )Nr   rh  ri  rj  r%   r  r-  r  r   r"  ru  rN   r  r5  rq  r'  )r.   rO   r9   rk  r  r+   r  r  r   r  rG   r   ro  r   r'   r   r   rQ   r   rw  r  rF   )rH   rl  r  r.   rp  r  r   ru  r-   rI   mur  Zprobs_exr1   r1   r2   test_predict_prob_p1  s,      z5TestNegativeBinomialPPredictProb.test_predict_prob_p1c                 C   s   ddg}t jd d}t |df}d|d |d df< t ||}d}d| }|||  }tj||t|d}t	j
||dd	jd
d}	|	 }
d| }|||
  }t|	jddtt dd d d f ||jddd d S )Nr   rh  ri  rj  r%   r  r-  r  rG  r   r"  ru  rN   r  r5  rq  r  )rH   rl  r  r.   rp  r  r   ru  r-   rI   r  r1   r1   r2   test_predict_prob_p2	  s&      z5TestNegativeBinomialPPredictProb.test_predict_prob_p2N)ra   rb   rc   r  r  r1   r1   r1   r2   r    s   r  c                   @   s    e Zd Zedd Zdd ZdS )	CheckNullc              	   C   sT   t dddddddg}t|}t t ||f}t dd	d
ddddg}||fS )Nr  r  g      >@g     A@g      D@g     F@g      I@i  i  i  i  i@  i  i  )r+   r"  r   rD   r   )r   r  r  r.   r-   r1   r1   r2   	_get_data!	  s
    zCheckNull._get_datac                 C   sb   | j j| jdd}d|j_|j}|j}t||jdd | j}t||jdd t|j	|j	dd d S )Nr   r  r   Tr  r:   r`  )
r=   r   r  Z_resultsZ_attach_nullmodelry   res_nullr   rw   r>   )rH   rI   Zllf0Z	res_null0Z	res_null1r1   r1   r2   rz   )	  s    zCheckNull.test_llnullN)ra   rb   rc   r   r  rz   r1   r1   r1   r2   r  	  s   
r  c                   @   s   e Zd Zedd ZdS )TestPoissonNullc                 C   sJ   |   \}}t||| _t||d d df jdgdd| _ddg| _d S )Nr   g      !@r  )r  r   r=   r   r  r  r   r-   r.   r1   r1   r2   r   9	  s    $zTestPoissonNull.setup_classNr   r1   r1   r1   r2   r  7	  s   r  c                   @   s   e Zd Zedd ZdS )TestNegativeBinomialNB1Nullc                 C   sj   |   \}}t||dd| _t||d d df dd| _| jjddgddddd	| _td
ddg| _d S )Nr  rg  r   r  r   r   r   ,  r  r[   r   r   r   0@?$?     @	r  r   r=   
model_nullr   r  r+   r"  r  r  r1   r1   r2   r   D	  s      z'TestNegativeBinomialNB1Null.setup_classNr   r1   r1   r1   r2   r  B	  s   r  c                   @   s   e Zd Zedd ZdS )TestNegativeBinomialNB2Nullc                 C   sj   |   \}}t||dd| _t||d d df dd| _| jjddgddddd	| _td
ddg| _d S )Nr  rg  r   r  r9  r   r  r  r  #$ @7<$BD?ki,?r  r  r1   r1   r2   r   S	  s      z'TestNegativeBinomialNB2Null.setup_classNr   r1   r1   r1   r2   r  Q	  s   r  c                   @   s    e Zd Zedd Zdd ZdS )TestNegativeBinomialNBP2Nullc                 C   sj   |   \}}t||dd| _t||d d df dd| _| jjddgddddd	| _td
ddg| _d S )Nr%   rG  r   r  r   r   r  r  r  r  r  r  	r  r   r=   r  r   r  r+   r"  r  r  r1   r1   r2   r   a	  s      z(TestNegativeBinomialNBP2Null.setup_classc                 C   sD   | j j| j j }}t||dd}| }| j  }t||dd d S )Nr  rg  -q=r:   r=   r-   r.   r   Z_get_start_params_nullr   rH   r-   r.   Z	model_nb2Zsp1Zsp0r1   r1   r2   test_start_nullk	  s
    
z,TestNegativeBinomialNBP2Null.test_start_nullNra   rb   rc   r   r   r  r1   r1   r1   r2   r  _	  s   
	r  c                   @   s    e Zd Zedd Zdd ZdS )TestNegativeBinomialNBP1Nullc                 C   sj   |   \}}t||dd| _t||d d df dd| _| jjddgddddd	| _td
ddg| _d S )Nr-  rG  r   r   r  r   r  r  r  r  r  r  r  r  r1   r1   r2   r   u	  s      z(TestNegativeBinomialNBP1Null.setup_classc                 C   sD   | j j| j j }}t||dd}| }| j  }t||dd d S )Nr  rg  r  r:   r  r  r1   r1   r2   r  	  s
    
z,TestNegativeBinomialNBP1Null.test_start_nullNr  r1   r1   r1   r2   r  s	  s   
	r  c                   @   s   e Zd Zedd ZdS )TestGeneralizedPoissonNullc                 C   sj   |   \}}t||dd| _t||d d df dd| _| jjddgddddd	| _td
ddg| _d S )Nr1  rG  r   g @r   r   r   r  r  gY$@g^?g3 7I?)	r  r   r=   r  r   r  r+   r"  r  r  r1   r1   r2   r   	  s      z&TestGeneralizedPoissonNull.setup_classNr   r1   r1   r1   r2   r  	  s   r  c                  C   sv  d} t d}d|d | d df< t |d}t j|}t||jt ddgdd}|j	}t
t|ddk |jd	d
 |j	}t|jjd t | dd t|jjd d t|| |jd	dgdd |j	}t|jjd dgdd t|jjd d |  t
d|jk t|jd | t
d|jk t|jd | |jdd t
d|jk t|jd d d S )Nr!   )   r%   r   r%   r   r  Z
res_llnullFT)attach_resultsr  r9   r:   Z	optimizerr   r9  r   )r  r  r[   Z	prsquaredry   i  )ry   )r+   r   r  r?   r  r  r   r   r  ry   r   rt   Zset_null_optionsr   r  mle_settingsrR   r   r   _cache)r  r.   r  r-   rI   Zllnull0Zllnr1   r1   r2   test_null_options	  s<    
 
r  c                  C   s  t jt jt} t j| dd}t|}dg}|| ||   || 	  }|d j
}t||  }d }tddd}t|||d}	|	jf d	d
i|}
t|||d}	|	jd
|d}t|jd d d |
jdd t|jd | t|  | dd tddd}t|||dd}	|	jd
|d}t|jd d d |
jdd t|jd | t|  | dd t|||dd}	|	jd
d|d}t|jd d d |
jdd t|jd | t|  | dd d S )Nr  z
sm3533.csvppnumr   rk  )r[   r   )r  r   r   )r   optim_kwds_prelimr  r'  r  r:   r  r  r%   )r  rH  r1  rj  )r   r   r  )r  r  r  r  r  r  r:  Zread_csvrR   rb  r   r'   r   copyr%  r   r   r   r   r  r>   r   rQ   r   r   )r  filepathr  featuresr  r  r.   r  r  r=   Zres_poirI   r1   r1   r2   test_optim_kwds_prelim	  sB    
 
r  c                  C   s   t  } td tj| j| jdd}tdddddd	d
dddg
}|j	|dd}t
|jd tddddddddddg
}|jd|dd}t|jdk |j	|dd}t
|j|j t
|j|j d S )Nr  r  rg  gXgBP'˿g)my|?gV6㢞gqmP?g˯?ghh?g,y?g˨?gI"$?r   r  r  g|~!<ڨgS9ÿg1&7i?gmqdgo ?gT
}?g$&9?r,  g,[?r  )r  r  r   )r8   r  r  r'   r   r-   r.   r+   r"  r   r   r   r_   r   r   )r0   r=   r>   r<   Z
reg_paramsrf   Zres3r1   r1   r2   "test_unchanging_degrees_of_freedom	  s2    
        r  c               	   C   sl   t dddddgdddddgd} tjtdd tjd| d	 }W 5 Q R X | 	 }d
|ksht
d S )Nr,  g?r   r   )ABz+endog contains values are that not int-likerX   zA ~ B)formular0   zA=1.1)r:  r;  r\   r   r   r)  r*  r   r   r	  r   )r  rT  r   r1   r1   r2   test_mnlogit_float_name
  s    $r  c                  C   s   t jj } t j| jdd}t | j|jddd}|	 }|
 }tt|}|jd d df |jd d df  dtjd  }t|| t|j|j t|j|j t|jtjstd S )	NFr   r   r   r   r   r%   g333333?)r'   r(   r)   r#  r   r.   r   r-   r   rs   rk   r+   sqrtZdiagr'  r   ZnormZppfr   r   indexr*  rB   r:  Z
MultiIndexr   )r0   r.   r<   ZcovciseZse2r1   r1   r2   test_cov_confint_pandas
  s    4
r  c            
      C   s   t  } tj| jdd}t| j|jdd}t|	 j
d }||}||}tjj } tj| jdd}t| jt| }}t||jdd}||}||}	t|j|j t|j|	j d S )NFr   r   r"  )r3   r'   r   r.   r   r-   r   r+   r   rs   r   rI  rT  r(   r)   r*   r,   r   rK  r  )
r0   r.   r<   r  t1f1r-   rf   t2f2r1   r1   r2   rR  
  s    



rR  )N)r   Zstatsmodels.compat.pandasr   r  r  numpyr+   Znumpy.testingr   r   r   r   r   r   r	   rA  r:  r\   rx  r   Zscipy.statsr   Zstatsmodels.apiapir'   Z%statsmodels.discrete.discrete_marginsr   r   Z#statsmodels.discrete.discrete_modelr   r   r   r   r   r   r   r   Zstatsmodels.formula.apir  r)  Zstatsmodels.tools.sm_exceptionsr   r   r   r   Zresults.results_discreter   r   r   r   Zcvxoptr1  ImportErrorr   Z
DECIMAL_10rA   rg   r|   r  rD  Z	DECIMAL_0r3   r5   r8   rL   rV   rW   rd   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r%  r+  r   Zskipifr0  r7  r@  rX  ra  re  ri  rn  rp  rq  rt  rv  rz  r{  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r,  r/  r@  rB  rD  rE  rZ  r[  rg  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rR  r1   r1   r1   r2   <module>   s   
$	(


-X 57 E/*-(/)7x

9(KK0)5E3&2	