U
    Kvf                    @   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   L/tmp/pip-unpacked-wheel-2v6byqio/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sf1h1Zhfh2Zhf0Zhf1Zhf2Zh00Zh10Zh11r1   r1   r2   	check_jacY   s8    

rN   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squeezerO   )rI   ZdistrZdistr1mm2vZv2r1   r1   r2   check_distr   s    rX   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__rb   r1   r1   r1   r2   rY      s   rY   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_intrh   rj   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<   tvaluesrh   zri   rj   r1   r1   r2   
test_zstat   s    zCheckModelResults.test_zstatc                 C   s   t | jj| jjt d S r&   r   r<   pvaluesrh   ri   rj   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)hasattrrh   r^   skipr   r<   ru   ri   rj   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<   llfrh   ri   rj   r1   r1   r2   test_llf   s    zCheckModelResults.test_llfc                 C   s   t | jj| jjt d S r&   )r   r<   llnullrh   ri   rj   r1   r1   r2   test_llnull   s    zCheckModelResults.test_llnullc                 C   s   t | jj| jjt d S r&   )r   r<   llrrh   	DECIMAL_3rj   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_pvaluerh   ri   rj   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&   NotImplementedErrorrj   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<   bserh   ri   rj   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_modelrh   df_residrj   r1   r1   r2   test_dof   s    zCheckModelResults.test_dofc                 C   s   t | jj| jjt d S r&   r   r<   aicrh   r~   rj   r1   r1   r2   test_aic   s    zCheckModelResults.test_aicc                 C   s   t | jj| jjt d S r&   r   r<   bicrh   r~   rj   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=   rS   r>   rh   Zphatri   rj   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linearrP   )r   r<   r=   rS   r>   rh   Zyhatri   rj   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   ry   
DECIMAL_14)rH   Zllobssumr1   r1   r2   test_loglikeobs   s    z!CheckModelResults.test_loglikeobsc                 C   s   t |  d S r&   rN   rj   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&   rX   r<   rj   r1   r1   r2   
test_distr   s    zCheckModelResults.test_distrN)rc   rd   re   __doc__rk   rn   rq   rt   rx   rz   r|   r   r   r^   markxfailr   r   r   r   r   r   r   r   r   r   r   r   r1   r1   r1   r2   rf      s2    

rf   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_tablerh   rj   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_devrh   ri   rj   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_generalizedrh   ri   rj   r1   r1   r2   test_resid_generalized  s     z)CheckBinaryResults.test_resid_generalizedc                 C   s   | j j d S r&   )r<   Zresid_responserj   r1   r1   r2   test_resid_response  s    z&CheckBinaryResults.test_resid_responseN)
rc   rd   re   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   margeffrh   Zmargeff_nodummy_dydxri   
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 )NrT   at)	r<   r   r   r   rh   Zmargeff_nodummy_dydxmeanri   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   rh   Zmargeff_nodummy_dydxmedianri   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   rh   Zmargeff_nodummy_dydxzerori   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dyexr\   )	r<   r   r   r   rh   Zmargeff_nodummy_dyexri   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 )NrT   r   r   r]   )	r<   r   r   r   rh   Zmargeff_nodummy_dyexmeanri   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   rh   Zmargeff_nodummy_dyexmedianri   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   rh   Zmargeff_nodummy_dyexzerori   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eydxr\   )	r<   r   r   r   rh   Zmargeff_nodummy_eydxri   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 )NrT   r   r   )	r<   r   r   r   rh   Zmargeff_nodummy_eydxmeanri   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   rh   Zmargeff_nodummy_eydxmedianri   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   rh   Zmargeff_nodummy_eydxzerori   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eyexr\   )	r<   r   r   r   rh   Zmargeff_nodummy_eyexri   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 )NrT   r   r   )	r<   r   r   r   rh   Zmargeff_nodummy_eyexmeanri   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   rh   Zmargeff_nodummy_eyexmedianri   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   rh   Zmargeff_nodummy_eyexzerori   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   rh   Zmargeff_dummy_dydxri   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 )NrT   T)r   r   )	r<   r   r   r   rh   Zmargeff_dummy_dydxmeanri   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   rh   Zmargeff_dummy_eydxri   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 )NrT   r   T)r   r]   r   )	r<   r   r   r   rh   Zmargeff_dummy_eydxmeanri   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   rh   Zmargeff_count_dydxri   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 )NTrT   )r   r   )	r<   r   r   r   rh   Zmargeff_count_dydxmeanri   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   rh   Zmargeff_count_dummy_dydxoverallri   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 )NTrT   )r   r   r   )	r<   r   r   r   rh   Zmargeff_count_dummy_dydxmeanri   r   Zmargeff_count_dummy_dydxmean_ser   r1   r1   r2   test_count_dummy_dydxmean  s      z&CheckMargEff.test_count_dummy_dydxmeanN)rc   rd   re   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   probitrh   clsr0   rh   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 kwargsrZ   )weights)r<   r=   r-   r.   r+   onesr   r^   warnsr   r   )rH   r-   r.   rp   r1   r1   r2   test_init_kwargs  s
    

