
    M/Phv                       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&c mZ' dd	l(m)Z)m*Z*m+Z+m,Z, d
dl-m.Z.m/Z/m0Z0m1Z1 	 ddl2Z2dZ3n# e4$ r dZ3Y nw xY wdZ5dZ6dZ7dZ8dZ9dZ:d
Z;dZ<d Z=d Z>d Z?ddZ@d ZA G d d          ZB G d deB          ZC G d deC          ZD G d d           ZE G d! d"eD          ZF G d# d$eD          ZG G d% d&eD          ZH G d' d(eD          ZI G d) d*eD          ZJ G d+ d,eD          ZK G d- d.eD          ZL G d/ d0eD          ZM G d1 d2eD          ZN G d3 d4eD          ZO G d5 d6          ZP G d7 d8eP          ZQ G d9 d:eP          ZR G d; d<eP          ZSejT        U                    e3 d=>           G d? d@                      ZV G dA dB          ZW G dC dD          ZX G dE dFeX          ZY G dG dHeX          ZZ G dI dJeX          Z[ G dK dLeX          Z\ G dM dNeX          Z] G dO dPeX          Z^ G dQ dR          Z_ G dS dTe_          Z` G dU dVe`          Za G dW dXe`          Zb G dY dZe_          Zc G d[ d\eDeE          Zd G d] d^eE          Ze G d_ d`eDeE          Zf G da dbeC          Zg G dc dd          Zh G de dfeheC          Zi G dg dheheC          Zj G di djeheC          Zk G dk dleheC          Zl G dm dneheC          Zm G do dpeC          Zn G dq dren          Zo G ds dten          Zpdu Zqdv Zrdw Zsdx Ztdy Zudz Zvd{ Zwd| Zxd} Zyd~ Zzd Z{d Z|d Z}d Z~d Z G d d          Z G d d          Z G d d          Z G d d          Z G d deheC          Z G d deheC          Z G d deheC          Z G d deheC          Z G d deX          Z G d d          Z G d d          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Zd Zd Zd Zd Zd Zd 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                      t           j        j                                        } t	          j        | j                  | _        t	          j        | j                  | _        | S N)smdatasetsanes96loadnpasarrayendogexogdatas    h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/discrete/tests/test_discrete.pyload_anes96r4   E   sC    ;""$$DDJ''DJ
49%%DIK    c                      t           j        j                                        } t	          j        | j                  | _        t	          j        | j                  | _        | S r(   )r)   r*   spectorr,   r-   r.   r/   r0   r1   s    r3   load_spectorr8   K   sC    ;##%%DDJ''DJ
49%%DIKr5   c                      t           j        j                                        } t	          j        | j                  | _        t	          j        | j        t                    | _        | S )Ndtype)	r)   r*   randhier,   r-   r.   r/   r0   floatr1   s    r3   load_randhier>   R   sH    ;##%%DDJ''DJ
49E222DIKr5   c                    || 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         |z  }n(|\  }	}
t          j        |	d d d f         |z  |
f          }t!          ||d           |j                            |j                  }|j                            |j                  }t          |t                    s||j        z                      |          }n|\  }}}||j        z                      |          }t          j        |j                            |                    }t          j        |                    d                    }t          j        t          j        ||j        f          t          j        ||f          f          }t!          ||d           d S )Nr   绽|=rtol)res1modelr0   	score_obsparamssumscorer   	DECIMAL_9
isinstancer   r   score_factortupler-   column_stackr   hessianhessian_factorTdot
atleast_2dvstack)selfresrC   r0   jacsumrH   s1sfs2sf0sf1h1hfh2hf0hf1hf2h00h10h11s                       r3   	check_jacre   Y   s3   
{y:?DZ!!$+..22155FJT[))Ey111$*/9::  
		dk	*	*B		 	 	-	-Bb%   94[4S_c!!!T'lT13788B'''' 
		DK	(	(B		"	"4;	/	/Bb%   646kt$$S#TV|  &&mCEIIdOO,,mCGGAJJ''Yce55c
335 6 6 B''''''r5   c                    |                                  }| j                             | j                  }|                                 }|                                }t          |t          j        |          d           |                                }t          |t          j        |          d           |                     d          }|                                }t          |t          j        |          d           d S )Nr@   rA   varwhich)	get_distributionrD   rF   predictmeanr   r-   squeezerg   )rU   distrdistr1mm2vv2s          r3   check_distrrt      s      ""EY''
33FA	BArz"~~E2222	BArz"~~E2222%  A	BArz"~~E222222r5   c                       e Zd Zd ZdS )CheckModelMixinc                     | j         j        }t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nzis not supported, use eithermatchfoomethod)rC   rD   pytestraises
ValueErrorfit_regularized)rT   rD   s     r3   #test_fit_regularized_invalid_methodz3CheckModelMixin.test_fit_regularized_invalid_method   s    	]:-LMMM 	0 	0!!!///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   AAAN)__name__
__module____qualname__r    r5   r3   rv   rv      s#        
0 0 0 0 0r5   rv   c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zej                            dde          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )CheckModelResultszm
    res2 should be the test results from RModelWrap
    or the results as defined in model_results_data
    c                 Z    t          | j        j        | j        j        t                     d S r(   r   rC   rF   res2	DECIMAL_4rT   s    r3   test_paramszCheckModelResults.test_params   $    DI,di.>	JJJJJr5   c                 l    t          | j                                        | j        j        d           d S )Ngh㈵?rA   r   rC   conf_intr   r   s    r3   test_conf_intzCheckModelResults.test_conf_int   s0    	**,,di.@tLLLLLLr5   c                 Z    t          | j        j        | j        j        t
                     d S r(   )r   rC   tvaluesr   zr   r   s    r3   
test_zstatzCheckModelResults.test_zstat   #    DI-ty{IFFFFFr5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   rC   pvaluesr   r   r   s    r3   test_pvalueszCheckModelResults.test_pvalues   s$    DI-ty/@)LLLLLr5   c                     t          | j        d          st          j        d          t	          | j                                        | j        j        t                     d S )N
cov_paramszTODO: implement res2.cov_params)hasattrr   r}   skipr   rC   r   r   r   s    r3   test_cov_paramsz!CheckModelResults.test_cov_params   s_    ty,// 	A+?@@@DI0022 I0%	' 	' 	' 	' 	'r5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   llfr   r   r   s    r3   test_llfzCheckModelResults.test_llf   "    DIM49=)DDDDDr5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   llnullr   r   r   s    r3   test_llnullzCheckModelResults.test_llnull   r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   llrr   	DECIMAL_3r   s    r3   test_llrzCheckModelResults.test_llr   r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   
llr_pvaluer   r   r   s    r3   test_llr_pvaluez!CheckModelResults.test_llr_pvalue   s0    DI0 I0%	' 	' 	' 	' 	'r5   -Test has not been implemented for this class.Treasonstrictr~   c                     t           r(   NotImplementedErrorr   s    r3   test_normalized_cov_paramsz,CheckModelResults.test_normalized_cov_params   
     "!r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   rC   bser   r   r   s    r3   test_bsezCheckModelResults.test_bse   r   r5   c                     t          | j        j        | j        j                   t          | j        j        | j        j                   d S r(   )r	   rC   df_modelr   df_residr   s    r3   test_dofzCheckModelResults.test_dof   s<    TY');<<<TY');<<<<<r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   rC   aicr   r   r   s    r3   test_aiczCheckModelResults.test_aic   r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   rC   bicr   r   r   s    r3   test_biczCheckModelResults.test_bic   r   r5   c                     t          | j        j                            | j        j                  | j        j        t                     d S r(   )r   rC   rD   rk   rF   r   phatr   r   s    r3   test_predictzCheckModelResults.test_predict   s@    DIO33DI4DEE INI	7 	7 	7 	7 	7r5   c                     t          | j        j                            | j        j        d          | j        j        t                     d S )Nlinearrh   )r   rC   rD   rk   rF   r   yhatr   r   s    r3   test_predict_xbz!CheckModelResults.test_predict_xb   sL    DIO33DI4D"* 4 , , INI	7 	7 	7 	7 	7r5   c                     | j         j                            | j         j                                                  }t          || j         j        t                     d S r(   )rC   rD   
loglikeobsrF   rG   r   r   
DECIMAL_14)rT   llobssums     r3   test_loglikeobsz!CheckModelResults.test_loglikeobs   sF    9?--di.>??CCEEHdimZ@@@@@r5   c                 $    t          |            d S r(   re   r   s    r3   test_jaczCheckModelResults.test_jac       $r5   c                 :   | j                                         }|                                }t          |                                          }t          | j         j        t                    s'|dt          j	        | j         j
                  z   k    sJ d|v sJ d S )N   zCovariance Type:)rC   summaryas_latexlen
splitlinesrJ   rD   r   r-   sizerF   )rT   summltxn_liness       r3   test_summary_latexz$CheckModelResults.test_summary_latex   s    y  ""mmoocnn&&''$)/733 	=b2749+;#<#<<<<<<!S((((((r5   c                 .    t          | j                   d S r(   rt   rC   r   s    r3   
test_distrzCheckModelResults.test_distr       DIr5   N)r   r   r   __doc__r   r   r   r   r   r   r   r   r   r}   markxfailr   r   r   r   r   r   r   r   r   r   r   r   r   r5   r3   r   r      s        
K K KM M MG G GM M M' ' 'E E EK K KE E E' ' '
 [M"+>  @ @" "@ @"E E E= = =E E EE E E7 7 77 7 7
A A A
  ) ) )    r5   r   c                   J    e Zd Zd Zd Zd Zej        j        d             Z	dS )CheckBinaryResultsc                 h    t          | j                                        | j        j                   d S r(   )r   rC   
pred_tabler   r   s    r3   test_pred_tablez"CheckBinaryResults.test_pred_table   s+    49//11493GHHHHHr5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   	resid_devr   r   r   s    r3   test_resid_devz!CheckBinaryResults.test_resid_dev   s/    DI/1D	 	 	 	 	r5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   resid_generalizedr   r   r   s    r3   test_resid_generalizedz)CheckBinaryResults.test_resid_generalized  s4    DI7 I7	D 	D 	D 	D 	Dr5   c                     | j         j         d S r(   )rC   resid_responser   s    r3   test_resid_responsez&CheckBinaryResults.test_resid_response  s    	    r5   N)
r   r   r   r   r   r   r}   r   smoker   r   r5   r3   r   r      sh        I I I  D D D [! ! ! ! !r5   r   c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )CheckMargEffz9
    Test marginal effects (margeff) and its options
    c                 ~   | j                                         }t          |j        | j        j        t                     t          |j        | j        j        t                     |	                                }|d         j
        }t          ||j        d           t          |j        |j        j        df           d S )Ndy/dxvIh%<=rA      )rC   get_margeffr   margeffr   margeff_nodummy_dydxr   
margeff_semargeff_nodummy_dydx_sesummary_framevaluesr   r	   shaper   rT   meme_frameeffs       r3   test_nodummy_dydxoverallz%CheckMargEff.test_nodummy_dydxoverall  s    Y""$$BJ	.		; 	; 	;BM	19	> 	> 	> ##%%w&RZe4444X^bjoq%9:::::r5   c                     | j                             d          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nrl   at)	rC   r   r   r   r   margeff_nodummy_dydxmeanr   r  margeff_nodummy_dydxmean_serT   r  s     r3   test_nodummy_dydxmeanz"CheckMargEff.test_nodummy_dydxmean  si    Y""f"--BJ	2I	? 	? 	?BM	5y	B 	B 	B 	B 	Br5   c                     | j                             d          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nmedianr  )	rC   r   r   r   r   margeff_nodummy_dydxmedianr   r  margeff_nodummy_dydxmedian_ser  s     r3   test_nodummy_dydxmedianz$CheckMargEff.test_nodummy_dydxmedian#  sl    Y""h"//BJ	4i	A 	A 	ABM	7	D 	D 	D 	D 	Dr5   c                     | j                             d          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nzeror  )rC   r   r   r   r   margeff_nodummy_dydxzeror   r  r  s     r3   test_nodummy_dydxzeroz"CheckMargEff.test_nodummy_dydxzero*  sd    Y""f"--BJ	2I	? 	? 	?BM	2I	? 	? 	? 	? 	?r5   c                     | j                             d          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Ndyexr{   )	rC   r   r   r   r   margeff_nodummy_dyexr   r  margeff_nodummy_dyex_ser  s     r3   test_nodummy_dyexoverallz%CheckMargEff.test_nodummy_dyexoverall1  d    Y""&"11BJ	.		; 	; 	;BM	19	> 	> 	> 	> 	>r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nrl   r  r  r|   )	rC   r   r   r   r   margeff_nodummy_dyexmeanr   r  margeff_nodummy_dyexmean_ser  s     r3   test_nodummy_dyexmeanz"CheckMargEff.test_nodummy_dyexmean8  k    Y""fV"<<BJ	2I	? 	? 	?BM	5y	B 	B 	B 	B 	Br5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r  r#  )	rC   r   r   r   r   margeff_nodummy_dyexmedianr   r  margeff_nodummy_dyexmedian_ser  s     r3   test_nodummy_dyexmedianz$CheckMargEff.test_nodummy_dyexmedian?  n    Y""hv">>BJ	4i	A 	A 	ABM	7	D 	D 	D 	D 	Dr5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r  r#  )	rC   r   r   r   r   margeff_nodummy_dyexzeror   r  margeff_nodummy_dyexzero_ser  s     r3   test_nodummy_dyexzeroz"CheckMargEff.test_nodummy_dyexzeroF  r'  r5   c                     | j                             d          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Neydxr{   )	rC   r   r   r   r   margeff_nodummy_eydxr   r  margeff_nodummy_eydx_ser  s     r3   test_nodummy_eydxoverallz%CheckMargEff.test_nodummy_eydxoverallM  r!  r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nrl   r2  r#  )	rC   r   r   r   r   margeff_nodummy_eydxmeanr   r  margeff_nodummy_eydxmean_ser  s     r3   test_nodummy_eydxmeanz"CheckMargEff.test_nodummy_eydxmeanT  r'  r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r2  r#  )	rC   r   r   r   r   margeff_nodummy_eydxmedianr   r  margeff_nodummy_eydxmedian_ser  s     r3   test_nodummy_eydxmedianz$CheckMargEff.test_nodummy_eydxmedian[  r,  r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r2  r#  )	rC   r   r   r   r   margeff_nodummy_eydxzeror   r  margeff_nodummy_eydxzero_ser  s     r3   test_nodummy_eydxzeroz"CheckMargEff.test_nodummy_eydxzerob  r'  r5   c                     | j                             d          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Neyexr{   )	rC   r   r   r   r   margeff_nodummy_eyexr   r  margeff_nodummy_eyex_ser  s     r3   test_nodummy_eyexoverallz%CheckMargEff.test_nodummy_eyexoveralli  r!  r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nrl   rC  r#  )	rC   r   r   r   r   margeff_nodummy_eyexmeanr   r  margeff_nodummy_eyexmean_ser  s     r3   test_nodummy_eyexmeanz"CheckMargEff.test_nodummy_eyexmeanp  r'  r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  rC  r#  )	rC   r   r   r   r   margeff_nodummy_eyexmedianr   r  margeff_nodummy_eyexmedian_ser  s     r3   test_nodummy_eyexmedianz$CheckMargEff.test_nodummy_eyexmedianw  r,  r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  rC  r#  )	rC   r   r   r   r   margeff_nodummy_eyexzeror   r  margeff_nodummy_eyexzero_ser  s     r3   test_nodummy_eyexzeroz"CheckMargEff.test_nodummy_eyexzero~  r'  r5   c                     | j                             d          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S NTdummy)	rC   r   r   r   r   margeff_dummy_dydxr   r  margeff_dummy_dydx_ser  s     r3   test_dummy_dydxoverallz#CheckMargEff.test_dummy_dydxoverall  d    Y"""..BJ	,i	9 	9 	9BM	/	< 	< 	< 	< 	<r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nrl   T)r  rV  )	rC   r   r   r   r   margeff_dummy_dydxmeanr   r  margeff_dummy_dydxmean_ser  s     r3   test_dummy_dydxmeanz CheckMargEff.test_dummy_dydxmean  sk    Y""fD"99BJ	0)	= 	= 	=BM	3Y	@ 	@ 	@ 	@ 	@r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr2  T)r|   rV  )	rC   r   r   r   r   margeff_dummy_eydxr   r  margeff_dummy_eydx_ser  s     r3   test_dummy_eydxoverallz#CheckMargEff.test_dummy_eydxoverall  sf    Y""&"==BJ	,i	9 	9 	9BM	/	< 	< 	< 	< 	<r5   c                     | j                             ddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nrl   r2  T)r  r|   rV  )	rC   r   r   r   r   margeff_dummy_eydxmeanr   r  margeff_dummy_eydxmean_ser  s     r3   test_dummy_eydxmeanz CheckMargEff.test_dummy_eydxmean  sm    Y""fV4"HHBJ	0)	= 	= 	=BM	3Y	@ 	@ 	@ 	@ 	@r5   c                     | j                             d          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )NT)count)	rC   r   r   r   r   margeff_count_dydxr   r  margeff_count_dydx_ser  s     r3   test_count_dydxoverallz#CheckMargEff.test_count_dydxoverall  rZ  r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )NTrl   )rh  r  )	rC   r   r   r   r   margeff_count_dydxmeanr   r  margeff_count_dydxmean_ser  s     r3   test_count_dydxmeanz CheckMargEff.test_count_dydxmean  sk    Y""&"99BJ	0)	= 	= 	=BM	3Y	@ 	@ 	@ 	@ 	@r5   c                     | j                             dd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )NT)rh  rV  )	rC   r   r   r   r   margeff_count_dummy_dydxoverallr   r  "margeff_count_dummy_dydxoverall_ser  s     r3   test_count_dummy_dydxoverallz)CheckMargEff.test_count_dummy_dydxoverall  sn    Y""T"::BJ	99	F 	F 	FBM	<i	I 	I 	I 	I 	Ir5   c                     | j                             ddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )NTrl   )rh  rV  r  )	rC   r   r   r   r   margeff_count_dummy_dydxmeanr   r  margeff_count_dummy_dydxmean_ser  s     r3   test_count_dummy_dydxmeanz&CheckMargEff.test_count_dummy_dydxmean  sp    Y""Tf"EEBJ	6		C 	C 	CBM	99	F 	F 	F 	F 	Fr5   N)r   r   r   r   r  r  r  r  r   r&  r+  r0  r5  r9  r=  rA  rF  rJ  rN  rR  rY  r^  rb  rf  rk  ro  rs  rw  r   r5   r3   r   r   
  s        
; 
; 
;B B BD D D? ? ?> > >B B BD D DB B B> > >B B BD D DB B B> > >B B BD D DB B B< < <@ @ @< < <@ @ @< < <@ @ @I I IF F F F Fr5   r   c                   *    e Zd Zed             Zd ZdS )TestProbitNewtonc                     t                      }t          j        |j        d          |_        t	          |j        |j                                      dd          | _        t          j	        }|| _
        d S NFprependnewtonr   r|   dispr8   r)   add_constantr0   r   r/   fitrC   r    probitr   clsr2   r   s      r3   setup_classzTestProbitNewton.setup_class  s]    ~~ODIu===	$*di0044H14MM~r5   c                    | j         j        j        }| j         j        j        }t	          j        t          |                    }t          j        t          d          5  t          |||           d d d            d S # 1 swxY w Y   d S )Nzunknown kwargsrx   )weights)rC   rD   r/   r0   r-   onesr   r}   warnsr   r   )rT   r/   r0   r   s       r3   test_init_kwargsz!TestProbitNewton.test_init_kwargs  s    	%y#GCJJ\,.>??? 	+ 	+5$****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   A??BBN)r   r   r   classmethodr  r  r   r5   r3   ry  ry    s<          [+ + + + +r5   ry  c                   $    e Zd Zed             ZdS )TestProbitBFGSc                     t                      }t          j        |j        d          |_        t	          |j        |j                                      dd          | _        t          j	        }|| _
        d S NFr|  bfgsr   r  r  r  s      r3   r  zTestProbitBFGS.setup_class  sd    ~~ODIu===	$*di0044F 5  ~r5   Nr   r   r   r  r  r   r5   r3   r  r    s-          [  r5   r  c                   $    e Zd Zed             ZdS )TestProbitNMc                     t                      }t          j        |j        d          |_        t          j        }|| _        t          |j        |j                  	                    ddd          | _
        d S )NFr|  nmr     r|   r  maxiterr8   r)   r  r0   r    r  r   r   r/   r  rC   r  s      r3   r  zTestProbitNM.setup_class  sf    ~~ODIu===	~$*di0044DC 5 ! !r5   Nr  r   r5   r3   r  r    s-        ! ! [! ! !r5   r  c                   $    e Zd Zed             ZdS )TestProbitPowellc                     t                      }t          j        |j        d          |_        t          j        }|| _        t          |j        |j                  	                    ddd          | _
        d S )NFr|  powellr   :0yE>)r|   r  ftolr  r  s      r3   r  zTestProbitPowell.setup_class  sf    ~~ODIu===	~$*di0044H 5  r5   Nr  r   r5   r3   r  r    s-          [  r5   r  c                   $    e Zd Zed             ZdS )TestProbitCGc                 >   t                      }t          j        |j        d          |_        t          j        }|| _        ddlm}  ||j                  } ||j                  }t          |j
        |                              dddd          }|                    |j                  }t          ||j        d	d
           t          |j
        |j                                      |ddd	d          | _        t!          | j        j        d         d           d S )NFr|  r   )StandardizeTransformcg  r  )r|   r  r  gtolh㈵>ư>rB   atol)start_paramsr|   r  r  r  fcallsd   )r8   r)   r  r0   r    r  r   !statsmodels.tools.transform_modelr  r   r/   r  transform_paramsrF   r   rC   r   mle_retvals)r  r2   r   r  transfexog_stres1_str  s           r3   r  zTestProbitCG.setup_class  s.   ~~ODIu===	~ 	KJJJJJ%%di00&## " ""%#T4+0 #& #2 #2 	 ..w~>>dk4HHHH$*)% %%(Sl04d.3! &) &= &= 	
 	#(.x8#>>>>>r5   Nr  r   r5   r3   r  r    s-        ? ? [? ? ?r5   r  c                   $    e Zd Zed             ZdS )TestProbitNCGc                     t                      }t          j        |j        d          |_        t          j        }|| _        t          |j        |j                  	                    dddd          | _
        d S )NFr|  ncgr   r  )r|   r  avextolwarn_convergencer  r  s      r3   r  zTestProbitNCG.setup_class  sk    ~~ODIu===	~$*di0044E:;TFK 5 M Mr5   Nr  r   r5   r3   r  r    s2        M M [M M Mr5   r  c                   $    e Zd Zed             ZdS )TestProbitBasinhoppingc                 2   t                      }t          j        |j        d          |_        t          j        }|| _        t          |j        |j                  j	        }t          j                            d            |dddddd	
          | _        d S )NFr|  r   basinhoppingr      zL-BFGS-Br  )r|   tol)r|   r  niter	minimizer)r8   r)   r  r0   r    r  r   r   r/   r  r-   randomseedrC   r  r2   r   r  s       r3   r  z"TestProbitBasinhopping.setup_class   s    ~~ODIu===	~TZ++/
	q3n1A.8$"G"GI I Ir5   Nr  r   r5   r3   r  r    s2        I I [I I Ir5   r  c                   $    e Zd Zed             ZdS )TestProbitMinimizeDefaultc                     t                      }t          j        |j        d          |_        t          j        }|| _        t          |j        |j                  j	        } |dddd          | _
        d S )NFr|  minimizer   r  r  )r|   r  r  r  r  r  s       r3   r  z%TestProbitMinimizeDefault.setup_class.  se    ~~ODIu===	~TZ++/3jqFFFr5   Nr  r   r5   r3   r  r  ,  s2        G G [G G Gr5   r  c                   $    e Zd Zed             ZdS )TestProbitMinimizeDoglegc                     t                      }t          j        |j        d          |_        t          j        }|| _        t          |j        |j                  j	        } |ddddd          | _
        d S )	NFr|  r  r   r  r  dogleg)r|   r  r  r  
min_methodr  r  s       r3   r  z$TestProbitMinimizeDogleg.setup_class:  sn    ~~ODIu===	~TZ++/3jq$,. . .r5   Nr  r   r5   r3   r  r  8  s-        . . [. . .r5   r  c                   $    e Zd Zed             ZdS )#TestProbitMinimizeAdditionalOptionsc                     t                      }t          j        |j        d          |_        t          j        }|| _        t          |j        |j                  	                    dddddd          | _
        d S )	NFr|  r  r   r  zNelder-Mead-C6?)r|   r  r  r  xatolfatolr  r  s      r3   r  z/TestProbitMinimizeAdditionalOptions.setup_classG  sp    ~~ODIu===	~$*di0044JQ=@@M;?t 5 M Mr5   Nr  r   r5   r3   r  r  E  s2        M M [M M Mr5   r  c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	CheckLikelihoodModelL1z>
    For testing results generated with L1 regularization
    c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   z"CheckLikelihoodModelL1.test_paramsV  r   r5   c                 t    t          | j                                        | j        j        t                     d S r(   )r   rC   r   r   r   r   s    r3   r   z$CheckLikelihoodModelL1.test_conf_intY  s=    	""$$di&8)	E 	E 	E 	E 	Er5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   zCheckLikelihoodModelL1.test_bse]  r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   
nnz_paramsr   r   r   s    r3   test_nnz_paramsz&CheckLikelihoodModelL1.test_nnz_params`  s4    	$di&:I	G 	G 	G 	G 	Gr5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   zCheckLikelihoodModelL1.test_aicd  -    	ty}i	9 	9 	9 	9 	9r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   zCheckLikelihoodModelL1.test_bich  r  r5   N)
r   r   r   r   r   r   r   r  r   r   r   r5   r3   r  r  R  s         K K KE E EE E EG G G9 9 99 9 9 9 9r5   r  c                   *    e Zd Zed             Zd ZdS )TestProbitL1c           	      &   t                      }t          j        |j        d          |_        t	          j        g d          }t          |j        |j                                      d|ddddd	
          | _	        t          j        }|| _        d S )NTr|  )皙?皙?g333333?r"   l1r   auto{Gz?r@   r  )r|   alphar  	trim_modeauto_trim_tolaccr  )r8   r)   r  r0   r-   arrayr   r/   r   rC   r   r  r   )r  r2   r  r   s       r3   r  zTestProbitL1.setup_classo  s    ~~ODIt<<<	,,,--$*di00@@u1E4 A 9 9  r5   c                 t    t          | j                                        | j        j        t                     d S r(   r   rC   r   r   r   r   s    r3   r   zTestProbitL1.test_cov_paramsz  =    	$$&&	(<i	I 	I 	I 	I 	Ir5   Nr   r   r   r  r  r   r   r5   r3   r  r  m  A          [I I I I Ir5   r  c                   $    e Zd Zed             ZdS )TestMNLogitL1c                 T   t                      }|j        }t          j        |d          }t          j        |j        |          }dt          j        |j        dz
  |j	        f          z  }d|dd d f<   |
                    d|dd	d
d          | _        t          j        }|| _        d S )NFr|        $@r   r   r  r  r  r@   )r|   r  r  r  r  r  )r4   r0   r)   r  r   r/   r-   r  JKr   rC   r   mnlogitr   )r  	anes_data	anes_exog
mlogit_modr  r   s         r3   r  zTestMNLogitL1.setup_class  s    MM	N	OIu===	Z	;;
bgz|a/>???bd--5F$ . # # !r5   Nr  r   r5   r3   r  r    s-          [  r5   r  c                   *    e Zd Zed             Zd ZdS )TestLogitL1c           	      @   t                      }t          j        |j        d          |_        dt	          j        g d          z  | _        t          |j        |j                  	                    d| j        dddd	d
          | _
        t          j        }|| _        d S )NTr|  r%   )              ?r  r  r  r   r   r  r@   r  )r|   r  r  r  size_trim_tolr  r  )r8   r)   r  r0   r-   r  r  r   r/   r   rC   r   logitr   r  s      r3   r  zTestLogitL1.setup_class  s    ~~ODIt<<<	!1!1!1222	TY//??syqFE4 @ 9 9 r5   c                 t    t          | j                                        | j        j        t                     d S r(   r  r   s    r3   r   zTestLogitL1.test_cov_params  r  r5   Nr  r   r5   r3   r  r    r  r5   r  1Skipped test_cvxopt since cvxopt is not available)r   c                   *    e Zd Zed             Zd ZdS )
TestCVXOPTc                    t           st          j        d           t          j        j                                        | _        t          j	        | j        j
                  | j        _
        t          j	        | j        j                  | j        _        t          j        | j        j        d          | j        _        d S )Nr  Tr|  )
has_cvxoptr}   r   r)   r*   r7   r,   r2   r-   r.   r/   r0   r  r  s    r3   r  zTestCVXOPT.setup_class  s     	MKKLLL;&++--CHN33
38=11tDDDr5   c           	         dt          j        g d          z  | _        t          | j        j        | j        j                                      d| j        dddd          }t          | j        j        | j        j                                      d	| j        dddd
d          }t          |j	        |j	        t                     d S )N      @)r   r   r   r  r  r   r@   r  r  r|   r  r  r  r  r  l1_cvxopt_cp{Gz?)r|   r  r  abstolr  r  r  )r-   r  r  r   r2   r/   r0   r   r   rF   r   )rT   	res_slsqp
res_cvxopts      r3   test_cvxopt_versus_slsqpz#TestCVXOPT.test_cvxopt_versus_slsqp  s    "(===111
$)/49>::JJtzud K  	 49?DIN;;KK!!ED$ L @ @
 	I,j.?KKKKKr5   N)r   r   r   r  r  r  r   r5   r3   r  r    sF         E E [E	L 	L 	L 	L 	Lr5   r  c                   *    e Zd Zed             Zd ZdS )TestSweepAlphaL1c                    t                      }t          j        |j        d          |_        t	          |j        |j                  | _        t          j        g dg dg dg          | _	        t          j        | _        d S )NTr|  )r  r  r  r  )皙?r        ?r  )r  r  r   r   )r8   r)   r  r0   r   r/   rD   r-   r  alphasr   sweeprC   r  r2   s     r3   r  zTestSweepAlphaL1.setup_class  s{    ~~ODIt<<<	$*di00	X(((((($$$&' '
 #r5   c           	          t          d          D ]^}| j        |d d f         }| j                            d|dddd          }t	          |j        | j        j        |         t                     _d S )Nr%   r  r   r@   offr  )r|   r  r  r  r  r  )ranger  rD   r   r   rF   rC   r   )rT   ir  r   s       r3   test_sweep_alphaz!TestSweepAlphaL1.test_sweep_alpha  s    q 	M 	MAK111%E:--u1%#T . 3 3D  TY-=a-@)LLLL	M 	Mr5   N)r   r   r   r  r  r!  r   r5   r3   r  r    sA        $ $ [$M M M M Mr5   r  c                   6    e Zd ZdZd Zd Zd Zd Zd Z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                    | j         }t          | j        j        d |         | j        j        d |         t
                     | j        j        j        j        d         }t          d| j        j        ||         t
                     d S )Nr   r   )	rp   r   	res_unregrF   res_regr   rD   r0   r  )rT   rp   kvarss      r3   r   z CheckL1Compatability.test_params  s~    FN!"1"%t|':2A2'>		K 	K 	K "'-a0At|21U7;YGGGGGr5   c                     | j         }t          | j                                        d |d |f         | j                                        d |d |f         t
                     d S r(   )rp   r   r%  r   r&  	DECIMAL_1)rT   rp   s     r3   r   z$CheckL1Compatability.test_cov_params  sl    FN%%''BQB/L##%%bqb"1"f-	 	 	 	 	r5   c                     t          | j        j        | j        j                   t          | j        j        | j        j                   d S r(   )r	   r%  r   r&  r   r   s    r3   test_dfzCheckL1Compatability.test_df  s<    T^,dl.CDDDT^,dl.CDDDDDr5   c                    | j         }| j        }t          | dd          }| j                            t          j        t          | j        j                                      }| j	                            t          j        ||z                       }t          |j        d |         |j        d |         t                     t          |j        d |         |j        d |         t                     t          t
          j        |j        |                    t          |j        d |         |j        d |         d           t          t
          j        |j        |                    d S )Nk_extrar   g~jth?r  )rp   r'  getattrr%  t_testr-   eyer   rF   r&  r   effectr   sdnanr   tvalue)rT   rp   r'  extrat_unregt_regs         r3   test_t_testz CheckL1Compatability.test_t_test  s   F
i++.''s4>3H/I/I(J(JKK##BF55=$9$9::GN2A2.RaR0@)LLLGJrrNEHRaRL)DDDBFEHQK000rr*EL!,<4HHHHBFELO44444r5   c                    | j         }| j        }t          | dd          }| j                            t          j        t          | j        j                            d |                   }| j	                            t          j        ||z             d |                   }t          |j        |j        dd           t          |j        |j        t                     d S )Nr-  r   giUMu>MbP?r  )rp   r'  r/  r%  f_testr-   r1  r   rF   r&  r   fvaluer   pvaluer   )rT   rp   r'  r6  f_unregf_regs         r3   test_f_testz CheckL1Compatability.test_f_test  s    F
i++.''s4>3H/I/I(J(J2A2(NOO##BF55=$9$9"1"$=>>4dKKKKGNEL)DDDDDr5   c                 x    | j         }t          t          | j        j        t          j        |                     d S r(   )r'  r
   r   r&  r<  r-   r1  )rT   r'  s     r3   test_bad_r_matrixz&CheckL1Compatability.test_bad_r_matrix  s.    
j$,"5rve}}FFFFFr5   N)
r   r   r   r   r   r   r+  r9  rA  rC  r   r5   r3   r#  r#    s         
H H H  E E E5 5 5E E EG G G G Gr5   r#  c                   $    e Zd Zed             ZdS )TestPoissonL1Compatabilityc                 p   d| _         d| _        t                      }|j                            t
                                        t          |j                  d          }t          j	        |d          }|d d d | j        f         }t          j
        |j        |          }|                    dd          | _        dt          |j                  z  t          j        | j                   z  }d	|d | j        <   t          j
        |j        |                              d
|dddd          | _        d S )Nr"      r  Tr|  r~  Fr  r   r  r@     r  r  )r'  rp   r>   r0   viewr=   reshaper   r)   r  r   r/   r  r%  r-   r  r   r&  )r  	rand_data	rand_exogexog_no_PSI	mod_unregr  s         r3   r  z&TestPoissonL1Compatability.setup_class
  s   	 NN	N''..66s9>7J7JBOO	OIt<<<	6CE6	*Jy<<	!XEBBS)))BGCI,>,>>fsufj)<<LLu5eT M  r5   Nr  r   r5   r3   rE  rE    s-          [  r5   rE  c                   $    e Zd Zed             ZdS )#TestNegativeBinomialL1Compatabilityc                    d| _         d| _        t                      }|j                            t
                                        t          |j                  d          }||                    d          z
  |	                    d          z  }t          j        |d          }|d d d | j        f         }t          j        |j        |          }|                    dd	          | _        dt          |j                  z  t!          j        | j         d
z             z  }d|d | j        <   d|d<   t          j        |j        |          }|                    d|dddd          | _        d
| _        d S )Nr"   rG  r  r   Tr|  r~  Fr  r   r  r@   rH  r  r  )r'  rp   r>   r0   rI  r=   rJ  r   rl   stdr)   r  r   r/   r  r%  r-   r  r   r&  r-  r  rK  rL  rand_exog_strM  rN  r  mod_regs           r3   r  z/TestNegativeBinomialL1Compatability.setup_class  sR   	 NN	N''..66s9>7J7JBOO	!INN1$5$55q9I9IIOL$???	6CE6	*'	EE	!XEBBS)))BGCIM,B,BBfsufb	%ioyAA--u5eT .   r5   Nr  r   r5   r3   rP  rP    s-          [  r5   rP  c                   $    e Zd Zed             ZdS )&TestNegativeBinomialGeoL1Compatabilityc                    d| _         d| _        t                      }|j                            t
                                        t          |j                  d          }t          j	        |d          }|d d d | j        f         }t          j
        |j        |d          }|                    dd	
          | _        dt          |j                  z  t          j        | j                   z  }d|d | j        <   t          j
        |j        |d          }|                    d|d	ddd          | _        t%          |j        d           d S )Nr"   rG  r  Tr|  	geometricloglike_methodr~  Fr  r   r  r@   rH  r  r  )r'  rp   r>   r0   rI  r=   rJ  r   r)   r  r   r/   r  r%  r-   r  r   r&  r	   r[  )r  rK  rL  rM  rN  r  rU  s          r3   r  z2TestNegativeBinomialGeoL1Compatability.setup_class9  sJ   	 NN	N''..66s9>7J7JBOO	OIt<<<	6CE6	*'	8CE E E	!XEBBS)))BGCI,>,>>fsuf%ioy5@B B B--u5eT .   	W+[99999r5   Nr  r   r5   r3   rW  rW  7  s-        : : [: : :r5   rW  c                   $    e Zd Zed             ZdS )TestLogitL1Compatabilityc                    d| _         d| _        t                      }t          j        |j        d          |_        t          j        g d          }t          |j	        |j                  
                    d|ddd	d
          | _        |j        d d d | j        f         }t          |j	        |                              dd          | _        d S Nr$   r%   Tr|  r   r   r   r"   r  r   V瞯<rH  r  r  r  r  )r'  rp   r8   r)   r  r0   r-   r  r   r/   r   r&  r  r%  r  r2   r  rM  s       r3   r  z$TestLogitL1Compatability.setup_classS  s    	~~ODIt<<<	''DJ	22BBu1% C   i6CE6	*dj+66::u:MMr5   Nr  r   r5   r3   r]  r]  Q  s2        N N [N N Nr5   r]  c                   p    e Zd Zed             Zd Zej                            d          d             Z	dS )TestMNLogitL1Compatabilityc                    d| _         d| _        t                      }t          j        |j        d          |_        t          j        g d          }t          |j	        |j                  
                    d|ddd	d
          | _        |j        d d d | j        f         }t          |j	        |                              dddd          | _        d S )Nr$   r%   Tr|  r`  r  r   ra  rH  r  r  r  r  r  r  r|   r  )r'  rp   r8   r)   r  r0   r-   r  r   r/   r   r&  r  r%  rc  s       r3   r  z&TestMNLogitL1Compatability.setup_classe  s    	~~ODIt<<<	''dj$)44DDu1% E   i6CE6	*
K88<<vt = = =r5   c                    | j         }| j        }| j                            t	          j        |                    }| j                            t	          j        |                    }t          |j        |j        d |         t                     t          |j
        |j
        d |         t                     t          t          j        |j
        |                    t          |j        |j        d |         t                     d S r(   )rp   r'  r%  r0  r-   r1  r&  r   r2  r   r3  r4  r5  )rT   rp   r'  r7  r8  s        r3   r9  z&TestMNLogitL1Compatability.test_t_testt  s    F
.''q		22##BF5MM22GNEL!,<iHHHGJ!i@@@BFEHQK000GNEL!,<iHHHHHr5   zSkipped test_f_test for MNLogitc                     d S r(   r   r   s    r3   rA  z&TestMNLogitL1Compatability.test_f_test~  s    r5   N)
r   r   r   r  r  r9  r}   r   r   rA  r   r5   r3   re  re  c  sl        = = [=I I I [788  98  r5   re  c                   $    e Zd Zed             ZdS )TestProbitL1Compatabilityc                    d| _         d| _        t                      }t          j        |j        d          |_        t          j        g d          }t          |j	        |j                  
                    d|ddd	d
          | _        |j        d d d | j        f         }t          |j	        |                              dd          | _        d S r_  )r'  rp   r8   r)   r  r0   r-   r  r   r/   r   r&  r  r%  rc  s       r3   r  z%TestProbitL1Compatability.setup_class  s    	~~ODIt<<<	''TZ33CCu1% D   i6CE6	*tz;77;;;NNr5   Nr  r   r5   r3   rk  rk    s2        O O [O O Or5   rk  c                       e Zd ZdZ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                 ,   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u            d S )N	convergedT)r   rC   rF   r   r   r   r   r   r   r   r   r   r   r   r  r   s    r3   test_basic_resultszCompareL1.test_basic_results  s   DI,di.>	JJJDI0022DI4H4H4J4J%	' 	' 	'DI..00$)2D2D2F2F%	' 	' 	'DI-ty/@)LLLDI0022DI4H4H4J4J%	' 	' 	'DIM49=)DDDDIM49=)DDDDIM49=)DDDDIM49=)DDDDI-ty/@)LLL	%k2d:;;;;;r5   N)r   r   r   r   rq  r   r5   r3   rn  rn    s-         < < < < <r5   rn  c                       e Zd ZdZd ZdS )CompareL11Dz?
    Check t and f tests.  This only works for 1-d results
    c                    t          j        t          | j        j                                                            }t          | j                            |          j        | j	                            |          j        t                     t          | j                            |          j        | j	                            |          j        t                     d S r(   )r-   r1  r   rC   rF   ravelr   r0  r>  r   r   r<  )rT   restrictmats     r3   
test_testszCompareL11D.test_tests  s    fS!1!7!7!9!9::;;DI,,[99@ I,,[99@)	M 	M 	MDI,,[99@ I,,[99@)	M 	M 	M 	M 	Mr5   N)r   r   r   r   rw  r   r5   r3   rs  rs    s2         M M M M Mr5   rs  c                   *    e Zd Zed             Zd ZdS )TestL1AlphaZeroLogitc           	      <   t                      }t          j        |j        d          |_        t	          |j        |j                                      ddddddd	          | _        t	          |j        |j                                      dd
          | _	        d S NTr|  r  r   ra  r  r  r  r|   r  r  r  r  r  r  rb  )
r8   r)   r  r0   r   r/   r   rC   r  r   r  s     r3   r  z TestL1AlphaZeroLogit.setup_class  s    ~~ODIt<<<	TY//??11%  @ 6 6 TY//333FFr5   c           	          | j         j                            ddddddd          }t          |j        d         d	u            d S )
Nr  r   ra  r   r  r  r|  rp  F)rC   rD   r   r   r  )rT   rU   s     r3   test_convergedz#TestL1AlphaZeroLogit.test_converged  sR    io--11%  . 6 6
 	,566666r5   N)r   r   r   r  r  r~  r   r5   r3   ry  ry    sA         G G [G7 7 7 7 7r5   ry  c                   $    e Zd Zed             ZdS )TestL1AlphaZeroProbitc           	      <   t                      }t          j        |j        d          |_        t	          |j        |j                                      ddddddd	          | _        t	          |j        |j                                      dd
          | _	        d S r{  )
r8   r)   r  r0   r   r/   r   rC   r  r   r  s     r3   r  z!TestL1AlphaZeroProbit.setup_class  s    ~~ODIt<<<	$*di00@@11%  A 6 6 $*di0044!4GGr5   Nr  r   r5   r3   r  r    s4         H H [H H Hr5   r  c                   $    e Zd Zed             ZdS )TestL1AlphaZeroMNLogitc           	      @   t                      }t          j        |j        d          |_        t	          |j        |j                                      ddddddd	          | _        t	          |j        |j                                      ddd
d          | _	        d S )NFr|  r  r   ra  r  r  r  r|  r  rg  )
r4   r)   r  r0   r   r/   r   rC   r  r   r  s     r3   r  z"TestL1AlphaZeroMNLogit.setup_class  s    }}ODIu===	4:ty11AA11%  B 6 6 4:ty115515=C>B 6 D Dr5   Nr  r   r5   r3   r  r    s2        D D [D D Dr5   r  c                   H    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
dS )	TestLogitNewtonc                     t                      }t          j        |j        d          |_        t	          |j        |j                                      dd          | _        t          j	        }|| _
        d S r{  )r8   r)   r  r0   r   r/   r  rC   r    r  r   r  s      r3   r  zTestLogitNewton.setup_class  s]    ~~ODIu===	TY//338!3LL}r5   c                 P    t          | j        j        | j        j        d           d S Nr  r   rC   resid_pearsonr   r   s    r3   test_resid_pearsonz"TestLogitNewton.test_resid_pearson  /    DI3 I3Q	8 	8 	8 	8 	8r5   c                     | j                             ddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )N       @r  r   r&   atexog	rC   r   r   r   r   margeff_nodummy_atexog1r   r  margeff_nodummy_atexog1_ser  s     r3   test_nodummy_exog1z"TestLogitNewton.test_nodummy_exog1  q    Y""s*;*;"<<BJ	19	> 	> 	>BM	4i	A 	A 	A 	A 	Ar5   c                     | j                             dddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )N      5@r   r   r&   rl   r  r  	rC   r   r   r   r   margeff_nodummy_atexog2r   r  margeff_nodummy_atexog2_ser  s     r3   test_nodummy_exog2z"TestLogitNewton.test_nodummy_exog2  s    Y""s*:*:v"FFBJ	19	> 	> 	>BM	4i	A 	A 	A 	A 	Ar5   c                     | j                             dddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r  r  Tr  rV  	rC   r   r   r   r   margeff_dummy_atexog1r   r  margeff_dummy_atexog1_ser  s     r3   test_dummy_exog1z TestLogitNewton.test_dummy_exog1  n    Y""s*;*;4"HHBJ	/	< 	< 	<BM	2I	? 	? 	? 	? 	?r5   c                     | j                             ddddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r   r  rl   Tr  r  rV  	rC   r   r   r   r   margeff_dummy_atexog2r   r  margeff_dummy_atexog2_ser  s     r3   test_dummy_exog2z TestLogitNewton.test_dummy_exog2
  w    Y""s*:*:v #  BJ	/	< 	< 	<BM	2I	? 	? 	? 	? 	?r5   c                 b   d}d}d}d}dd l mc m} | j                                        }| j        j        j        }t          j        |d|z
  f          }t          j        |d|z
  f          }	g d}
t          j	        |
          d d         }|
                    ||	||d 	          }t          |j        |d
           t          |j        |           t          |j        |d           t          |j        j        |df           t          |j                            d          |
           d S )Nr  g'8?g!u?r%   r   r   )rG  r   rG  r   r   r  )sort_varbinsdfgdy=rA   giUMu?r.  r&   ) statsmodels.stats.diagnostic_genr   diagnostic_genrC   rk   rD   r/   r-   rM   cumsumtest_chisquare_binningr   	statisticr	   r  r>  freqsr  rG   )rT   n_groupschi2r>  r  diafittedencountsexpectedgroup_sizesindicesrU   s                r3   test_diagnosticzTestLogitNewton.test_diagnostic  sE     666666666""$$Y_""a"f..?FAJ#788%oo)K(("-((F.5$ ) @ @t%8888SVR   
F6666SY_xm444SY]]1%%{33333r5   N)r   r   r   r  r  r  r  r  r  r  r  r   r5   r3   r  r    s          [8 8 8A A AA A A? ? ?? ? ?4 4 4 4 4r5   r  c                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )TestLogitNewtonPrependc                 v   t                      }t          j        |j        d          |_        t	          |j        |j                                      dd          | _        t          j	        }|| _
        t          j        t          j        t          | j        j                            d          | _        d S )NTr|  r~  r   r  r   )r8   r)   r  r0   r   r/   r  rC   r    r  r   r-   rollaranger   rF   slicer  s      r3   r  z"TestLogitNewtonPrepend.setup_class0  s    ~~ODIt<<<	TY//338!3LL}GBIc#(/&:&:;;Q??			r5   c                 P    t          | j        j        | j        j        d           d S r  r  r   s    r3   r  z)TestLogitNewtonPrepend.test_resid_pearson9  r  r5   c                     | j                             ddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r  r   r%   r  r  r  s     r3   r  z)TestLogitNewtonPrepend.test_nodummy_exog1=  r  r5   c                     | j                             dddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r   r&   r%   rl   r  r  r  s     r3   r  z)TestLogitNewtonPrepend.test_nodummy_exog2D  r  r5   c                     | j                             dddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r  r  Tr  r  r  s     r3   r  z'TestLogitNewtonPrepend.test_dummy_exog1K  r  r5   c                     | j                             ddddd          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S )Nr  r   r  rl   Tr  r  r  s     r3   r  z'TestLogitNewtonPrepend.test_dummy_exog2R  r  r5   N)
r   r   r   r  r  r  r  r  r  r  r   r5   r3   r  r  ,  s         @ @ [@8 8 8A A AA A A? ? ?? ? ? ? ?r5   r  c                   $    e Zd Zed             ZdS )TestLogitBFGSc                     t                      }t          j        |j        d          |_        t          j        }|| _        t          |j        |j                  	                    dd          | _
        d S r  )r8   r)   r  r0   r    r  r   r   r/   r  rC   r  s      r3   r  zTestLogitBFGS.setup_class]  s]    ~~ODIu===	}TY//3363JJr5   Nr  r   r5   r3   r  r  [  s2        K K [K K Kr5   r  c                        e Zd Zed             Zd Zd Zd Zd Ze	j
                            dd           fd	            Z xZS )
TestPoissonNewtonc                     t                      }t          j        |j        d          }t	          |j        |                              dd          | _        t          j	        }|| _
        d S r{  )r>   r)   r  r0   r   r/   r  rC   r   poissonr   r  r2   r0   r   s       r3   r  zTestPoissonNewton.setup_classh  sY    ~~ty%8884:t,,00q0IIr5   c                     | j                                         }t          |j        | j        j        t                     t          |j        | j        j        t                     d S r(   )	rC   r   r   r   r   margeff_nodummy_overallr   r  margeff_nodummy_overall_ser  s     r3   test_margeff_overallz&TestPoissonNewton.test_margeff_overallp  sd    Y""$$BJ	19	> 	> 	>BM	4i	A 	A 	A 	A 	Ar5   c                     | j                             d          }t          |j        | j        j        t                     t          |j        | j        j        t                     d S rT  )	rC   r   r   r   r   margeff_dummy_overallr   r  margeff_dummy_overall_ser  s     r3   test_margeff_dummy_overallz,TestPoissonNewton.test_margeff_dummy_overallw  sd    Y"""..BJ	/	< 	< 	<BM	2I	? 	? 	? 	? 	?r5   c                 P    t          | j        j        | j        j        d           d S )Nr&   )r   rC   residr   r   s    r3   
test_residzTestPoissonNewton.test_resid~  s"    DIOTY_a@@@@@r5   c                 Z   t           j                            t           j                            t                              }t           j                            |dd          }t          j        |d          }| j        	                                d d         }t          ||d           d S )Nresultszpredict_prob_poisson.csv,)	delimiterr     )ospathdirnameabspath__file__joinr-   loadtxtrC   predict_probr   )rT   cur_dirr  	probs_resprobss        r3   test_predict_probz#TestPoissonNewton.test_predict_prob  s    '//"'//(";";<<w||GY0JKKJts333	 	&&((#.E9a00000r5   +res2.cov_params is a zero-dim array of NoneTr   r   c                 H    t                                                       d S r(   superr   rT   	__class__s    r3   r   z!TestPoissonNewton.test_cov_params  !     	!!!!!r5   )r   r   r   r  r  r  r  r  r  r}   r   r   r   __classcell__r  s   @r3   r  r  f  s          [A A A? ? ?A A A1 1 1 [K"  $ $" " " "$ $" " " " "r5   r  c                   Z    e Zd Zej                            dde          d             ZdS )CheckNegBinMixinz.pvalues do not match, in some cases wrong sizeTr   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   zCheckNegBinMixin.test_pvalues  s2     	DI- I-%	' 	' 	' 	' 	'r5   N)r   r   r   r}   r   r   AssertionErrorr   r   r5   r3   r  r    sQ         [N">  ; ;' '; ;' ' 'r5   r  c                   T    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
S )TestNegativeBinomialNB2Newtonc                     t                      }t          j        |j        d          }t	          |j        |d                              dd          | _        t          j	        }|| _
        d S )NFr|  nb2r~  r   r  r>   r)   r  r0   r   r/   r  rC   r   negativebinomial_nb2_bfgsr   r  s       r3   r  z)TestNegativeBinomialNB2Newton.setup_class  s]    ~~ty%888#DJe<<@@WX@YY0r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   rC   r   r   r   r   s    r3   r   z&TestNegativeBinomialNB2Newton.test_bse  r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   z)TestNegativeBinomialNB2Newton.test_params  r   r5   c                     | j         j         t          | j         j        | j        j        t
                     t          | j         j        | j        j        t
                     d S r(   rC   r   r   lnalphar   r   lnalpha_std_errr   s    r3   
test_alphaz(TestNegativeBinomialNB2Newton.test_alpha  `    	DI-ty/@%	' 	' 	'DI5 I5y	B 	B 	B 	B 	Br5   c                 t    t          | j                                        | j        j        t                     d S r(   r   rC   r   r   r   r   s    r3   r   z+TestNegativeBinomialNB2Newton.test_conf_int  8    DI..00$)2D%	' 	' 	' 	' 	'r5   c                 j    t          | j        j        d d         | j        j        t                     d S Nr  r   rC   r   r   	DECIMAL_2r   s    r3   r   z(TestNegativeBinomialNB2Newton.test_zstat  8    DI-crc2DI4E%	' 	' 	' 	' 	'r5   c                 z    t          | j        j        d d         | j        j        d d         t                     d S Nr"   r   rC   fittedvaluesr   r   r   s    r3   test_fittedvaluesz/TestNegativeBinomialNB2Newton.test_fittedvalues  F    DI23B37 I23B37	D 	D 	D 	D 	Dr5   c                     t          | j                                        d d         t          j        | j        j        d d                   t                     d S r  r   rC   rk   r-   expr   r  r   r   s    r3   r   z*TestNegativeBinomialNB2Newton.test_predict  Y    DI--//4F49#9#2##>??	L 	L 	L 	L 	Lr5   c                     t          | j                            d          d d         | j        j        d d         t
                     d S Nr   rh   r"   r   rC   rk   r   r  r   r   s    r3   r   z-TestNegativeBinomialNB2Newton.test_predict_xb  T    DI--H-==crcB I23B37	D 	D 	D 	D 	Dr5   Nr   r   r   r  r  r   r   r  r   r   r  r   r   r   r5   r3   r  r    s          [E E EK K KB B B' ' '' ' 'D D DL L LD D D D Dr5   r  c                       e Zd Zed             Zd Zd Zd Zd Ze	j
                            dde          d	             Ze	j
                            dde          d
             ZdS )TestNegativeBinomialNB1Newtonc                     t                      }t          j        |j        d          }t	          |j        |d          }|                    ddd          | _        t          j	        }|| _
        d S )NFr|  nb1r~  r  r   r|   r  r  r>   r)   r  r0   r   r/   r  rC   r   negativebinomial_nb1_bfgsr   )r  r2   r0   rD   r   s        r3   r  z)TestNegativeBinomialNB1Newton.setup_class  s`    ~~ty%888 T59999Hc9BB0r5   c                 Z    t          | j        j        | j        j        t
                     d S r(   r   rC   r   r   r   r)  r   s    r3   r   z(TestNegativeBinomialNB1Newton.test_zstat  r   r5   c                     | j         j         t          | j         j        | j        j        d           t          | j         j        | j        j        t                     d S Nr%   rC   r   r   r  r   r  r   r   s    r3   test_lnalphaz*TestNegativeBinomialNB1Newton.test_lnalpha  Y    	DI-ty/@!DDDDI5 I5y	B 	B 	B 	B 	Br5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   z)TestNegativeBinomialNB1Newton.test_params  r   r5   c                 t    t          | j                                        | j        j        t                     d S r(   r   rC   r   r   r  r   s    r3   r   z+TestNegativeBinomialNB1Newton.test_conf_int  :     	DI..00$)2D%	' 	' 	' 	' 	'r5   r   Tr   c                     t           r(   r   r   s    r3   r   z*TestNegativeBinomialNB1Newton.test_predict  r   r5   c                     t           r(   r   r   s    r3   r   z-TestNegativeBinomialNB1Newton.test_predict_xb  r   r5   Nr   r   r   r  r  r   r4  r   r   r}   r   r   r   r   r   r   r5   r3   r)  r)    s          [G G GB B BK K K' ' ' [M"+>  @ @" "@ @" [M"+>  @ @" "@ @" " "r5   r)  c                   T    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
S )TestNegativeBinomialNB2BFGSc                     t                      }t          j        |j        d          }t	          |j        |d                              ddd          | _        t          j	        }|| _
        d S )NFr|  r  r  r   r  r  r  r  s       r3   r  z'TestNegativeBinomialNB2BFGS.setup_class  si    ~~ty%888#DJe<<@@7=A8< A > > 0r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r	  r   s    r3   r   z$TestNegativeBinomialNB2BFGS.test_bse  r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   z'TestNegativeBinomialNB2BFGS.test_params   r   r5   c                     | j         j         t          | j         j        | j        j        t
                     t          | j         j        | j        j        t
                     d S r(   r  r   s    r3   r  z&TestNegativeBinomialNB2BFGS.test_alpha  r  r5   c                 t    t          | j                                        | j        j        t                     d S r(   r  r   s    r3   r   z)TestNegativeBinomialNB2BFGS.test_conf_int
  r  r5   c                 j    t          | j        j        d d         | j        j        t                     d S r  r  r   s    r3   r   z&TestNegativeBinomialNB2BFGS.test_zstat  r  r5   c                 z    t          | j        j        d d         | j        j        d d         t                     d S r  r  r   s    r3   r  z-TestNegativeBinomialNB2BFGS.test_fittedvalues  r  r5   c                     t          | j                                        d d         t          j        | j        j        d d                   t                     d S r  r   r   s    r3   r   z(TestNegativeBinomialNB2BFGS.test_predict  r"  r5   c                     t          | j                            d          d d         | j        j        d d         t
                     d S r$  r%  r   s    r3   r   z+TestNegativeBinomialNB2BFGS.test_predict_xb  r&  r5   Nr'  r   r5   r3   r>  r>    s          [E E EK K KB B B' ' '' ' 'D D DL L LD D D D Dr5   r>  c                       e Zd Zed             Zd Zd Zd Zd Ze	j
                            dde          d	             Ze	j
                            dde          d
             ZdS )TestNegativeBinomialNB1BFGSc                     t                      }t          j        |j        d          }t	          |j        |d                              ddd          | _        t          j	        }|| _
        d S )NFr|  r+  r  r  r   r,  r-  r  s       r3   r  z'TestNegativeBinomialNB1BFGS.setup_class!  sk    ~~ty%888#DJe<<@@ILFG A I I 0r5   c                 Z    t          | j        j        | j        j        t
                     d S r(   r0  r   s    r3   r   z&TestNegativeBinomialNB1BFGS.test_zstat+  r   r5   c                     | j         j         t          | j         j        | j        j        d           t          | j         j        | j        j        t                     d S r2  r3  r   s    r3   r4  z(TestNegativeBinomialNB1BFGS.test_lnalpha.  r5  r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   z'TestNegativeBinomialNB1BFGS.test_params4  r   r5   c                 t    t          | j                                        | j        j        t                     d S r(   r8  r   s    r3   r   z)TestNegativeBinomialNB1BFGS.test_conf_int7  r9  r5   r   Tr   c                     t           r(   r   r   s    r3   r   z(TestNegativeBinomialNB1BFGS.test_predict=  r   r5   c                     t           r(   r   r   s    r3   r   z+TestNegativeBinomialNB1BFGS.test_predict_xbB  r   r5   Nr<  r   r5   r3   rI  rI    s          [G G GB B BK K K' ' ' [M"+>  @ @" "@ @" [M"+>  @ @" "@ @" " "r5   rI  c                   f    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd ZdS )!TestNegativeBinomialGeometricBFGSc                     t                      }t          j        |j        d          }t	          |j        |d          }|                    dd          | _        t          j	        }|| _
        d S )NFr|  rY  r  r   r  )r>   r)   r  r0   r   r/   r  rC   r   negativebinomial_geometric_bfgsr   r  r2   r0   modr   s        r3   r  z-TestNegativeBinomialGeometricBFGS.setup_classN  s^    ~~ty%888tz4==77&q7116r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_aicY  r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r   r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_bic\  r   r5   c                 t    t          | j                                        | j        j        t                     d S r(   r  r   s    r3   r   z/TestNegativeBinomialGeometricBFGS.test_conf_int_  r  r5   c                 z    t          | j        j        d d         | j        j        d d         t                     d S r  r  r   s    r3   r  z3TestNegativeBinomialGeometricBFGS.test_fittedvaluesc  r  r5   c                     t          | j                                        d d         t          j        | j        j        d d                   t                     d S r  r   r   s    r3   r   z.TestNegativeBinomialGeometricBFGS.test_predictg  r"  r5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   rF   r   r   r   s    r3   r   z-TestNegativeBinomialGeometricBFGS.test_paramsk  r   r5   c                     t          | j                            d          d d         | j        j        d d         t
                     d S r$  r%  r   s    r3   r   z1TestNegativeBinomialGeometricBFGS.test_predict_xbn  r&  r5   c                 Z    t          | j        j        | j        j        t
                     d S r(   r0  r   s    r3   r   z,TestNegativeBinomialGeometricBFGS.test_zstatr  r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   r   r   r)  r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_llfu  r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   )r   rC   r   r   r  r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_llrx  r   r5   c                 Z    t          | j        j        | j        j        t                     d S r(   r	  r   s    r3   r   z*TestNegativeBinomialGeometricBFGS.test_bse{  r   r5   N)r   r   r   r  r  r   r   r   r  r   r   r   r   r   r   r   r   r5   r3   rR  rR  H  s           [E E EE E E' ' 'D D DL L LK K KD D DG G GE E EE E EE E E E Er5   rR  c                        e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ej                            d	d
           fd            Zej                            dd
e           fd            Z xZS )CheckMNLogitBaseZeroc                    | j                                         }t          |j        | j        j        d           t          |j        | j        j        d           |                                }|d         j	        
                    |j        j        d          }t          ||j        d           t          |j        t          j        |j                  df           d S )Nr   r   Forderr   rA   )rC   r   r   r   r   margeff_dydx_overallr  margeff_dydx_overall_ser  r  rJ  r  r   r	   r-   r   r  s       r3   r  z)CheckMNLogitBaseZero.test_margeff_overall  s    Y""$$BJ	(FJJJBM49+LaPPP##%%w&..rz/?s.KKRZe4444X^bgbj&9&91%=>>>>>r5   c                     | j                             d          }t          |j        | j        j        d           t          |j        | j        j        d           d S )Nrl   r  rG  )rC   r   r   r   r   margeff_dydx_meanr  margeff_dydx_mean_ser  s     r3   test_margeff_meanz&CheckMNLogitBaseZero.test_margeff_mean  sR    Y""f"--BJ	(CQGGGBM49+I1MMMMMr5   c                 >   | j         }|j         d         }t          j        |j        |f          }t	          j        |d          }t          |j        |                              dd          }|	                    d          }t          |j        | j        j        d	           t          |j        | j        j        d	           |	                    dd
          }t          |j        | j        j        d           t          |j        | j        j        d	           d S )NvoteFr|  r~  r   r  TrU  r   r2  )rV  r|   r  )r2   r-   rM   r0   r)   r  r   r/   r  r   r   r   r   margeff_dydx_dummy_overallr  margeff_dydx_dummy_overall_semargeff_eydx_dummy_overallmargeff_eydx_dummy_overall_se)rT   r2   ro  r0   rU   r  s         r3   test_margeff_dummyz'CheckMNLogitBaseZero.test_margeff_dummy  s   yy 	4011tU333dj$''++8!+DD__4_((BJ	(L	 	 	BM	7	< 	< 	<__4_77BJ	(L	 	 	BM	7	< 	< 	< 	< 	<r5   c                 X    t          | j        j        j        | j        j                   d S r(   )r	   rC   rD   r  r   r   s    r3   test_jzCheckMNLogitBaseZero.test_j  #    TY_&	44444r5   c                 X    t          | j        j        j        | j        j                   d S r(   )r	   rC   rD   r  r   r   s    r3   test_kzCheckMNLogitBaseZero.test_k  rw  r5   c                 h    t          | j                            d d           d         g d           d S )Nr   )zy=1zy=2zy=3zy=4zy=5zy=6)r	   rC   _get_endog_namer   s    r3   test_endog_namesz%CheckMNLogitBaseZero.test_endog_names  sE    TY..tD99!<???	A 	A 	A 	A 	Ar5   c                    g d}t          | j                                                            d          |           t          | j                                                            d          t          j        |                     g dg dg dg dg dg d	g d
g}t          | j                                        |           d S )N(  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r  r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   r  r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r&   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r  r   r   r   r   r   r   r  r  r   r   r  r  r&   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r  r  r   r  r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r   r   r   r  r   r   r   r  r   r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   r   r   r   r   r  r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r  r  r  r   r   r   r   r   r   r  r   r   r   r&   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r   r  r   r   r  r   r   r  r   r   r   r   r   r   r   r  r   r   r   r  r&   r  r  r   r  r  r  r   r  r   r   r  r&   r   r  r   r   r   r   r  r   r   r   r   r   r   r   r   r  r   r   r   r   r  r&   r   r   r  r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r  r  r   r  r   r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r  r  r   r   r   r   r&   r   r   r   r  r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r  r   r   r   r&   r  r  r   r  r   r   r  r   r   r  r  r   r   r  r   r   r   r&   r  r   r  r   r&   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r   r   r   r  r   r   r   r   r  r   r   r   r   r   r   r  r   r   r   r   r   r  r   r   r   r   r   r  r   r  r&   r  r&   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r  r   r   )g     _@g     D@r  r  r        (@      3@)g     @S@g     @R@r  r  r  g      .@r~  )g     B@     E@r  r  r  r        @)r~        "@r  r  r  r  g      @)r  r  r  r  r        4@r  )g      6@      9@r  r  r  g      ?@g     Q@)r  r  r  r  r  g      2@g     a@)r   rC   rk   argmaxr   rG   r-   bincount)rT   preds     r3   r   z$CheckMNLogitBaseZero.test_pred_table  s    ,L ,L ,LZ 	49,,..55a88$??? 	49//1155a88"+d:K:KLLL BAAAAAAAAAAAAAAAAAAAAC 	49//11488888r5   c                 N    t          | j        j        | j        j                   d S r(   )r   rC   resid_misclassifiedr   r  r   s    r3   r  zCheckMNLogitBaseZero.test_resid  s!    498$)/JJJJJr5   r  Tr  c                 H    t                                                       d S r(   r  r  s    r3   r   z$CheckMNLogitBaseZero.test_cov_params  r  r5   r   r   c                 H    t                                                       d S r(   )r  r   r  s    r3   r   zCheckMNLogitBaseZero.test_distr  s!     	r5   )r   r   r   r  rm  rt  rv  ry  r|  r   r  r}   r   r   r   r   r   r  r  s   @r3   rc  rc    s2       ? ? ?N N N
< < <"5 5 55 5 5A A A=9 =9 =9~K K K [K"  $ $" " " "$ $" [M"+>  @ @   @ @    r5   rc  c                   $    e Zd Zed             ZdS )TestMNLogitNewtonBaseZeroc                     t                      x| _        }|j        }t          j        |d          }t          |j        |                              dd          | _        t          j
        }|| _        d S r{  )r4   r2   r0   r)   r  r   r/   r  rC   r   mnlogit_basezeror   r  s       r3   r  z%TestMNLogitNewtonBaseZero.setup_class  sf    %--'4ytU3334:t,,00q0II$r5   Nr  r   r5   r3   r  r    s-          [  r5   r  c                   $    e Zd Zed             ZdS )TestMNLogitLBFGSBaseZeroc           	         t                      x| _        }|j        }t          j        |d          }t          |j        |          }|                    dddddd|j        	          | _	        t          j        }|| _        d S )
NFr|  lbfgsr   iP  (   r@   g      @)r|   r  r  rp   pgtolfactrloglike_and_score)r4   r2   r0   r)   r  r   r/   r  r  rC   r   r  r   )r  r2   r0   mymodelr   s        r3   r  z$TestMNLogitLBFGSBaseZero.setup_class  s    %--'4ytU333$*d++;;gAu E")";  = = $r5   Nr  r   r5   r3   r  r    s-          [  r5   r  c                  .   d } t           j                            ddd          }t           j                            ddd          }t          |t	          j        |                    }|                    d           |                    d|            d S )	Nc                      dS )Nr   r   )argss    r3   callbz(test_mnlogit_basinhopping.<locals>.callb  s    qr5   r   r  r  r%   r  r{   )r|   callback)r-   r  randintr   r)   r  r  )r  xyrD   s       r3   test_mnlogit_basinhoppingr    s       		!S$''A
	!Q%%AArq))**E	II^I$$$	II^eI44444r5   c                  r   t           j                            t           j                            t                              } t           j                            | ddddd          }t           j                            |          }t          j        t           j                            |d          dd          }|d d d	f         }|d d d d	f         }||d
k             }||d
k             }t          j	        |d          }t          ||          }d|_        t          t          |j        d           d|_        t          j        t"                    5  |                    dd          }d d d            n# 1 swxY w Y   t%          |j        d                     |                    ddd           d S )Nz..genmodtestsr  ziris.csvr  r   )r  skip_headerr  r&   Tr|  r  )r  F2   )r  r  rp  r  r  )r  r  r  r  r  r  r-   
genfromtxtr)   r  r   raise_on_perfect_predictionr
   r   r  r}   r  r   r   r  )r  iris_diririsr  XrV  rU   s          r3   test_perfect_predictionr     s   goobgooh7788Gw||GT47INNHwx((H=h
;;s%&( ( (DQQQUAQQQVA	!q&	A	!q&	A
4(((A
1++C&*C#(#'4@@@@&+C#	(	)	) . .gg5"g--. . . . . . . . . . . . . . .,,--- GG6rG22222s   E99E= E=c                  H   t                      } t          j        | j        d          }t          j        | j        |                              dd          }|                                }|                    |          }t          ||           |                    |dd          }t          ||           |                    |dd          }t          d|z  |           |                    |t          j
        d          d          }t          d|z  |           d S )	NTr|  r~  r   r  r   )offsetexposurer&   )r>   r)   r  r0   r   r/   r  rk   r   r-   log)r2   r0   rU   pred1pred2pred3s         r3   test_poisson_predictr  9  s    >>D?49d333D
*TZ
&
&
*
*(
*
C
CCKKMMEKKEu%%%KKQK33Eu%%%KKQK33E%'''KKRVAYYK;;E%'''''r5   c                  T   d} t           j                            d           t           j                            | d          }t	          j        |d          }t           j                            t          j        |                    d                              }t	          j	        ||          }t          j        t                    5  |                    t          j        d           dd	
          }d d d            n# 1 swxY w Y   t          |j        d                     d S )Ni'  i) r%   Tr|  r   r$   r~  r   r  r|   r  rp  )r-   r  r  randnr)   r  r  r!  rG   r   r}   r  r   r  r  r   r  )nobsr  y_countrV  rU   s        r3   test_poisson_newtonr  J  s6   DINN6
	a  A
4(((AiquuQxx 0 011G
*Wa
 
 C	(	)	) I IggBGAJJ;xagHHI I I I I I I I I I I I I I I ,,-----s   
,DD	Dc                  4   t                      } | j        }|d d d df         }t          j        |d          }t          j        | j        |                              dd          }d                    |                                	                                
                    d          dd                    }t          j                            t          j                            t                              }t          j                            |d	d
          }t!          |d          5 }|                                }d d d            n# 1 swxY w Y   t$          j                            ||d d                    |                                 d S )Nr  Tr|  r~  r   r  
r#   r  zmn_logit_summary.txtzutf-8)encoding)r4   r0   r)   r  r   r/   r  r  r   as_textsplitr  r  r  r  r  openreadr-   testingr	   summary2)r2   r0   rC   smryr  test_case_filefd	test_cases           r3   test_issue_339r  Y  sy   ==D9D#2#;D?4...D:dj$''++8!+DDD99T\\^^++--33D99!""=>>Dgoobgooh7788GW\\'96LMMN	nw	/	/	/ 2GGII	              JD)CRC.111MMOOOOOs   0EEEc                     t                      } | j        }|d d d df         }t          j        |d          }t          j        | j        |                              dd          }|d         }t          j        	                    |
                    |          j        d           t          j        	                    |
                    |d                    j        d           d S )Nr  Tr|  r~  r   r  )r   rG  )r4   r0   r)   r  r   r/   r  r-   r  r	   rk   r  )r2   r0   rC   r  s       r3   test_issue_341r  l  s    ==D9D#2#;D?4...D:dj$''++8!+DDDQAJDLLOO15999JDLL4117?????r5   c                  >   t          j        t          d          5  t          j                                         d d d            n# 1 swxY w Y   t          j        t          d          5  t          j                            t          j        j                            d                     d d d            n# 1 swxY w Y   t          j	                    5  t          j
        d           t          j                            d           d d d            n# 1 swxY w Y   t          j        t                    5  t          j                            t          j        j                            d          d           d d d            d S # 1 swxY w Y   d S )Nz4Negative binomial dispersion parameter alpha not setrx   r  )r  )linkerror)r  r  )r}   r  UserWarningr)   familiesr   linksr   warningscatch_warningssimplefilterFutureWarningr   r5   r3   *test_negative_binomial_default_alpha_paramr  x  s~   	k *< 
= 
= 
= ' '
$$&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
k *< 
= 
= 
= O O
$$"+*;*B*B*B*M*M$NNNO O O O O O O O O O O O O O O 
	 	"	" 0 0g&&&
$$3$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
m	$	$ 0 0
$$"+*;*B*B*B*M*M+. 	% 	0 	0 	00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0sI   AAA-AB==CC5DD #D  AFFFc                     t           j                            d          } t           j                            ddd          | d d df<   t           j                            ddd          | d d df<   t           j                            ddd          | d d d	f<   t           j                            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  	count_inds     r3   test_iscountr    s    
	""AYq"2..AaaacFYq"2..AaaacFYq!"--AaaacFYsBR00AaaacFIQF#####r5   c                     t           j                            d          } t           j                            ddd          | d d df<   t           j                            ddd          | d d df<   t           j                            ddd          | d d d	f<   t           j                            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  s     r3   test_isdummyr    s    
	""AYq"2..AaaacFYq!"--AaaacFYq!"--AaaacFYsBR00AaaacFIQF#####r5   c                      g d} t           j                            dd          }t          t          t
          | |           g d} t          t          t          | |           d S )N)r   r&   r   r&   r   r&   r   r&   )r   r   r   r   r   r  )r-   r  r  r
   r   r   r   )r  r  s     r3   test_non_binaryr    s[    A
	1A*eQ***A*fa+++++r5   c            	         t           j        j                                        } | j                            t          t          t          d          d                              | d<   t          j	        | j
        d          }t          j        | j        |          }|                    d          }|j        }|                                }|                    |j        d dd d f                   }| d         }d |_        t          j        ||          }t%          j        d	d
                    | j
        j                  z   | j                  }|                    d          }|j        }	|                                }t/          |	|d           |                    | j
        j        d dd d f                   }
t/          |
|d           d S )NrG  ABCDEFGr/   Tr|  r   r  r  zPID ~ z + r@   rA   )r)   r*   r+   load_pandasr/   replacedictzipr  r  r0   r   r  rF   r   rk   ilocnamesmfr  r  columnsr2   r   )dtar0   rV  rU   rF   r   	predictedendognr   params_fpredicted_fs              r3   test_mnlogit_factorr    s   
+

(
(
*
*C9$$T#eAhh	*B*B%C%CDDCL?38T222D
*SY
%
%C
''q'//CZFkkmmGDIbqb!!!e,--I\FFK
*VT
"
"C +hCH,<!=!==sx
H
HC777??D{HllnnGHf51111,,sx}RaRU344KK777777r5   c            	      <   t           j        j                                        } | j                            t          t          t          d          d                              | d<   t          j	        | j
        d          }t          j        | j        |          }|                    d          }| d                             d          | d<   t          j        | j        |          }|                    d          }t          |j        |j                   d S )	NrG  r  r/   Tr|  r   r  category)r)   r*   r+   r  r/   r  r  r  r  r  r0   r   r  astyper   rF   )r  r0   rV  rU   res_cats        r3   test_mnlogit_factor_categoricalr    s    
+

(
(
*
*C9$$T#eAhh	*B*B%C%CDDCL?38T222D
*SY
%
%C
''q'//Cw<&&z22CL
*SY
%
%Cgg1gooGCJ/////r5   c                     g ddddt           j        gdgdz  t           j                            d          g dd} t	          j        |           }t          j        d	||d
                   }t          t          |j
                  t           j        u d           t	          j        t           j                            d                    }d|j        d<   t          t          t           j        |j        |ddg         |           d S )Nr   r&   r"      r   r&   r%   r$   r  r   r%   r&         ?FooBarconstantr  r  	Foo ~ Barr  r2   r  zExposure is not ndarray)msgr  )r%   r  r  r  )r  )r-   r4  r  uniformpd	DataFramer  r  r   typer  ndarraySerieslocr
   r   r)   r   r  )dr  mod1r  s       r3   test_formula_missing_exposurer    s   Aq"&(9S1W29+<+<!+<+D+Dnn	 	A 
aB ;{bnEEEDD2:-3LMMMM y***2233HBF8*bj"&"j%5H2I#% % % % % %r5   c                     dd l } g dg ddgdz  t          j        d          gdz  g dd} | j        |          }t	          j        d||d	         
          }t          j        ddg          }|                    |d          }|ddg         j        }t          j	        ||          dz   }t          ||           |                    |t          j        d          gdz  d          }|dz   }	t          ||	           d S )Nr   r  )r   r&   r%   r$   r   r$   r  r  r   r  r  r  r   rh   r  r  r&   )r  ri   )pandasr-   r!  r  r   from_formular  rk   r  rQ   r   )
r  r
  r  r  rF   r  r  r  r  	expected2s
             r3   test_predict_with_exposurer    s&    S1WBF1II;q=nn	 	A 
aB";R,.zN< < <D Xq"gF<<h<//D 	J&Ava  1$HD(### LL26!99+a-xLHHE1IE9%%%%%r5   c                     d} t          j        |           }d|ddg<   t          |t          j        |                                         d          }t          j        ddgddgg          }t          |                                |           t          |t          j        |                                         d          }t          j        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  rU   r  s       r3   test_binary_pred_table_zerosr    s    D
AAqeH
274==
!
!
%
%1
%
-
-Cx2rBZ011H!!8,,,
!RWT]]
#
#
'
'Q
'
/
/Cx2rBZ011H!!8,,,,,r5   c                   l    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd ZdS )TestGeneralizedPoisson_p2c                     t                      }t          j        |j        d          |_        t	          |j        |j        d          }|                    dd          | _        t          j	        }|| _
        d S NFr|  r&   pr~  r   r  r>   r)   r  r0   r   r/   r  rC   r   generalizedpoisson_gp2r   )r  r2   rV  r   s       r3   r  z%TestGeneralizedPoisson_p2.setup_class
  se    ~~ODIu===	 TY!<<<77(733-r5   c                 R    t          | j        j        | j        j        d           d S Nr  r.  r   rC   r   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_bse  %    	ty}4@@@@@@r5   c                 R    t          | j        j        | j        j        d           d S r  r   rC   rF   r   r   s    r3   r   z%TestGeneralizedPoisson_p2.test_params  '    	($)*:FFFFFFr5   c                     t          | j        j        | j        j                   t          | j        j        | j        j        d           d S r  r   rC   r  r   r  r   s    r3   r  z$TestGeneralizedPoisson_p2.test_alpha  sT    	)49+<===	1 I5D	B 	B 	B 	B 	B 	Br5   c                 l    t          | j                                        | j        j        d           d S Nr;  r.  r   r   s    r3   r   z'TestGeneralizedPoisson_p2.test_conf_int  =    	**,,di.@!	# 	# 	# 	# 	# 	#r5   c                 N    t          | j        j        | j        j                   d S r(   r   rC   r   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_aic"       	ty}55555r5   c                 N    t          | j        j        | j        j                   d S r(   r   rC   r   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_bic%  r+  r5   c                 N    t          | j        j        | j        j                   d S r(   r	   rC   r   r   r   s    r3   r+  z!TestGeneralizedPoisson_p2.test_df(  "    TY');<<<<<r5   c                 N    t          | j        j        | j        j                   d S r(   r   rC   r   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_llf+  r+  r5   c                     | j                             t          j        t	          | j         j                            d d         d          }t          |j        | j        j	                   t          |j
        | j        j        d           d S )NTscalarra  r.  )rC   	wald_testr-   r1  r   rF   r   r  r   wald_statisticr>  wald_pvalue)rT   results     r3   	test_waldz#TestGeneralizedPoisson_p2.test_wald.  s}    $$RVC	0@,A,A%B%B3B3%G,0 % 2 2($)*BCCCty'<5IIIIIIr5   c                     t          j        | j        j        j                  }| j                            |          }t          | j        j        |j                   d S r(   	r-   identityrC   rF   r   r0  r   r   r5  rT   unit_matrixr0  s      r3   test_tz TestGeneralizedPoisson_p2.test_t4  K    k$)"2"788!!+..	)6=99999r5   c                 $    t          |            d S r(   r   r   s    r3   r   z"TestGeneralizedPoisson_p2.test_jac9  r   r5   c                 .    t          | j                   d S r(   r   r   s    r3   r   z$TestGeneralizedPoisson_p2.test_distr<  r   r5   N)r   r   r   r  r  r   r   r  r   r   r   r+  r   r;  rA  r   r   r   r5   r3   r  r    s           [A A AG G GB B B
# # #6 6 66 6 6= = =6 6 6J J J: : :
      r5   r  c                   T    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
S )"TestGeneralizedPoisson_transparamsc                     t                      }t          j        |j        d          |_        t	          |j        |j        d                              dd          | _        t          j	        }|| _
        d S r  r  r  s      r3   r  z.TestGeneralizedPoisson_transparams.setup_classC  sk    ~~ODIu===	%dj$)qAAAEE! F % %-r5   c                 R    t          | j        j        | j        j        d           d S r  r  r   s    r3   r   z+TestGeneralizedPoisson_transparams.test_bseL  r   r5   c                 R    t          | j        j        | j        j        d           d S r  r"  r   s    r3   r   z.TestGeneralizedPoisson_transparams.test_paramsO  r#  r5   c                     t          | j        j        | j        j                   t          | j        j        | j        j        d           d S r  r%  r   s    r3   r  z-TestGeneralizedPoisson_transparams.test_alphaR  sN    	)49+<===	1	1	> 	> 	> 	> 	> 	>r5   c                 l    t          | j                                        | j        j        d           d S r'  r   r   s    r3   r   z0TestGeneralizedPoisson_transparams.test_conf_intW  r(  r5   c                 N    t          | j        j        | j        j                   d S r(   r*  r   s    r3   r   z+TestGeneralizedPoisson_transparams.test_aic[  r+  r5   c                 N    t          | j        j        | j        j                   d S r(   r-  r   s    r3   r   z+TestGeneralizedPoisson_transparams.test_bic^  r+  r5   c                 N    t          | j        j        | j        j                   d S r(   r/  r   s    r3   r+  z*TestGeneralizedPoisson_transparams.test_dfa  r0  r5   c                 N    t          | j        j        | j        j                   d S r(   r2  r   s    r3   r   z+TestGeneralizedPoisson_transparams.test_llfd  r+  r5   N)r   r   r   r  r  r   r   r  r   r   r   r+  r   r   r5   r3   rF  rF  @  s           [A A AG G G> > >
# # #6 6 66 6 6= = =6 6 6 6 6r5   rF  c                   N    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	S )
TestGeneralizedPoisson_p1c                     t                      | _        t          j        | j        j        d          | j        _        t          | j        j        | j        j        d                              dd          | _        d S )NFr|  r   r  r~  r   r  )	r>   r2   r)   r  r0   r   r/   r  rC   r  s    r3   r  z%TestGeneralizedPoisson_p1.setup_classk  sf    >>uEEE%HNCHMQ0 0 0038!0L0L 	r5   c                    t          j        | j        j        | j        j                                      | j        j        d d                   }t          j        | j        j        | j        j        d                              t          | j        j        d d                   dgz             }t          ||           d S )Nr  r   r  r   )r)   r   r2   r/   r0   loglikerC   rF   r   listr   )rT   poisson_llfgenpoisson_llfs      r3   r   z"TestGeneralizedPoisson_p1.test_llfr  s    jIOTY^- --4WISbS!.# .# 	 .IOTY^q2 2 229'!#2#&''1#-3/ 3/ 	 	44444r5   c                    t          j        | j        j        | j        j                                      | j        j        d d                   }t          j        | j        j        | j        j        d                              t          | j        j        d d                   dgz             }t          |d d         |d           d S )Nr  r   r  r   g&.>r.  )r)   r   r2   r/   r0   rH   rC   rF   r   rU  r   rT   poisson_scoregenpoisson_scores      r3   
test_scorez$TestGeneralizedPoisson_p1.test_score{  s    
IOTY^- --2UISbS!.# .# 	 0IOTY^q2 2 227%!#2#&''1#-3/ 3/ 	 	("-}4HHHHHHr5   c                    t          j        | j        j        | j        j                                      | j        j        d d                   }t          j        | j        j        | j        j        d                              t          | j        j        d d                   dgz             }t          |d dd df         |d           d S )Nr  r   r  r   r@   r.  )r)   r   r2   r/   r0   rN   rC   rF   r   rU  r   rY  s      r3   test_hessianz&TestGeneralizedPoisson_p1.test_hessian  s    
IOTY^- --4WISbS!.# .# 	 0IOTY^q2 2 229'!#2#&''1#-3/ 3/ 	 	("SbS1=uMMMMMMr5   c                     t          j        | j        j        j                  }| j                            |          }t          | j        j        |j                   d S r(   r=  r?  s      r3   rA  z TestGeneralizedPoisson_p1.test_t  rB  r5   c                 L   | j         j        }t          j        t	          | j         j                            }d|dd <   |                    |dz  d          }|                    |dz  d          }|                    |dz  d          }t          |j        | j         j        d           t          |j        | j         j        d	           t          | j         j        d d         d
z  	                                dd	           t          |j        d d         d
z  	                                dd	           t          |j        d d         d
z  	                                dd	           t          |j        d d         d
z  	                                dd	           d S )Nr   r4  r  )r  r  r  r  -C6
?r.  r  r&   g.?rA   gI?g'~ۅ?gM5rK7?)
rC   rD   r-   r  r   rF   r   r   r   rl   )rT   rD   r  res_reg1res_reg2res_reg3s         r3   test_fit_regularizedz.TestGeneralizedPoisson_p1.test_fit_regularized  s   	 DI,--..bcc
((uTz(BB((uSyq(AA((uTz(BB)9EEEEdim$???? 	)#2#.17799,4	9 	9 	9 	9"-q06688,4	9 	9 	9 	9"-q06688,4	9 	9 	9 	9"-q06688.T	; 	; 	; 	; 	; 	;r5   c                     | j         j                                        }t          d|v            t	          |d         d           d S Nr  r   rC   rD   _get_init_kwdsr   r	   rT   kwdss     r3   test_init_kwdsz(TestGeneralizedPoisson_p1.test_init_kwds  C    y--//tT#Y"""""r5   c                 .    t          | j                   d S r(   r   r   s    r3   r   z$TestGeneralizedPoisson_p1.test_distr  r   r5   N)r   r   r   r  r  r   r\  r^  rA  re  rl  r   r   r5   r3   rQ  rQ  h  s         M M [M5 5 5I I IN N N: : :
; ; ;0# # #
    r5   rQ  c                   H    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
dS )	&TestGeneralizedPoisson_underdispersionc                    g d| _         t          j                            d           d}t          j        |df          }d|d |dz  df<   t          j        |                    | j         d d                             }t          j        j	        
                    || j         d         dt          |                    | _        t          j        | j        |d          }|                    d	d
ddd          | _        d S )N)r         g     r&   r   r  r  r  r  r    r   )r|   xtolr  maxfunr  )expected_paramsr-   r  r  r  r!  rQ   r)   distributionsgenpoisson_prvsr   r/   r   r  rU   )r  r  r0   mu_truemodel_gps        r3   r  z2TestGeneralizedPoisson_underdispersion.setup_class  s    ...
	tway!!XdAgXq[&#"5crc":;;<<$155g#QS\\ 6 ; ;	(DA>>>,,dt&*  4 4r5   c                 h   | j         }|j        j        }t          |                                dd           t          |                                dd           t          |j        | j        dd           t          |j	        d         d	u            t          |j	        d
         dd           d S )NgQ?r;  rA   gaTR'?gQ?r  r  rB   rp  Tfoptg6?r  )
rU   rD   r/   r   rl   rg   rF   rx  r   r  )rT   rU   r/   s      r3   
test_basicz1TestGeneralizedPoisson_underdispersion.test_basic  s    h	

d6666		V$7777 	
D$8t#NNNN,4555/1BNNNNNNr5   c                    | j         }|j                            |j        dd          }t	          |j                            |j                  t          j        t          |j                            d           t	          |j                            |j                  t          j        t          |j                            d           t	          |j        |j        d           d S )Nr~  r   r  r  r.  r@   r  )	rU   rD   r  rF   r   rH   r-   r  r   )rT   rU   r   s      r3   test_newtonz2TestGeneralizedPoisson_underdispersion.test_newton  s    hy}}#*XA}NN	
33T[!1!122	? 	? 	? 	?	44T[!1!122	@ 	@ 	@ 	@
DKd;;;;;;r5   c                    t          | j                                                                        | j                                        dd           t          | j                                                                        | j        j                                        z  | j                                        dd           d S )Nr  r  r  )r   rU   rk   rl   r/   _dispersion_factorrg   r   s    r3   test_mean_varz4TestGeneralizedPoisson_underdispersion.test_mean_var  s    ((**//114:??3D3D!	. 	. 	. 	. 	H##%%(C(H(H(J(JJJNN4d	4 	4 	4 	4 	4 	4r5   c                    | j         }|j        j        }t          j        |                    t                              }|                    d          }t          j	        j
                            t          j        d          d d d f         |                                |j        d         d          j        }t          ||dd           |                    d          }|dxx         |j        d         |                                z
  z  cc<   t          |                                |                                d	
           ddlm}  |j        ||          }t          |d d          dd
           d S )Nprobrh   r   r  r   r@   r  r   r   rA   r   )g;ܛA?gP1/#?r  )rU   rD   r/   r-   r  r  intrk   r)   ry  rz  pmfr  rF   rP   r   rG   r  scipyr   	chisquare)	rT   rU   r/   freqprpr2r  r   r  s	            r3   r  z8TestGeneralizedPoisson_underdispersion.test_predict_prob  sY   h	{5<<,,--[[v[&&+//	!QQQW0E(+sz"~qJ JJK 	Ce%888866!99hllnn44

HLLNN????utX..QQQ!I!	# 	# 	# 	# 	# 	#r5   c                 2    t          | | j                   d S )N)rU   )re   rU   r   s    r3   r   z/TestGeneralizedPoisson_underdispersion.test_jac  s    $DH%%%%%%r5   c                 .    t          | j                   d S r(   )rt   rU   r   s    r3   r   z1TestGeneralizedPoisson_underdispersion.test_distr  s    DHr5   N)r   r   r   r  r  r  r  r  r  r   r   r   r5   r3   rp  rp    s        4 4 [4
O 
O 
O< < <4 4 4# # #,& & &    r5   rp  c                   T    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
S )TestNegativeBinomialPNB2Newtonc                     t                      }t          j        |j        d          }t	          |j        |d          }|                    dd          | _        t          j	        }|| _
        d S r  r>   r)   r  r0   r   r/   r  rC   r   r  r   rU  s        r3   r  z*TestNegativeBinomialPNB2Newton.setup_class   sa    ~~ty%888
DA66677(7330r5   c                 T    t          | j        j        | j        j        dd           d S Nr;  r  r  r   s    r3   r   z'TestNegativeBinomialPNB2Newton.test_bse
  4    	ty}!	. 	. 	. 	. 	. 	.r5   c                 R    t          | j        j        | j        j        d           d S NgHz>r.  r"  r   s    r3   r   z*TestNegativeBinomialPNB2Newton.test_params  s4    	($)*:!	# 	# 	# 	# 	# 	#r5   c                     | j         j         t          | j         j        | j        j                   t          | j         j        | j        j        d           d S r  rC   r   r   r  r   r  r   s    r3   r  z)TestNegativeBinomialPNB2Newton.test_alpha  sX    		)49+<===	1	1!	# 	# 	# 	# 	# 	#r5   c                 n    t          | j                                        | j        j        dd           d S r  r   r   s    r3   r   z,TestNegativeBinomialPNB2Newton.test_conf_int  ?    	**,,di.@!	. 	. 	. 	. 	. 	.r5   c                 d    t          | j        j        d d         | j        j        dd           d S Nr  {Gzt?r  r   rC   r   r   r   s    r3   r   z)TestNegativeBinomialPNB2Newton.test_zstat  ?    	)#2#.	0A!	. 	. 	. 	. 	. 	.r5   c                 n    t          | j        j        d d         | j        j        d d                    d S r  r   rC   r  r   r   s    r3   r  z0TestNegativeBinomialPNB2Newton.test_fittedvalues!  s?    	.ss3	.ss3	5 	5 	5 	5 	5r5   c                     t          | j                                        d d         t          j        | j        j        d d                              d S r  r   rC   rk   r-   r!  r   r  r   s    r3   r   z+TestNegativeBinomialPNB2Newton.test_predict%  sR    	))++CRC0ty5crc:;;	= 	= 	= 	= 	=r5   c                     t          | j                            d          d d         | j        j        d d                    d S r$  r   rC   rk   r   r  r   s    r3   r   z.TestNegativeBinomialPNB2Newton.test_predict_xb)  sM    	)))99#2#>	.ss3	5 	5 	5 	5 	5r5   Nr'  r   r5   r3   r  r    s          [. . .# # ## # #. . .. . .5 5 5= = =5 5 5 5 5r5   r  c                   H    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
dS )	TestNegativeBinomialPNB1Newtonc                     t                      }t          j        |j        d          }t	          |j        |d          }|                    ddd          | _        t          j	        }|| _
        d S )	NFr|  r   r  r~  r  r   r,  r>   r)   r  r0   r   r/   r  rC   r   r.  r   rU  s        r3   r  z*TestNegativeBinomialPNB1Newton.setup_class0  sc    ~~ty%888
DA66677(Ca7@@0r5   c                 T    t          | j        j        | j        j        dd           d S Nr  r  r   rC   r   r   r   r   s    r3   r   z)TestNegativeBinomialPNB1Newton.test_zstat9  s5    	)49;!	. 	. 	. 	. 	. 	.r5   c                     | j         j         t          | j         j        | j        j                   t          | j         j        | j        j                   d S r(   r  r   s    r3   r4  z+TestNegativeBinomialPNB1Newton.test_lnalpha=  sP    		)49+<===	1 I5	7 	7 	7 	7 	7r5   c                 N    t          | j        j        | j        j                   d S r(   r"  r   s    r3   r   z*TestNegativeBinomialPNB1Newton.test_paramsC  s"    	($)*:;;;;;r5   c                 n    t          | j                                        | j        j        dd           d S r  r   r   s    r3   r   z,TestNegativeBinomialPNB1Newton.test_conf_intF  A     		**,,di.@!	. 	. 	. 	. 	. 	.r5   c                     t          | j                                        d d         t          j        | j        j        d d                   dd           d S Nr"   r;  r  r  r   s    r3   r   z+TestNegativeBinomialPNB1Newton.test_predictL  \    	))++CRC0ty5crc:;;!	. 	. 	. 	. 	. 	.r5   c                     t          | j                            d          d d         | j        j        d d         dd           d S Nr   rh   r"   r;  r  r  r   s    r3   r   z.TestNegativeBinomialPNB1Newton.test_predict_xbQ  W    	)))99#2#>	.ss3!	. 	. 	. 	. 	. 	.r5   N)r   r   r   r  r  r   r4  r   r   r   r   r   r5   r3   r  r  .  s          [. . .7 7 7< < <. . .. . .
. . . . .r5   r  c                   T    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
S )TestNegativeBinomialPNB2BFGSc                     t                      }t          j        |j        d          }t	          |j        |d                              ddd          | _        t          j	        }|| _
        d S )	NFr|  r&   r  r  r   r  r  r  r  s       r3   r  z(TestNegativeBinomialPNB2BFGS.setup_classY  sl    ~~ty%888$TZ;;;??7=A8< @ > > 0r5   c                 T    t          | j        j        | j        j        dd           d S r  r  r   s    r3   r   z%TestNegativeBinomialPNB2BFGS.test_bsed  r  r5   c                 T    t          | j        j        | j        j        dd           d S r  r"  r   s    r3   r   z(TestNegativeBinomialPNB2BFGS.test_paramsh  6    	($)*:!	. 	. 	. 	. 	. 	.r5   c                     | j         j         t          | j         j        | j        j        dd           t          | j         j        | j        j        dd           d S )Nr  r  r  r   s    r3   r  z'TestNegativeBinomialPNB2BFGS.test_alphal  sj    		)49+<!	. 	. 	. 	.	1	1!	. 	. 	. 	. 	. 	.r5   c                 n    t          | j                                        | j        j        dd           d S r  r   r   s    r3   r   z*TestNegativeBinomialPNB2BFGS.test_conf_intt  r  r5   c                 d    t          | j        j        d d         | j        j        dd           d S r  r  r   s    r3   r   z'TestNegativeBinomialPNB2BFGS.test_zstatx  r  r5   c                 t    t          | j        j        d d         | j        j        d d         dd           d S )Nr"   r  r  r  r   s    r3   r  z.TestNegativeBinomialPNB2BFGS.test_fittedvalues|  sI    	.ss3	.ss3!	. 	. 	. 	. 	. 	.r5   c                     t          | j                                        d d         t          j        | j        j        d d                   dd           d S r  r  r   s    r3   r   z)TestNegativeBinomialPNB2BFGS.test_predict  r  r5   c                     t          | j                            d          d d         | j        j        d d         dd           d S r  r  r   s    r3   r   z,TestNegativeBinomialPNB2BFGS.test_predict_xb  r  r5   Nr'  r   r5   r3   r  r  W  s          [. . .. . .. . .. . .. . .. . .
. . .
. . . . .r5   r  c                   l    e Zd Zed             Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd ZdS )TestNegativeBinomialPNB1BFGSc                     t                      }t          j        |j        d          }t	          |j        |d                              ddd          | _        t          j	        }|| _
        d S )	NFr|  r   r  r  r  r   r,  r  r  s       r3   r  z(TestNegativeBinomialPNB1BFGS.setup_class  sn    ~~ty%888$TZ;;;??vILFG @ I I 0r5   c                 T    t          | j        j        | j        j        dd           d S r  r  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_bse  r  r5   c                 T    t          | j        j        | j        j        dd           d S Nr  r  r*  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_aic  4    	ty} s	, 	, 	, 	, 	, 	,r5   c                 T    t          | j        j        | j        j        dd           d S r  r-  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_bic  r  r5   c                 T    t          | j        j        | j        j        dd           d S r  r2  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_llf  r  r5   c                 T    t          | j        j        | j        j        dd           d S r  r2  r   s    r3   r   z%TestNegativeBinomialPNB1BFGS.test_llr  r  r5   c                 T    t          | j        j        | j        j        dd           d S r  r  r   s    r3   r   z'TestNegativeBinomialPNB1BFGS.test_zstat  s5    	)49; s	, 	, 	, 	, 	, 	,r5   c                     t          | j        j        | j        j        dd           t          | j        j        | j        j        dd           d S r  r%  r   s    r3   r4  z)TestNegativeBinomialPNB1BFGS.test_lnalpha  sa    	)49+<!	. 	. 	. 	.	1	1!	. 	. 	. 	. 	. 	.r5   c                 T    t          | j        j        | j        j        dd           d S N皙?r  r"  r   s    r3   r   z(TestNegativeBinomialPNB1BFGS.test_params  r  r5   c                 n    t          | j                                        | j        j        dd           d S r  r   r   s    r3   r   z*TestNegativeBinomialPNB1BFGS.test_conf_int  r  r5   c                     t          | j                                        d d         t          j        | j        j        d d                   dd           d S )Nr"   r  r  r  r   s    r3   r   z)TestNegativeBinomialPNB1BFGS.test_predict  r  r5   c                     t          | j                            d          d d         | j        j        d d         dd           d S )Nr   rh   r"   r  r  r  r   s    r3   r   z,TestNegativeBinomialPNB1BFGS.test_predict_xb  r  r5   c                     | j         j                                        }t          d|v            t	          |d         d           d S rg  rh  rj  s     r3   rl  z+TestNegativeBinomialPNB1BFGS.test_init_kwds  rm  r5   N)r   r   r   r  r  r   r   r   r   r   r   r4  r   r   r   r   rl  r   r5   r3   r  r    s          [. . ., , ,, , ,. . .. . ., , ,. . .. . .. . .. . .
. . .
# # # # #r5   r  c                   $    e Zd Zed             ZdS )$TestNegativeBinomialPL1Compatabilityc                 t   d| _         d| _        t                      }t          j        |j                  |_        t          j        |j        t                    |_        |j                            t                    	                    t          |j                  d          }||                    d          z
  |                    d          z  }t          j        |d          }|d d d | j        f         }t          j        |j        |          }|                    dd	          | _        dt          |j                  z  t          j        | j         d
z             z  }d|d | j        <   d|d<   t          j        |j        |          }|                    d|dddd          | _        d
| _        d S )Nr"   rG  r:   r  r   Tr|  r~  r  r   r  Fr@   rH  r  r  )r'  rp   r>   r-   r.   r/   r0   r=   rI  rJ  r   rl   rR  r)   r  r   r  r%  r  r   r&  r-  rS  s           r3   r  z0TestNegativeBinomialPL1Compatability.setup_class  s}   	 NN	*Y_55	IN%@@@	N''..66s9>7J7JBOO	!INN1$5$55q9I9IIOL$???	6CE6	*(+FF	!XA>>S)))BGCIM,B,BBfsufb	&y	BB--u5eT .   r5   Nr  r   r5   r3   r  r    s-          [  r5   r  c                       e Zd Zd Zd ZdS ) TestNegativeBinomialPPredictProbc                    ddg}t           j                            d           d}t          j        |df          }d|d |dz  df<   t          j        |                    |                    }d}d|z  |z  }|||z   z  }t          j        ||t          |                    }t          j
        ||                              d	
          }	|	                                }
d|z  |
z  }|||
z   z  }|	                    d          }t          |t          j        t          j        d          d d d f         ||          j        dd           |	                    |d	dg         d          }t          ||d	dg         dd           d S )Nr   rr  rs  rt  r&   r  r  r  r   r  r  rh   r  r  r  r  )r0   ri   r@   ra  r  r-   r  r  r  r!  rQ   r   r{  r   r)   r   r  rk   r   r  r  rP   )rT   rx  r  r0   r|  r  r   r  r/   rU   mur  probs_exs                r3   test_predict_prob_p1z5TestNegativeBinomialPPredictProb.test_predict_prob_p1  s   d)
	tway!!XdAgXq[&/2233EzG#tg~&
4CLL999"5$//333;;[[]]EzBtby!&))Jry||AAAdF+T488:D	" 	" 	" 	" ;;D!RM;@@%B.u5IIIIIIr5   c                    ddg}t           j                            d           d}t          j        |df          }d|d |dz  df<   t          j        |                    |                    }d}d|z  }|||z   z  }t          j        ||t          |                    }t          j
        ||d	                              d
          }	|	                                }
d|z  }|||
z   z  }t          |	                    d          t          j        t          j        d          d d d f         ||          j        dd           d S )Nr   rr  rs  rt  r&   r  r  r  r  r   r  r  rh   r  r  r  r  )rT   rx  r  r0   r|  r  r   r  r/   rU   r  s              r3   test_predict_prob_p2z5TestNegativeBinomialPPredictProb.test_predict_prob_p2	  sK   d)
	tway!!XdAgXq[&/2233Eztg~&
4CLL999"5$!44488a8@@[[]]Eztby!&11Jry||AAAdF+T488:D	" 	" 	" 	" 	" 	"r5   N)r   r   r   r  r  r   r5   r3   r  r    s5        J J J4" " " " "r5   r  c                   *    e Zd Zed             Zd ZdS )	CheckNullc                     t          j        g d          }t          |          }t          j        t          j        |          |f          }t          j        g d          }||fS )N)r  r  g      >@g     A@g      D@g     F@g      I@)i  i  i  i  i@  i  i  )r-   r  r   rM   r  )r  r  r  r0   r/   s        r3   	_get_datazCheckNull._get_data!	  s_    H???@@1vvq122CCCDDd{r5   c                    | j                             | j        d          }d|j        _        |j        }|j        }t          ||j        d           | j        }t          ||j        d           t          |j	        |j	        d           d S )Nr   r  r  Tr  rA   ra  )
rD   r  r  _results_attach_nullmodelr   res_nullr   r   rF   )rT   rU   llf0	res_null0	res_null1s        r3   r   zCheckNull.test_llnull)	  s    jnn$*;!nDD)-&zL	im$7777M	im$7777 		()*:FFFFFFr5   N)r   r   r   r  r  r   r   r5   r3   r  r  	  sA          [G G G G Gr5   r  c                   $    e Zd Zed             ZdS )TestPoissonNullc                     |                                  \  }}t          ||          | _        t          ||d d df                                       dgd          | _        ddg| _        d S )Nr   g      !@r  )r  r   rD   r  r  r  r  r/   r0   s      r3   r  zTestPoissonNull.setup_class9	  sh    mmootE4((	ud111a4j1155C5q5QQ8r5   Nr  r   r5   r3   r  r  7	  s-        $ $ [$ $ $r5   r  c                   $    e Zd Zed             ZdS )TestNegativeBinomialNB1Nullc                 &   |                                  \  }}t          ||d          | _        t          ||d d df         d          | _        | j                            ddgdddd	          | _        t          j        g d
          | _        d S )Nr+  rZ  r   r  r  r  r  ,  r  r|   r  r  r  g0@g?$?g     @	r  r   rD   
model_nullr  r  r-   r  r  r  s      r3   r  z'TestNegativeBinomialNB1Null.setup_classD	  s    mmoot$UDGGG	)%aaad9>@ @ @~))4y17e25A * ? ? 8$F$F$FGGr5   Nr  r   r5   r3   r  r  B	  s2        	H 	H [	H 	H 	Hr5   r  c                   $    e Zd Zed             ZdS )TestNegativeBinomialNB2Nullc                 &   |                                  \  }}t          ||d          | _        t          ||d d df         d          | _        | j                            ddgdddd	          | _        t          j        g d
          | _        d S )Nr  rZ  r   r  r  r  r  r  r  g#$ @g7<$BD?gki,?r  r  s      r3   r  z'TestNegativeBinomialNB2Null.setup_classS	  s    mmoot$UDGGG	)%aaad9>@ @ @~))3x17e25A * ? ? 8$H$H$HIIr5   Nr  r   r5   r3   r  r  Q	  s2        J J [J J Jr5   r  c                   *    e Zd Zed             Zd ZdS )TestNegativeBinomialNBP2Nullc                 &   |                                  \  }}t          ||d          | _        t          ||d d df         d          | _        | j                            ddgdddd	          | _        t          j        g d
          | _        d S )Nr&   r  r   r  r   r  r  r  r  r  	r  r   rD   r  r  r  r-   r  r  r  s      r3   r  z(TestNegativeBinomialNBP2Null.setup_classa	  s    mmoot%eTQ777	*5$qqq!t*BBB~))1v17e25A * ? ? 8$H$H$HIIr5   c                     | j         j        | j         j        }}t          ||d          }|                                }| j                                         }t          ||d           d S )Nr  rZ  -q=rA   rD   r/   r0   r   _get_start_params_nullr   rT   r/   r0   	model_nb2sp1sp0s         r3   test_start_nullz,TestNegativeBinomialNBP2Null.test_start_nullk	  g    j&
t$UDGGG	..00j//11Su------r5   Nr   r   r   r  r  r  r   r5   r3   r  r  _	  s?        J J [J. . . . .r5   r  c                   *    e Zd Zed             Zd ZdS )TestNegativeBinomialNBP1Nullc                 &   |                                  \  }}t          ||d          | _        t          ||d d df         d          | _        | j                            ddgdddd	          | _        t          j        g d
          | _        d S )Nr  r  r   r   r  r  r  r  r  r  r  r  s      r3   r  z(TestNegativeBinomialNBP1Null.setup_classu	  s    mmoot%eTR888	*5$qqq!t*BBB~))1v17e25A * ? ? 8$F$F$FGGr5   c                     | j         j        | j         j        }}t          ||d          }|                                }| j                                         }t          ||d           d S )Nr+  rZ  r  rA   r  r
  s         r3   r  z,TestNegativeBinomialNBP1Null.test_start_null	  r  r5   Nr  r   r5   r3   r  r  s	  s?        H H [H. . . . .r5   r  c                   $    e Zd Zed             ZdS )TestGeneralizedPoissonNullc                 &   |                                  \  }}t          ||d          | _        t          ||d d df         d          | _        | j                            ddgdddd	          | _        t          j        g d
          | _        d S )Nr  r  r   g @r   r  r  r  r  )gY$@g^?g3 7I?)	r  r   rD   r  r  r  r-   r  r  r  s      r3   r  z&TestGeneralizedPoissonNull.setup_class	  s    mmoot&udc:::	+E41:EEE~))Qx17e25A * ? ? 8$H$H$HIIr5   Nr  r   r5   r3   r  r  	  s2        J J [J J Jr5   r  c                     d} t          j        d          }d|d | dz  df<   t          j        |                    d                    }t           j                            |          }t          ||                              t          j        ddg          d          }|j	        }t          t          |d          du            |                    d	
           |j	        }t          |j        j        d         t          j        |                                          d           t#          |j        j        d         d           t          ||           |                    d	dgd           |j	        }t          |j        j        d         dgd           t#          |j        j        d         d           |                                 t          d|j        v            t#          |j        d         |           t          d|j        v            t#          |j        d         |           |                    d           t          d|j        v           t#          |j        d         d           d S )Nr"   )   r&   r   r&   r   r  
res_llnullFT)attach_resultsr  r@   rA   	optimizerr  r  r  )r  r  r|   	prsquaredr   i  )r   )r-   r  r!  rG   r  r  r   r  r  r   r   r   set_null_optionsr   r  mle_settingsrl   r	   r   _cache)r  r0   r  r/   rU   llnull0llns          r3   test_null_optionsr#  	  sH    D77DD$!)Q			BIb!!E
%


"
"1vQ
"
G
GCjGGC&&%/000---
*CCL-n=F5::<<((u6 6 6 6*;7@@@C!!!C5NNN
*CCL-n=u       *;7>>>KKMMMK3:%&&&H%,,,K3:%&&&H%,,, $$$Ksz)***H%,,,,,r5   c                     t           j                            t           j                            t                              } t           j                            | dd          }t          j        |          }dg}||         ||                                         z
  ||         	                                z  }|d         j
        }t          j        ||                                                   }d }t          dd          }t          |||          }	 |	j        dd	d
i|}
t#          |||          }	|	                    d
|          }t%          |j        d         d d         |
j        d           t+          |j        d         |           t%          |                                                                |                                d           t          dd          }t/          |||d          }	|	                    d
|          }t%          |j        d         d d         |
j        d           t+          |j        d         |           t%          |                                                                |                                d           t1          |||d          }	|	                    d
d|          }t%          |j        d         d d         |
j        d           t+          |j        d         |           t%          |                                                                |                                d           d S )Nr  z
sm3533.csvppnumr  ru  )r|   r  )r  r  r   )r  optim_kwds_prelimr  r  r  rA   r'  r  r&   )r  r  r  rt  )r  r  r'  r   )r  r  r  r  r  r  r  read_csvrl   rR  r  r)   r  copyr  r   r  r   r   r  rF   r	   rk   r   r   )r  filepathr  featuresr  r  r0   r  r'  rD   res_poirU   s               r3   test_optim_kwds_prelimr-  	  s    goobgooh7788Gw||GY==H	X		BvH	H8))++	+R\-=-=-?-??A
5	A?1X;++--..D F D$777AtF+++Eei44Q4"344GQV444E
)).?)
@
@CC$^4SbS97>   !"568IJJJCKKMM&&((!&&((==== D$777af:::E
)).?)
@
@CC$^4SbS97>   !"568IJJJCKKMM&&((!&&((==== q$v===E
))C;L)
M
MCC$^4SbS97>   !"568IJJJCKKMM&&((!&&((======r5   c                  2   t                      } t          j        d           t          j        | j        | j        d          }t          j        g d          }|	                    |d          }t          |j        d           t          j        g d          }|                    d	|d
          }t          |j        dk               |	                    |d          }t          |j        |j                   t          |j        |j                   d S )Nr  r  rZ  )
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  r  g,[?r  )r  r  r  )r>   r  r  r)   r   r/   r0   r-   r  r  r	   r   r   r   r   )r2   rD   rF   rC   
reg_paramsr   res3s          r3   "test_unchanging_degrees_of_freedomr1  	  s   >>D'"""
DIeLLLEX 0 0 0 1 1F 99&q911D""" H H H I IJ   s! LLDDMQ 99&q911D ........r5   c                  J   t          j        g dg dd          } t          j        t          d          5  t          j        d|                                           }d d d            n# 1 swxY w Y   |                                	                                }d|v sJ d S )	N)r  皙?r   r   r3  )r   r   r   r   r   )ABz+endog contains values are that not int-likerx   zA ~ B)formular2   zA=1.1)
r  r  r}   r  r   r  r  r  r   r  )r  r:  r   s      r3   test_mnlogit_float_namer7  
  s    	000GG	H	HB	*I
K 
K 
K = =W2666::<<= = = = = = = = = = = = = = = >>##%%Dd??????s   )A,,A03A0c                     t           j        j                                        } t          j        | j        d          }t          j        | j        |                              dd          }|	                                }|
                                }t          j        t          j        |                    }|j        d d df         |j        d d df         z
  dt          j                            d          z  z  }t%          ||           t'          |j        |j                   t'          |j        |j                   t-          |j        t.          j                  sJ d S )	NFr|  r~  r   r  r   r&   g333333?)r)   r*   r+   r  r  r0   r   r/   r  r   r   r-   sqrtdiagr  r   normppfr   r   indexr  rJ   r  
MultiIndex)r2   r0   rC   covcisese2s          r3   test_cov_confint_pandasrC  
  s   ;))++D?49e444D:dj$''++8!+DDD
//

C	B			B7111a4=27111a4=(Q1F1F-F
GCBrx+++sy#+...bh.......r5   c                     t           j        j                                        } t          j        | j        d          }t          j        | j        |                              d          }t          j
        |                                j        d                   }|                    |          }|                    |          }t          j        | j        d          }t          j        | j                  t          j        |          }}t          j        ||                              d          }|                    |          }|                    |          }	t!          |j        |j                   t!          |j        |	j                   |                    t          j        t          j        |j                                      }
t!          |
j                            ddd          |j                                                   |                    t          j        t          j        |j                                      }
t!          |
j                            ddd          |j                   |                    t          j        t          j        |j                            d         d	          }t!          |j        |j                                        d
                    |                    d          }
|                    dd	          }t!          |
j        |j                   |                    dd	          }t!          |j        dd           d S )NFr|  r   r  r   re  rf  Tr5  )r   r   y1_logpopulzy1_logpopul, y2_logpopulgf,@r  rA   )r)   r*   r+   r,   r  r0   r   r/   r  r-   r  r   r  r0  r<  r.   r   r2  r  r1  r   rF   r5  rJ  r   to_numpyr7  r>  r   )r2   r0   rC   rt1f1r/   r   t2f2ttwts               r3   test_mlogit_t_testrN  
  s   ;""$$D?49e444D:dj$''+++33D
!!'*++A	QB	QB?49e444D*TZ(("*T*:*:4E:eT""&&A&..D	QB	QBBIry)))BL",///	RVBGDK0011	2	2BBI%%a%55t|7L7L7N7NOOO	RVBGDK0011	2	2BBI%%a%55t|DDD	rwt{3344Q7	E	EBBIt|4466t<=== 
]	#	#B	d	3	3BBIry)))	24	@	@BBL*4888888r5   r(   )r   statsmodels.compat.pandasr   r  r  numpyr-   numpy.testingr   r   r   r   r   r	   r
   r  r  r}   r  r   scipy.statsr   statsmodels.apiapir)   %statsmodels.discrete.discrete_marginsr   r   #statsmodels.discrete.discrete_modelr   r   r   r   r   r   r   r   statsmodels.formula.apir6  r  statsmodels.tools.sm_exceptionsr   r   r   r   results.results_discreter   r   r   r    cvxoptr
  ImportErrorr   
DECIMAL_10rI   r   r   r  r)  	DECIMAL_0r4   r8   r>   re   rt   rv   r   r   r   ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r   skipifr  r  r#  rE  rP  rW  r]  re  rk  rn  rs  ry  r  r  r  r  r  r  r  r  r)  r>  rI  rR  rc  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rF  rQ  rp  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r-  r1  r7  rC  rN  r   r5   r3   <module>r_     sh    9 8 8 8 8 8 				                                              D D D D D D D D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 & % % % % % % % %            I H H H H H H H H H H HMMMJJ   JJJ 

						      *( *( *( *(Z3 3 3
0 
0 
0 
0 
0 
0 
0 
0U U U U U U U Up! ! ! ! !* ! ! !"qF qF qF qF qF qF qF qFh+ + + + +) + + +&	 	 	 	 	' 	 	 		! 	! 	! 	! 	!% 	! 	! 	!	 	 	 	 	) 	 	 	? ? ? ? ?% ? ? ?6
M 
M 
M 
M 
M& 
M 
M 
MI I I I I/ I I I	G 	G 	G 	G 	G 2 	G 	G 	G
. 
. 
. 
. 
.1 
. 
. 
.M M M M M*< M M M9 9 9 9 9 9 9 96I I I I I) I I I$    *   "I I I I I( I I I$ 
N ,> ? ?L L L L L L L? ?L.M M M M M M M M,4G 4G 4G 4G 4G 4G 4G 4Gn    !5   *    *>   4: : : : :-A : : :4N N N N N3 N N N$    !5   @O O O O O 4 O O O"< < < < < < < <.	M 	M 	M 	M 	M) 	M 	M 	M7 7 7 7 7; 7 7 7*
H 
H 
H 
H 
HK 
H 
H 
HD D D D DY D D DB4 B4 B4 B4 B4(, B4 B4 B4J,? ,? ,? ,? ,?\ ,? ,? ,?^K K K K K& K K K'" '" '" '" '") '" '" '"T' ' ' ' ' ' ' '*D *D *D *D *D$46G *D *D *DZ%" %" %" %" %"$46G %" %" %"P,D ,D ,D ,D ,D"24E ,D ,D ,D^&" &" &" &" &""24E &" &" &"R4E 4E 4E 4E 4E(8:K 4E 4E 4Enu u u u u, u u up     4       3   "	5 	5 	53 3 32( ( (". . .  &	@ 	@ 	@0 0 0$ $ $$ $ $, , ,8 8 82	0 	0 	0% % %$& & &<- - -6 6 6 6 6 6 6 6r%6 %6 %6 %6 %6 %6 %6 %6PH H H H H H H HVH H H H H H H HV-5 -5 -5 -5 -5%57H -5 -5 -5`&. &. &. &. &.%57H &. &. &.R2. 2. 2. 2. 2.#35F 2. 2. 2.jB# B# B# B# B##35F B# B# B#J    +?   60" 0" 0" 0" 0" 0" 0" 0"fG G G G G G G G0$ $ $ $ $i $ $ $H H H H H) H H HJ J J J J) J J J. . . . .9 . . .(. . . . .9 . . .(
J 
J 
J 
J 
J 
J 
J 
J#- #- #-L/> /> />d/ / /4  / / /!9 !9 !9 !9 !9s   ?B BB