z!TestProbitNewton.test_init_kwargsN)rc   rd   re   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rc   rd   re   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   rh   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   rh   Z!statsmodels.tools.transform_modelr   r   r-   r   Ztransform_paramsr>   r   r<   r   mle_retvals)r   r0   rh   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   rh   r   r-   r   r+   randomseedr<   r   r0   rh   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&   rg   rj   r1   r1   r2   rk   V  s    z"CheckLikelihoodModelL1.test_paramsc                 C   s   t | j | jjt d S r&   )r   r<   rm   rh   ri   rj   r1   r1   r2   rn   Y  s
      z$CheckLikelihoodModelL1.test_conf_intc                 C   s   t | jj| jjt d S r&   r   rj   r1   r1   r2   r   ]  s    zCheckLikelihoodModelL1.test_bsec                 C   s   t | jj| jjt d S r&   )r   r<   Z
nnz_paramsrh   ri   rj   r1   r1   r2   test_nnz_params`  s
      z&CheckLikelihoodModelL1.test_nnz_paramsc                 C   s   t | jj| jjt d S r&   r   rj   r1   r1   r2   r   d  s
      zCheckLikelihoodModelL1.test_aicc                 C   s   t | jj| jjt d S r&   r   rj   r1   r1   r2   r   h  s
      zCheckLikelihoodModelL1.test_bicN)
rc   rd   re   r   rk   rn   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-   ra   r<   r   r   rh   )r   r0   r   rh   r1   r1   r2   r   o  s         zTestProbitL1.setup_classc                 C   s   t | j | jjt d S r&   r   r<   ru   rh   ri   rj   r1   r1   r2   rx   z  s
      zTestProbitL1.test_cov_paramsNrc   rd   re   r   r   rx   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Kra   r<   r   mnlogitrh   )r   Z	anes_dataZ	anes_exogZ
mlogit_modr   rh   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-   ra   r<   r   logitrh   r   r1   r1   r2   r     s         zTestLogitL1.setup_classc                 C   s   t | j | jjt d S r&   r%  rj   r1   r1   r2   rx     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 )Nr1  Tr   )
has_cvxoptr^   rw   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.   ra   r   r>   ri   )rH   Z	res_slsqpZ
res_cvxoptr1   r1   r2   test_cvxopt_versus_slsqp  s&             z#TestCVXOPT.test_cvxopt_versus_slsqpN)rc   rd   re   r   r   r8  r1   r1   r1   r2   r2    s   
r2  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=   ra   r   r>   r<   ri   )rH   ir   rh   r1   r1   r2   test_sweep_alpha  s        z!TestSweepAlphaL1.test_sweep_alphaN)rc   rd   re   r   r   rA  r1   r1   r1   r2   r9    s   

r9  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   )	rU   r   	res_unregr>   res_regri   r=   r.   r   )rH   rU   kvarsr1   r1   r2   rk     s      z CheckL1Compatability.test_paramsc                 C   sB   | j }t| j d |d |f | j d |d |f t d S r&   )rU   r   rC  ru   rD  	DECIMAL_1)rH   rU   r1   r1   r2   rx     s    z$CheckL1Compatability.test_cov_paramsc                 C   s(   t | jj| jj t | jj| jj d S r&   )r   rC  r   rD  r   rj   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  )rU   rE  getattrrC  t_testr+   eyer   r>   rD  r   effectr~   sdnanr   tvalue)rH   rU   rE  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 )NrH  r   giUMu>MbP?r  )rU   rE  rJ  rC  f_testr+   rL  r   r>   rD  r   Zfvaluer   pvaluer~   )rH   rU   rE  rQ  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&   )rE  r	   r`   rD  rV  r+   rL  )rH   rE  r1   r1   r2   test_bad_r_matrix  s    z&CheckL1Compatability.test_bad_r_matrixN)
rc   rd   re   r   rk   rx   rG  rT  rX  rY  r1   r1   r1   r2   rB    s   	
rB  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  r6  )rE  rU   r8   r.   viewr7   reshaper   r'   r   r   r-   r   rC  r+   r   ra   rD  )r   	rand_data	rand_exogexog_no_PSI	mod_unregr   r1   r1   r2   r   
  s$        z&TestPoissonL1Compatability.setup_classNr   r1   r1   r1   r2   rZ    s   rZ  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!   r[  r)  r   Tr   r   Fr   r   r  r9   r\  r  r6  )rE  rU   r8   r.   r]  r7   r^  r   rT   stdr'   r   r   r-   r   rC  r+   r   ra   rD  rH  r   r_  r`  Zrand_exog_stra  rb  r   mod_regr1   r1   r2   r     s,        z/TestNegativeBinomialL1Compatability.setup_classNr   r1   r1   r1   r2   rc    s   rc  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!   r[  r)  Tr   	geometricloglike_methodr   Fr   r   r  r9   r\  r  r6  )rE  rU   r8   r.   r]  r7   r^  r   r'   r   r   r-   r   rC  r+   r   ra   rD  r   rj  )r   r_  r`  ra  rb  r   rf  r1   r1   r2   r   9  s0    

    z2TestNegativeBinomialGeoL1Compatability.setup_classNr   r1   r1   r1   r2   rg  7  s   rg  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瞯<r\  r  r6  r   r  )rE  rU   r5   r'   r   r.   r+   r$  r   r-   ra   rD  r   rC  r   r0   r   ra  r1   r1   r2   r   S  s        z$TestLogitL1Compatability.setup_classNr   r1   r1   r1   r2   rk  Q  s   rk  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  rm  r\  r  r6  r   r   r   r  r]   r   )rE  rU   r5   r'   r   r.   r+   r$  r   r-   ra   rD  r   rC  ro  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&   )rU   rE  rC  rK  r+   rL  rD  r   rM  r~   rN  rO  rP  )rH   rU   rE  rR  rS  r1   r1   r2   rT  t  s    z&TestMNLogitL1Compatability.test_t_testzSkipped test_f_test for MNLogitc                 C   s   d S r&   r1   rj   r1   r1   r2   rX  ~  s    z&TestMNLogitL1Compatability.test_f_testN)
rc   rd   re   r   r   rT  r^   r   rw   rX  r1   r1   r1   r2   rp  c  s
   


rp  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 rl  )rE  rU   r5   r'   r   r.   r+   r$  r   r-   ra   rD  r   rC  ro  r1   r1   r2   r     s        z%TestProbitL1Compatability.setup_classNr   r1   r1   r1   r2   rr    s   rr  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>   rh   ri   ru   rm   rs   r   r   ry   r   r   r   r  rj   r1   r1   r2   test_basic_results  s"    zCompareL1.test_basic_resultsN)rc   rd   re   r   ru  r1   r1   r1   r2   rs    s   rs  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+   rL  r   r<   r>   Zravelr   rK  rW  rh   ri   rV  )rH   Zrestrictmatr1   r1   r2   
test_tests  s      zCompareL11D.test_testsN)rc   rd   re   r   rw  r1   r1   r1   r2   rv    s   rv  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   rm  r   r  r7  r]   r   r   r#  r   r!  r"  rn  )
r5   r'   r   r.   r   r-   ra   r<   r   rh   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   rm  r   r  r7  rz  rt  F)r<   r=   ra   r   r  )rH   rI   r1   r1   r2   test_converged  s         z#TestL1AlphaZeroLogit.test_convergedN)rc   rd   re   r   r   r{  r1   r1   r1   r2   rx    s   
rx  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 ry  )
r5   r'   r   r.   r   r-   ra   r<   r   rh   r=  r1   r1   r2   r     s         z!TestL1AlphaZeroProbit.setup_classNr   r1   r1   r1   r2   r|    s   r|  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   rm  r   r  r7  rz  r   rq  )
r3   r'   r   r.   r   r-   ra   r<   r   rh   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   r0  rh   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_pearsonrh   rj   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   rh   Zmargeff_nodummy_atexog1ri   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%   rT   r  r   	r<   r   r   r   rh   Zmargeff_nodummy_atexog2ri   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   rh   Zmargeff_dummy_atexog1ri   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  rT   Tr  r   r   	r<   r   r   r   rh   Zmargeff_dummy_atexog2ri   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   r[  r   r)  )Zsort_varZbinsdfgdy=r:   giUMu?rI  r%   )Z statsmodels.stats.diagnostic_genr   Zdiagnostic_genr<   rS   r=   r-   r+   rD   ZcumsumZtest_chisquare_binningr   	statisticr   r  rW  Zfreqsr   r?   )rH   Zn_groupschi2rW  r  ZdiaZfittedencountsexpectedZgroup_sizesindicesrI   r1   r1   r2   test_diagnostic  s(    


 zTestLogitNewton.test_diagnosticN)rc   rd   re   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   r0  rh   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  rj   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$   rT   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  rT   Tr  r  r   r1   r1   r2   r  R  s      z'TestLogitNewtonPrepend.test_dummy_exog2N)
rc   rd   re   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   r0  rh   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   poissonrh   r   r0   r.   rh   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   rh   Zmargeff_nodummy_overallri   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   rh   Zmargeff_dummy_overallri   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<   residrh   rj   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  rx   rj   	__class__r1   r2   rx     s    z!TestPoissonNewton.test_cov_params)rc   rd   re   r   r   r  r  r  r  r^   r   r   rx   __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&   rr   rj   r1   r1   r2   rt     s    zCheckNegBinMixin.test_pvaluesN)rc   rd   re   r^   r   r   r   rt   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_bfgsrh   r  r1   r1   r2   r     s
    z)TestNegativeBinomialNB2Newton.setup_classc                 C   s   t | jj| jjt d S r&   r   r<   r   rh   r~   rj   r1   r1   r2   r     s    z&TestNegativeBinomialNB2Newton.test_bsec                 C   s   t | jj| jjt d S r&   rg   rj   r1   r1   r2   rk     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   lnalpharh   ri   lnalpha_std_errrj   r1   r1   r2   
test_alpha  s     z(TestNegativeBinomialNB2Newton.test_alphac                 C   s   t | j | jjt d S r&   r   r<   rm   rh   r~   rj   r1   r1   r2   rn     s    z+TestNegativeBinomialNB2Newton.test_conf_intc                 C   s    t | jjd d | jjt d S Nr)  r   r<   rs   rh   	DECIMAL_2rj   r1   r1   r2   rq     s    z(TestNegativeBinomialNB2Newton.test_zstatc                 C   s(   t | jjd d | jjd d t d S Nr!   r   r<   fittedvaluesrh   r~   rj   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<   rS   r+   exprh   r  r~   rj   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   rP   r!   r   r<   rS   rh   r  r~   rj   r1   r1   r2   r     s     z-TestNegativeBinomialNB2Newton.test_predict_xbNrc   rd   re   r   r   r   rk   r  rn   rq   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_bfgsrh   )r   r0   r.   r=   rh   r1   r1   r2   r     s    z)TestNegativeBinomialNB1Newton.setup_classc                 C   s   t | jj| jjt d S r&   r   r<   ro   rh   rp   rF  rj   r1   r1   r2   rq     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  rh   r  ri   rj   r1   r1   r2   test_lnalpha  s     z*TestNegativeBinomialNB1Newton.test_lnalphac                 C   s   t | jj| jjt d S r&   rg   rj   r1   r1   r2   rk     s    z)TestNegativeBinomialNB1Newton.test_paramsc                 C   s   t | j | jjt d S r&   r   r<   rm   rh   r  rj   r1   r1   r2   rn     s    z+TestNegativeBinomialNB1Newton.test_conf_intr   Tr   c                 C   s   t d S r&   r   rj   r1   r1   r2   r     s    z*TestNegativeBinomialNB1Newton.test_predictc                 C   s   t d S r&   r   rj   r1   r1   r2   r     s    z-TestNegativeBinomialNB1Newton.test_predict_xbNrc   rd   re   r   r   rq   r  rk   rn   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  rj   r1   r1   r2   r     s    z$TestNegativeBinomialNB2BFGS.test_bsec                 C   s   t | jj| jjt d S r&   rg   rj   r1   r1   r2   rk      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  rj   r1   r1   r2   r    s     z&TestNegativeBinomialNB2BFGS.test_alphac                 C   s   t | j | jjt d S r&   r  rj   r1   r1   r2   rn   
  s    z)TestNegativeBinomialNB2BFGS.test_conf_intc                 C   s    t | jjd d | jjt d S r  r  rj   r1   r1   r2   rq     s    z&TestNegativeBinomialNB2BFGS.test_zstatc                 C   s(   t | jjd d | jjd d t d S r  r  rj   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  rj   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  rj   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  rj   r1   r1   r2   rq   +  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  rj   r1   r1   r2   r  .  s     z(TestNegativeBinomialNB1BFGS.test_lnalphac                 C   s   t | jj| jjt d S r&   rg   rj   r1   r1   r2   rk   4  s    z'TestNegativeBinomialNB1BFGS.test_paramsc                 C   s   t | j | jjt d S r&   r  rj   r1   r1   r2   rn   7  s    z)TestNegativeBinomialNB1BFGS.test_conf_intr   Tr   c                 C   s   t d S r&   r   rj   r1   r1   r2   r   =  s    z(TestNegativeBinomialNB1BFGS.test_predictc                 C   s   t d S r&   r   rj   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   rh  r   r   r   )r8   r'   r   r.   r   r-   r   r<   r   Znegativebinomial_geometric_bfgsrh   r   r0   r.   modrh   r1   r1   r2   r   N  s    z-TestNegativeBinomialGeometricBFGS.setup_classc                 C   s   t | jj| jjt d S r&   r   rj   r1   r1   r2   r   Y  s    z*TestNegativeBinomialGeometricBFGS.test_aicc                 C   s   t | jj| jjt d S r&   r   rj   r1   r1   r2   r   \  s    z*TestNegativeBinomialGeometricBFGS.test_bicc                 C   s   t | j | jjt d S r&   r  rj   r1   r1   r2   rn   _  s    z/TestNegativeBinomialGeometricBFGS.test_conf_intc                 C   s(   t | jjd d | jjd d t d S r  r  rj   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  rj   r1   r1   r2   r   g  s     z.TestNegativeBinomialGeometricBFGS.test_predictc                 C   s   t | jj| jjt d S r&   )r   r<   r>   rh   r~   rj   r1   r1   r2   rk   k  s    z-TestNegativeBinomialGeometricBFGS.test_paramsc                 C   s.   t | jjddd d | jjd d t d S r  r  rj   r1   r1   r2   r   n  s     z1TestNegativeBinomialGeometricBFGS.test_predict_xbc                 C   s   t | jj| jjt d S r&   r  rj   r1   r1   r2   rq   r  s    z,TestNegativeBinomialGeometricBFGS.test_zstatc                 C   s   t | jj| jjt d S r&   )r   r<   ry   rh   rF  rj   r1   r1   r2   rz   u  s    z*TestNegativeBinomialGeometricBFGS.test_llfc                 C   s   t | jj| jjt d S r&   )r   r<   r}   rh   r  rj   r1   r1   r2   r   x  s    z*TestNegativeBinomialGeometricBFGS.test_llrc                 C   s   t | jj| jjt d S r&   r  rj   r1   r1   r2   r   {  s    z*TestNegativeBinomialGeometricBFGS.test_bseN)rc   rd   re   r   r   r   r   rn   r  r   rk   r   rq   rz   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   rh   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 )NrT   r   r[  )r<   r   r   r   rh   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   rh   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*  rh   rj   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+  rh   rj   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_namerj   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@r5  g      .@g     B@g     E@g      @g      "@r/  g      @r(        4@g      6@      9@g      ?@g     Q@g      2@g     a@)r   r<   rS   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_misclassifiedrh   r  rj   r1   r1   r2   r    s    zCheckMNLogitBaseZero.test_residr  Tr  c                    s   t t|   d S r&   )r  r  rx   rj   r  r1   r2   rx     s    z$CheckMNLogitBaseZero.test_cov_paramsr   r   c                    s   t    d S r&   )r  r   rj   r  r1   r2   r     s    zCheckMNLogitBaseZero.test_distr)rc   rd   re   r  r  r  r  r  r  r   r  r^   r   r   rx   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_basezerorh   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   rU   ZpgtolZfactrloglike_and_score)r3   r0   r.   r'   r   r   r-   r   r  r<   r   r  rh   )r   r0   r.   Zmymodelrh   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  r\   )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   rt  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   rS   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   rt  )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   r[  )r3   r.   r'   r   r   r-   r   r+   r  r   rS   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 setrZ   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   r;  )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 )Nr[  ABCDEFGr-   Tr   r   r   r  zPID ~ z + r9   r:   )r'   r(   r)   load_pandasr-   replacedictzipr?  r   r.   r   r   r>   r   rS   ilocnamesmfr,  r  columnsr0   r   )dtar.   r  rI   r>   r   Z	predictedZendognrh   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 )	Nr[  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    r2  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$   r7  r8  r7  )r  )r+   rO  r  uniformpd	DataFramer,  r  r   typer  ZndarrayZSerieslocr	   r`   r'   r   r6  )dr  mod1r  r1   r1   r2   test_formula_missing_exposure  s     


rC  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!   r3  r$   r#   r4  r5  r9  r  r:  r:  r   rP   r8  r7  )r  rQ   )pandasr+   r  r>  r   Zfrom_formular$  rS   r   rG   r   )
r=  rA  r  rB  r>   r  r  r  r  Z	expected2r1   r1   r2   test_predict_with_exposure  s$     


rE  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    
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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_gp2rh   )r   r0   r  rh   r1   r1   r2   r   
  s    z%TestGeneralizedPoisson_p2.setup_classc                 C   s   t | jj| jjdd d S Nr  rI  r   r<   r   rh   rj   r1   r1   r2   r     s    z"TestGeneralizedPoisson_p2.test_bsec                 C   s   t | jj| jjdd d S rM  r   r<   r>   rh   rj   r1   r1   r2   rk     s    z%TestGeneralizedPoisson_p2.test_paramsc                 C   s,   t | jj| jj t | jj| jjdd d S rM  r   r<   r  rh   r  rj   r1   r1   r2   r    s
     z$TestGeneralizedPoisson_p2.test_alphac                 C   s   t | j | jjdd d S NrU  rI  rl   rj   r1   r1   r2   rn     s    z'TestGeneralizedPoisson_p2.test_conf_intc                 C   s   t | jj| jj d S r&   r   r<   r   rh   rj   r1   r1   r2   r   "  s    z"TestGeneralizedPoisson_p2.test_aicc                 C   s   t | jj| jj d S r&   r   r<   r   rh   rj   r1   r1   r2   r   %  s    z"TestGeneralizedPoisson_p2.test_bicc                 C   s   t | jj| jj d S r&   r   r<   r   rh   rj   r1   r1   r2   rG  (  s    z!TestGeneralizedPoisson_p2.test_dfc                 C   s   t | jj| jj d S r&   r   r<   ry   rh   rj   r1   r1   r2   rz   +  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scalarrm  rI  )r<   	wald_testr+   rL  r   r>   r   r  rh   Zwald_statisticrW  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   rK  r   ro   rP  rH   Zunit_matrixrK  r1   r1   r2   test_t4  s    z TestGeneralizedPoisson_p2.test_tc                 C   s   t |  d S r&   r   rj   r1   r1   r2   r   9  s    z"TestGeneralizedPoisson_p2.test_jacc                 C   s   t | j d S r&   r   rj   r1   r1   r2   r   <  s    z$TestGeneralizedPoisson_p2.test_distrN)rc   rd   re   r   r   r   rk   r  rn   r   r   rG  rz   rZ  r^  r   r   r1   r1   r1   r2   rH    s   
rH  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 rI  rL  r   r1   r1   r2   r   C  s     z.TestGeneralizedPoisson_transparams.setup_classc                 C   s   t | jj| jjdd d S rM  rN  rj   r1   r1   r2   r   L  s    z+TestGeneralizedPoisson_transparams.test_bsec                 C   s   t | jj| jjdd d S rM  rO  rj   r1   r1   r2   rk   O  s    z.TestGeneralizedPoisson_transparams.test_paramsc                 C   s,   t | jj| jj t | jj| jjdd d S rM  rP  rj   r1   r1   r2   r  R  s
     z-TestGeneralizedPoisson_transparams.test_alphac                 C   s   t | j | jjdd d S rQ  rl   rj   r1   r1   r2   rn   W  s    z0TestGeneralizedPoisson_transparams.test_conf_intc                 C   s   t | jj| jj d S r&   rR  rj   r1   r1   r2   r   [  s    z+TestGeneralizedPoisson_transparams.test_aicc                 C   s   t | jj| jj d S r&   rS  rj   r1   r1   r2   r   ^  s    z+TestGeneralizedPoisson_transparams.test_bicc                 C   s   t | jj| jj d S r&   rT  rj   r1   r1   r2   rG  a  s    z*TestGeneralizedPoisson_transparams.test_dfc                 C   s   t | jj| jj d S r&   rU  rj   r1   r1   r2   rz   d  s    z+TestGeneralizedPoisson_transparams.test_llfN)rc   rd   re   r   r   r   rk   r  rn   r   r   rG  rz   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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   rJ  r   r   r   )	r8   r0   r'   r   r.   r   r-   r   r<   r4  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   rJ  r   )r'   r   r0   r-   r.   Zlogliker<   r>   r   listr   )rH   Zpoisson_llfZgenpoisson_llfr1   r1   r2   rz   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   rJ  r   g&.>rI  )r'   r   r0   r-   r.   r@   r<   r>   r   ra  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   rJ  r   r9   rI  )r'   r   r0   r-   r.   rE   r<   r>   r   ra  r   rb  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&   r[  r]  r1   r1   r2   r^    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   rV  r7  )r   r   r  r   -C6
?rI  r  r%   g.?r:   gI?g'~ۅ?gM5rK7?)
r<   r=   r+   r   r   r>   ra   r   r   rT   )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 NrK  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   rj   r1   r1   r2   r     s    z$TestGeneralizedPoisson_p1.test_distrN)rc   rd   re   r   r   rz   rc  rd  r^  rf  rk  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  rJ  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?rU  r:   gaTR'?gQ?r  r  r;   rt  TZfoptg6?r7  )
rI   r=   r-   r   rT   rO   r>   rq  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  r7  rI  r9   r  )	rI   r=   r   r>   r   r@   r+   rF  r   )rH   rI   rh   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  rv  r  )r   rI   rS   rT   r-   Z_dispersion_factorrO   rj   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probrP   r   r)  r   r9   r  r   r   r:   r
   )g;ܛA?gP1/#?r7  )rI   r=   r-   r+   r  r1  intrS   r'   rr  rs  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   )rN   rI   rj   r1   r1   r2   r     s    z/TestGeneralizedPoisson_underdispersion.test_jacc                 C   s   t | j d S r&   )rX   rI   rj   r1   r1   r2   r     s    z1TestGeneralizedPoisson_underdispersion.test_distrN)rc   rd   re   r   r   rw  rx  ry  r  r   r   r1   r1   r1   r2   rl    s   

rl  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 rI  r8   r'   r   r.   r   r-   r   r<   r   r  rh   r  r1   r1   r2   r      s    z*TestNegativeBinomialPNB2Newton.setup_classc                 C   s   t | jj| jjddd d S NrU  rv  rN  rj   r1   r1   r2   r   
  s     z'TestNegativeBinomialPNB2Newton.test_bsec                 C   s   t | jj| jjdd d S NgHz>rI  rO  rj   r1   r1   r2   rk     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  rh   r  rj   r1   r1   r2   r    s    z)TestNegativeBinomialPNB2Newton.test_alphac                 C   s   t | j | jjddd d S r  rl   rj   r1   r1   r2   rn     s     z,TestNegativeBinomialPNB2Newton.test_conf_intc                 C   s$   t | jjd d | jjddd d S Nr)  {Gzt?rv  r   r<   rs   rh   rj   r1   r1   r2   rq     s     z)TestNegativeBinomialPNB2Newton.test_zstatc                 C   s&   t | jjd d | jjd d  d S r  r   r<   r  rh   rj   r1   r1   r2   r  !  s    z0TestNegativeBinomialPNB2Newton.test_fittedvaluesc                 C   s.   t | j d d t| jjd d  d S r  r   r<   rS   r+   r  rh   r  rj   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<   rS   rh   r  rj   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   rJ  r   r  r   r  r8   r'   r   r.   r   r-   r   r<   r   r  rh   r  r1   r1   r2   r   0  s    z*TestNegativeBinomialPNB1Newton.setup_classc                 C   s   t | jj| jjddd d S Nr  rv  r   r<   ro   rh   rp   rj   r1   r1   r2   rq   9  s     z)TestNegativeBinomialPNB1Newton.test_zstatc                 C   s0   | j j t| j j| jj t| j j| jj d S r&   r  rj   r1   r1   r2   r  =  s
    z+TestNegativeBinomialPNB1Newton.test_lnalphac                 C   s   t | jj| jj d S r&   rO  rj   r1   r1   r2   rk   C  s    z*TestNegativeBinomialPNB1Newton.test_paramsc                 C   s   t | j | jjddd d S r  rl   rj   r1   r1   r2   rn   F  s     z,TestNegativeBinomialPNB1Newton.test_conf_intc                 C   s4   t | j d d t| jjd d ddd d S Nr!   rU  rv  r  rj   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   rP   r!   rU  rv  r  rj   r1   r1   r2   r   Q  s
     z.TestNegativeBinomialPNB1Newton.test_predict_xbN)rc   rd   re   r   r   rq   r  rk   rn   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%   rJ  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  rN  rj   r1   r1   r2   r   d  s     z%TestNegativeBinomialPNB2BFGS.test_bsec                 C   s   t | jj| jjddd d S r  rO  rj   r1   r1   r2   rk   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  rv  r  rj   r1   r1   r2   r  l  s      z'TestNegativeBinomialPNB2BFGS.test_alphac                 C   s   t | j | jjddd d S r  rl   rj   r1   r1   r2   rn   t  s     z*TestNegativeBinomialPNB2BFGS.test_conf_intc                 C   s$   t | jjd d | jjddd d S r  r  rj   r1   r1   r2   rq   x  s     z'TestNegativeBinomialPNB2BFGS.test_zstatc                 C   s,   t | jjd d | jjd d ddd d S )Nr!   r  rv  r  rj   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  rj   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  rj   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   rJ  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  rN  rj   r1   r1   r2   r     s     z%TestNegativeBinomialPNB1BFGS.test_bsec                 C   s   t | jj| jjddd d S Nr;  rv  rR  rj   r1   r1   r2   r     s     z%TestNegativeBinomialPNB1BFGS.test_aicc                 C   s   t | jj| jjddd d S r  rS  rj   r1   r1   r2   r     s     z%TestNegativeBinomialPNB1BFGS.test_bicc                 C   s   t | jj| jjddd d S r  rU  rj   r1   r1   r2   rz     s     z%TestNegativeBinomialPNB1BFGS.test_llfc                 C   s   t | jj| jjddd d S r  rU  rj   r1   r1   r2   r     s     z%TestNegativeBinomialPNB1BFGS.test_llrc                 C   s   t | jj| jjddd d S r  r  rj   r1   r1   r2   rq     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  rP  rj   r1   r1   r2   r    s      z)TestNegativeBinomialPNB1BFGS.test_lnalphac                 C   s   t | jj| jjddd d S N皙?rv  rO  rj   r1   r1   r2   rk     s     z(TestNegativeBinomialPNB1BFGS.test_paramsc                 C   s   t | j | jjddd d S r  rl   rj   r1   r1   r2   rn     s     z*TestNegativeBinomialPNB1BFGS.test_conf_intc                 C   s4   t | j d d t| jjd d ddd d S )Nr!   r  rv  r  rj   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   rP   r!   r  rv  r  rj   r1   r1   r2   r     s
     z,TestNegativeBinomialPNB1BFGS.test_predict_xbc                 C   s*   | j j }td|k t|d d d S rg  rh  ri  r1   r1   r2   rk    s    z+TestNegativeBinomialPNB1BFGS.test_init_kwdsN)rc   rd   re   r   r   r   r   r   rz   r   rq   r  rk   rn   r   r   rk  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!   r[  r6   r)  r   Tr   r   r   r   r  Fr9   r\  r  r6  )rE  rU   r8   r+   r,   r-   r.   r7   r]  r^  r   rT   rd  r'   r   r   r   rC  r   ra   rD  rH  re  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   rm  rn  ro  r%   r  r/  r  r   r%  rz  rP   r  r7  rv  r)  )r.   rQ   r9   rm  r  r+   r  r  r   r  rG   r   rt  r   r'   r   r   rS   r   r|  r  rF   )rH   rq  r  r.   ru  r   r   rz  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   rm  rn  ro  r%   r  r/  r  rJ  r   r%  rz  rP   r  r7  rv  r  )rH   rq  r  r.   ru  r   r   rz  r-   rI   r  r1   r1   r2   test_predict_prob_p2	  s&      z5TestNegativeBinomialPPredictProb.test_predict_prob_p2N)rc   rd   re   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:   re  )
r=   r   r  Z_resultsZ_attach_nullmodelr{   res_nullr   ry   r>   )rH   rI   Zllf0Z	res_null0Z	res_null1r1   r1   r2   r|   )	  s    zCheckNull.test_llnullN)rc   rd   re   r   r  r|   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  ri  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  ri  r   r  r;  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%   rJ  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  ri  -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rc   rd   re   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/  rJ  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  ri  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 )Nr4  rJ  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   r;  r   )r  r  r]   Z	prsquaredr{   i  )r{   )r+   r   r  r?   r  r  r   r   r  r{   r   rv   Zset_null_optionsr   r  mle_settingsrT   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   rp  )r]   r   )r   r   r   )r   optim_kwds_prelimr  r)  r  r:   r  r  r%   )r   rK  r4  ro  )r   r   r  )r  r  r  r  r  r  r=  Zread_csvrT   rd  r   r'   r   copyr(  r   r   r   r   r  r>   r   rS   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  ri  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   ra   r   r   )r0   r=   r>   r<   Z
reg_paramsrh   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-likerZ   zA ~ B)formular0   zA=1.1)r=  r>  r^   r   r   r,  r,  r   r   r  r   )r  rY  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   ru   rm   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 jj } t j| jdd}t | j|jdd}t	
| jd }||}||}t j| jdd}t	| jt	| }}t ||jdd}||}||}	t|j|j t|j|	j |t	t	|j}
t|
jjdddd|j  |t	t	|j}
t|
jjdddd|j |jt	t	|jd dd	}t|j|j d
  |d}
|jddd	}t|
j|j |jddd	}t|jddd d S )NFr   r   r%  r   r  r  TrW  )r   r   Zy1_logpopulzy1_logpopul, y2_logpopulgf,@r   r:   )r'   r(   r)   r*   r   r.   r   r-   r   r+   r   ru   r   rK  rV  r,   r   rM  r  rL  r   r>   rP  r^  ro   Zto_numpyrX  rW  rs   )r0   r.   r<   r
  t1f1r-   rh   t2f2ttwtr1   r1   r2   test_mlogit_t_test
  s0    



 
r  )N)r   Zstatsmodels.compat.pandasr   r  r  Znumpyr+   Znumpy.testingr   r   r   r   r   r   r	   rD  r=  r^   r}  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cvxoptr3  ImportErrorr   Z
DECIMAL_10rA   ri   r~   r  rF  Z	DECIMAL_0r3   r5   r8   rN   rX   rY   rf   r   r   r   r   r   r   r   r	  r
  r  r  r  r  r  r'  r-  r   Zskipifr2  r9  rB  rZ  rc  rg  rk  rp  rr  rs  rv  rx  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/  r2  rC  rE  rG  rH  r_  r`  rl  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r1   r1   r1   r2   <module>   s   
$	(


-X 57 E/*-(/)7x

9(KK0)5E3&2	